Tip
You might want to read this document on our documentation space, all inline links will be working there.
A beehive monitoring sensor node based on a ESP8266 module and a custom made PCB. Telemetry data is transmitted using WiFi/MQTT.
The standard firmware is based on the ESP8266 framework for Homie, its most recent version is available at node-wifi-mqtt-homie.ino. However, the PCB (ESP8266-BeeScale.fzz) can be used with any firmware.
- AI-THINKER ESP8266-07 module with an ESP8266 MCU
- HX711 ADC weigh scale breakout board
- DS18B20 digital thermometer
- ESP8266 Stockwaage – erste Eindrücke
- https://www.imker-nettetal.de/category/stockwaage/
- Nodes with identical hardware:
node-wifi-http
andnode-wifi-mqtt
Note
There's also an alternative firmware node-wifi-mqtt-homie-battery
.
The PCB can be downloaded in Fritzing format from ESP8266-BeeScale.fzz.
PCB - Schematics Top viewPCB - Top view.
PCB - Bottom view.
c++
Have a look at the source code node-wifi-mqtt-homie.ino and adapt setting variables according to your environment.
Configure load cell calibration settings:
// Use sketch BeeScale-Calibration to get these values
const float offset = 85107.00; // Offset load cell
const float cell_divider = 22.27; // Load cell divider
bash
# Get hold of the source code repository including all dependencies
git clone https://github.com/hiveeyes/arduino
# Select this firmware
cd node-wifi-mqtt-homie
The build system is based on PlatformIO.
Build firmware:
make
After successfully building it, you will find firmware images at
- .pio/build/esp07/firmware.bin
- .pio/build/esp07/firmware.elf
export MCU_PORT=/dev/ttyUSB0
make upload
bash
The Homie firmware offers different ways of runtime configuration.
When starting the ESP8266 device with Homie firmware, it will come up in configuration
mode and spawn a secure WiFi access point named Homie-xxxxxxxxxxxx
, like Homie-c631f278df44
. Connect to it.
Configure the device by uploading the JSON configuration file to the HTTP JSON API at http://192.168.1.1:
# 1. Clone real configuration from blueprint
cp example.config.json config.json
# 2. Edit configuration file
sublime config.json
# 3. Configure device
curl -X PUT http://192.168.1.1/config --header "Content-Type: application/json" -d @config.json
The configuration file config.json
can also be uploaded to the device's SPIFFS filesystem as /homie/config.json
.
makeESPArduino also has the upload_fs
target, so:
# 1. Clone real configuration from blueprint
cp example.config.json data/homie/config.json
# 2. Edit configuration file
sublime data/homie/config.json
# 3. Configure device
make upload_fs
When installing the UI bundle "ui_bundle.gz
", the configuration UI will be served directly from the device:
# 1. Download ui_bundle.gz
wget --directory-prefix=data/homie http://setup.homie-esp8266.marvinroger.fr/ui_bundle.gz
# 2. Configure device
make upload_fs
- Improve documentation at all
- Document how to determine calibration values (i.e. "Use sketch BeeScale-Calibration to get these values"). Would it be possible to build it into the main firmware and run it conditionally somehow?
- Document how to determine scale's temperature compensation values.