Не удается подключиться к концентратору IoT Azure более двух раз

У меня Arduino MKR1000, который отправляет данные в концентратор IoT в формате HTTPS.

Эскиз это:

char hostname[] = "AHHub.azure-devices.net";
char authSAS[] = "SharedAccessSignature sr=...;

String deviceName = "MKR1000";
char ssid[] = "xxx";
char pass[] = "xxx";
String posturi = "/devices/MKR1000/messages/events?api-version=2016-02-03";  

void httpPost(String board_id, int val[],int n){

    String json = "{...}";

    client.stop();

    if (client.connectSSL(hostname, 443)) {
        client.print("POST ");
        client.print(posturi);
        client.println(" HTTP/1.1"); 
        client.print("Host: "); 
        client.println(hostname);
        client.print("Authorization: ");
        client.println(authSAS); 
        client.println("Connection: close");

        client.print("Content-Type: ");
        client.println("text/plain");
        client.print("Content-Length: ");
        client.println(json.length());
        client.println();
        client.println(json);
        client.println();

        Serial.println(json+"\n Sent.");

    } else {
        Serial.println("HTTP POST connection failed");
    }
}

После двух успешных подключений я больше не могу подключиться.
После нескольких (3-8) перезагрузок платы она начинает работать нормально и без проблем подключается, но если я сбрасываю хряков еще раз (или загружаю новый эскиз), проблема появляется снова, и мне нужно сбросить плату до ее запуска работать должным образом.

В мониторе последовательного порта видно, что if (client.connectSSL(hostname, 443)) от httpPost() Метод возвращает "True" два раза (MsgNumber: 2), а затем возвращает false.

Скриншот монитора последовательного порта:

Скриншот монитора последовательного порта

В чем может быть причина?

0 ответов

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