2019
HOME

ESP8266 als drahtloser Messwertgeber für OpenOffice auf Linux
ESP8266 in Calc via WiFi
Ergänzung zum Buch: Messen, Steuern und Regeln mit WiFi und ESPBASIC

ESP liefert Messwerte an Excel
ESP8266 serviert LibreOffice Calc direkt über WiFi Messwerte des (offenen) Analogeingangs 
Messdaten des Analogeingangs vom ESP8266 direkt in einem LibreOffice Calc-Tabellenblatt eintragen -, das ist das Ziel dieses Beitrages.

Die formschöne und stromsparende PC-Lösung mit einem Raspberry Pi Zero W, und seinem spiegelnden Radiochip, die von Seeed Studio geliefert wurde, kann mit Raspian die OpenOffice Anwendung starten und benutzen.

In einem ähnlichen Beitrag wird auf dieser Seite gezeigt, wie das in Microsoft Office und VBA funktioniert. Unter Linux bietet sich das OpenOffice Basic an, das Problem zu lösen ohne die grafische Oberfläche zu verlassen. Das eingebaute Basic ist VBA sehr ähnlich, aber an einigen wesentlichen Stellen doch ganz anders, weil Linux halt nicht Windows ist. Linux arbeitet viel über Dateien und bildet sogar die Hardware teilweise darüber ab. Wurde in Windows eine Art HTTP-Get benutzt, erfolgt die Abfrage unter Linux zunächst über eine Datei-Funktion wget. Schlüsselanweisung für dieses Verfahren ist das Basic-Kommando Shell, das auch unter Android in dem blauen Buch benutzt wurde, um Dinge zu erledigen.


ESP8266 & ESPBasic als WiFi-Interface-Server (HTTP)
ESP liefert Messwerte an Excel
ESP8266 Witty Cloud als HTTP-Interface für Office direkt über WiFi
Die Kommunikation erfolgt auf der HTTP-Ebene mit einem HTTP-Server, wie in Kapitel 2.6 allgemein und in den Anwendungen in 4.3 speziell beschrieben ist. Alternativ kann das msg Beispiel auf ESP8266BASIC.com herangezogen werden. An dieser Stelle soll ein extrem kurzes Programm die Daten des 10-Bit Analogeingang A0 (0 - 3,3 V). Da nur eine einzige Abfrage erfolgt, ist eine Verzweigung oder Unterscheidung nicht nötig. Bei jedem

http://192.168.4.2/msg

wird der entsprechende Wert zwischen 0 und 1023 als Zeichenkette mittels HTTP-Protokoll übermittelt. Das kann in der Adresszeile eines Browsers auch manuell überprüft werden. Dazu logt man sich in das WLan des ESP8266 ein, der als autarker Access Point oder Hot Spot im WiFi-Nebel auftauchen sollte. Ist man in seinem Netzwerk, liefert diese Adresse eine einzige Zahl im Browserfenster - den gewünschten Messwert - vorausgesetzt das folgende ESPBASIC Programm läuft:

msgbranch [mach]
wait

[mach]
msgreturn io(ai)
Wait
ESP8266 als HTTP-Messwert-Server mit 5 Zeilen


LibreOffice Basic als Client unter LINUX, ruft Messwerte für Calc ab

ESP Messwert im BrowserAuf den ersten Blick ähnelt dieses Basic VBA. Aber die Schrift und die Linux-Icons verraten den Unterschied. Auch die Methoden und Funktionen bzw. die Objekte sind anders strukturiert.
Dieses Makro schreibt Zehn Messwerte ab der ersten Zeile in das Tabellen-Blatt mit dem Namen "Sheet1". Die Routinen sind so angepasst, dass sie möglichst nah an der VBA-Art liegen. Die Cells-Methode kann hier natürlich nur schreiben.
Der wesentliche Datenaustausch läuft hier über eine Datei mit dem Namen hi. Das Basic-Kommando Shell vermeidet, ohne die grafische Oberfläche verlassen zu müssen, indem es Kommandozeilen Aufrufe tätigt. Der Ablauf ist wie folgt.
- Sub msg ruft die Daten mittels wget vom ESP als Text ab und speichert diesen in die Datei.
- Function ai holt sich diesen Text aus der Datei hi und liefert ihn dem Aufrufer zurück
- Sub cells spricht gewünschte Tabellen-Zelle an und trägt den Messwert von ai dort ein
- Sub Zehnwerte zählt die Zeile hoch und ruft den Messwert ab
- Sub Main ist eine aus C übernommene Art und ist üblicherweise das Hauptprogramm

Durch die einfache Dateiabfrage kann ein größeres wait erforderlich sein. Besser wäre eine Überprüfung, ob die Datei Zeichen enthält, denn bei verzögerter Datenlieferung versucht Basic ein Zeichen aus einer leeren Datei zu lesen, was zum Abbruch durch eine Fehlermeldung führt. Alternativ kann der Holzhammer mit on error resume next eingesetzt werden. Dann tritt keine Fehlermeldung auf, es wird eine 0 eingetragen.

Dies alles wurde getestet und durchgeführt unter Raspian auf Rasbperry Pi Zero W.

Kochrezept ESP8266:

  • ESP8266BASIC auf ESP installieren.
  • 5 Zeilen HTTP-Programm eingeben, speichern und starten

Kochrezept Linux auf Raspberry Pi Zero W:

  • Raspian über Noobs installieren
  • LibreOffice installieren
  • WiFi einschalten
  • LibreOffice Calc starten
  • Basic (Makros unter Werkzeuge/Tools) aufrufen und Programm eingeben
  • Main starten

So kann unter Linux auch ohne Konsole gemessen werden. Der Datenaustausch in die andere Richtung funktioniert auch auf diese Art und wird im Buch hier unten unter anderem für Android angewendet.


Das im Herbst 2019 erschienene Messen, Steuern und Regeln mit WiFi und ESPBASIC zeigt eine Einführung und vielerlei Beispiel des ESP unter Basic.

Im hinteren Teil "Anwendungen werden ähnlichen Beispiele benutzt, die verschiedene Verfahren anwenden, um gesteckte Ziele zu erreichen. Linux wurde dort noch nicht berücksicht.


ESP8266 in VBA: Basic meets Basic
Weitere Bücher
Weitere Software
.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt