NoteRF - Home automation

Home made subgig wireless network for home automation.

NoteRF

Here is the status of the project, right now it is not a real home automation as I only monitor things, but control will be added soon.


System architecture

All sensors emits to the gateway, which is just a sensor with the radio chip in reception mode. I use a Raspberry PI to collect and parse data from the gateway, then store it in the rPI and online. All data are displayed on Grafana for now and some are send to my phone by push messages.

NoteRF network architecture

NoteRF network architecture

Sensors PCB

I made custom PCB with ATmega328+HopeRF RFM69 radio transmitter, the Arduino bootloader is used in order to have easy access to thousands of libraries.

First batch had three minor errors which are hopefully corrected in the second batch. I should receive them soon, for reference there were:

  • ISP reset signal was on the wrong side of the DTR capacitor so a strap must be used when loading bootloader.
  • I forgot a capacitor in parallel of the tension divider to sense battery level, workaround is to stack it on the resistor. This capacitor is required because the divider has high resistor in order to decrease power consumption, so the capacitor helps to feed ATmega’s ADC capacitor
  • Some silkscreen text where on a layer not printed by the fab house.

Following batchs where corrected, see this page for schematics and layout.

NoteRF v0.1 sensors

NoteRF v0.1 sensors

Sensors

Currently I implemented those sensors:

  • Luminosity (Maxim MAX44009)
  • Temperature/Humidity (DHT11/DHT22 or HTU21D)
  • Pressure/Temperature (Bosh BMP180)
  • Temperature (Dallas DS18B20)
  • TIC: TéléInformation Client - French power meter’s output
  • Distance sensor (ST VL053L0) - Useful to monitor pellet’s stove tank
  • Soil moisture sensor
  • Currently testing the most essential : vibration sensor for mailbox !

Data parsing

I use Node-Red to receive serial data from the gateway on the rPi and parse it, check data integrity, gather data from web services (like air pollution), get the “end of print” data from my 3D printer… It is a great tool to quickly add new functionalities.

Node-RED

Node-RED

ioPush

I am currently writing ioPush, a logbook for error/warning/informations like Twitter but dedicated to the IoT (Internet of Things), with a phone application to receive push notifications. I was using Twitter but push notifications are not reliables and it does not fit my needs.

ioPush Android notification

ioPush Android notification

Data storage

I use InfluxDB, a new noSQL database dedicated for time series data. Even if it still a bit buggy, it is now usable and the team reacts fast to issues. Data are stored in local on the rPi and send to a server on the internet in order to have a backup.

IHM

I did not find the ideal tool yet and do to want to write it for now, so I am using Grafana to display and graph data. I might move to something else later if I find, OpenHAB 2.0 is a good candidate but nothing is defined.

Grafana

Grafana

Enclosure

I quickly designed a 3D printed box but I am not happy with it because it is way too big, so I might try another design. Algouth I might change the batteries because 18650 elements are free, but big.

NoteRF 3D printed enclosure

NoteRF 3D printed enclosure

Power consumption

I power several sensors on upcycled 18650 batteries from old laptops since one year. So I optimised power consumption in design and code, but never measured it because sensors consumed only few percentage of the 2 400 mAh batteries.

Sources


All blog posts associated to NoteRF