diff --git a/ESP8266-Stromauslesen.ino b/ESP8266-Stromauslesen.ino new file mode 100644 index 0000000..9f52c93 --- /dev/null +++ b/ESP8266-Stromauslesen.ino @@ -0,0 +1,156 @@ +#include +#include +#include +#include + +#include "ph.h" + +int httpCode; +int pos = 0; +int datenpos = 0; + +bool lesen = false; + +ESP8266WebServer server(80); + +const byte beginn[] = { 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01 }; +const byte ende[] = { 0x1b, 0x1b, 0x1b, 0x1b, 0x1a }; + +byte daten[512]; + +double stand = 0; +double leistung = 0; + +void setup() +{ + Serial.begin(9600); + + WiFi.begin(phSSID, phPasswort); + + while(WiFi.status() != WL_CONNECTED) + { + delay(500); + } + + ArduinoOTA.setHostname("tutorial"); + ArduinoOTA.setPassword("12345"); + ArduinoOTA.begin(); + + server.onNotFound([]() + { + server.send(404, "text/plain", "Die Seite wurde nicht gefunden!"); + }); + + server.on("/", []() + { + server.send(200, "text/plain", "Mahlzeit und willkommen bei Projekt Hirnfrei"); + }); + + server.begin(); +} + +void loop() +{ + ArduinoOTA.handle(); + + server.handleClient(); + + WiFiClient client; + HTTPClient http; + + if(Serial.available() > 0) + { + byte input = Serial.read(); + + if(lesen) + { + daten[datenpos] = input; + datenpos++; + + if(input == ende[pos]) + { + pos++; + + if(pos == sizeof(ende)) + { + lesen = false; + + pos = 0; + + standLesen(); + leistungLesen(); + + if(http.begin(client, "http://192.168.178.123:2280/speichern.php?wert="+String(stand)+";"+String(leistung))) + { + httpCode = http.GET(); + } + } + } + else pos = 0; + } + + if(!lesen) + { + if(input == beginn[pos]) + { + pos++; + + if(pos == sizeof(beginn)) + { + lesen = true; + + pos = 0; + } + } + else pos = 0; + } + } +} + +void standLesen() +{ + byte seq[] = { 0x01, 0x00, 0x01, 0x08, 0x00, 0xff }; + + int index = 0; + + for(int i=0;i