Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Laundry Machine Monitor with Arduino, Python, Heroku and Firebase

Author: Desmond Duggan

The days of walking down four flights of stairs with a full load of laundry only to be let down once again by the busy rumbling of occupied laundry machines are over. **For Free.**In this project, we used the following technologies to build an online-accessible monitor for the washing machine in our home.

In short, the Arduino board outputs a signal to its usb serial port, which is observed by a scheduled python script. This python script uses a python-firebase wrapper to make a REST call to update an entry in the Firebase. Simultaneously, the Heroku hosted static Rack application listens to any updates made to the Firebase and updates the page asynchronously.


Washing Machine



  1. Create a Heroku Account
  2. Create a Firebase account



Attach the Arduino to the washing machine and hook it up to the Ubuntu machine. Once the Arduino script is uploaded to the unit, run the script to update the firebase url. Then, upload the index.html file and supporting structure to a free Heroku dyno.


Assemble the Arduino Uno and an accelerometer like the ADXL345. Attach to the washing machine and link to machine running Ubuntu. Install the Arduino IDE and upload the script.

Python Script

$ pip install apscheduler
$ pip install pyserial
$ pip install python-firebase

Adjust the name of the serial port to the value of the port being used for the Arduino board - will be a USB port. Insert the address of your Firebase. Run it.

Heroku and Web

We used a magical tool developed by Marshall Huss located here to auto generate a static site framework in Rack with instructions on how to upload to Heroku. Rack is a lightweight static site framework written in Ruby.

$ pip install bundle
$ pip install heroku
$ gem install rack


  1. Make a Firebase
  2. Download the package from the link above
  3. Unpack and bundle install
  4. Heroku Create
  5. git add .
  6. git commit -m "Initial Commit"
  7. git push heroku master
  8. git shit done

This is a collaborative project between Andrew Ng, Ben Huang and Desmond Duggan.


An Arduino project to monitor the status of our laundry machine!






No releases published


No packages published