ESP8266 Witty Cloud als HTTP-Interface für Excel direkt über WiFi
|
Die Kommunikation erfolgt aus Kompatibilitätsgründen auf der HTTP-Ebene. Wurde in
Teil 1 nur empfangen, muss bei einer Steuerung oder bei unterschiedlichen Messungen (Analog und Digital) Daten in beide Richtungen übertragen werden. Dies erfolgt in dem hier verwendeten HTTP-Verfahren über die URL-Daten, d.h. über angehängte Parameter zur URL z.B. der Adresszeile des Browsers. Sucht man in Google mit Opera nach "esp8266 in excel" so steht in der Adresszeile etwa:
https://www.google.de/search?client=opera& q=esp8266+in+excel& sourceid=opera& ie=utf-8 &oe=utf-8&channel=suggest&gws_rd=ssl
Nach der URL folgt ein "search?" mid durch "&" getrennte Parameter. Diese Parameter können auf Serverseite isoliert werden, um verschiedene Aktionen durch zu führen.
Auf diese Art und Weise funktioniert die Kommunikation zwischen VBA und ESPBasic. Auf der Dokumentationsseite findet man Beispiele (Examples) und dort ein MSG URL (Advanced) Beispiel. Nach Entfernung der Print-Anweisungen entsteht das hier benutzte Programm "default.bas", welches die über die URL übergebenen msg auswertet und damit entsprechend verzweigt.
msgbranch [mybranch]
wait
[mybranch]
pinNo = val(msgget("pin"))
pinStatus = val(msgget("stat"))
pinAction = msgget("action")
MyReturnMsg = "OK"
if pinAction == "po" then
io(po,pinNo,pinStatus)
end if
if pinAction == "pi" then
MyReturnMsg = io(pi,pinNo)
end if
if pinAction == "pwo" then
io(pwo,pinNo,pinStatus)
end if
if pinAction == "pwi" then
MyReturnMsg = io(pwi,pinNo)
end if
if pinAction == "ai" then
MyReturnMsg = io(ai)
end if
msgreturn MyReturnMsg
wait
ESP8266-Basic: Das hier benutzte leicht geändertes Beispiel zu URL MSG ohne Printausgaben.
Um den Pin 15 des ESP8266 auf High zu setzen kann in einem Browser in der Adresszeile folgende Eingabe die Rote LED des Witty Cloud anschalten:
http://192.168.4.1/msg?pin=15&stat=1&action=po
Dabei ist 192.168.4.1 die IP des ESP, msg? das Schlüsselwort, welches Basic sucht und dann folgen Parameter, die im obigen Listing ausgewertet werden. Hier wird demnach die ESPBasic-Anweisung io(po,15,1) ausgeführt; also die LED angeschaltet. Wird in der Zeile stat=1 in stat=0 geändert, schaltet die LED aus.
Damit können über die Adresszeile eines Browsers alle IO/Kommandos ausgelöst werden. Um den Analogwert des Fotowiderstandes zu erhalten reicht:
http://192.168.4.1/msg?action=ai, der ESP sendet das Ergebnis von io(ai).
Soll, wie in Teil 1 nur der Analogwert erfragt werden, minimiert sich das ESPBasic-Programm zu:
msgbranch [mach]
wait
[mach]
msgreturn io(ai)
wait
Minimalversion ohne Parameter in 5 Zeilen zur Abfrage eines Analogwertes aus z.B. Teil 1
Im Browser reicht dann z.B. http://192.168.4.1/msg
ESP8266 Witty Cloud liefert Messwerte des Fotowiderstandes über WiFi an einen alten Opera Browser über die FritzBox mit der Minimallösung aus 5 Zeilen
|