STM32学习之NB | 您所在的位置:网站首页 › 怎么把天翼云盘费10元 › STM32学习之NB |
一. 平台配置 1.1 平台注册 本次项目使用的是电信的NB卡,对应的平台为天翼物联(AIoT),平台链接: https://sso.ctwing.cn/login#/https://sso.ctwing.cn/login#/ 进入后先注册一个自己的账号,随后登陆。 1.2 产品注册 登陆后等待平台加载一会儿,完成后点击右上角的控制台。 如果想要接入自己的 NB-IoT 设备,首先需要开通“天翼物联网平台(AIoT)-通用组件服务”。在“应用向导_AEP”页面,点击“立即开通”按钮(该服务可以免费开通)。 开通服务之后,可以在左侧导航栏的“设备管理”-> “产品”菜单里,点击右上角的“创建产品”开 始创建产品。 填写产品的参数,大家根据自己的项目做相应修改,博主设置的参数如下: 产品名称: 小熊座 NB-IoT 开发板产品分类: “智慧城市”->“环境感知”-> “温湿度监测”节点类型: 选择“设备”接入方式: 选择“设备直连”网络类型: 选择“NB-IoT”通信协议: 选择“LWM2M”(Ligh Wweight Machine to Machine)数据加密方式: 选择“明文”认证方式: 这里选择“IMEI 认证”Endpoint 格式: 这里选择 “imei”是否已有电信官方认证通过的 profile: 这里选择“否”设备型号: 这里设置为 “BC28”是否透传: 这里选择“否”消息格式: 这里选择“紧凑型二进制”省电模式: 这里选择“PSM”产品描述: 基于NB-IoT的智能路灯1.3 添加设备 点击进入刚添加的设备(这里博主就用前边做的项目做演示了) 先点击“设备管理”,再点击“添加设备”(大家做到这一步时下边马赛克那一行应该是空白的,此处是博主偷懒直接用了前边配置好的项目)。 这里需要填入设备的 IMEI 号,IMEI号可以在 BC28 模块上使用 AT 命令“AT+CGSN=1”获取。 另外还可以选填设备的 IMSI 号,它可以使用 AT 命令“AT+CIMI”获取。(直接通过串口调试助手向BC28模块发送这两个AT指令即可获取) 添加完成之后就可以看到新添加的设备了 (此时大家的设备还未激活,状态那一栏应为“未激活”状态,如何激活在后续会讲到)。 1.4 新增属性 这里以上报温度为例,讲解如何添加上报温湿度的服务。 点击产品 ----> 服务定义----> 属性列表,框2中的是默认的多个属性,它们是这个模型的必选选项。 如果我们要上报的数据类型在这里不存在,则可以点击“新增属性”按钮来添加新的属性。这里博主添加了一个“温度”属性,并配置了相应参数。 设置属性的长度为 4 字节, 也就是说我们在上报温度时需要用 4 个字节长度表示温度值。(这里的属性标识大家可以自定义,图中是灰色的是因为博主之前定义过了,这里是修改界面) 配置完成后点击确定,可看到自定义功能的属性列表中出现了自己刚刚配置的属性,其中属性ID为43,这个ID在接下来会用到。 1.5 新增服务 有了属性之后,接下来我们要添加服务。具体方法是 点击 产品----> 服务定义----> 服务列表。在这里有一 些默认的服务,每个服务都有一个相应的服务 ID,如 1、2、9001、9002 等。现在我们要添加上报温度的 服务,则可以点击右下角的“新增服务”按钮。 根据自己需求配置服务参数,注意这里的服务 ID 不能重复,这里就直接与其属性 ID 保持一致。 这里的参数列表点击“添加属性”,在“属性名称”中选择上一步加入的“温度”属性。 参数配置完成后点击确定,完成后自定义功能的服务列表中可以看到新增的服务。 接下来就可以使用这个服务来上报当前温度了。 二. 连接平台 首先,通过 AT 命令配置设备上电后自动连接电信云 IoT 云平台服务。 (1) AT+NCONFIG=AUTOCONNECT,TRUE //设置 NB-IoT 上电后自动附着网络 返回: OK (2) AT+NCDP=221.229.214.202,5683 //设置 IoT 平台服务器地址和端口为电信云平台 返回: OK (3) AT+QREGSWT=1 //设置附着网络后自动触发电信 IoT 云平台服务器连接 返回: OK (4) AT+NRB //重启 NB-IoT 模块 返回: REBOOTING H??_x0010_ Boot: Unsigned Security B.. Verified Protocol A.. Verified Apps A...... Verified REBOOT_CAUSE_APPLICATION_AT Neul OK (5) AT+CGPADDR //查看 NB-IoT 模块后,是否能正常附着网络并获取到 IP 地址 返回: +CGPADDR:0,21.74.168.172 OK AT+NCDP? //查看 IoT 云平台的配置是否正确 返回: +NCDP:221.229.214.202,5683 OK AT+NMSTATUS? //查询 NB-IoT 是否成功注册上电信 IoT 云平台 返回: +NMSTATUS:MO_DATA_ENABLED OK 此时还不用在开发板上编写程序,通过串口调试助手依次发送上方的AT指令。(注意:BC28波特率为9600,一定要勾选发送新行"\r\n")
当开发板上的 NB-IoT 模块注册到云平台上后,我们在云平台上可以看到设备状态从“已注册”变成了“已激活”。 三. 数据上报 接下来使用 AT 命令测试上报当前温湿度值过程。 在开始上报之前,我们需要了解电信云平台中的 数据报文编码格式,具体参考《中国电信物联网开放平台 2.1 接入指导手册.pdf》文档。(下图是从别的地方扒过来的) 从上图可知,数据报文格式为: 目前要做上报数据,所以CMDType 定义为0x02(表示上报报文),如果是下发的命令则为0x06;DatasetID(服务 ID),从上图可以看出上报相对湿度的服务ID值为43,所以DatasetID值为002B;PayloadLength是数据的长度,在服务中可以看出相对湿度属性的数据长度为 4 字节,所以该字段为 0004;PayloadData是要上传的数据,就是当前温度值,假设当前温度为28℃,则该字段为0000001C。综上,目前使用NB-IoT上报当前温度值28℃的报文为:02002800040000001C。 接下来在开发板上可以使用“AT+QLWULDATAEX”命令来发送这个报文数据到所连接的电信 IoT云平台上。 AT+QLWULDATAEX=9,02002B00040000001C,0x0100 9:表示后面要发送的数据长度,02002B00040000001C是十六进制,长度为9个字节;0200xxxxxxxx:要上报的数据报文二进制编码;0x0100:表示 Send CON message;关于命令的详解请看BC28模块对应AT手册。 如下图是上报当前湿度和当前温度的命令执行情况。(发送时注意波特率9600,勾选发送新行) 发送后等待几秒,刷新平台界面,进入设备查看数据,能看到数据上报成功。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |