From b1ad8b227b0c67f6260cc199060e2dfd4ca01f16 Mon Sep 17 00:00:00 2001 From: JonatanRek Date: Mon, 9 Sep 2019 20:46:49 +0200 Subject: [PATCH] Improved firmware --- _FIRMWARE/firmwares/Sonoff_S20/Sonoff_S20.ino | 58 +++++++++++++------ 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/_FIRMWARE/firmwares/Sonoff_S20/Sonoff_S20.ino b/_FIRMWARE/firmwares/Sonoff_S20/Sonoff_S20.ino index 5949108..7eba41c 100644 --- a/_FIRMWARE/firmwares/Sonoff_S20/Sonoff_S20.ino +++ b/_FIRMWARE/firmwares/Sonoff_S20/Sonoff_S20.ino @@ -4,12 +4,12 @@ #include //Variables -const char* ssid = "SteelAntsNET"; -const char* pasw = "tgr786hgtp3CZ"; +const char* ssid = ""; +const char* pasw = ""; const char* server = "http://dev.steelants.cz/vasek/home/api.php"; const char* hwId = "tatsad5"; int lastState = 0; -int reconectAtemptsMax = 10; //time to wait before restart +int reconectAtemptsMax = 0; //time to wait before restart //Constant #define SONOFF 12 @@ -35,27 +35,45 @@ void setup() { Serial.print(ssid); Serial.println(" ..."); int i = 0; - while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect - delay(1000); + while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect Serial.print(++i); Serial.print(' '); + digitalWrite(SONOFF_LED, HIGH); + delay(1000); + digitalWrite(SONOFF_LED, LOW); + delay(1000); } - + digitalWrite(SONOFF_LED, HIGH); + Serial.println('\n'); Serial.println("Connection established!"); Serial.print("IP address:\t"); Serial.println(WiFi.localIP()); + } void loop() { + if (WiFi.status() != WL_CONNECTED){ + digitalWrite(SONOFF_LED, HIGH); + delay(1000); + digitalWrite(SONOFF_LED, LOW); + delay(1000); + reconectAtemptsMax++; + Serial.println("Reconect Attempt " + String(reconectAtemptsMax) + " from 10"); + if (reconectAtemptsMax == 10) { + ESP.restart(); + } + return; + } + StaticJsonDocument<200> jsonContent; jsonContent["token"] = hwId; if (!digitalRead(SONOFF_BUT)){ jsonContent["values"]["on/off"]["value"] = (int) !lastState; if (!lastState == 1) { - digitalWrite(SONOFF, HIGH) + digitalWrite(SONOFF, HIGH); } else if (!lastState == 0){ - digitalWrite(SONOFF, LOW) + digitalWrite(SONOFF, LOW); } while(!digitalRead(SONOFF_BUT)) { delay(100); @@ -80,15 +98,17 @@ void loop() { String hostname = jsonContent["device"]["hostname"]; int state = jsonContent["value"]; WiFi.hostname(hostname); - - if (state != lastState){ - if (state == 1 && lastState == 0) { - Serial.println("ON"); - digitalWrite(SONOFF, HIGH); // Turn the LED on by making the voltage LOW - } else { - Serial.println("OFF"); - digitalWrite(SONOFF, LOW); // Turn the LED on by making the voltage LOW - } - } - lastState = state; + + if (httpCode == 200){ + if (state != lastState){ + if (state == 1 && lastState == 0) { + Serial.println("ON"); + digitalWrite(SONOFF, HIGH); // Turn the LED on by making the voltage LOW + } else { + Serial.println("OFF"); + digitalWrite(SONOFF, LOW); // Turn the LED on by making the voltage LOW + } + } + } + lastState = digitalRead(SONOFF); }