The dryer in our house is in an out-of-the-way corner where it’s hard to hear the buzzer. When we miss it, the clothes sit in the dryer getting wrinkly, so we start the dryer again, don’t hear the buzzer again … it’s an endless cycle. After what seemed like the thousandth time, my wife quipped, “I wish the dryer could just tell us when it’s done.”

I had just started playing with Arduino, so I thought a Dryer Messenger would be a good first project. When I ran the idea by my wife, she was enthusiastic but didn’t want me disassembling the dryer or voiding its warranty, since it was only months old. We decided to use SMS since our phones are usually nearby. Fast-forward a week or two and the dryer was texting us like a household assistant. We haven’t forgotten a load of laundry since.

Materials and tools

  • Non-invasive current sensor, 30a YHDC model SCT-013-030
  •  microcontroller, arduino Pro mini 328, 3.3V, 8mHz SparkFun Electronics #DEV-11114, sparkfun.com
  • Wi-Fi module, Roving Networks WiFly RN-XV
  • Breakout board for XBee module SparkFun #BOB-08276
  • XBee sockets, 2mm, 10-pin (2) SparkFun #PRT-08272
  • Protoboard
  • enclosure Digi-Key #HM1068- ND, digikey.com
  • Capacitor, 10μF
  • Resistors: 330Ω (2), 10kΩ (2)
  • Leds: green (1), red (1)
  • Headers, 40-pin breakaway, 0.1″ spacing (2) SparkFun #PRT-00116
  • stereo jack, 3.5mm SparkFun #PRT-08032 has pins with breadboard spacing.
  • dC barrel jack, 5mm×2.1mm SparkFun #PRT-10811 has pins with breadboard spacing.
  • Hookup wire
  • Wall adapter, 9V 650ma
  • Computer with arduino ide software free from arduino.cc
  • FTdi programmer such as FTDI Friend, Maker Shed #MKAD22, makershed.com, or FTDI Basic Breakout 3.3V, SparkFun #DEV-09873
  • soldering iron and solder

Downloadable Files


MAKE Volume 34: Join the robot uprising! As MAKE's Volume 34 makes clear, there’s never been a better time to delve into robotics, whether you’re a tinkerer or a more serious explorer. With the powerful tools and expertise now available, the next great leap in robot evolution is just as likely to come from your garage as a research lab. The current issue of MAKE will get you started. Explore robot prototyping systems, ride along with the inventors of the OpenROV submersible, and learn how you can 3D-print your own cutting-edge humanoid robot for half the price. Plus, build a coffee-can Arduino robot, a lip balm linear actuator, a smartphone servo controller, and much more

On newsstands now, by subscription, or available in the Maker Shed

Buy now!

Thomas Taylor

Thomas Taylor

Thomas Taylor is an electronics engineer in Fort Walton Beach, Fla., who enjoys creating embedded systems to make everyday life easier and integrating them with his wife’s crafting projects. He’s always on the lookout for new ways to apply technology. Reach him at [email protected]

  • Justin Gasal

    Okay, pretty cool. What the heck is the XBee used for? It’s listed in the materials but the instructions never reference it. Seems superfluous when you have a WiFi module.

    • A. Reader

      Check the pictures between #2 and #6 – #2 shows the wiring from the Nano to the XBee breakout, #6 shows the module plugged into the breakout

  • Coconut

    Justin, from what I see it doesn’t actually call for an XBee; just XBee breakout board and sockets. It seems the WiFi module has an XBee footprint, so I believe the XBee board and sockets are to easily mate the WiFi module to the Arduino.

  • dwmurray57


  • Charlie

    I’m confused by the power supply in the parts list … it specifies a 9v power supply, but the Arduino takes 3.3 as input.

    • A. Reader

      Check the schematic – the 9v power is being fed into the voltage regulator on the Arduino – so the Nano itself is making the 9v –> 3.3v.

      Check the specs – there are also 5v Nanos – you have a bunch of power choices – any walwart you have lying around will work (except the rare 18 or 24v ones). You could also power it over USB – a standard 110–>USB power jack plus a cable. etc.

      • Just like to point out, that I used the 3.3V Arduino because the WiFi module is a 3.3V only part. Have them both at the same voltage just made things simple.

      • Charlie

        Got it, makes sense now. Thanks!

  • I just want to follow this dryer on twitter also….
    Why isn’t that in these instructions?

    • andrew olafson

      You can follow mine! @OlafsonDryer
      I built mine as a mother’s day gift, as my mother is always checking on the dryer or forgets it, thus wasting her time. This should save her time, so she can focus on other things going on in her life, besides a dryer.

  • Great idea. My laundry room is a separate room only accessible from outside the house, definitely needed this!

    I built this and had problems because my network uses WEP, presumably to support one device that I probably don’t even have anymore. I took it to my office and was able to connect to the WPA network there and send a test tweet. I figured out how to reconfigure the wi-fly to connect to WEP because I had other issues with my Android phones and WPA (grrr) and got the dryer messenger to connect to my network, but now when I try a test tweet, I get ‘Tweet not sent’.

    How do I begin to troubleshoot this? Thanks.

    • I ended up creating a virtual wlan with the WPA settings and everything worked. I guess I’ll reload my router later when I have a chance. Even the phones connected too, so it’s definitely like the router didn’t accept the changes.

      Thanks, and great project again!

  • James

    ok, so i finished building the circuit above on a breadboard and powered it up. My arduino instantly burst into flames. I double checked my wiring and everything seems to be correct. Could the 9V power supply be too much for the internal vreg?

  • Why doesn’t this article have an estimated cost? Anyone have a ballpark figure?

    • jvschmitt

      Fred: Looks to be about $50-$100 USD total, depending on how much you reuse spare parts (like cannibalizing an unused adapter for power, using led’s, wires, resistors, etc from your spare kits, etc). $50 at least though, as the smallest Arduino + WiFly combined are about there.

  • jvschmitt

    Great smart-house project! Thanks for documenting/sharing.

    One big question though: I’m torn with choosing Wifi or BlueTooth, for projects like this (ESP. if I were to try selling them commercially someday), as BlueTooth can be far easier to setup (esp. when you’re not worried about security of such things like drier read-only messages!) Wifi would require the user (/consumer) to edit Arduino code to put in the Wifi SSID & password, which is OK for us makers, but a really huge friction point for any consumers.

    Or, am I missing something? What’s the best way to ship simple products like this, where the user has to still specify the Wifi connection parameters somewhere, somehow? (Ideally, maybe there’s a universal Win/Mac/Linux client software that can run & detect any unhooked up arduino’s with wifi, & then push a SSID/pwd file to them, in some standard method?)

    • Bluetooth would require a bridge of some sort to get on the internet that most people don’t have whereas most everyone has WiFi in their house. WiFi Protected Setup (WPS) is supposed to make getting on your network easier and has been out for a while, but not everyone has/uses it. I have seen one device that I cannot remember offhand, that created it’s own network which you joined and allowed configuration through a web interface.

      Making devices easily configurable and fool-proofing them seem to be harder than doing the actual project itself sometimes.

  • Michael

    Ok so forgive me ignorance and potentially stupid questions. I was an electronics tech in the Navy but that was 15 years ago….. It looks like you connect the VSS from the Arduino and the Wifi, per the picture, the schematic looks like it is just an output, but what about the second resistor that comes off of the current monitor input and the capacitor. I see that is says 3V3 off of it but Im not sure what that means. I would guess that its an output but to what? Also what do I do about ground? I have a strip board so should I just connect all the grounds? Do I connect all of them to something?

    • Michael

      Never mind, got it. I read the description closer and realized the VSS was the power that came out of the cap and resistors first, then the Ard and Wifi Module. I also knocked a few cob webs out and remembered to tie everything back to the ground of the power jack. I powered up and it didnt burst into flames! A red LED lit up and a green one flashed a time or two. So far so good. As soon as the FTDI arrives tomorrow I can program it, cross my fingers, and hope for a text telling me the dryer is done, drying. By the way I forgot to say thanks so..Thanks for creating this and posting it.

      • Michael

        Well..I got the software loaded, the green LED lit up but the red is not lighting up. Any ideas? Any help would be really really appreciated.

  • George Fetters

    I have an odd issue. I have the wifly up and running, connects to my network etc. I send a 1 in the serial monitor, it tries to send a tweet but the post fails. I have confirmed I have my token in my credentials and the tweet library is authorized on twitter. Is twitter blocking this now?

    • George Fetters

      Addendum, It must have been site maintenance. Its working fine now. I wonder if I can track usage with this. This would be great to add to other devices to see where my energy costs are.

  • So I’m a software engineer and I’ve been toying around with arduino for a while. I get lost in the schematic when it comes to building out the voltage divider that you have described in the following two bullets. Any insight…like “hand-holding” insight would be great.

    * Since the dryer runs on AC, current flows in both directions, causing the voltage to swing positive and negative. The Arduino can only sample positive voltages, so I used a voltage divider to bias the sensor’s output. The volt- age divider uses two 10K resistors (R1 and R2) to obtain 1.65V from the 3.3V supply.
    * The current sensor has a fairly linear output up to 1V at 30A, which means the Arduino will read 0.65V or 2.65V when the sensor sees 30A. Capacitor C1 goes between the sensor and the Arduino to filter out noise.

    • So I figured this out, I’ve never soldered a voltage divider. However, I notice that the capacitor readings are actually negative values on my arduino uno. Any ideas why?

  • Gary

    I thought I was almost finished but when I plug in the FTDI breakout board (GRN to GRN and BLK to BLK) the TX and RX lights stay lit, the chip on the FTDI board gets very hot, and no lights light up on the arduino. Any ideas?

  • CAVU

    Suggestions are welcome.
    wired up on an Uno and using power/serial monitor from the USB (I didn’t care about the smallest package and this is easier and simpler to work with plus power management is easier.)
    program compiled and downloaded properly so I believe all software is good.
    wifi is seen on my network so the registration that seems good.
    registered token and twitter accepts the arduino as authorized
    when it starts up, it goes through all the power logic, I get a green light from the wifi but the red led still blinks and the green led doesn’t come on.
    I’ve tried to send a test tweet without success.
    I’ve tried with and without the current sensor hooked up which I don’t think that should make any difference.
    nothing goes to the twitter account.
    Any suggestions?

  • Hi Thomas,
    Great project. A couple of questions about the schematic:

    1. Do you want the capacitor across R2, tied to ground?
    2. On the DC Jack, pin 1 is shown tied to ground and also crossing the power supply. I suspect that you did not intended to represent J1 and J3 tied together (as that would tie the power supply directly to ground. That’s probably why the one guy’s Arduino burnt up – drawing too much current.

    Am I right?

    • CAVU

      I noticed that the J1 from the DC Jack also crossed the GND and the 3V3 and assumed a typo. it didn’t impact my device since I’m powering from the Arduino USB power supply for now. I wouldn’t think it would burn out the Arduino since it would short to ground first.
      I assumed that the C1 tied to R1 and R2 was, however, correct and that may be my problem above.
      Hopefully Thomas will get back on the above.
      Thanks for pointing this out.

      • Hi CAVU,

        I went back to the magazine and indeed, the diagram there shows no connection between J1 and GND. C1 and R1 are definitely tied together. I think you are correct in that the Arduino should not be affected by this (depends I suppose on your wiring points but you would really have to try to mess up); it’s downstream of the grounding.

        I’m having trouble programming the Arduino myself – I’m not sure if I burned something out or just have a bad configuration.

        Did you get it to work?

        • I’m going to see if I can figure out how to substitute in an Arduino Uno (spare) and see what I can get from there.

    • I ended up using my own 3.3voltage regulator and not the onboard arduino one. Coupled with two caps and a thermistor I’m in good shape and won’t need to use the 3.3v regulated power from the uno.
      I would like to work on some eagle files to manufacture my own pcb…but eek, no time. For now I have this all on my breadboard.

  • benwhite

    Great project!!!

    I have a comment on the code. If your wireless network has a space in the ssid you are out of luck with the code out of the box. The RN-XV can’t accept commands with a space in an argument. There is a workaround. Out of the box the RN-XV uses the “$” character as a replacement character in the ssid string. That is, “My$Wireless” is used by the RN-XV as “My Wireless” when trying to join a network. However the join() method of the WiFlySerial object uses the getSSID call which returns the ssid with the replacement char replaced! This sends a command to the RN-XV with an argument with a space if your wifi ssid has a space in the name. The fix is to use the alternate join(char *pSSID), where you send the ssid with the replacement char in place. Therefore to fix this problem change the following line in the DryerMessenger.ino file in the SetupWifly function:

    if ( goodJoin = WiFly.join() )


    if (goodJoin = WiFly.join(ssid) )

    And make sure your ssid definition in the Credentials.h file has the replacement character:

    char ssid[] = “My$Wireless”


    char ssid[] = “My Wireless”



  • Mark

    I can’t get it to work with Twitter no matter what. I have the token, it is verified and it fails to send the tweet.

  • Salisbury University and others use a system like this to alert students that their clothes are dry so that their dorm laundry rooms won’t fill up. And, I’m looking into something similar for traffic signal backup generators for low oil and power outage alerts.

  • shrm

    Hmm… all the comments seem to have been deleted for this post.

    I have this all wired up and hooked up to the dryer… however, the current sensor says it’s outputting amps when it’s not even hooked up. I literally unplugged the sensor and the serial monitor was still reporting ~2 amps.

    Any ideas as to what I have hooked up incorrectly?

  • SanUSB Laese

    Sketch Arduino and PIC firmware for Wifly RN-XV modem configuration without Wifly library and

    with front-end: https://dl.dropboxusercontent.com/u/101922388/WiflySanUSB.zip

  • Chuck Pelto

    RE: SCT 013-030 & a Trip Relay

    How can one use this device to trip a 12-VDC current relay to the ON position?

    With that mini plug, one would think there was some device out there that would act as the relay once the SCT 013-030 detected current.