问题描述
我能够使用 python 示例成功连接到我创建的 IoT Edge。但是,相同的配置不适用于我的实际下游设备(ESP8266)。
下游设备(ESP8266)配置
我为 ESP8266 使用以下示例:https://github.com/Azure/azure-iot-arduino/tree/master/examples/esp8266/iothub_ll_telemetry_sample
在代码中添加了证书和连接字符串:
// DEVICE_CONNECTION_STRING
HostName=iot-edge.leister;DeviceId=wemosd1mini;SharedAccessKey=XXXXXXXXX=
// CERTIFICATE
// same certificate as in python example (content of file azure-iot-test-only.root.ca.cert.pem)
static const char edgeCert [] =
"-----BEGIN CERTIFICATE-----\r\n"
...
"-----END CERTIFICATE-----\r\n";
IoTHubDeviceClient_LL_SetOption(device_ll_handle,OPTION_TRUSTED_CERT,edgeCert);
边缘设备配置
我根据文档配置了一个 raspberry pi(使用文章中提到的演示证书)https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway?view=iotedge-2018-06
我可以使用命令 openssl s_client -connect iot-edge.leister:8883 -CAfile "C:\Users\micha\Desktop\azure-iot-test-only.root.ca.cert.pem" -showcerts
结果:验证返回代码:0(确定)
ESP8266 日志
Creating IoTHub Device handle...
Sending message 1 to IoTHub...
dowork TLSIO_STATE_OPENING_WAITING_SOCKET
dowork TLSIO_STATE_OPENING_WAITING_SSL
Error opening socket 0
Calling error callback
The device client has been disconnected
Error: failure opening connection to endpoint
我无法使用相同配置连接到我的 IoT Edge,将 ESP8266 作为下游设备。
可以在此处找到更多详细信息:https://github.com/Azure/azure-iot-sdk-c/issues/1902
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)