I’m tired of the buzzer in the microwave oven that is beeping constant up to a minute.
So I opened it up like any normal hacker would, found the buzzer and snapped it off.
Sure, the buzzer was irritating, but so would be not to hear when my food is cooked. So i quickly had a look at the PCB and find a very interesting pinout.
So I soldered on some pins and started to measure the voltage level.
VCC of 5V looked promising for a microcontroller.
I had a look at the buzzer signal, it was a 2kHz signal with an amplitude of 5VDC.
I had a rough idea in mind about having a small tune play instead of the 2kHz tone, and it should only play once.
So I shuffled some code together to code to play a small tune from the flash of an Arduino Nano. The flash could only hold about 18k of samples and was played at 8kHz. https://github.com/TimGremalm/MicroMute
(inspired by http://playground.arduino.cc/Code/PCMAudio)
In lack of a better choice i choose Windows XP’s startup sound.
I shuffled some more code around to sample the original buzzer signal from a GPIO. If the sound is playing at more than 2kHz for a certain time I would trigger the sound.
I applied some time based software filters to filter out some noice.
I build a small amplifier out of an MOSFET (IRLML6344) and a small 0.5W speaker element I found at my local hackerspace.
I throw it all into the chassis of the microwave oven. There was plenty of space, but i took some precautions to electrically isolate the PCB and speaker.
Unfortunately the sound from the small 0.5W element was too low. It barely was distinguishable against the sound of the microwave ovens fan.
So I upgraded the element for a 3W element that I found in an old PC speaker, and took some precautions and upgraded my amplifier as well for the more stable Class-D amplifier PAM8403.
One of the hardest things with this project is to solve the problem with the heating. 9 pieces of 3W LED tends to get very hot, 27W that have to be transferred to the air.
If I bend the pins on the led I can make the LED’s go through the PCB. An alternative is to use a lot of small via’s under the LED to transfer the heat to the underside. But I think a direct contact with the heatsink will be more effective.
A CPU cooler should be sufficient enough to transfer the heat out to the air. I don’t know if the fan is necessary.
This is an alcoholic bong, two ultrasonic elements forces the water into small particles that forms a mist. The elements is normally used for water in decorations or water humidifiers.
I got this old Ikea bowl from a second hand store. It holds the electronics for driving the ultrasonic elements, as well as an MCU to drive some leds.
There’s two systems that is powered from a single 6S LiPo battery.
The ultra sonic elements is apparently sensitive about over voltage and will fry if the voltage exceeds 24V. The first system consists of a buck that caps the fully charge voltage of 25.2V down to 24.0V. That system is activated by a momentary switch on the front.
The second system drives the RGB LED’s. A nice party bong should look good. A small Arduino Nano is driving some WS2812 RGB leds around the glass pitcher. A buck converter caps the voltage at 5V that is used by both the WS2812 RGB strip and the MCU.
The led lights is slowly breathing when the alco bong is idle, and rotates the color hue when in use.
The glass pitcher was glued on the bottom with epoxy and seemed to bound well with the wooden bowl.
Probably the most random plant in the world, it fetches a “true” random signal and display pretty colors on a WS2812 addressable LED strip.
The seed is based on one of the best randomization generators; cosmic background radiation from random.org. Yet another Internet of Things device made out of the ESP8266, the dirt cheap powerful WiFi enabled microcontroller.
An Internet of Things enabled teddy bear that dances at filtered Twitter statuses.
To move the teddy bears arms servos is used. It’s a pretty simple setup, some extenders for the arms that is going through the real arms of the teddy bear.
The servos is quite weak, so they bearly move the arms at all.
Mounting of the servos.
The electronic setups contains of a small cheap microprocessor called ESP8266. The ESP8266 have a small WiFI-antenna integrated in the breakout board and can hook up to any access point, or even create one.
I’m running the firmware NodeMCU , it’s a real time LUA interpreter. So the firmware is only programmed once on the flash. To write your own program you just transfer them over serial UART, and the firmware will save the script on flash.
The processor is running at 80MHz so it’s pretty fast.
I’m using Twitters API to fetch the latest post on a specific search term. The API gives me a detailed formated JSON file containing the time and date of the post, as well as the post.
The Twitter API is quite messy to work with, a lot of headers and authentication is required. The ESP would likly handle both the SSL and the big JSON format, but it will steal some CPU-time and it’s hard to work with. I made a PHP-proxy for the twitter feed, parsing the time and date and presenting it in unix timecode. The message of the post is stored as an MD5 hash sum.
On the IoT Nalle i keep track of the already “danced” Twitter posts and only dnaces to new posts.
Final assembly, a lot of hot glue and screws was used.
The loadcells is build from 16 layers of conductive carbon packaging film. The recistance ranging from 500k to about 450 Ohm loaded at 8kg. Because it’s a so huge range the loadcells can be directly hooked up in a voltage divider, no amplifiers needed.
3 load cells us used to detect the direction and force of the balance. They are really sensitive to touch, small pressures from fingertips will be easily detected. A backside is that the film tends to be squashed so that it takes long time form the form and resistance to return.
The value from the 3 loadcells is arranged in 3 forces 120 degrees apart. The Forces is calculated into a resultant that is describing a thrust vector.
The thrust vector is indicated with a led strip of addressable WS2812 LED light. The stronger the force, more inbalanced, the greater the red marking will grow.
Att this Google Drive document I’ve collected som measuring data from the loadcells. There’s also some information of how the resultant is calculated.