使用u-Blox SARA-R422M8S模块通过MQTT AT命令无法登录Azure IoT Hub
你遇到的Broker connection refused, not authorized错误是MQTT连接鉴权参数不匹配导致的,具体排查和解决方法如下:
- 核心参数顺序配置错误:u-Blox SARA-R4系列的
AT+UMQTT=4命令参数顺序为客户端ID,用户名,密码,你当前把IoT Hub要求的用户名格式填到了客户端ID的位置,直接导致鉴权失败。
Azure IoT Hub MQTT连接要求的三个核心参数为:- 客户端ID:必须填写你的设备ID,即示例中的
mydev - 用户名:格式为
{IoT Hub名称}.azure-devices.net/{设备ID}/?api-version=2018-06-30,也就是你当前填到客户端ID位置的内容 - 密码:即为你生成的有效SAS令牌
- 客户端ID:必须填写你的设备ID,即示例中的
- 命令格式错误:你当前使用的
AT+UMQTT=4命令末尾多了一个多余的双引号,会导致模块解析命令时SAS令牌被截断或识别异常。 - 潜在校验点:确认你的SAS令牌生成时使用的资源URI为
{IoT Hub名称}.azure-devices.net/devices/{设备ID},且令牌未超出有效期。
修改后的AT命令参考:
AT+USECPRF=0 AT+USECPRF=0,0,1 AT+USECPRF=0,3,"root_ca" AT+UPSD=0,0,0 AT+UPSD=0,100,1 AT+UMQTT=11,1,0 AT+UMQTT=2,"myhub.azure-devices.net",8883 # 调整参数顺序,删除多余双引号 AT+UMQTT=4,"mydev","myhub.azure-devices.net/mydev/?api-version=2018-06-30","mysas"
调整参数后重新发起连接即可解决鉴权失败问题。
内容的提问来源于stack exchange,提问作者rolar
相关产品推荐
相关产品推荐

