尝试连接NodeMCU到Microsoft Azure IoT Hub存在的问题

我正在尝试通过MQTT协议将运行最新NodeMCU构建的ESP8266连接到Microsoft Azure IoT Hub。

似乎可以做到这一点,如下所示...

http://thinglabs.io/workshop/esp8266/sending-d2c-messages/

就我所知,我正在使用正确的语法,来自MS Azure的帮助文档...

https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support

与ThingLabs的示例不同,该示例使用NodeMCU创建SAS令牌,我已按照MS文档生成SAS令牌,用于测试目的。

我的LUA代码如下...

-- 创建变量

DEVICE = "测试设备"
IOTHUB = "mynewiothub.azure-devices.net"
PORT = 8883
USER = IOTHUB.."/"..DEVICE.."/api-version=2016-11-14"
PASS = "SharedAccessSignature sr=mynewiothub.azure-devices.net%2Fdevices%2Ftestdevice&sig=Roa5P8BPiGj...v2Vu%2Bm1j9sas%3D&se=1485704099"

-- 创建MQTT客户端

azure = mqtt.Client(DEVICE, 60, USER, PASS)

-- 通过MQTT连接到IoTHub

azure:connect(IOTHUB, PORT, 1, 0,
    -- 成功连接的回调
    function(client)
        print("已连接")
    end,
    -- 连接失败的错误回调
    function(client, reason)
        print("连接错误: "..reason)
    end
)

响应总是连接错误: -5,这转换为“在指定的IP地址和端口上没有代理监听”。

我怀疑NodeMCU在SSL(端口8883)连接上遇到了麻烦。因此,我确保能够使用以下代码进行HTTPS连接(在验证SSL根证书后),这有效但没有帮助。

http.get("https://example.com/info", nil,
function (code, resp)
     print(code, resp)
end)

我似乎无法使其工作!@Marcel Stör - 有什么想法吗?

非常感谢您的帮助。

点赞
用户2417099
用户2417099

我曾经遇到过相同的错误 Error Connecting: -5,我已经设置了 ESP 的时间,这样就修复了这个错误。

关于 sntp,您可以在 http://thinglabs.io/workshop/esp8266/sending-d2c-messages/ 找到一些信息(正如您所提到的)。

2017-06-05 10:51:18