0

我从 Github 下载了 Arduino Yun SDK 并按照给定的说明安装。我运行了示例 BasicPubSub 并且它运行成功并且我看到每秒都有消息到达 MQTT 客户端订阅主题。太棒了!

但我没有在资源选项卡上看到我的设备连接。它仍然说,“上次更新 = 无状态”。为什么会这样?

我需要每 10 秒发送一次消息。我将 BasicPubSub 循环中的延迟更改为延迟(10000)。但是现在,主题中只收到第一条消息,串行监视器说,'-1 Publish Failed; -35 产量失败'

是不是连接有问题。如果是这样,为什么发送第一条消息而不发送其他消息。我能做些什么来解决这个问题?

谢谢

4

1 回答 1

0

我遇到了同样的问题,我发现您需要更频繁地调用 yield 函数才能让 Arduino 保持连接。所以如果你想延迟超过 10 秒,你应该这样做:

int uploadInterval = 60;   // Delay time (SECOND) for each loop iterarion
for (int i = 0; i < uploadInterval; i++) {
  if ((rc = myClient.yield()) != 0) {
    Serial.println("Yield failed!");
    Serial.println(rc);
  }
  delay(1000);
}

来自 AWS Arduino SDK 网页关于 yield 函数:“用户应经常调用此函数以接收新消息并为新订阅释放订阅槽,尤其是对于影子事物请求。”

于 2016-08-02T03:02:54.223 回答