Author: Arthur Kepler for Oort Cloud Brewing (our brew collective)
Date: Published October 11, 2020
This set of two sensors, which share a breadboard with an ESP32 devboard, captures temperature, humidity, and gas pressure, reporting it back to an MQTT and ELK stack server.
The pressure sensor is connected to a tee fitting between the CO2 tank and the keg.
- A small breadboard and about 60cm (2 ft) of wiring
- ESP32 dev board (PIN comments are for NodeMCU32 dev board) (https://www.amazon.com/dp/B0718T232Z)
- DHT11 Temperature sensor (https://www.adafruit.com/product/386)
- 60psi 5v-in/4.5v-out pressure transducer. 60 is a good upper bound for brewing with nitro, 1/4" is good for gas line fittings. Amazon does not have these, most US OEMs charge > $120. I recommend eBay or Google Shopping. (https://www.google.com/search?q=pressure+transducer+60+psi+5v&tbm=shop)
- Arduino IDE (or your favorite IoT IDE, etc.)
- MQTT broker on a host server (Tested with Mosquitto)
- Python3 (Tested on v3.5) on host server
- ELK Stack (Optional) (index export needs 6.5+, Kibana Viz export needs 7.3+)
It's easy to recreate the index and visualization without importing my
.ndjson
export.
- Wifi by Ardino
- PubSub Client by Nick O'Leary (Arduino Client for MQTT) (https://pubsubclient.knolleary.net/)
- DHT-sensor-library by Adafruit
pip3 install paho-mqtt
pip3 install elasticsearch
arduino-ide-code/brewing-sensors.ino
: Arduino C++ code, tested and uploaded via Arudino IDEELK/mqtt-to-elasticearch.py
: Python script to read from MQTT and publish to ElasticsearchELK/kibana-chart-export.ndjson
: Export of Kibana saved-objects for the oort_sensors-*
Update brewing-sensors.ino
with your WIFI and MQTT server config.
Optionally change references of oort_sensors-*
to an ELK index name of your choosing.