Hallo,
ich habe einen Sketch mit einer WIFI Verbindung zu Blynk.
Alles funktioniert ganz gut , aber ich habe ein Problem.
Da ich Wifi nutze, muss ich das Wifi Starten ....
Wenn Wifi vorhanden ist, funktioniert alles ohne Probelme.
Wenn aber das Wifi nicht erreichbar ist, aus welchen Gründen auch immer.
(Router aus , Störung etc.), soll nach einer Zeit X ein Timeout erfolgen und das Programm
auf dem ESP8266 weiterlaufen, ohne WIFI.
Momentan hängt der ESP in einer "try to connect SChleife"....in eigenen Wortenn ausgedrückt.
In den Keywords von #include <ESP8266WiFi.h> finde ich Wifi.end.
Das geht leider nicht, warum auch immer.
Dann hatte ich eine ganz andere Wifi Lib WiFiNINA library probiert, die bietet auch
Wifi.end. Leider kommt der Compiler mit der #include <WiFiNINA.h> nicht zurecht.
Er bringt bei bloßem einbinden der #include <WiFiNINA.h> schon Fehler.
Hat einer von euch eine gute Idee, wie ich den Wifi Connect... ca 25sek. laufen lassen kann, und danach abgebrochen wird und der nächste SChritt im Sketch ausgeführt wird.... sodas alles im Loop funktionierft, nur eben ohne Wifi.
Ambei der Wifi Part:
WiFi.begin(ssid, password); // Connect to the network
Serial.print("Connecting to ");
Serial.print(ssid); Serial.println(" ...");
int i = 0;
while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
delay(1000);
if (i >= 25) {
Serial.print("Timeout");
// WiFi.end();
}
Serial.print(++i); Serial.print(' ');
}
Serial.println('\n');
Serial.println("Connection erfolgreich");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP()); // Send the IP address of the ESP8266 to the computer
Blynk.config(auth);
Blynk.connect(30);
ich hab das so gelöst, allerdings ist das ein aussensensor der aus dem deepsleep aufwacht und wenn er nicht ins netzt kommt soll er halt wieder pennen gehen.
Heinz
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
maxzeit++; // max Zeit
if (maxzeit > 30) ESP_sleep(messcycle);
}
Hallo, danke für die erste Idee.
Es ist jedoch so , das der ESP nicht in den Sleep Modus soll.
Gerade das soll er nicxht. Er soll einfach ohne Wifi weiter ins Loop gehen und
seinen Normalen Arbeitsablauf machen. Nur eben ohne Wifi.
Aber das Cooomand mit Sleep ist toll, das merke ich mir für andere Themen.
Grüsse
Hallo zusammen,
ich habeviel probiert und selber eine Lösung gefunden.
Funktioniert:
WiFi.mode(WIFI_STA); // WiFi.mode(WIFI_AP) .... WIFI_STA or WIFI_AP
WiFi.begin(ssid, password); // Connect to the network
Serial.print("Connecting to ");
Serial.print(ssid); Serial.println(" ...");
int i = 0;
while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
delay(1000);
if (i >= 25) {
break;
Serial.print("Timeout");
WiFi.mode(WIFI_OFF);
}
Serial.print(++i); Serial.print(' ');
}
Serial.println('\n');
Serial.println("Connection ok ");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP()); // Send the IP address of the ESP8266 to the computer
// ...................Blynk Parameter
Blynk.config(auth);
Blynk.connect(30);
Ich hatte das Problem, das bei einem Stromausfall der ESP und Router aus waren.
Nachdem Power wieder da war hatte der Router das WlAn nicht gestartet und ohne WLAN lief mein ganzes HauptProgramm nicht weil Blynk und Wifi try Connect alles blockierten.
Die Abfrage oben dient nur bei einem Stromausfall das das Hauptprogramm immer und sicher läuft. Egal was Wifi macht und Blynk will.
Ob das WLAN dann wieder kommt war erstmal sekundär. Das Programm muss laufen.... Ich muss eh den WLAN Router dann neustarten, dann kann ich auch den Reset am ESP kurz drücken. Sicher wenn es sich automatisch in der Situation neu aufbaut wäre ideal.
Da aber da der ESp, wenn er einmal das WLAN hatt, auch den Link verlieren kann und sich mit dem Script immer fängt ist es so ok für mich. WIe oft kommt Stromausfall vor....
Zu Blynk, nein es macht gar keine Probelme, da ich in der jetzigen Version noch auswerte wenn (WIFI_OFF) ist.
Mit Blynk.disconnect() ist dann Ruhe und die
ganzen Blynk Befehle können im Script bleiben, ohne das Sie eine negative Auswirkung haben.