MQTT是基于二进制消息的发布/订阅编程模式的消息协议;由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景,比如:智能家居、智慧城市和医疗医护;深受广大童鞋的青睐和喜爱。下面我们以SIM7028 NB-IoT HAT为例实现和阿里云的MQTT通信。
在使用时要对应要更改为自己的MQTT连接参数,此连接参数只对测试账号的设备有用 "clientId":"a1c5wcCxNLh.7028_raspi|securemode=2,signmethod=hmacsha256,timestamp=1693275393802|" "username":"7028_raspi&a1c5wcCxNLh" "mqttHostUrl":"a1c5wcCxNLh.iot-as-mqtt.cn-shanghai.aliyuncs.com" "passwd":"093aef27165c79ad6b7f1371a2d0ac74ed32582a9f068bf9ee850a5085b1f4f1" "port":1883
这里的物模型通信Topic是设置的物模型属性的topic
/sys/a1c5wcCxNLh/${deviceName}/thing/event/property/post
在使用时要对应把此topic中的${deviceName}换成自己的设备名称,例如
我建立的设备名称为7028_raspi,所以对应的topic应该为: /sys/a1c5wcCxNLh/7028_raspi/thing/event/property/post
至此阿里云物联网平台功能设置结束
AT+CMQTTSTART // 开启MQTT服务
// 申请ClientID,格式为AT+CMQTTACCQ=0,"$(clientid)",0 这里的$(clientid)填入阿里云MQTT连接参数 AT+CMQTTACCQ=0,"a1c5wcCxNLh.7028_raspi|securemode=2,signmethod=hmacsha256,timestamp=1692872147157|",0
// 连接MQTT服务器,格式为AT+CMQTTCONNECT=0,tcp://$(mqttHostUrl):$(port),2000,0,"$(username)","$(passwd)" 这里的$xxxx填入阿里云MQTT连接参数 AT+CMQTTCONNECT=0,tcp://a1c5wcCxNLh.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883,2000,0,"7028_raspi&a1c5wcCxNLh","575302c7cc51dacd0c53b7a5ade3c55552821c68b74ddec006e3ec106fbb613e"
AT+CMQTTTOPIC=0,53 // 输入发布的主题,这里的53为topic的字符长度,要按需更改 键入/sys/a1c5wcCxNLh/7028_raspi/thing/event/property/post
AT+CMQTTPAYLOAD=0,51 // 输入消息体,这里的51为消息体的字符长度,要按需更改 键入{"id":"waveshare","params":{"test":"test message"}}
这里的格式参考阿里云物模型数据上传格式 其要求为:
AT+CMQTTPUB=0,0,60 // 发布消息