Kids Kitchen That Says BEEP

15,068

99

39

Introduction: Kids Kitchen That Says BEEP

My two year old daughter had a 'small' request for her third birthday. She wanted a little kitchen that says Beep. 'You want a what?' was my response. 'A kitchen that says beep, just like mommies kitchen!', she said...

So, that was the inspiration (I mean 'request') that got me started on this project!

Building a small kitchen to play with can be very time consuming as I'm not a experienced woodworker, so I started with a 'ready built' wooden kitchen: the Ikea Duktig. I'm quite confident, that I can't build a better kitchen for that price.

Talking about price, some might wonder what the total price for this project is. Well, an Ikea Duktig kitchen costs around 80 Euros where I live. The other parts will cost roughly 25 to 30 Euros, when you order the components from China.

Step 1: The Short Manual!

The video shows how it all works. When the kitchen is switched on, the current time is shown. Now you can set the timer using the blue button and yellow button. The blue button increases the timer and the yellow button decreases the timer. The increments are the same as the oven of 'mommie', so the buttons will let you switch between 0:05, 0:10, 0:15, 0:20, 0:25, 0:30, 0:40, 0:50, 1:00, 1:15, 1:30, 1:45, 2:00, 2:15, 2:30, 2:45, 3:00, 3:30, 4:00, 4:30, 5:00, 5:30, 6:00, 7:00, 8:00, 9:00 or 10:00 minutes:seconds. If you like even longer (or other) periods, no problem, simply add timer preset times in the code. The reason that I stopped at 10 minutes, is that I didn't want to wake up in the middle of night wondering what just beeped. :-)

Ok, now that the timer is set, a simple push on the green button starts the timer and the red button stops the timer. You can also use the red button to stop setting the timer and make the display show the current time again. During the counting down of the timer, the oven is well lid by a strip of LEDs.

When the timer reaches 0:00 the display shows BEEP (or in Dutch PIEP) and then you can hear 2 short and 1 longer beep. Then, the current time will be shown in the display again.

Step 2: What You'll Need

These were the materials that I used for this project:

  • An IKEA Duktig kitchen
  • An Arduino (I used an Arduino Nano)
  • 12V DC power supply, with DC jack
  • DC/DC buck converter
  • A 12V LED strip
  • Panel mount DC jack
  • A DS3231 clock module
  • 4 buttons (non latching) and, as I love LED's, I chose buttons with an LED in them
  • A (latching) power button, with again an LED in it (that is only lid when the power is on)
  • A TM1637 7 segment display with 4 digits
  • Wire
  • Heat-shrink tubing
  • MDF plate, 5 mm thick, about 35x35cm
  • 1kΩ resistor
  • 2N3904 transistor
  • Small PCB prototyping board

And the most important part: a buzzer (a TMB12A05)!

Tools I used:

  • Router with a small router bit
  • Drill press
  • Knife, file, sandpaper
  • Soldering station
  • Glue gun
  • Small butane torch (for the heat-shrink tubing)
  • Laptop with Arduino IDE

Step 3: Changes to the Kitchen

Some modifications are required to the wooden parts of the kitchen for the added features:

  • Changes to front: holes for 4 LED-buttons and display
  • Changes to left side: hole for power button
  • Changes to bottom plate: hole for DC jack

Changes to front

Please download the PDF-file below (note that you might have different size buttons and/or display, but you can simply create a similar template using a drawing tool). It contains a template that I have used to make the holes in the front. I simply taped the template to the wood and first drilled a small hole in the center of each button.Note that the template has a front and a back version. The arrow always points at the top left corner. After the small drill bit, I switched to a larger drill bit, a 16 mm drill bit to be more precise (as this is the diameter of the LED buttons I've selected for this project).

For the display hole, I first drilled multiple holes in the dark area of the template. The dark area in the template has the exact dimensions of the display itself. To finish the display hole, I used a small rotary tool, a file and a sharp knife. The somewhat lighter area has the rough dimensions of the PCB that is connected to the display. If you would mount the display in this hole, you'll notice that the wood is very thick. When I inserted the display, I didn't like the look of this and used a router to make the wood less thick. You'll have to measure the height of the display yourself, as you might not have the same display.

Changes to the left panel

The power button is located in the wooden panel on the left side of the kitchen. For this, a hole was drilled in the top left corner of the panel. Note that the best location for this button is at the top, as will become obvious when reading the assembling step. Inside the cabinet a new top panel will be added (to glue the LED strip to and to protect the electronics), so it's better to have the button above this panel.

On the inside of the left panel, I used a small router bit to create a slot for the power cable to run through.

Changes to the bottom plate

For the DC jack, I chose the bottom to mount it to. As the bottom panel is quite thick, first drill a hole that is just large enough for the actual connector (the metal part of the connector). Then drill -from the bottom side up- a larger hole (of course not completely through the bottom panel!), as the connector has a plastic casing that will be in the way otherwise. The DC-panel mount can be glued in place.

Step 4: Electronics

The electronics for this project are actually quite simple. The whole project runs on a small 12V power supply. A latching button, let's you switch the power on and off. The Arduino Nano and other parts actually run on 5V, so the voltage is converted using a DC-DC buck converter. Note that the LED-strip I used, requires 12V.

The Arduino Nano is at the middle and is connected to:

  • 5V power from DC-DC buck
  • 4 buttons (Start, Stop, Plus and Minus)
  • DS3231
  • TM1637-display
  • Buzzer
  • LED-strip

The four buttons are simply connected to a digital input and to GND. In the code, the internal pull up is set. The DS3231 is connected via I2C. For an Arduino Nano, SDA is connected to A4 and SCL is connected to A5. The display requires next to 5V and GND, two digital ports.

For the buzzer and LED-strip, I used a small perfboard. Both parts are connected to a digital output of the Arduino. The LED strip is connected via a 1 kOhm resistor and a transistor. For convenience during assembly, I connected the LED-strip with a connector. When I finished all soldering, I wished I used more connectors. With connectors, you can simply try all parts separately and if a part fails for whatever reason, it is easier to replace.

To prevent any short circuits, I extensively used shrink tubes. And before shrinking the tubes, check whether every works! :-)

Step 5: Assembling

Now it's time to assemble the kitchen. First, insert all buttons in the designated holes. As I used LED buttons, each with a different color, I chose the following order (from left to right): blue, yellow, green, and red

The functionality of the buttons will be (same order): increase timer, decrease timer, start oven timer, and stop.

Then, add the power button, DC jack and display. Note that my TM1637 display had a connector on the front. This connector has been removed (desoldering). I inserted the components I mentioned above and then simply followed the Ikea manual and until the counter top is to be mounted on the kitchen. Note that soldering the components when the kitchen is already somewhat built, makes it easier, as you don't have to hold the components.

As this will be a project kids will play with, it is a really good idea to shield off all electronics. It's not to protect the kids, it's to protect the electronics from those little exploring hands... :-) The LED strip can also be simply glued to it as well. A small hole is enough to put the wires through. Simply cut out a rectangular part from 5 mm MDF dimensions x mm. Pieces of scrap wood can be used to hold the plate in place. Don't block any pre-drilled holes in the side panels, as those holes are required for assembling the kitchen.

When the kitchen was finished, I created a nice logo in black vinyl and cut some red transparent plastic (from an old alarm clock) in the correct dimensions for the display.

Step 6: Programming the Arduino

For programming the Arduino, I used the Arduino IDE. The program requires 4 modules to be installed. These are:

The code contains many inline comments for extra clarification, as I don't think the code itself would be self-explaining to everyone (including myself after a couple of months). What the comments do lack is an overview of how it all works. So here I'll provide a quick overview of the program.

After the setup procedure, the program can be one of four states, as the Arduino is either:

  • Showing the time on the display (default state)
  • Setting the timer
  • Showing the timer that counts down to 00:00
  • Beeping

In the standard loop procedure, the following things will happen each loop:

  • Check the buttons whether one has been pressed and act accordingly
    • For example, increase the timer with a step, stop the timer and switch state to show time, etc.
  • Check whether something needs to be done based on the current state
    • For example, decrease the time as a second has passed, or show the new time, since the time has changed

Step 7: Have Fun!!!

Both my daughters like playing with the kitchen. They make all kinds of stuff in it, pancakes, cakes, coffee, hot chocolate, soup, etc.

Normally they're not allowed to push any buttons in our kitchen, but on theirs the can simply hold a button, push a button as hard as they like, hit the button with another object. :-)

Be aware that the buzzer is actually quite loud. Mounting a small piece of tape over it will easily fix that for you!

Design For Kids Challenge

Grand Prize in the
Design For Kids Challenge

Arduino Contest 2017

Participated in the
Arduino Contest 2017

Epilog Challenge 9

Participated in the
Epilog Challenge 9

6 People Made This Project!

Recommendations

  • Puzzles Speed Challenge

    Puzzles Speed Challenge
  • "Can't Touch This" Family Contest

    "Can't Touch This" Family Contest
  • CNC Contest 2020

    CNC Contest 2020

39 Discussions

0
tekieiya
tekieiya

3 months ago

Really nice instructable!!! I'm buying the components to make it! But I have a question. What is the 12v connector connected to? Batteries? DC? I'm confused. I have seen this connector on aliexpress (https://es.aliexpress.com/item/32361314769.html?sp...) but I don't know if it is what you mean. And still, I don't know where to connect it.

Thank you in advance for the response,
Tekieiya

0
roaldh
roaldh

Reply 3 months ago

Hi!

I used a 12V DC power supply, with DC jack to power everything.
The connector in your link will work, if you happen to have a 12V DC adapter lying around with a connector that will fit.
Do note that the connector in your link may be difficult to mount (ok, glue will work).

In the second picture of step 2, you'll see the power adapter with the connector already connected. It is a panel mount connector. And in the last picture of step 3, you'll see how I fitted the connector in the kitchen.
You can of course just cut the connector of a 12V DC power adapter and solder the wires directly to the buck convertor, but then you can't disconnect the cable from the kitchen (which might not be a problem, but just something to think about)

Kind regards and good luck!

Roald

0
tekieiya
tekieiya

Reply 3 months ago

Thank you very much for the quick response! It has been very useful. I will try to make a version (I'm going to include knobs because I love them and more leds) of your project and maybe it could be my first published instructable! Of course, you will be named as my inspiration!

0
LuísS327
LuísS327

1 year ago on Introduction

I'm really dissapointed since I've made everything right but I'm having the exact same problem that TueBjørn and AntonL35 had...

Can anyone help please? roaldh, could you please help?

1
JoelM182
JoelM182

Reply 9 months ago

change the plus button pin to 2.
// + Button
const int PlusButtonPin = 2;

0
LuísS327
LuísS327

Reply 9 months ago

It worked!!! Many thankx JoelM182 !!

0
LuísS327
LuísS327

Reply 9 months ago

Thanks! I'll try it and let you know if it worked!

1
JoelM182
JoelM182

9 months ago

to those having problem with the timer raises to 10:00 when starting up the arduino nano, this was the fix for me.
change the plus button pin to 2.
// + Button
const int PlusButtonPin = 2;
I'm not sure why the pull_up isn't working on pin 13.

0
PizzaDad
PizzaDad

Question 1 year ago

This looks so nice! I especially love the coloured LED switches.
I recently bought the Duktig kitchen, right now a layer of paint is drying. I planned to add some decorative stuff like a backplate, nicer handles etc. When I looked for inspiration I found your awesome project
Maybe I‘ll upgrade the kitchen for christmas! Currently filling the shopping basket at AliExpress.

Since this is my first project a stupid question maybe, in your schematic, there are only 2 wires connected to each switch. On the pictures there are more, voltage and ground for the LED I guess, is the voltage for LED 12 volts?
If I want to add a fan, can I connect it together with the LED strip? (I don‘t need the fan to run longer than the light, like real ovens do)

Thanks in advance!

image.jpg
0
TueBjørn
TueBjørn

Question 1 year ago

Hi! i Just started make one my self! but i have a problem with the code/wireing. i cand find any problem on the ´wirering, but for some reason when i start the arduino up it start "pressing" the + button and it goes up to 10:00 and stays there. if i hold down the - button it slowly goes down but when i relese it again it ramps up to 10:00 in seconds... any ideas?

I have added a Fan inside, to make it blow a little air like a real oven, therefor i added it in the code. maybe it screws it up? i hope you can help.

int PlusButtonState = LOW; // the current reading from the plus input pin

int lastPlusButtonState = LOW; // the previous reading from the plus input pin

int MinusButtonState = LOW; // the current reading from the minus input pin

int lastMinusButtonState = LOW; // the previous reading from the minus input pin

int StartButtonState = LOW; // the current reading from the start input pin

int lastStartButtonState = LOW; // the previous reading from the start input pin

int StopButtonState = LOW; // the current reading from the stop input pin

int lastStopButtonState = LOW; // the previous reading from the stop input pin

long lastPlusDebounceTime = 0; // the last time the plus output pin was toggled

long lastMinusDebounceTime = 0; // the last time the minus output pin was toggled

long lastStartDebounceTime = 0; // the last time the start output pin was toggled

long lastStopDebounceTime = 0; // the last time the stop output pin was toggled

long debounceDelay = 50; // the debounce time in milliseconds (SOLUTION CHANGED TO 100)

0
AntonL35
AntonL35

Answer 1 year ago

Hi! How did you solve the start up issue? "...when i start the arduino up it start "pressing" the + button and it goes up to 10:00 and stays there"

Im experiencing the exact same problem. Thanks in advance for all help!

0
TueBjørn
TueBjørn

Reply 1 year ago

As you Can se at the end of my text i changed the long debounce delay to 100 instead of 50 :-)

0
AntonL35
AntonL35

Reply 1 year ago

Hi! Thanks for the quick response! That adjustment does unfortunately, not make any difference for me (the clock is still racing to 10:00) :( If you have any other suggestions or have the possibility to send your working sketch, I would be great full. Thanks a lot, once again!

0
TueBjørn
TueBjørn

Reply 1 year ago

Maybe try to increase it with 50 ms until it works ;-) 150,200,250...
I will try to find the code I ended up use if and send it to you :-) but let me know first if this works :-)

0
AntonL35
AntonL35

Reply 1 year ago

Hi! Now I have tested stepping it up with 50ms up until 2000ms without any success. The only thing that does happen is that it takes a little bit longer until the race of time starts. So if you have the time I would really be helped by your code. Thanks!

0
LuísS327
LuísS327

Reply 1 year ago

I'm having the same problem, did you found a solution?

0
TueBjørn
TueBjørn

Reply 1 year ago

I'm sorry that this does not help. i will try to find my old code and send it to you but maybe in the meantime you could test the wiring for any faulty wires or loose connections? if you want you can send me a picture and i can compare it to my wiring scheme. :-)

0
LuísS327
LuísS327

Reply 1 year ago

Hi guys,
I'm having the exact same problem.
Haven't tried the solution TueBjorn gave, I'll try it tomorrow, but I also would appreciate some help, maybe the old code you talked before

Thanks

1
TueBjørn
TueBjørn

Reply 1 year ago

Hi I hope my solution helps you, but if it doesn’t then maybe AntonL35 have found a solution in the meantime :-)

0
LuísS327
LuísS327

Reply 1 year ago

Hi already tried several values, from 50 to 250 and no luck....

I'm hoping AntonL35 has the solution and can share it...