This hardware engineering project cooks an egg to various doneness levels (soft/medium/hard boiled) powered by components programmed at a low level, versus with libraries. The hardware is accomplished by an ARM development board coordinating a soldering plate, LCD Character Display, temperature sensor, and other small components to cook an egg in a user-friendly process.
Wanting to grow my microcontroller skills even outside work hours, I completed an online course on ARM processors before self-appointing a project to manifest all that I learned. Having used all the above components throughout the course minus the soldering plate, I embraced my inner foodie (and past as a DIY food automation YouTuber youtube.com/astonishingstudios) to make a stove that automates the cooking process, while being flexible enough to acknowledge users’ preferred egg donenesses.
- STM32F401 Nucleo-64 Development Board
- Soldering Hot Plate
- Newhaven LCD NHD-0420H1Z-FSW-GBW-33V3
- 400 Pin Solderless Breadboard
- 170 Pin Solderless Breadboard (Black)
- USB-A to Mini USB Cable
- 5V 1-Channel Relay Module
- 74HC595N Shift Register
- Maxim DS1631 Temperature Sensor
- NPN Transistor
- 10KΩ, 4.7KΩ, 1KΩ, 330Ω Resistors
- Red and Green LEDs
- 4 Pin Push Bottons
- Piezo Buzzer
- Jumper Wires
- Solid Core Wire Kit
- Better than Bouillon Jar (label removed with an adhesive remover)
- Quail Eggs (it is more practical to buy them from an ethnic grocery store than online)
The Nucleo-64 electronic schematic can be followed below:
- Ensure the temperature sensor is the only sensor connected to the 170 pin breadboard, and make sure to mount the breaboard sideways so it can touch the egg jar while being heated
The code files require:
Open the MBed Studio software
Sign up for or sign into your account to get started.
Via the USB cable, plug in the Nucleo device to the computer. The computer should detect this and automatically select it as the target.
Download this GitHub repository locally to your computer. For newcomers to GitHub, click the green Code
button followed by Download ZIP
. Extract the downloaded ZIP file.
In Mbed Studio, click File > New Program
, select empty Mbed OS program
from the window's Example program
's drop-down list, and fill Program name
filed with a fitting name. Make sure Make this the active program
is checked off.
From the left panel, right click main.cpp
from inside the folder with the program name and click Delete
. Right click the program name and hit Copy Path
.
Open the computer's file explorer and paste the copied folder location into the address field, or manually click through folders until you reach the program's destination.
Open another file explorer tab, enter the unzipped folder, and copy these four files: Egg_doneness.h
, LCD_and_temp.h
, LCD_Temp_speaker.cpp
and main.cpp
.
Return to the first file explorer tab that was opened and paste the four files into it.
In Mbed Studio, click the Run symbol (play button) in the left panel to compile and download the program to the development board.
After texts stops moving and compiling in the lower panel of the screen, tap the black RESET
button on the development board to see the LCD turn on.
Finally, get cooking!
Fill the egg jar with 3 ounces of room temperature water. Gently place a quail egg in the jar.
Place the jar on the hot plate and cover the top of the jar. Ensure the temperature sensor
Tap the button associated with input pin D8, the Browse
button, to toggle the 3 desired doneness options: soft boiled, medium boiled, and hard boiled.
After settling on the the preferred option, hit the button associated with input pin D7: the Confirm
button.
Wait for the temperature, read out on the LCD screen, to reach 150 degrees Fahrenheit, before the cooking countdown begins.
Once cooking completes, grab the jar by the threads, uncover it, spoon out the egg and de-shell the finished egg. Bon appetit!
The soldering plate, which only has on and off modes, makes for an adequate stove because it gets hot enough to boil an egg, but not hotter. An alternative that features temperature control would enable this project to show my PID skills, too.
Similarly, the temperature sensor can read up to 125 degrees Celsius, or 257 degrees Fahrenheit, meaning choosing another sensor would enable the stove to cook other items, especially cuts of meat.
Until then, the project suffices as the best tool in my morning routine arsenal.