ESP8266 beehive scale based on Homie#


Please continue reading 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-homie-basic.ino. However, the PCB (ESP8266-BeeScale.fzz) can be used with any firmware.

Open Hive ESP8266 BeeScale

Platform and supported peripherals#

  • AI-THINKER ESP8266-07 module with an ESP8266 MCU

  • HX711 ADC weigh scale breakout board

  • DS18B20 digital thermometer


There’s also an alternative firmware Battery-powered ESP8266 beehive scale based on Homie.


The PCB can be downloaded in Fritzing format from ESP8266-BeeScale.fzz.

ESP8266 BeeScale PCB - schematics - top view

PCB - Schematics Top view#

ESP8266 BeeScale PCB - top view

PCB - Top view.#

ESP8266 BeeScale PCB - bottom view

PCB - Bottom view.#


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

# Select this firmware
cd arduino/homie/node-homie-basic


The build system is based on PlatformIO.

Build firmware:


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.


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

# 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 --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

User interface#

When installing the UI bundleui_bundle.gz”, the configuration UI will be served directly from the device:

# 1. Download ui_bundle.gz
wget --directory-prefix=data/homie

# 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.