Archiv für den Monat Februar 2026

Smart Environmental Monitoring

Aufbau eines BLE-Netzwerks für diverse Umwelt-Sensoren

Ziel des Projekts ist der Aufbau eines skalierbaren, extrem stromsparenden Sensor-Netzwerks zur Überwachung von Umgebungsdaten. Der NanoBeacon IN100 SoC von InPlay Inc. kommt im SparkFun NanoBeacon Board – IN100 und im DFRobot Fermion BLE Sensor Beacon zum Einsatz.

Das SparkFun NanoBeacon Board – IN100 kann durch Sensoren mit einem QWIIC-Interface erweitert werden. Beim Einsatz der Fermion-Baureihe von DFRobot können verschiedene Sensoren (u.a. LM35, SHT40, SGP40) direkt mit dem Fermion BLE Sensor Beacon kontaktiert werden.

In beiden Fällen ist eine drahtlose Vernetzung der so gestalteten BLE-Sensoren möglich. Die übermittelten Daten können von einem zentralen ESP32-Gateway ausgewertet und zur Langzeitanalyse an eine IoT-Plattform übermittelt werden.

Ich verwende MicroPython für die Programmierung des ESP32-Gateways. Auf der Sensor-Seite kommt der Fermion BLE Sensor Beacon zum Einsatz. Datacake dient in bewährter Weise als IoT-Plattform.

Systemarchitektur & Datenfluss

Das System nutzt eine dreistufige Architektur, um maximale Effizienz und Reichweite zu erzielen:

  • Sensor-Knoten (Edge): Mehrere Fermion BLE-Module fungieren als eigenständige Sender (Beacons). Sie erfassen analoge Signale (z-B. LM35) sowie digitale I²C-Daten (z.B. SHT40 für Feuchte/Temp, SGP40 für Luftqualität). Die Daten werden ohne festes Pairing direkt in die BLE Manufacturer Data (Advertising-Pakete) eingebettet.
  • Zentral-Gateway (Processing): Ein ESP32 scannt unter MicroPython kontinuierlich das BLE-Spektrum. Er identifiziert die Fermion-Knoten anhand ihrer IDs, extrahiert die Rohdaten aus den Manufacturer-Bytes und berechnet die physikalischen Einheiten. Die aktuellen Messwerte werden unmittelbar auf einem OLED-Display (SSD1306) am ESP32 angezeigt.
  • Visualisierung der aufbereiteten Daten und via MQTT an das Datacake-Dashboard versendeten Daten, wo sie für Monitoring, Alarme und Historien-Analysen zur Verfügung stehen.

Besondere Merkmale

  • Ultra-Low Power: Durch den Verzicht auf eine dauerhafte BLE-Verbindung (Broadcasting) erreichen die Sensor-Knoten Batterielaufzeiten im Bereich von Monaten bis hin zu Jahren.
  • Skalierbarkeit: Das System kann problemlos um weitere Knoten ergänzt werden, da der ESP32 als passiver Empfänger eine Vielzahl von Sendern gleichzeitig verarbeiten kann.
  • Robustheit: Die Trennung von Erfassung (Fermion) und Verarbeitung (ESP32/Cloud) ermöglicht einen stabilen Betrieb auch in komplexen Umgebungen.

Aufbau eines Sensor-Knotens

Der Fermion BLE Sensor Beacon ist ein drahtloser Beacon, der Sensordaten über Bluetooth sendet. Ein integrierter 11-Bit-ADC kann zur Erfassung analoger Messwerte eingesetzt werden und über das I2C-Interface können Sensoren mit I²C-Interface ausgelesen werden. Auf die vom Beacon gesendeten Sensordaten kann innerhalb der Sendereichweite des Beacons mit Mobiltelefonen, Mikrocontrollern und anderen Geräten, die den BLE-Empfang unterstützen, zugegriffen werden.

Fermion BLE-Sensor-Beacons integrieren stromsparende Bluetooth 5.3-Technologie mit selbstkonfigurierbaren Datenformaten wie iBeacon, Eddystone, benutzerdefiniert und mehr.
Die BLE-Sensor-Beacons können mit einer CR2032-Knopfzellenbatterie betrieben werden. Es stehen bis zu sechs konfigurierbare GPIOs zur Verfügung, die alternativ auch zu zwei unabhängigen I²C-Schnittstellen konfiguriert werden können.

Fermion BLE-Sensor-Beacon

Das Datenformat der Beacon-Übertragung, der Inhalt der Übertragung, das Übertragungsintervall usw. können über die grafische Benutzeroberfläche NanoBeacon Config Tool konfiguriert werden, ohne dass für die Fertigstellung eines Bluetooth-Beacons die Programmierung von Code erforderlich ist.

NanoBeacon Config Tool

Für einen ersten Versuch wurde der Beacon so konfiguriert, dass die interne Temperatur (Chiptemperatur) mit zwei Byte in den Manufacturer-Daten verankert wurde. Im NanoBeacon Config Tool ist das mit den Bytes 13 und 14 zu sehen,

Für die Visualisierung der empfangenen Daten verwende ich das nRF-Tool. Im folgenden Screenshot sind die Manufacturer-Daten markiert. Nach dem Hersteller-Code 0x0505 stehen die Bytes 0x0A3F = 2623D = 26.23°C. Von einem BLE-Scanner bzw. BLE-Gateway sind die übermittelten Daten nur noch zu parsen und jegliches Geheimnis ist gelüftet.

Manufacturer Data

Zu Beginn habe ich der Einfachheit halber einen XIAO-ESP32-C3 auf einem XIAO-Erweiterungsboard als BLE-Scanner eingesetzt. Installiert ist die aktuelle MicroPython-Firmware v1.27.

Die MicroPython-Anwendung scannt die Umgebung nach Bluetooth-Signalen, die von Geräten wie Smartwatches, Fitness-Trackern, Sensoren oder Beacons ausgesendet werden, und identifiziert alle BLE-Geräte in Reichweite, die im Advertising-Modus Signale aussenden. Sie misst die Signalstärke (RSSI) und ruft Metadaten, darunter auch die Manufacturer-Daten, ab. In den Manufacturer-Daten ist hier der Temperaturmesswert verankert. Auf dem OLED-Display des XIAO-Erweiterungsboards werden diese Daten schließlich zur Anzeige gebracht.

BLE-Gateway mit ESP32-C3

Für den Einsatz in Innenräumen eignet sich das RAKBox-B3-Gehäuse, da es für die Sensorik gut belüftet ist und ausreichend Schutz der Komponenten sichert.

RAKBox-B3 Indoor Enclosure

In der nächsten Projektphase wird das System um Fermion-Sensoren sowie kommerzielle BLE-Geräte ergänzt. Dabei entwickeln wir den BLE-Scanner zu einem BLE-MQTT-Gateway weiter, um die erfassten Daten zur Visualisierung an die Datacake-Plattform zu übertragen.

Parallel dazu arbeite ich an einem Fachbuch über MicroPython im IoT-Umfeld. Darin finden Sie – neben einer fundierten Einführung in MicroPython für gängige Mikrocontroller – praxisnahe Anwendungen auf Basis von WiFi, Ethernet, ESP-Now und BLE.


2026-02-22/CK

Badger2350: Das stromsparende eInk-Badge für smarte IoT-Displays

Der Badger2350 von Pimoroni ist ein kompaktes, stromsparendes eInk-Badge-Board, das speziell für portable Anzeigen und langlebige IoT-Projekte entwickelt wurde. Statt auf hohe Rechenleistung oder Multimedia setzt die Hardware konsequent auf Effizienz, gute Lesbarkeit und extrem niedrigen Energieverbrauch – Eigenschaften, die in vielen Maker- und IoT-Szenarien entscheidend sind.

Durch das integrierte eInk-Display lassen sich Informationen dauerhaft anzeigen, ohne kontinuierlich Strom zu verbrauchen. In Kombination mit einfacher Programmierung in MicroPython, einer aktiven Entwickler-Community und zahlreichen Beispielprojekten eignet sich das Board sowohl für schnelle Prototypen als auch für produktive Anwendungen. Ob Statusanzeigen im Smart Home, digitale Labels oder batteriebetriebene Sensorstationen – der Badger2350 ist besonders dort interessant, wo Informationen sichtbar bleiben sollen, ohne dass ständig Energie fließt.

Pimoroni Badger2350

Badger2350 baut auf der folgenden Hardware auf:

  • 2.7″ eInk-Display mit 264 x 176 Pixeln und vier Graustufen
  • Raspberry Pi RP2350A (Dual Arm Cortex M33 @ 250 MHz mit 520 KB 0SRAM)
  • 16 MB Flash, 8 MB PSRAM
  • Raspberry Pi RM2 module (CYW43439) für IEEE 802.11 b/g/n WLAN & BT
  • 1000mAh LiPo battery:
  • PCF85063A RTC für WakeUp von Sleep
  • Polycarbonate case
  • 4-zone mono LED case lighting
  • Buttons: 5 User, Reset & Home
  • Connectors: USB-C zur Spannungsversorgung und Programm-Upload, I2C-Connector (Qwiic/STEMMA QT)

Für die Programmierung in MicroPython bietet Pimoroni eine spezielle Firmware an, die unter https://badgewa.re/docs beschrieben ist.

Die Firmware ist neu (https://github.com/pimoroni/badger2350) und die Dokumentation noch in Arbeit. Das gilt es zu berücksichtigen.

Ich habe einen ersten Test unternommen, um mit uname() dem System Informationen zu entlocken und das Programm in den bestehenden Launcher einzubinden.

Menu mit zusätzlicher App
App uname

Wie Sie aus den beiden Abbildungen sehen, hat das der Dokumentation folgend auch alles funktioniert. Eine App kann in den Launcher eingebunden werden und dann von da aufgerufen werden, oder aber als main.py als eigenständige App arbeiten. Ich habe hier den ersten Weg gewählt.

Mir den Möglichkeiten, die der Badger2350 bietet, sind Anwendungen aus den folgenden Bereichen denkbar:

  • Monitoring von Umweltdaten mit lokalem Statusdisplay
  • Solarbetriebene Sensorstationen
  • Energieverbrauch (z. B. PV-Ertrag oder Stromzählerdaten)
  • MQTT-Dashboard für wichtige Zustände
  • Inventar-Tracking mit QR-Code auf eInk
  • Statusanzeigen für Funk-Gateways
  • u.a.m.

Der Badger2350 überzeugt vor allem durch seine klare Ausrichtung auf stromsparende Anzeige- und IoT-Anwendungen. Seine Stärken spielt das Board überall dort aus, wo Daten selten aktualisiert werden, aber dauerhaft sichtbar sein sollen: Statusanzeigen, Sensordashboards, digitale Labels oder portable Informationssysteme sind typische Einsatzfelder. Weniger geeignet ist es dagegen für grafikintensive Anwendungen oder Projekte mit schnellen Display-Updates.


2026-02-14/CK