NBIOT专栏之BC28串口连接阿里云物联网平台接发数据
作者:互联网
NBIOT专栏系列目录
创思通信BC28核心板+STM32F系列单片机开发记录博客
BC28核心板资料包下载:
https://pan.baidu.com/s/1Du7EXgMRAmbFupT_VUYxWw 提取码: 6ium
1.测试BC28模块
2.BC28串口连接阿里云物联网平台接发数据
文章目录
前言
上一篇帖子记录了BC28模块测试,在使用STM32单片机接入BC28之前,可以直接使用串口调试工具对BC28发送AT指令,连接阿里云接发消息,不直接使用单片机串口发送数据,对BC28初学者来说是非常容易理解的。那学习完串口调试助手方法之后,写STM32的代码就很好写啦!-----一、模块升级
本次实验是连接测试阿里云物联网平台,使用的是MQTT通信协议,但是BC28的模块出厂是版本较低,需要升级到07版本才可以支持通信MQTT,所以要记得升级版本至07版本。升级步骤:
1.选择型号、端口号、07版本固件文件。
2.点击Query version 出现成功字样后,点击下载DownLoad。
3.下载成功后会提示重新复位模块,按下BC28板子上的复位键即可。
二、接入阿里云物联网平台
接入阿里云的通信协议是MQTT通信协议,如果对MQTT想继续了解可以查看我的MQTT博文,快速通道->物联网通信MQTT。
1.阿里云创建设备
(1)创建产品
创建属于自己的产品,每个产品有自己的产品Key,每个产品包含了许多相似的设备,如下是我创建的产品截图,联网方式选择蜂窝方式,其他自定义即可。
(2) 添加设备
在自己的产品下面创建设备,这个设备就是咱们的NBIOT设备了,我的设备名称是BC28,也可以自定义。
创建成功之后,这个设备会显示未激活状态,未激活状态是因为设备一次也没有连接阿里云物联网平台,属于正常现象,连接成功就可以了。
(3)获取设备的三元组信息
三元组信息是NB设备连接阿里云的标志,后面需要用到的!下面是我的三元组信息(帖子写完我会删除掉的!休想连接我的哈哈哈哈)。
(4)获取设备订阅阿里云下发消息的主题
阿里云往下发消息的时候,会通过主题下发消息,具体下发给哪个设备呢?这就需要NB设备去订阅阿里云下发消息的主题了!
在产品中找到自定义Topic,这个产品下的所有设备会有相同格式的主题,但是因为设备名称不一致所以设备的主题也不一致,我们拿到下面的主题即可,{devicename}替换成自己的设备名称,即/a1tW6nsMu2w/BC28/user/get
记下要用到!
有同学可能要问到,阿里云下发消息的主题,权限不应该是发布吗?我认为这个权限是设备对于云平台的权限,设备下发消息,那么设备需要订阅这个主题才能建立通信,所以这里是订阅权限比较合理。
(5) 获取设备属性上报消息的主题
设备向云平台发送数据时,也是通过主题发送的,这个主题是创建产品时就会用的主题,找到并修改自己的设备名称即可,注意!每个人的产品key等信息不一样,不要直接复制我的主题!
/sys/a1tW6nsMu2w/BC28/thing/event/property/post
(6)在产品下添加自定义功能
添加自定义功能的目的是为了接收NB设备发来的数据,通过标识符来接收并显示,如下,标识符是RoomHumidity,那么在发送数据时就需要保证标识符一致!添加自定义功能后发布上线,再核实是否存在。
下面。就该使用串口调试工具向BC28发送AT指令进而连接云平台解发数据了!
2.串口调试助手发送AT指令
(1)查询是否注网
发送AT+CGPADDR指令,返回OK并且能看到NB模块的IP地址即可。
(2)配置设备
发送AT指令:
AT+QMTCFG="aliauth",0,"a1tW6nsMu2w","BC28","9ef288679f79069558bbf3d82da90931"
格式为:
(3)连接阿里云并连接设备
1.连接阿里云 AT+QMTOPEN=0,“iot-as-mqtt.cn-shanghai.aliyuncs.com”,1883
在发送指令完成后马上发送连接设备指令,否则BC28会自动断开。
2.连接设备 AT+QMTCONN=0,“BC28”
这里的BC28是阿里云自己定义的设备名称。
此时阿里云设备已经显示在线。
如果连接不上设备有可能是因为超时而报错。
(4)阿里云下发消息
阿里云下发消息需要NB提前订阅阿里云的发布主题,上面说过了,这里的主题是/a1tW6nsMu2w/BC28/user/get
,发送AT指令如下:
AT+QMTSUB=0,1,"/a1tW6nsMu2w/BC28/user/get",0
阿里云平台发布消息:
串口打印接收:
(5)NB设备向阿里云发送数据
发送数据的AT指令稍微有点难搞,首先找到属性上报主题/sys/a1tW6nsMu2w/BC28/thing/event/property/post
,发送相关AT指令分为三部分。
1.AT+QMTPUB=0,0,0,0,"/sys/a1tW6nsMu2w/BC28/thing/event/property/post"
2.{params:{RoomHumidity:58.8}}
(这命令点击一次发送即可,该格式为JSON格式)
3.勾选发送HEX,发送1a,即可。(1a为回车的16进制编码)
阿里云成功接收到数据:
(6)断开设备和关闭网络
1.断开设备
AT+QMTDISC=0
2.关闭设备网络
尽量不要关闭网络。。
AT+QMTCLOSE=0
标签:NBIOT,BC28,发送,阿里,串口,接发,连接,设备 来源: https://blog.csdn.net/JIANGYINGH/article/details/112479518