Zuverlässige Verwendung von WiFiClient() und client.connect ?

Hallo,
ich verwende in meinem Sketch client.connect () und nutze die Verbindung danach für HTTP-POSTs.

In letzter Zeit ist es mir zweimal passiert dass der Webservice - Windows10 sei dank - kurzfristig nicht verfügbar war. Der Sketch ist danach nicht mehr gelaufen - hat keine Verbindung mehr herstellen können.

Kann mir jemand sagen ob ich das richtig anwende oder obs da noch Verbesserungspotential gibt ?

im loop()

  WiFiClient client;

if (!client.connect(host, httpPort)) {
      Serial.println("connection failed");
      return;
    }
    else
    {
      Serial.println("verbunden ...");
    }

Das ist bei mir wirklich die erste Prüfung im Loop, denn wenn die Serververbindung nicht klappt, brauch ich nicht weitermachen ...

Aufgrund des Codeschnipsels kann man da nichts sagen. Musst schon was mehr posten.

Das hilft dir nicht viel weiter. Zum einen "ballert" er dir damit die Serielle Konsole voll, zum anderen machst du mit den Anweisungen nichts, damit die Verbindung wieder aufgebaut wird.

Naja, sehr viel mehr Code habe ich nicht :slight_smile:

void loop ()
{


  WiFiClient client;

if (!client.connect(host, httpPort)) {
      Serial.println("connection failed");
delay(1000);
      return;
    }
    else
    {
      Serial.println("verbunden ...");
//Mach irgendwas sinnvolles
    }

}

Mit dem client.connect(host, httpPort) wird doch die Verbindung vergestellt... oder überprüft.
Wenn die Rückmeldung OK ist, passt es, sonst stimmt was nicht (server down, service down,...)

Serielle Ausgabe ist mir egal, da hängt nix dran, der Arduino liegt als Temp-Sensor in der Garage und kommuniziert nur über HTTP

WiFiClient client; würde ich global machen

Wenn der Sketch nichts weiteres tun soll und keine weitere Peripherie hat, kannst du auch nicht viel mehr tun, als das was du bereits tust.
Evtl. bei zu vielen Fehlversuchen das Wifi Modul zu resetten, oder alles resetten.

Wie funktioniert das ?
Kann ich dem Arduino sagen: Starte dich selbst komplett neu ?

lG
Gawan

Quick and dirty: Resetpin per GPIO auf Masse ziehen.

bitte nochmal für anfänger :slight_smile:

Ich verbinde den ResetPIN (den auf dem FLASH steht oder den auf dem RST steht ?)

mit ... ja mit was genau ? :slight_smile: