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

猜你喜欢

转载自blog.csdn.net/JIANGYINGH/article/details/112479518