手把手教你用移远M26/BC28的 MQTT协议 对接阿里云IoT平台

阿里云优惠卷,戳我领取

摘要
最近做一个项目,要使用移远的M26模组,用MQTT协议将一个设备对接到阿里云的IoT平台。

1、注册阿里云IoT平台并创建产品
本文专注于写终端设备的对接流程,而不是IoT平台的配置,关于产品的创建,请看阿里的官方文档,很详细。

2、获取产品三元组

在IoT平台获取三元组ProductKey、DeviceName、DeviceSecret,这好比终端设备的身份证,有了它才能对接到阿里云平台上。
在这里插入图片描述
3、根据产品三元组,推算出MQTT协议所需的数据

1、clientID:
自己随便定义字符串 我这里示例为“12345”
2、mqttClientId:
格式为”clientID“+”|securemode=3,signmethod=hmacsha1,timestamp=10|“
3、mqttUsername:
格式为”DeviceName+&+ProductKey“
4、mqttPassword:哈希算法,得出的,后面给出了C语言库
代码示例:

	strcpy(clientID,    "12345"); 
	sprintf(mqttClientId, "%s|securemode=3,signmethod=hmacsha1,timestamp=10|",clientID);
	sprintf(mqttUsername, "%s&%s",DeviceName,ProductKey);
	sprintf(str, "clientId%sdeviceName%sproductKey%stimestamp10",clientID,DeviceName,ProductKey);
	aliyun_iot_common_hmac_sha1(str,strlen(str),mqttPassword,DeviceSecret,strlen(DeviceSecret));

以上都是MQTT协议所需的连接参数。
关于最后的aliyun_iot_common_hmac_sha1函数,是计算mqttPassword的哈希算法。
网上可以找到封装好的C语言库。

如果你看不太明白的话,可以再看这个参考文档。(初试连接阿里云IoT套件,教你一小时完成接入)。我在摸索的时候,它给了我很大的帮助。

确定自己手里的模组固件是否支持MQTT

BC28对MQTT协议栈的支持时从固件R01A07开始支持,发送AT指令查询一下,不支持的话要升级固件。

4、用BC28的AT指令,连接到阿里云平台

看下面的内容之前,建议先看一看官方的文档(BC28 MQTT官方指导文档BC28 AT指令官方文档 )。

1、ATI 命令回显
返回ok
2、AT+CPSMS=0 关闭PSM模式
ok
3、AT+CEDRXS=0,5 关闭eDRX模式
ok
4、AT+NCCID 读取sim卡串号
+NCCID:XXXXXX。。。。
5、AT+CSQ 查询信号强度
+CSQ:XX.99
6、AT+CEREG? 查看入网状态
+CEREG:0,1
7、AT+CGATT? 查看网络状况
+CGATT:1
8、AT+QMTOPEN=0,“阿里域名”,1883
ok
ps:上海华东区的域名格式为 :iot-as-mqtt.cn-shanghai.aliyuncs.com
9、AT+QMTCONN=0,“123456”
+QMTCONN: 0,0,0
ps:123456为clientID,随便定义

这样整个连接流程就OK了,在阿里云平台可以看到
在这里插入图片描述
此时产品已经上线,但是想要传输数据和接收数据还需要2个指令

10、AT+QMTSUB=0,1,“topic”,2 //订阅消息,订阅之后能接受到这里发布的消息。
ok
ps topic可以在阿里云后台找到:
在这里插入图片描述

11、AT+QMTPUB=0,0,0,1,“topic”
返回:>
然后输入要发送的数据 ,末尾带上0x1A (ctrl+Z)。
这样数据就能发布到指定的topic内,服务器订阅了这个后就能收到数据~

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值