【BC26】-03-对接阿里云
MQTT 部分
MQTT发送过程
AT+CGPADDR
,查询IP,获取到OK表示BC26状态正常AT+QMTCFG="aliauth",0,"gg43bimZeb9","Lighting","2790aa518d49f0ed3955254f693c0c13"
,配置阿里云AT+QMTOPEN=0,“iot-as-mqtt.cn-shanghai.aliyuncs.com”,1883
连接阿里云,在连接完成后马上需要用5发送连接设备指令,否者会自动断开AT+QMTCONN=0,"Lighting"
,连接设备,这里的lighting是阿里云自己定义的设备名称AT+QMTPUB=0,0,0,0,"/sys/a1tW6nsMu2w/BC28/thing/event/property/post"
,发布指令{params:{RoomHumidity:58.8}}
,具体数据
MQTT接收过程
AT+QMTSUB=0,1,"/a1tW6nsMu2w/BC28/user/get",0
阿里云下发消息需要NB提前订阅阿里云的发布主题
MQTT最后断开设备或关闭网络
AT+QMTDISC=0
,断开设备AT+QMTCLOSE=0
,关闭网络(不要关闭)
云平台配置
直接在aliyun上,搜索物联网云平台即可。
代码以及具体实现
串口的问题
以前的串口存在一个问题,一次只能接收一行数据,必须要每次接收多行数据才行。因此,buffer再加一个维度,得到的一个二维的buffer用于接收多行的数据。
逻辑是,以前在flag=true的时候,是直接忽略了下一次数据的输入。现在,去掉这一个限制,当前这个flag(一行数据接收完毕)的功能不用,其功能转化为判断是否接收完毕的功能,如果其值为false说明没有接收完毕,继续接收;如果为true(手动置位),说明当下这一批数据已经处理完成,不再需要,将数组清空,最后将其reset为false,进行新一轮数据的等待接收。
信息发送
参考资料
物联网通信之初识MQTT协议_JIANGYINGH的博客-CSDN博客
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xuanyao's Blog!