首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Sparkfun ESP8266设备连接到Azure IoT集线器

将Sparkfun ESP8266设备连接到Azure IoT集线器
EN

Stack Overflow用户
提问于 2018-07-27 09:54:16
回答 1查看 502关注 0票数 0

目前,我正在尝试将我的ESP8266链接到我的Azure IoT集线器。我已经成功地设置了我的集线器,下面是关于如何将这个东西连接到我的Azure IoT集线器:https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-sparkfun-esp8266-thing-dev-get-started的教程

不幸的是,我一直收到错误:

“StaticJsonBuffer”未在此范围内声明

Arduino: 1.8.5 (Windows10),主板:"SparkFun ESP8266 Thing,80 MHz,512 K(无触发器),v2低内存,禁用,无,只有素描,115200“

生成选项已更改,在函数'bool readMessage(int,char*)‘中重新构建所有readMessage:

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

代码语言:javascript
复制
 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,的文件中

代码语言:javascript
复制
             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‘

类StaticJsonBuffer :公共内部组件::StaticJsonBufferBase{

代码语言:javascript
复制
   ^

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

代码语言:javascript
复制
 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

消息:74: error:'class ArduinoJson::JsonObject‘没有名为'printTo’的成员

代码语言:javascript
复制
 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”未在此范围内声明

代码语言:javascript
复制
 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,的文件中

代码语言:javascript
复制
             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‘

类StaticJsonBuffer :公共内部组件::StaticJsonBufferBase{

代码语言:javascript
复制
   ^

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

代码语言:javascript
复制
 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

                                   ^

消息:82: error:'class ArduinoJson::JsonObject‘没有名为“成功”的成员

代码语言:javascript
复制
 if (!root.success())

           ^

消息:88:错误:'ArduinoJson::Internals::enable_if >::type‘没有名为“成功”的成员

代码语言:javascript
复制
 if (root["desired"]["interval"].success())

                                 ^

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

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

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

任何帮助,这将是非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 03:19:05

造成此错误的原因是您安装了ArduinoJson版本的>= 6。默认版本6.2.3-beta将被安装,但是版本6和更高版本的将被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版本适用于我。

参考ArduinoJson回购问题物联网-枢纽-羽毛-胡扎-客户端-应用程序回购

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51555386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档