我目前正在为Arduino Yun使用AWS IoT SDK,我正在运行示例草图(特别是恒温器模拟器)。
我略微修改了循环(只是改变了结尾的延迟),使它看起来像这样:
void loop() {
if(success_connect) {
// If the desired temperature is set to a higher value, start heating.
if(desiredTemp - reportedTemp > 0.001) {reportedTemp += 0.1;}
// If the desired temperature is set to a lower value, start cooling.
else if(reportedTemp - desiredTemp > 0.001) {reportedTemp -= 0.1;}
dtostrf(reportedTemp, 4, 1, float_buf);
float_buf[4] = '\0';
sprintf_P(JSON_buf, PSTR("{\"state\":{\"reported\":{\"Temp\":%s}}}"), float_buf);
print_log("shadow update", myClient.shadow_update(AWS_IOT_MY_THING_NAME, JSON_buf, strlen(JSON_buf), NULL, 5));
if(myClient.yield()) {
Serial.println("Yield failed.");
}
delay(10000); // CHANGED TO 10 SECONDS INSTEAD OF 1
}
}
由于某种原因,当循环延迟少于10秒时,阴影更新没有问题重复。但是一旦延迟10秒或更长时间,我就会收到此错误:
Thread-4中的异常(很可能是在interpr期间引发的) [ERR]命令:影子更新代码:-1
我在aws_iot_config_SDK.h文件中将CMD_TIME_OUT更改为更高的值,但它似乎仍无效。我希望超时延迟大于10秒的原因是因为我希望理想情况下在arduino中有一个可以更新阴影的触发机制。