首页 文章

将Sparkfun ESP8266连接到Azure IoT Hub

提问于
浏览
0

我目前正在尝试将我的Sparkfun ESP8266 Thing连接到我的Azure IoT Hub . 我已成功设置了我的集线器,并按照本教程了解如何将Thing连接到我的Azure IoT Hub: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 {

^

消息:46:错误:'jsonBuffer'未在此范围内声明

StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

消息:74:错误:'类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:note:建议替代:

在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 {

^

消息:80:错误:未在此范围内声明'jsonBuffer'

StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

消息:82:错误:'类ArduinoJson :: JsonObject'没有名为'success'的成员

if (!root.success())

           ^

消息:88:错误:'ArduinoJson :: Internals :: enable_if> :: type'没有名为'success'的成员

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

                                 ^

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

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

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

任何帮助都将非常感谢!

1 回答

  • 1

    出现此错误的原因是您安装了ArduinoJson版本> = 6.将安装默认版本6.2.3-beta但 from version 6 and higher JsonBuffer is replaced with JsonDocument . 它还在错误消息中指出:

    C:\ Users \ L.FULL \ Documents \ Arduino \ iot-hub-SparkFun-ThingDev-client-app \ app \ message.ino:46:5:注意:建议替代:在C:\ Users \中包含的文件中L.FULL \文件\ Arduino的\库\ arduino_172002 \ SRC / ArduinoJson / StaticJsonDocument.hpp:8:0

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

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

相关问题