Wireless (RF) Network

I've been using a lot of WiFi modules but they are power hungry so powering them via battery for an extended period of time isn't really an option. To accommodate cheap battery powered sensors I want to build up a low power rf network and I've chosen 433 Mhz to do this. My plan is to build a small hub that will have the 433 transceiver along with a WiFi board that will convert rf signals to mqtt messages. This will allow me to produce various small battery powered circuits that I hope to tie into my home automation system. My starter project will be temperature sensors because they're easy, cheap, and will help with my wireless zone controller project. I also want a simple circuit that will automatically turn on the bathroom fan when the humidity gets too high (shower).

Notes

  • Why 433Mhz? – I use a lot of zwave devices for my home automation setup which uses the 915Mhz range so 433Mhz was the next best option in the US. The modules are pretty cheap too, around $3.
  • I've used Moteinos in the past and they work really well but even in bulk they are still pricey. Instead I'll built out my own solution that I can assemble for much cheaper.

Hub

The hub listens for 433MHz signals from various nodes and passes the data over wifi via an mqtt message. This will allow me to easily add nodes without changes to the hub and allow me to subscribe to any node via mqtt.

Hardware

Software

I'm trying to make this as generic as possible so adding nodes doesn't require a software change on the hub. Ideally, the nodes report back basic types (int, float, string, etc) that way the hub can just convert those and send them over mqtt. The logic of what they are and how to use them would be up to the node sending the data and the consumers of said data.

Here is a picture of my little hub prototype. It's a 50mm square 3d printed case that contains an esp8266 and rfm69w.

Nodes

The nodes are the “meat” of the system. They will be battery powered and have sensors connected to them. Their job will be to read the sensor data and determine if they should send a message to the hub. Most sensors will probably only send messages when something changes (motion, temperature change, etc).