|
ESP32 als BLE-Gateway
Messdaten live über Bluetooth Low Energy vom Multimeter über USB oder HTTP
|
Mithilfe eines ESP32 oder ESP32-C3 mit integriertem BLE kann das hier abgebildete Messgerät - oder Kompatible - in Echtzeit - auch ohne Smartphone-App ausgelesen werden. Der Mikrocontroller liefert die Anzeige über USB-Serial an einen PC. Zusätzlich stellt sein HTTP-Server die Anzeigedaten per WiFi zur Verfügung. Dazu ist kein Router oder Internet erforderlich, da ein ESP seinen eigenen HotSpot (AP) aufspannt.
Somit kann z. B. die DLL des Buches die seriellen Daten erhalten und so in Word & Excel direkt einbinden. Alternativ verfügt Excel über Möglichkeiten mit HTTP-Servern zu kommunizieren, wie es in Kapitel 7.3 beschrieben ist. Der ESP übernimmt in etwa die Rolle der links abgebildeten APP, die zum Messgerät gehört und für Smartphones verfügbar ist.
Ein BLE-Gerät sendet keinen kontinuierlichen Datenstrom um möglichst energiearm zu operieren. Dies erscheint zunächst ungewöhnlich im Vergleich zu seriellen Geräten.
Übersicht:
- Prinzip
- Programm und Download
- Erste Daten seriell
- Erste Daten über WiFi
- Messdaten in Excel oder Calc
- Hinweise
|
Prinzip des Zusammenspiels
|
Das Multimeter zeigt sich im Bluetooth-Äther und bietet seine Services an. Ein als BLE-Client programmierter ESP32 scannt nach BLE-Geräten und findet das Gerät. Nachdem bekannte Services erkannt wurden, liefert das Messgerät die Anzeige-Daten als Bytes dem ESP. Diese Daten entsprechen dem VC840-Protokoll, wie es bei RS232-Adaptern zur Anwendung kam. Die 14 Bytes dekodiert die Software im ESP entsprechend, so dass der Inhalt des Displays als Zeichenkette weitergereicht werden kann.
Prinzip der Übertragung bei seriellem Datenstrom zum PC
Alternativ kann der dekodierte Datenstrom zusätzlich auch über WiFi empfangen werden, wenn die BLE-Übertragung läuft. Der ESP32 taucht als WiFi-Hotspot unter dem Namen BLE2WiFi90EPD auf. Dieser Access-Point ist lokal und nicht mit dem Internet verbunden. Bei Messungen über WiFi mit dem PC muss die Verbindung zu diesem AP ohne Passwort aufgebaut werden. Ein erster Messwert kann dann im Browser über die Adresse http://192.168.4.1 abgerufen werden.
Prinzip der Übertragung bei WiFi Datenstrom zum PC
|
Programm übertragen
|
Das Programm oder die Firmware oder der Sketch muss einmalig in den ESP übertragen werden. Dies erfolgt im einfachsten Fall mit einem Browser wie Chrome oder Edge in dem das Webserial ESPTool funktioniert. Damit erfolgt das sogenannte Flashen auf sehr einfache Weise. Nach dem Download der als Binärdatei vorliegenden Software für ESP32 und ESP32-C3 (1,74 MB) erfolgt das Entpacken des Zip-Archivs in ein beliebiges Verzeichnis. Danach führen die folgenden Schritte zum Ziel:
- ESPTool aufrufen
- Unter Connect eine Verbindung mit dem seriellen Anschluss des ESP herstellen
- Offset 0x0 Choose a file.. anklicken und aus dem Archiv die passende Datei target.bin wählen
- Den Button Program drücken, um den Flashvorgang zu beginnen.
Upload der Binärdatei mittels Web-Browser und ESPTool
Nach dem erfolgreichen Upload muss ein ESP32 einmal resettet werden. Vorher sollte das Messgerät eingeschaltet sein. Der ESP scannt jetzt fortwährend nach vorhandenen BLE-Geräten. Wird das Messgerät gefunden und erkannt, so verbindet sich der ESP als Client mit dem Messgerät als Server. Damit laufen die Messwerte über die serielle Schnittstelle.
|
Erste Daten Seriell
|
Mit einem Terminal-Programm für serielle Schnittstellen kann nun die Verbindung und Funktion überprüft werden. Mit 115200 Baud laufen die Informationen z. B. über COM9:, die Schnittstelle mit der auch die Binärdatei übertragen worden ist.
BLE Advertised Device found:
Name: FS9721-LP3, Address: 01:b3:ec:c0:53:42, manufacturer data:
acff4253c0ecb301,
serviceUUID: 0000d618-0000-1000-8000-00805f9b34fb,
serviceUUID: 0000ffb0-0000-1000-8000-00805f9b34fb, rssi: -82
Forming a connection to 01:b3:ec:c0:53:42
- Created client
- Connected to server
- Found our service
- Found our characteristic
# Now connected to the BLE Server of the BT-90EPD.
Auto DC 001.1 mV
Auto DC 001.2 mV
Auto DC 001.3 mV
Auto DC 001.4 mV
...
|
Erste Daten WiFi
|
Der ESP spannt einen eigenen offenen WiFi-AP unter dem Namen BLE2WiFi90EPD auf. Nach der Verbindung mit diesem Hotspot - ohne Internet-Zugang - sendet der ESP als HTTP-Server die Daten, die er als BLE-Client empfangen und dekodiert hat weiter an den Aufrufer. Ein solcher Aufrufer ist im einfachsten Fall ein HTTP-Client in Form eines einfachen Web-Browsers. Ist der Datenstrom aktiv, so lässt sich über die Adress-Zeile ein Wert abrufen. Das funktioniert auf Smartphone, Tablet und PC auch mit älteren Browsern. Bei jedem erneuten Aufruf bzw. Refresh wird der zuletzt gemessene Wert der Anzeige geliefert.
|
Messdaten in Excel via WiFi ohne Zusatzsoftware
|
Mit der FX-Funktion WEBDIENST kann in einem Tabellenblatt in Excel oder Calc (Webservice) die Anzeige des Multimeters abgerufen werden. Ab Kapitel 3.6 findet der Lesende Erläuterungen zur automatischen Aktualisierung mit Bordmitteln. Hier ein Snapshot von Excel:
Ebenfalls ab Kapitel 3.6 des Buches MSR mit LibreOffice findet man die entsprechenden Ausführungen zu Calc. An anderer Stelle auf dieser Homepage wird gezeigt, wie mittels VBA Daten von einem HTTP-Server im Tabellenblatt landen können.
|
Hinweise
|
Auch durch den YouTuber mit dem Swiss Accent wurde ich aufmerksam gemacht auf das Tool nRF Connect. Die App läuft auf dem Smartphone und zeigt die BLE Geräte in der Umgebung. Mit etwas Probieren konnten die beiden benötigten UUID ausfindig gemacht werden. Für dieses Gerät, sowie viele Kompatible, sind die Zahlenwerte 0xFFB0 und 0xFFB2 interessant. Diese Software funktioniert nur mit diesen beiden Werten. Bei noch näherer Betrachtung ließ sich die Übertragung von 8 und 6 Bytes in unregelmäßigen Abständen ausmachen. Nach der Reanimation etwas älterer Gehirnwindungen kamen Erinnerungen an 14 Bytes des VC840 zum Vorschein und in der Tat ist es dieselbe Kodierung. Mit dem BLE-Client-Beispiel für ESP32 in der Arduino-IDE kann die bekannte Dekodierung in die Notify-Funktion implementiert werden. Mit etwas WiFi entsteht der Server und somit das ESP32-Gateway zwischen BLE und HTTP oder Bluetooth und WiFi. |
|
Obige Zeilen ergänzen die Ausführungen von Kapitel 3, in dem das Thema externe Daten im Tabellenblatt zur Sprache kommt. In Kapitel 5.4 des linken Buches stehen Ausführungen des noch per RS232 betriebenen VC840 Messgerätes mit der entsprechenden Dekodierung. Das darin folgenden Unterkapitel 5.8.4 aufgeführte hier verwendete BTMETER kann nun elegant drahtlos und ohne eigenen Eingriff ausgelesen werden. LibreOffice und Calc kann Messdaten per WebService auch im Sekunden-Intervall ohne Makro aktualisieren.
|
|
|