A smartish home system with Arduino IoT devices and a Clojure cloud back-end with a web interface.

Similar projects worth following

Homefront has a couple of main functions. It has a small network of wireless sensors which measure the temperature and humidity levels on different floors of my house. They also measure the water temperatures of the central heating system. The measurements can be viewed on a quick dashboard or in detailed graphs. The system also sends email on sensor outages.

The other function is to provide my cat feeding machine with feeding times.

The home sensors were implemented with Arduinos and they communicate with the cloud server by Bluetooth through a node.js intermediary which runs on an old laptop. The back-end is written in Clojure and has an Angular front-end. The node.js intermediary communicates using a RESTful API with the back-end.

As the Bluetooth connections were always quite fragile the Arduino and Bluetooth combination was replaced by ESP8266 modules. This also removed the need for the intermediary. Communication with the back-end is done by MQTT traffic relayed by Mosquitto running on the back-end server.

The MQTT broker also does some extra messaging e.g. with the Numitron clock.

  • 3 × (Arduino Pro Micro) Temperature and humidity loggers. (Replaced by ESP8266)
  • 3 × (HC-06) Bluetooth connection from Arduino to local Node.js forwarder. (Replaced by ESP8266)
  • 3 × DHT22 Temperature/humidity sensor, one per each floor of the house
  • 2 × DS18B20 Temperature sensors for measuring the central heating water temperatures
  • 2 × ESP8266-01 WiFi temperature and humidity logger using MQTT.

View all 6 components

  • ESP8266 migration complete

    Harri Ohra-aho09/18/2016 at 15:28 0 comments

    Bluetooth has now been completely exorcised as the DHT22 and DS18B20 toting version of the sensors has been upgraded into a NodeMCU module.

  • ESP8266 migration

    Harri Ohra-aho09/15/2016 at 09:25 0 comments

    Replaced the sensors carrying only a DHT22 with ESP8266-01 versions communicating through MQTT. Seems to be rock-steady after adding a capacitor to ensure steady power to the ESP.

    The third sensor needs more pins for the two temperature sensors, so it has to be made with an ESP-12 or a NodeMCU board. Which I happen to have.

  • Pebble dashboard

    Harri Ohra-aho03/13/2016 at 07:33 0 comments

    It's quite fast to make an HTTP API connected Pebble app using the pebble.js framework and the Cloudpebble browser IDE, so I made a dashboard app that provides a similar view into the measurement data as the web dashboard.

    The app shows the current values for each sensor in a menu UI and each item can be drilled into for information on the previous measurement and the time of measurement.

  • ESP8266

    Harri Ohra-aho08/16/2015 at 20:17 0 comments

    Built a prototype for a DHT22 and standalone ESP8266 (ESP-01) combination. Sensor values are transmitted through the MQTT server. Works quite nicely although the ESP got mysteriously stuck on one test run after a couple of hours.

  • Sensor upgrade

    Harri Ohra-aho04/11/2015 at 10:00 0 comments

    Considering replacing the HC-06 modules with ESP8266. The Bluetooth connection is extremely prone to failing. Even a slight change in the placement or orientation of the sender or receiver can cause a huge difference in reliability.

    Also this change would get rid of the node.js middleman which is a huge bonus.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates