We have two problems. Our memory, and our washing machine is a picky machine. We often forget when washing a load is done as we don't hear the audible beep. The washing machine will also stop midway through a cycle if the load is uneven. We have had issues for a few years trying to balance it, level it, and trying different size loads, but we still have an issue. What usually ends up happening is that a load finished fully, or it stops uneven, and we don't hear the beeps leaving a really soggy pile of wet laundry. We often have to re-wash the load completely resulting in a waste of water/power/detergent. I built this little esp8266 assembly to email us when the machine has stopped. I plan to design a PCB and make a little enclosure to make this look more professional.
ESP8266 Development Board
Light Dependant Resistor (photoresistor)
5V USB Power supply
Step 1: Thinger.io
Sign up to Thinger.io to create an account. https://hackaday.io/project/6329-open-source-iot-...
Once you've activated your thinger.io account, login and proceed to the Devices section in your console and click add a device. Enter a name for your device in the Device Id section. Enter a description for the device in the description section. Enter the desired credentials in the credentials section. I used the random generator for my project.
Click Endpoints to proceed to the endpoint section. Add endpoint. Add an endpoint to your thinger.io account. Enter a name for your endpoint in the Endpoint Identifier section. Enter a description for the endpoint in the description section. Choose Email for endpoint type to send an email when this endpoint is called out in your program. Enter the desired email address, subject and body for the email you wish to send.
Step 2: Build Your ESP8266 Sensor
You can use whichever dev board you desire that can be flashed using the Arduino IDE. I had some breadboard adapter boards from Baoshi as shown here:https://hackaday.io/project/4202-esp8266-esp-0712-breakout-board
I built the board (this was my first time ever soldering SMD components) and used a mini breadboard as the prototype for this project.
I used this tutorial as a starting point for setting up the sensor:https://community.thinger.io/t/esp8266-analog-read/37
The LDR is connected to the VCC and A0 pins on my ESP-12E. There is a 10k resistor between the LDR and A0 Pin connected to ground.
I used a micro usb breakout board to power the sensor module. The Baoshi board accepts 5v which make it great for connecting to a standard usb plug adapter.
Using the Laundresp.ino file provided, add your wifi and thinger credentials, flash the esp module.
Step 3: Mount the Sensor and Power Up
Mount the LDR to a location that has an LED which turns on when a load is started, and turns off when the machine stops. For my machine, there's a single red light that indicates the laundry machine cover/door is locked. It turns on when a cycle starts and turns off when it stops. This setup relies on the LED turning on when the machine starts and turning off when the machine stops to trigger the email.
Tape around the LDR to prevent additional light from setting it off. Power the board and test the washing machine to see if you are successful. Depending on the LDR and the light levels emitted from the LED you may need to adjust the analog input thresholds in the Arduino code. You can view the analog output in the device api in your thinger console.
Step 4: Make a Custom PCB and Enclosure
After I found that the breadboard prototype worked for a long time I designed a small PCB (less than 1 sq inch) and 3d printed a little enclosure. It's much nicer to look at now and likely a little safer.
The files and project logs can be found at my Hackaday project page: https://hackaday.io/project/10614-laundresp