ESP8266 beehive scale based on Homie#
Tip
Please continue reading this document on our documentation space, all inline links will be working there.
Introduction#
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-homie-basic.ino. However, the PCB (ESP8266-BeeScale.fzz) can be used with any firmware.
Platform and supported peripherals#
AI-THINKER ESP8266-07 module with an ESP8266 MCU
HX711 ADC weigh scale breakout board
DS18B20 digital thermometer
See also
Nodes with identical hardware: Open Hive GSM and WiFi sensor nodes and Basic WiFi/MQTT sensor node
Note
There’s also an alternative firmware Battery-powered ESP8266 beehive scale based on Homie.
PCB#
The PCB can be downloaded in Fritzing format from ESP8266-BeeScale.fzz.
Configuration#
Have a look at the source code node-homie-basic.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
Build instructions#
Clone git repository#
# Acquire source code repository
git clone https://github.com/hiveeyes/arduino
# Select this firmware
cd arduino/homie/node-homie-basic
Build#
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
Upload to MCU#
export MCU_PORT=/dev/ttyUSB0
make upload
Runtime configuration#
The Homie firmware offers different ways of runtime configuration.
HTTP API#
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
SPIFFS#
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
User interface#
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
Development#
Changelog#
See CHANGES.
Backlog#
Todo
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.