【发布时间】:2019-01-25 03:51:42
【问题描述】:
全部,
我正在使用我的 Adafruit Feather Huzzuh 开展一个项目。
我正在学习以下教程。
https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-arduino-huzzah-esp8266-get-started
顺便说一句,仍在使用 Arduino IDE。
板子和 DHT 传感器以前工作过。
我相信所有的包都安装好了。
我使用的开源代码来自:
https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app.git
当我尝试编译 app.ino 主文件 (https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app/blob/master/app/app.ino) 时出现编译器错误。
错误是:
Arduino:1.8.5(Windows 10),板:“Adafruit Feather HUZZAH ESP8266, 80 MHz, 闪存, 4M (3M SPIFFS), v2 Lower Memory, Disabled, None, Only 素描,115200"
C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:在函数“布尔”中 readMessage(int, char*)':
消息:46:错误:“StaticJsonBuffer”未在此范围内声明
StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer; ^C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:46:5: 注意:建议 替代方案:
在 C:\Users\edwin\Dropbox\Projects\Arduino 包含的文件中 项目\库\arduino_163901\src/ArduinoJson/StaticJsonDocument.hpp:8:0,
from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.hpp:10, from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.h:9, from C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:2:C:\Users\edwin\Dropbox\Projects\Arduino 项目\库\arduino_163901\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' 没有名为的成员 '打印到'
root.printTo(payload, MESSAGE_MAX_LEN); ^C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:在函数 'void parseTwinMessage(char*)':
消息:80:错误:“StaticJsonBuffer”未在此范围内声明
StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer; ^C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:80:5: 注意:建议 替代方案:
在 C:\Users\edwin\Dropbox\Projects\Arduino 包含的文件中 项目\库\arduino_163901\src/ArduinoJson/StaticJsonDocument.hpp:8:0,
from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.hpp:10, from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.h:9, from C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:2:C:\Users\edwin\Dropbox\Projects\Arduino 项目\库\arduino_163901\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' 没有名为的成员 '成功'
if (!root.success()) ^message:88: error: 'ArduinoJson::Internals::enable_if >::type' 有 没有名为“成功”的成员
if (root["desired"]["interval"].success()) ^退出状态 1 'StaticJsonBuffer' 未在此范围内声明
此报告将包含“显示详细输出”的更多信息 在文件 -> 首选项中启用“编译期间”选项。
ArduinoJson.h 文件包含在 message.ino 文件中。
微软提供的开源代码是否损坏?
有人想解决这个问题吗?
编辑 2018-08-23
Rita Han 的回答 - MSFT 工作(将 json 库回滚到版本 5.x),我现在可以看到它连接到我的接入点的设备。我遇到了以下问题:
与 NETGEAR33 连接,通道 10 dhcp 客户端启动... ip:192.168.1.29,mask:255.255.255.0,gw:192.168.1.1 连接wifi 网件33。获取的 NTP 纪元时间为:28821。未找到 deviceId IoTHubClient_CreateFromConnectionString 失败。
我从设置下的iothubowner菜单中复制了“连接字符串-主键”:共享访问策略。
不知何故,它不接受我的共享访问密钥。我会用谷歌搜索一下来解决这个问题。感谢您的帮助。
编辑 2018-08-03 也解决了!!我在串行监视器中看到了测量结果。需要找到一种方法将其从 DH22 更改为 DH11 ......但应该能够自己解决这个问题。在我的 Adafruit IO 尝试中也看到并解决了这个问题。
【问题讨论】:
-
嗨 borreltijd,我以前见过similar issue。您可以查看我的回答,看看是否有帮助。
-
效果很好!
-
嗨 borreltijd,很高兴听到这个消息。如果答案帮助您解决了问题,您可以accept it as the answer。谢谢。
标签: c++ esp8266 azure-iot-hub arduino-esp8266 adafruit