Intro: Arduino Egg Boil Timer for Lazybones
This Instructable will show you how to make bit different egg boil timer out of an Arduino and some other cheap components. It's my first on, so be lenient
Everybody knows that egg boiling is science, right.. Throw the eggs in the pot, some water in it and heat will do the rest.. Wrong. I'd like my boiled egg to boiled exactly (+- 10s) eight minutes or so.. An issue regarding boiling eggs is to know how long you have boiled them and to know that you have to know when boiling has started, right ? For helping egg boiling I made an egg boil timer which is capable to measure water temperature and inform me that eggs are boiled and you could start to get up and cool them down..
I could also tell you that I'm an automotive electronics engineer and ISTJ but otherwise mentally healthy :) I have "real" egg boiler/cooker also but life would be too easy if you'll use everytime something you already have.
Step 1: What You Will Need
You Will Need-
- 1x Arduino Pro Mini
- 1x Pietzo Buzzer
- 2x 1uF electrolytic capacitors
- 1x Momentary Tactile Push Button Switch SPST
- 2x 10k resistor
- 1x 330 Ohm network resistor 4116R-1-331LF
- 1x 1x5 pin header
- 1x 1x3 pin header
- 1x DC power jack
- 1x printed circuit board made by yourself
- 1x An enclosure
If I forgot something, you'll find it later on from the Eagle files
Step 2: Printed Circuit Board
You'll need printed circuit board to attach all components together or you could just use breadboard but not for long term use..
Step 3: The Code
The code was written with Avr Studio 6.2 but it doesn't make a difference 'cos only file what you'll need is Arduino .ino-file.. You could see some strange words like "munankeittokello" etc. but do not mind about them, they are written by my native language.. :)
Also word about the code: All the code is not from my own imagination but I've found pieces of it from internet and gathered to together, so someone could find his/her code fracments but that is normal in the world of open source.
The libraries you'll need for successfully compile and upload:
#include <EEPROM.h> (this one you have already in folder \Arduino\hardware\arduino\avr\libraries)
#include <TimerOne.h> (in attachment file)
#include <OneWire.h> (in attachment file)
#include <DallasTemperature.h> (in attachment file)
#include <Bounce2.h> (in attachment file)
Step 4: First Boil
- First put DS1820 with the eggs in the water (it doesn't matter when you do it but do it before the water starts to boil)
- When you turn it on, it will beep three times fast (25ms) to tell you that it's alive and software version is v3.
- If you'll have your serial monitor open you'll see some information about scanning 1-wire bus etc. You'll find an example picture from The code -page. There is also baud rate for it (115200).
- Then you'll see the timer setting in seven segment, in minutes
- On first start it could be some gibberish or zero 'cos nothing has ever written in that eeprom address
- After that 7-segment will be turned off except the dot
- From this point forward until bullet no 7 you could adjust the boiling time by pressing the button, range is 0-A (HEX) 0-10 (DEC) minutes
- Then water starts to warm up and you could still deside the boiling time
- Water reaches temperature 99C (210.2F) and you'll hear 1000ms beep and water starts to boil.
- At this point your egg boil timer starts to run and you can't change the time anymore until you'll turn the power on next time when you need some more fresh, nicely boiled eggs..
- Let's say you had timer set to eight (8) minutes
- When there is 30 seconds remaining in the timer, you'll start to hear short beeps (25ms) every ten seconds
- After eight minutes you'll hear three 1000ms beep and eight minutes has passed since water started to boil.
- Cool the eggs and slice'em on your sandwitch.. :)
Next version will be done by using infrared temperature sensor so I don't have to boil the sensor every time.