Forum: Mikrocontroller und Digitale Elektronik ESP8266 Wiederaufbau einer WLAN Verbindung


von ArduStemmi (Gast)


Lesenswert?

Hallo liebe Gemeinde,

ich bin gerade dabei, wie hunderttausend andere auch, ein WLAN 
Thermometer zu bauen. Weil ich es gern richtig mache, soll es wie folgt 
funktionieren.

Ich verwende ESP8266 auf NodeMCU mit Arduino.

Das Teil liegt in einer Ecke und zeichnet alle XX Sekunden die 
Temperatur von 1 bi 16 DS18B20 auf. Die Daten werden Permanent in einer 
Datei auf dem ESP8266 Board gespeichert. Wenn ich Lust und Zeit habe, 
rufe ich die Daten über WLAN ab. Ich habe ein PC Programm programmiert, 
welche die Datenübertragung anstößt und die Daten dann aufnimmt. Das 
klappt alles.

Meine Fragen:
1. Was passiert, wenn während meiner Abwesenheit die WLAN Verbindung 
zusammenbricht?
2. Wie erkenne ich auf dem ESP Board, das das so ist, und dass er sich 
nun neu verbinden sollte?
3. Solange er Daten aufzeichnet, stört das Fehlen der Verbindung nicht! 
Er zeichnet einfach weiter auf, aber nur, wenn es mir gelingt, dass ein 
nicht erfolgreicher Verbindungsaufbau nicht alles blockiert. Wie 
programmiere ich das?

Üblicherweise wird ja in den allermeisten Fällen so hier gestartet:
1
  WiFi.begin(ssid, password);
2
3
  // Check if module is still connected to WiFi.
4
  if (WiFi.status() != WL_CONNECTED) 
5
  {
6
    while (WiFi.status() != WL_CONNECTED) 
7
    {
8
      delay(500);
9
    }
10
    // Print the new IP to Serial.
11
    printWiFiStatus();
12
  }
13
14
    // Start TCP server.
15
  server.begin();

Die Zeile
1
while (WiFi.status() != WL_CONNECTED)
 blockiert die ganze Abarbeitung, bis ein Netz gefunden wird, oder 
jemand Reset drückt. (Reset ist ganz schlecht, weil ich kein DS1307 
Module installieren will!)

Danke für Eure Antworten.

von Einer K. (Gast)


Lesenswert?

ArduStemmi schrieb:
> while (WiFi.status() != WL_CONNECTED)
Wenn dir das nicht gefällt, dann schreibs nicht in!

ArduStemmi schrieb:
> 2. Wie erkenne ich auf dem ESP Board, das das so ist, und dass er sich
> nun neu verbinden sollte?
Wofür es wohl WiFi.status() gibt?


Tipp:
Manchmal lohnt es sich die Doku zu den Dingen zu lesen, welche man 
verwendet!

"Note: if connection is established, and then lost for some reason, ESP 
will automatically reconnect to last used access point once it is again 
back on-line. This will be done automatically by Wi-Fi library, without 
any user intervention."
Aus: 
https://github.com/esp8266/Arduino/blob/master/doc/esp8266wifi/readme.md

von ArduStemmi (Gast)


Lesenswert?

Herzlichen Dank! Damit haben sich alle Fragen erübrigt!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.