Raspberry Pi, Arduino and MQTT

Now that I'm living on a 7 acre spread, I need to start figuring out a way to provide security, remote sensors for temperature, humidity, power, water pressure, etc. and methods for controlling remote lights, relays, valves, etc.

My Arduino Temperature and Humidity Logger has been working flawlessly Since June 2014, but the sensors are hard-wired to an Arduino in the data closet and adding more sensors would be quite a chore.

In my research, I was reading about a fellow in Australia who was trying to tie all his remote sensors together and he discovered MQTT. It took me a little while to wrap my brain around the concept, but once I started experimenting with it, I'm totally committed to implementing MQTT in most if not all my home automation and monitoring projects. MQTT is used as a place to collect data from remote sensors.

The message store is a server that runs software called a MQTT Broker. MQTT is an acronym for "Message Queuing Telemetry Transport". The protocol is very lightweight and is designed for small, distributed sensors. The sensors typically "publish" their data to the Broker as "Topics" and other services will "subscribe" to these topics and fetch the data. In my case, my simple Arduino with temperature and humidity sensors in the attic and crawl space sends data it collects to another machine running a MQTT broker. This external machine also runs Node Red and uses the data to populate a daily graph.

I currently use MQTT and Node Red in my Crawl Space Ventilation project, my Grow Box project, a Garden Sprinkler and Workshop Ventilation.