【问题标题】:Connecting Sparkfun ESP8266 Thing to Azure IoT Hub将 Sparkfun ESP8266 Thing 连接到 Azure IoT Hub
【发布时间】:2018-07-27 09:54:16
【问题描述】:

我目前正在尝试将我的 Sparkfun ESP8266 Thing 连接到我的 Azure IoT 中心。我已成功设置我的集线器,并且正在按照本教程了解如何将事物连接到我的 Azure IoT 集线器:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-sparkfun-esp8266-thing-dev-get-started

不幸的是,我不断收到错误:

'StaticJsonBuffer' 未在此范围内声明

Arduino:1.8.5(Windows 10),板:“SparkFun ESP8266 Thing,80 MHz,512K(无 SPIFFS),v2 低内存,已禁用,无,仅草图,115200”

构建选项已更改,正在重新构建所有 C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:在函数'bool readMessage(int, char*)'中:

消息:46:错误:“StaticJsonBuffer”未在此范围内声明

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

 ^

C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:46:5:注意:建议的替代方案:

在 C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson/StaticJsonDocument.hpp:8:0 中包含的文件中,

             from C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson.hpp:10,

             from C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson.h:9,

             from C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:2:

C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7:注意:'ArduinoJson::Internals::StaticJsonBuffer'

class StaticJsonBuffer : public Internals::StaticJsonBufferBase {

   ^

message:46: error: 'jsonBuffer' 未在此范围内声明

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

message:74: error: 'class ArduinoJson::JsonObject' 没有名为 'printTo' 的成员

 root.printTo(payload, MESSAGE_MAX_LEN);

      ^

C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:在函数'void parseTwinMessage(char*)'中:

消息:80:错误:“StaticJsonBuffer”未在此范围内声明

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

 ^

C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:80:5:注意:建议的替代方案:

在 C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson/StaticJsonDocument.hpp:8:0 中包含的文件中,

             from C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson.hpp:10,

             from C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson.h:9,

             from C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:2:

C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7:注意:'ArduinoJson::Internals::StaticJsonBuffer'

class StaticJsonBuffer : public Internals::StaticJsonBufferBase {

   ^

message:80: error: 'jsonBuffer' 未在此范围内声明

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

message:82: error: 'class ArduinoJson::JsonObject' 没有名为 'success' 的成员

 if (!root.success())

           ^

message:88: error: 'ArduinoJson::Internals::enable_if >::type' 没有名为 'success' 的成员

 if (root["desired"]["interval"].success())

                                 ^

退出状态 1 'StaticJsonBuffer' 未在此范围内声明

此报告将包含更多信息 “在编译期间显示详细输出” 文件 -> 首选项中启用的选项。

我已将 DEVICE_ID 从“SparkFun ESP8266 Thing Dev”更改为“SparkFun ESP8266 Thing”,并且正在使用模拟数据。

对此的任何帮助将不胜感激!

【问题讨论】:

    标签: azure arduino esp8266 azure-iot-hub arduino-ide


    【解决方案1】:

    出现此错误的原因是您安装了 ArduinoJson 版本 >= 6。将安装默认版本 6.2.3-beta 但从版本 6 及更高版本的 JsonBuffer 被替换为 JsonDocument。错误信息中也指出:

    C:\Users\L.FULL\Documents\Arduino\iot-hub-SparkFun-ThingDev-client-app\app\message.ino:46:5: 注意:建议的替代方案

    在包含的文件中 C:\Users\L.FULL\Documents\Arduino\libraries\arduino_172002\src/ArduinoJson/StaticJsonDocument.hpp:8:0

    要解决此问题,您可以回滚到以前的版本。 5.13.2 版适用于我。

    参考issue on ArduinoJson repoissue on iot-hub-feather-huzzah-client-app repo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多