For the Mixing Electronics & Water project, we made a shower timing device that uses the bathroom lights to signal the person when it's time to get out. If they stay in too long, then the lights turn off and stay off.

This is a great project for those who want to learn how to use inexpensive parts with the power of IFTTT.com to trigger physical world tasks.

The following parts are required:

ESP8266 wifi microcontroller

about 4"x4" of perfboard

Waterproof Temperature Probe (DS18B20 chip) such as by Elenker.

4.7K resistor to pull the probe chip data line high

two tactile switches (preferably one tactile switch and one three-way)

soldering iron, solder, and solid wire

3.3V power source such as a LiON battery pack or wall wart

Software: Arduino IDE with ESP8266

3.3V FTDI Cable

A smart light switch or bulb such as a Wemo switch

Step 1: Build a flash device (programmer) for the ESP8266

Our model of the ESP8266 did not have built in programming hardware. To program it we need an FTDI cable. Also, when you flash the program to the ESP8266, you have to pull GPIO0 to ground. To aid in this, we designed a programming circuit using the software KiCAD. You can view a step-by-step tutorial here:

Here is the schematic for our ESP8266 programmer:

Step 2: Build the ESP8266 Programmer Board

Having made the board in KiCAD, we could have sent it off to a fab shop such as OSHPARK.com. However, we were eager to get the project going, so we did it by hand.

Step 5: We then needed a circuit board to mount the ESP8266, the power connection, and the temperature probe. This was done just like the programmer board in step 2. Here is our resulting schematic that would be compatible to a 9V or 5V wall wart.

Step 6: We installed it on our hot water line going to the shower of the most demanding user - Walnut.

This was a very fun project that has opened up infinite new projects for DIY IoT devices. We thank Element14 for the opportunity!