Botman – my homegrown home automater

My home automator – nicknamed “Botman” – has some nice features:

  • Indoor data: shows the current room temperature, humidity and barometric pressure on the display (1st row)
  • Outdoor weather: regularly requests current weather conditions from a weather API and displays them on the display (2nd row) and moves the servo arm to what we normally call the “weather icon”
  • Public transportation info: current departure times of public transport options around my flat are pulled from the web allowing me to better schedule when I have to leave my flat.
  • Archive indoor conditions: temperature, humidity and barometric pressure are regularly sent to a Google Spreadsheet to archive and visualize the data over time.
  • Android App: allows me to check the current data and lets me switch my remote controlled outlets on and off.

Technical overview:

  • Arduino Ethernet acting as a web server but also as web client when it pulls data from APIs.
  • I2C Display (lcm1602)
  • Laser cut dashboard (thanks to metalab.at)
  • Servo arm showing current weather forecast
  • Wooden self built enclosure
  • Temperature, barometric pressure, humidity sensor (BMP085, DHT11)
  • 433MHz wireless sender for remotely controlled outlets

As you might know the Arduino does not have a lot of memory. So parsing current JSON APIs might be a big pain in the *** or would simply not be possible – e.g. due to unsupported https connections. That is why I have installed a separate Google App Engine instance which does all the hard work and only returns the small data chunks I really need on the Arduino.

Of course security is always a big issue when it comes to home automation. All the data is transported on an unencrypted standard http connection. At the moment I can cope with this imperfect approach.

Codebender:

  • This is the first project I moved to the Arduino browser based IDE  codebender. It really helps me to save plenty of time as I do not have the hassles of setting up the Arduino IDE with all the proper libraries. Perfect for people who tend to experiment a lot or switch their dev. machine too often :)

Todos:

  • make a better hand for the pointer of the weather icon
  • prepared to control door opener of house
  • prepared to add Ir diode to control any device with an Ir remote