Tutorial - A wifi enabled washing machine

It gets hot here during the summer. Real hot.

This sucks for us humans, but it's apparently great for mildew. Forgetting a load in the washing machine for even an hour or two can start to produce that telltale smell.

After getting sick of having to constantly re-wash forgotten clothes I decided to do something about it. I set a timer for 55 minutes when starting the washer. Unfortunately it turns out I'm really good at ignoring timers, so instead I made a module that talks to the internet on my washer's behalf.

Parts List

NodeMCU v3 NodeMCU v3 Store Link

You can use any ESP8266-based board you want. I just used this because it was cheap.

Keep in mind that if you want to use this for any other projects, the Lolin (v3) board is slightly wider than the previous board versions which makes it too big to fit on NodeMCU shield boards and also too wide for a standard breadboard.

SW-420 Vibration Sensor SW-420 Vibration Sensor Store Link

The nice thing about the vibration sensor is that it has a voltage range of 3.3v to 5v, so it will work fine with our ESP8266 but we could also use it with an Arduino if we wanted.


There are only two components we need to connect so use whatever you want. You could solder jumper wires directly onto the board leads, or just use a breadboard. I used Dupont wires for mine.


  1. Install the Arduino IDE if you don't already have it.

  2. You will also need to install the CH340 (USB to Serial chip on the NodeMCU board) driver if you are using the board I listed above.


  1. Connect a 3v pin on the NodeMCU board to the Vcc pin on the vibration sensor.
  2. Connect a ground pin on NodeMCU board to the ground pin on the sensor.
  3. Connect the digital output (DO) pin on the sensor to pin D1 on the board.

Next, plug your board into your computer with a USB cable to give it power.

Now that it's powered up, you should be able to see the LED on the sensor module flicker when you move or shake it. If the sensor gets stuck in one position you may have to tap it a few times to get it working again.

The screw on the sensor module sets the sensitivity. Adjust it to the highest possible setting.


The first thing you need is a way to get phone notifications from an HTTP request. If you already have a way to do this, skip this step and move on.

Go to IFTTT and create an account. Then add this recipe to your account, so when your Maker URL is called your phone will show a notification. You can get your URL by going to https://ifttt.com/maker and clicking "How to Trigger Events".

Okay, now you should have a URL that looks something like this:


Next we'll need the Ardunio sketch.

Once you've downloaded the sketch you'll need to replace the WIFI_SSID, WIFI_KEY, and NOTIFY_URL defines with your own values.

Oh I almost forgot! Here's a tutorial on how to make the Arduino IDE work with NodeMCU boards.

Then just write the sketch to your board and pop it on the washing machine. I used a small plastic box with magets glued to it.

For power I just plugged a spare phone charger into the USB port on the board.