Arduino WiFiNINA перестает работать в HTTP-запросе клиента и заходит в бесконечный цикл

Я посылаю HTTP-запрос с моим Arduino MKR 1010, и иногда (например, когда Wi-Fi внезапно выключается, но также и в других ситуациях) код останавливается и уходит в бесконечный цикл, и я не понимаю, почему.

Я попытался осмотреть проблему и заметил, что она находится внутри функции client.connect (из библиотеки Wifi NINA). В частности, я заметил, что код останавливается там, где я написал "ЗДЕСЬ", но не могу понять, почему. Как я уже сказал, проблема возникает, когда у меня проблемы с подключением.

// ПРОБЛЕМНЫЙ КОД

Serial.println("Connecting...");
bool received = false;
if (client.connect("script.google.com", 443)) {
    // Make a HTTP request:
    String URL = REQUEST + WEB_APPLICATION;

    String temp = String(humidity, DEC);
     temp.replace(".", ",");
    URL = URL + "/exec?humidity=" + temp;
    temp = String(temperature, DEC);
    temp.replace(".", ",");
    URL = URL + "&temperature=" + temp;
    temp = String(lightint, DEC);
    temp.replace(".", ",");
    URL = URL + "&lightint=" + temp;

    client.println("GET " + URL + " HTTP/1.1");
    client.println("Host: script.google.com");
    client.println("User-Agent: Arduino Camera");
    client.println("Connection: close");
    client.println();
    Serial.println("Request sent");
    received = false;

// Функция CONNECT:

int WiFiClient::connectSSL(const char *host, uint16_t port){
if (_sock != NO_SOCKET_AVAIL)
{
  stop();
}

_sock = ServerDrv::getSocket();
if (_sock != NO_SOCKET_AVAIL)
{// HERE ****************
  ServerDrv::startClient(host, strlen(host), uint32_t(0), port, _sock, TLS_MODE);

  unsigned long start = millis();

  // wait 4 second for the connection to close
  while (!connected() && millis() - start < 10000)
    delay(1);

  if (!connected())
    {
    return 0;
  }
} else {
  Serial.println("No Socket available");
  return 0;
}
return 1;}

0 ответов

Другие вопросы по тегам