NodeMCU - správny tvar pre "offline" kód - kam s ním?

Odpovědět
martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

NodeMCU - správny tvar pre "offline" kód - kam s ním?

Příspěvek od martinius96 » 08 led 2018, 22:17

Ahoj, vedel by mi niekto poradiť, či mám toto napísané správne?
Neviem čo robí v pôvodnom sketch funkcia return ak !client.connected, ktorá je tam bez parametra. Neviem, čo vracia, príde mi, že tam v kóde skončí, je to tak?

Kód: Vybrat vše

 if (!client.connect(host, httpsPort)) {
    return;
  }
Chcem to upraviť pre "offline", kedy pri strate spojenia sa bude vykonávať určitý program, je to správne, ak tam namiesto return dopíšem to, čo potrebujem, musím tam dať aj ten return?
Ďalej mám otázku k samotnému requestu..
Vzorový kód obsahuje takúto štruktúru (example code):

Kód: Vybrat vše

WiFiClientSecure client;
  if (!client.connect(host, httpsPort)) {
    return;
  }
  if (client.verify(fingerprint, host)) {
  }
  else {
  }
  String url = "/system/values/vzdialenyrestart.txt";
  client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");
  .
  .
  .
  .
Nemal by ísť String url a client.print do client.verify?
Je dobré používať pre overenia pripojenia klienta niečo v štýle:

Kód: Vybrat vše

  unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout > 5000) {
      Serial.println(">>> Client Timeout !");
      client.stop();
      return;
    }
  }
Používam to asi takto pre offline režim:

Kód: Vybrat vše

 WiFiClientSecure client;
  if (!client.connect(host, httpsPort)) {
Serial.println("Ovladanie termostatu - offline rezim");  
    sensors.requestTemperatures();
 delay(500);
  String teplota1 = String (sensors.getTempCByIndex(0));
  float teplota1f = teplota1.toFloat();
    if((referenciatermostat-teplota1f)>1){
       digitalWrite(termostat, LOW);
      }else if((referenciatermostat-teplota1f)<-1){
       digitalWrite(termostat, HIGH);
        }
  }
  if (client.verify(fingerprint, host)) {
  }
  else {
  }
  if (client.connect(host, httpsPort)) {
  String url = "/rosko/system/values/termostat.txt";
  client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: NodeMCU - správny tvar pre "offline" kód - kam s ním?

Příspěvek od martinius96 » 08 led 2018, 23:30

využívate i client.stop(); ?

Kwt 23
Příspěvky: 13
Registrován: 05 led 2019, 22:47
Reputation: 0

Re: NodeMCU - správny tvar pre "offline" kód - kam s ním?

Příspěvek od Kwt 23 » 08 kvě 2020, 17:49

K tomu bych taky rád slyšel (četl) nějakou odpověď.
Zjistit že sem v prohlížeči načetl stránku z arduina zvládnu, ale po zavření prohlížeče zústavají všechny statusy na jedničče.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů