BC20-NBIOT模块通过MQTT协议连接华为云服务器调试

2024-02-22  

当前这篇文章介绍STM32+BC20连接华为云物联网平台,实现与上位机之间进行数据交互,完成真实的产品开发。

1.1 BC20模块

BC20是一款高性能、低功耗、多频段、支持 GNSS 定位功能的 NB-IoT 无线通信模块。BC20 在设计上兼容移远通信 GSM/GPRS/GNSS 系列的 MC20 模块,方便客户快速、灵活的进行产品设计和升级。BC20 提供丰富的外部接口和协议栈,同时支持中国移动 OneNET 物联网云平台,为客户的应用提供极大的便利。


BC20支持北斗、GPS、QZSS 等多星座卫星系统解调算法,其定位更加精准,抗多路径干扰能力更强,比传统的单GPS 模块具有更多优势。另外,BC20 模块中内置 LNA 和低功耗算法:前者保证更高的灵敏度,后者保证低功耗模式下更低的耗流。

BC20 模块较传统 NB-IoT+GNSS 方案体积减少 40%。凭借其紧凑尺寸、超低功耗和超宽工作温度范围,BC20 在各种应用中占具更大优势;其主要应用领域为:自行车和摩托车防盗、宠物追踪、金融财产追踪及行车记录仪等等。

C20 模块集成了 NB-IoT 和 GNSS(GPS+BeiDou) 双系统,在网络交互的同时, 实现 GNSS 系统的
快速、精准定位, 满足客户低功耗与高定位精度的应用场景。

相比传统的具有单一 GPS 功能的模块, BC20 的主要优势如下:

a. 内嵌的 GNSS 模块,支持 GPS+BeiDou 双系统定位: 相同环境下可使用的卫星数量更多, 搜星的
b. 时间更短, 可加快定位速度, 提高定位精度;
c. NB 和 GNSS 组合的小尺寸模块, 具备优良的环境适应性, 具备低功耗、抗干扰、高精度的特性;
d. 内置 Sensor Hub 及领先的 PDR 算法,完美提升定位精度;
e. 智能的 AGPS 辅助定位功能,加快冷启动模式下的定位速度

淘宝商店地址: https://m.tb.cn/h.fOCCkgV?sm=5ffdfe?tk=MkB92eHI0ZV

image.png

模块上有两排接口,一个是GPS信号输出接口,一个是BC20控制接口。

使用USB转TTL模块,将BC20板子与电脑连起来,调试板子是否正常。

1.2 测试模块

第一步接上之后,串口调试助手选择波特率为115200,勾选软件上的发送新行选项。发送AT过去,正常模块会返回OK。

image.png

1.3 上电初始化操作

查询模块是否正常

AT


OK



获取卡号,查询卡是否插好

AT+CIMI


460041052911195


OK



激活网络

AT+CGATT=1


OK



获取网络激活状态

AT+CGATT?


+CGATT: 1


OK



查询网络质量

AT+CSQ


+CSQ: 26,0


OK

    

AT+CEREG=? //检查网络状态

+CEREG: 0,1 //找网成功

OK


1.4 开启GPS定位

官方文档:

image.png

激活GPS,要等一段时间

AT+QGNSSC=1


OK



查询激活状态,1表示成功激活

AT+QGNSSC?


+QGNSSC: 1


OK



获取一次GPS定位语句

AT+QGNSSRD="NMEA/RMC"

+QGNSSRD: $GNRMC,120715.00,A,3150.78179,N,11711.93433,E,0.000,,310818,,,A,V*19

OK


1.5 连接MQTT服务器

下面通过MC20的AT指令连接华为云服务器,上传数据测试。

官方文档:

image.png



连接MQTT服务器

AT+QMTOPEN=0,"a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com",1883


OK


+QMTOPEN: 0,0



登录MQTT服务器

命令格式: AT+QMTCONN=,,,

AT+QMTCONN=0,"6210e8acde9933029be8facf_dev1_0_0_2022021913","6210e8acde9933029be8facf_dev1","6cea55404b463e666cd7a6060daba745bbaa17fe7078dfef45f8151cdf19673d"


OK


+QMTCONN: 0,0,0



订阅主题

命令格式: AT+QMTSUB=,,"”,[,"”,…]


AT+QMTSUB=0,1,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/messages/down",2


OK


+QMTSUB: 0,1,0,2



发布主题

命令格式:AT+QMTPUB=,,,,"",""


先发送指令: 

AT+QMTPUB=0,0,0,0,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/properties/repor"


等待返回 ">" 

接着发送数据.不需要加回车。

"{"services": [{"service_id": "gps","properties":{"longitude":12.345,"latitude":33.345}}]}"

数据发送完毕,再发送结束符。 十六进制的值--0x1a  。某些串口调试助手可以适应ctrl+z 快捷键输入0xA

等待模块返回"OK",到此数据发送完成。    

OK


+QMTPUB: 0,0,0





文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。