移远通信BC26-墨子号连接新版OneNET云平台并上传数据
-串口调试助手AT指令实现
一、硬件连接
本次测试中,需要使用到USB转TTL模块以及BC26模块,接线正确之后插入电脑USB口即可。
引脚连接:
USB转TTL | BC26 |
---|---|
5V | VIN |
GND | GND |
TX | RXD |
RX | TXD |

一、OneNET云平台产品及设备创建
-
注册并登录OneNET云平台,然后进入开发者中心
-
创建产品,在产品开发中点击创建产品
-
产品参数配置
- 选择产品品类:随便选择一个即可
- 选择智能化方式:选择设备接入
- 填写信息:其中最主要的是接入协议,选择MQTT;数据协议选择数据流,这是最重要的,如果不选择数据流,OneNET没法解析BC26上传的数据,目前我也还没找到问题的原因以及解决办法。
-
产品创建完之后,点击产品开发,开始创建模板
-
点击创建模板
-
数据流模板信息填写,其中的数据流名称,是设备将数据上传到云平台所需要的标识符
-
数据流模板创建完之后,直接点击发布量产,发布产品
-
产品发布完之后,点击设备管理,进入设备管理,创建设备
-
在设备管理中点击添加设备
-
设备信息填写,填写一个设备名称即可
二、串口调试助手控制BC26模块连接OneNET云平台,实现数据的上传
打开串口调试助手,开始发送AT指令、这里我提前写好了所需的AT指令,接下来只需挨个发送就好了,注意勾选发送新行再发送
-
AT测试
- 发送:AT
- 返回:OK
- 返回OK表示成功
-
查询是否有卡
-
发送:AT+CIMI
-
返回:460083501704154
OK
-
如果有卡,会返回 卡号和OK,如果没有卡,会返回 ERROR
-
-
查询物联网卡注册网络情况
-
发送:AT+CGATT?
-
返回:+CGATT: 1
OK
-
如果注册成功,会返回 1,如果失败,返回 0
-
-
查询信号
-
发送:AT+CSQ
-
返回:+CSQ: 13,0
OK
-
如果注册网络成功,会有信号产生,最大 31,如果信号小于 10,说明当前网络信号不佳。
-
-
BC26版本设置。对于移远的BC26芯片,支持两种MQTT版本,分别是MQTT3.1和MQTT3.1.1,默认的是3.1版本,但是OneNET只支持3.1.1版本,所以需要使用以下命令去设置MQTT版本,指令中的4代表着版本为3.1.1,若为3则代表3.1版本
- 发送:AT+QMTCFG=“version”,0,4
- 返回:OK
- 返回OK表示成功
-
连接OneNET的MQTT服务器
-
发送:AT+QMTOPEN=0,“mqtts.heclouds.com”,1883
-
返回:+QMTOPEN: 0,0
OK
-
返回值QMTOPEN后跟的是0,0,才能表示连接成功,如果不是0,0,就需要返回值来确定是什么原因了,官方手册标注的有
- 至于OneNET云平台的MQTT服务器地址以及端口号为什么会是mqtts.heclouds.com,1883,可以去云平台官网文档中心查看OneNET - 中国移动物联网开放平台 (10086.cn)
-
-
连接设备,在BC26模块连接服务器成功之后要尽快连接设备,否则不容易连上
-
发送:AT+QMTCONN=0,“nbtest2”,“lHPn561y7K”,“version=2018-10-31&res=products%2FlHPn561y7K%2Fdevices%2Fnbtest2&et=1758869366&method=md5&sign=WFZpV1T96lVsaiGEZahJZQ%3D%3D”
-
返回:+QMTCONN: 0,0,0
OK
-
其中第一个参数表示MQTT Socket 标识符,范围:0-5。本例中使用0,第二个参数为在OneNET云平台上创建的设备名称,第三个参数为产品ID,第四个参数为设备密钥经过token工具转换而来的token密码
-
设备名称,产品ID,设备密钥获取,在设备接入管理->设备管理->设备详情中即可查看。
-
token工具获取:为便于开发者开发,OneNET平台提供Token生成工具,下载连接:https://linklab.tinylink.cn/static/teacherResources/dai/selfExps/v354/v354.html?time=1693525801531
- token参数填写说明
-
以下是我自己的参数填写,你们在填写时将产品ID,设备名称,密钥key换成自己的即可,参数输入完之后点击Generate即可生成连接OneNET的密码⑤
-
res:products/lHPn561y7K/devices/nbtest2
-
et:1758869366
-
时间戳转换工具连接:时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu)
- key:WmVnZ3BpclEza0pJSXhxREZmRE5RUVZWRUdpTDg3bXM=
-
设备连接成功之后,OneNET上的设备就会显示在线了
-
-
数据发布
- 发送:AT+QMTPUB=0,0,0,0,“$sys/lHPn561y7K/nbtest2/dp/post/json”,{“id”:111,“dp”:{“lux”:[{“v”:45}]}}
- 返回:+QMTPUB: 0,0,0
- 返回+QMTPUB: 0,0,0表示数据发布成功
- 以上使用的是我自己的产品ID和设备名称,你们在使用的时候记得修改
数据发布成功之后便可以在云平台上看到上传的数据了
三、总结
- 以上是最简单的利用串口调试工具来实现墨子号(移远)BC26连接OneNET云平台的基本流程,为后面使用STM32开发板来实现BC26对STM32获取到的数据进行传输到云平台做准备。
- 通过串口调试助手,熟悉了BC26的AT指令工作流程,以及了解了BC26与OneNET云平台进行数据交互的数据格式
- 想要深入的了解其中的内涵,建议大家去看移远官网给的BC26_MQTT指导手册下载专区 | 移远通信 (quectel.com)、墨子号OneNET接入新版本平台使用说明指导书(找客服要一份)、OneNET文档中心数据点topic簇_开发者文档_OneNET (10086.cn)