---
title: The Laundruino
type: post
date: 2011-08-05T09:58:52+00:00
url: /the-arduino-enabled-washing-machine/
tags:
 - Arduino
---

My washing machine is located in the basement. Unfortunately, the time data displayed on the front panel is always inaccurate. So instead of constantly running down the stairs and checking if the laundry is done, I decided to connect the washing machine to my LAN and extend it's features by a simple http server. This is what I needed for it:

  * 1 [arduino uno](http://arduino.cc/en/Main/ArduinoBoardUno)
  * 1 [ethernet shield](http://arduino.cc/en/Main/ArduinoBoardEthernet)
  * 1 opto-coupler (CNY17)
  * 1 perfboard
  * 1 resistor (150 Ohm)

In my case, getting the right signal from the washing machine was simple: It has a "Finished" LED on the front panel, so all I needed to do, was to solder it out and replace it with a two-core wire.


![image](/img/laundruino1_panel_small.jpg)

![image](/img/laundruino2_cuircuit_board_small.jpg)

![image](/img/laundruino3_washer_small.jpg)

To connect my washing machine with the arduino, I built a minimal shield with a prefboard and a CNY17. Here's how everything is put together:

![image](/img/laundruino4_schematics_small.jpg)

![image](/img/laundruino5_shield_small.jpg)

![image](/img/laundruino6_shield_small.jpg)

Now I have a LOW signal on pin A2 (digital mode) when the laundry is done and a HIGH signal if the machine is running or turned off. In my case, a loop of 100ms duration is needed every time to watch the signal because I don't get a steady voltage here (I guess the front panel LEDs might be multiplexed). If  the signal becomes LOW once in this time window, the washing machine has finished and the LED would have turned on.

![image](/img/laundruino7_debug_small.jpg)

Screenshots:

![image](/img/laundruino8_screen1.jpg)

![image](/img/laundruino9_screen2.jpg)

You can download the code here: [codeberg.org/mclemens](https://codeberg.org/mclemens/laundruino)
