From 9e6968bf6c948ba268b667ceb6d714ac65d4c7ca Mon Sep 17 00:00:00 2001 From: JonatanRek Date: Tue, 26 Nov 2019 13:56:06 +0100 Subject: [PATCH] FW v3 TWEEKS --- .../ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino.ino | 161 ++++++++++-------- 1 file changed, 88 insertions(+), 73 deletions(-) diff --git a/_FIRMWARE/firmwares/NodeMCU Sensor/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino.ino b/_FIRMWARE/firmwares/NodeMCU Sensor/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino.ino index 1748b31..5035cbe 100644 --- a/_FIRMWARE/firmwares/NodeMCU Sensor/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino.ino +++ b/_FIRMWARE/firmwares/NodeMCU Sensor/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino/ESP_OS_NODE_V3.ino.ino @@ -8,6 +8,7 @@ const char* ssid = ""; const char* pasw = ""; const char* hwId = ""; const char* url = "http://dev.steelants.cz/vasek/home/api.php"; +int unsuccessfulRounds = 0; //Pins #define pinDHT 4 @@ -17,84 +18,98 @@ const char* url = "http://dev.steelants.cz/vasek/home/api.php"; DHT DHTs(pinDHT, DHT11); void setup() { - Serial.begin(9600); - while (!Serial) continue; - pinMode(LIGHTPIN, INPUT); + Serial.begin(9600); + while (!Serial) continue; + pinMode(LIGHTPIN, INPUT); } void loop() { - WiFi.begin(ssid, pasw); - checkConnection(); - - //HTTP CLIENT - HTTPClient http; - http.begin(url); - http.addHeader("Content-Type", "text/plain"); //Specify content-type header - - DHTs.begin(); - - //JsonDocsDefinition - StaticJsonDocument<265> doc; - doc["token"] = hwId; - - float tem = DHTs.readTemperature(); - float hum = DHTs.readHumidity(); - Serial.println("TEMP" + String(tem) + ";HUMI" + String(hum)); - if (isnan(tem) || isnan(hum)) { - Serial.println("Unable to read DHT"); - } else { - doc["values"]["temp"]["value"] = tem; - doc["values"]["temp"]["unit"] = "C"; - doc["values"]["humi"]["value"] = hum; - doc["values"]["humi"]["unit"] = "%"; - } - - doc["values"]["light"]["value"] = analogRead(LIGHTPIN); - doc["values"]["light"]["unit"] = ""; - - /*More Senzores to come*/ - String jsonPayload = ""; - serializeJson(doc, jsonPayload); - Serial.print("JSON: "); - Serial.println(jsonPayload); - - int httpCode = http.POST(jsonPayload); - String httpPayload = http.getString(); //Get the response payload - Serial.println("HTTP CODE: " + String(httpCode) + ""); //Print HTTP return code - Serial.println("HTTP BODY: " + String(httpPayload) + ""); //Print request response payload - - DeserializationError error = deserializeJson(doc, httpPayload); - - //configuration setup - String hostName = doc["device"]["hostname"]; - int sleepTime = doc["device"]["sleepTime"]; - WiFi.hostname(hostName); - - http.end(); //Close connection - Serial.println("DISCONECTED FROM WIFI"); - WiFi.disconnect(); - - Serial.println("GOING TO SLEEP FOR " + String(sleepTime)); - if (sleepTime > 0) { - ESP.deepSleep((sleepTime * 60) * 1000000, RF_DEFAULT); - } else { - delay(5000); - } + WiFi.begin(ssid, pasw); + checkConnection(); + + //HTTP CLIENT + HTTPClient http; + http.begin(url); + http.addHeader("Content-Type", "text/plain"); //Specify content-type header + + DHTs.begin(); + + //JsonDocsDefinition + StaticJsonDocument<265> doc; + doc["token"] = hwId; + + float tem = DHTs.readTemperature(); + float hum = DHTs.readHumidity(); + Serial.println("TEMP" + String(tem) + ";HUMI" + String(hum)); + if (isnan(tem) || isnan(hum)) { + Serial.println("Unable to read DHT"); + } else { + doc["values"]["temp"]["value"] = tem; + doc["values"]["temp"]["unit"] = "C"; + doc["values"]["humi"]["value"] = hum; + doc["values"]["humi"]["unit"] = "%"; + } + + doc["values"]["light"]["value"] = analogRead(LIGHTPIN); + doc["values"]["light"]["unit"] = ""; + + /*More Senzores to come*/ + String jsonPayload = ""; + serializeJson(doc, jsonPayload); + Serial.print("JSON: "); + Serial.println(jsonPayload); + + int httpCode = http.POST(jsonPayload); + String httpPayload = http.getString(); //Get the response payload + Serial.println("HTTP CODE: " + String(httpCode) + ""); //Print HTTP return code + Serial.println("HTTP BODY: " + String(httpPayload) + ""); //Print request response payload + + DeserializationError error = deserializeJson(doc, httpPayload); + + //configuration setup + String hostName = doc["device"]["hostname"]; + int sleepTime = doc["device"]["sleepTime"]; + String state = doc["state"]; + + if (state != "succes") { + unsuccessfulRounds++; + Serial.println("UNSUCCESSFUL ROUND NUMBER " + unsuccessfulRounds + "FROM 5"); + } else if (state == "succes") { + unsuccessfulRounds = 0; + } + + WiFi.hostname(hostName); + + http.end(); //Close connection + Serial.println("DISCONECTED FROM WIFI"); + WiFi.disconnect(); + + if(unsuccessfulRounds == 5) { + Serial.println("RESTARTING ESP"); + ESP.restart() + } + + Serial.println("GOING TO SLEEP FOR " + String(sleepTime)); + if (sleepTime > 0) { + ESP.deepSleep((sleepTime * 60) * 1000000, RF_DEFAULT); + } else { + delay(5000); + } } bool checkConnection() { - int count = 0; - Serial.print("Waiting for Wi-Fi connection"); - while ( count < 30 ) { - if (WiFi.status() == WL_CONNECTED) { - Serial.println(); - Serial.println("Connected!"); - return (true); + int count = 0; + Serial.print("Waiting for Wi-Fi connection"); + while ( count < 30 ) { + if (WiFi.status() == WL_CONNECTED) { + Serial.println(); + Serial.println("Connected!"); + return (true); + } + delay(500); + Serial.print("."); + count++; } - delay(500); - Serial.print("."); - count++; - } - Serial.println("Timed out."); - return false; + Serial.println("Timed out."); + return false; }