Не удается подключиться к концентратору 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.
Скриншот монитора последовательного порта:
В чем может быть причина?