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.
- Create a Heroku Account
- 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 readArduino.py script to update the firebase url. Then, upload the index.html file and supporting structure to a free Heroku dyno.
$ 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
- Make a Firebase
- Download the package from the link above
- Unpack and bundle install
- Heroku Create
- git add .
- git commit -m "Initial Commit"
- git push heroku master
- git shit done