移远NB-IOT模组BC26使用MQTT连接阿里云调试记录

硬件形态为MCU+模组上云主要可以通过两种方式,一种方式是使用支持TCP/IP协议的模组,在MCU集成SDK;另一种是直接使用集成了MQTT协议的模组,推荐使用第二种方式,可以缩短研发周期有助于产品快速推向市场,很多厂家的模组已经集成了阿里云的SDK,本次调试主要对已认证模组移远的NB模组BC26进行评估。

一、在阿里云物联网平台新建产品和添加设备

在后面接入设备时需要用到三要素:ProductKey,DeviceName,DeviceSecret

ProductKey会在新建产品时生成,DeviceName可以自己定义,应该是只支持英文和数字,DeviceSecret会在添加设备完成后自动生成。

产品数据格式推荐使用:ICA 标准数据格式 (Alink JSON)

二、定义topic类型

topic可以设置发布和订阅的权限,

发布权限即设备可以针对该topic发布消息

订阅权限即设备可以通过订阅该topic来获取消息

topic同一时刻只能容许一个终端操作。

新建产品后会有默认的topic

通过自定义topic上报的数据,不会保存到数据存储里,

调试中用物模型通信Topic:

向/sys

### NB-IoT 数据通过 MQTT 协议传输的方法 为了实现NB-IoT数据到MQTT协议的转换并完成数据传输,需理解两者的工作机制及其集成方式。 #### 1. 理解基础概念 MQTT是一种基于发布/订阅模式的消息传递协议,专为受限环境设计,具有极低的网络流量消耗特点[^1]。此特性使得它非常适合应用于资源有限的小型设备间的数据交换场景中,比如采用NB-IoT技术接入互联网的各种传感器节点。 #### 2. 准备工作 - **硬件准备**:确保拥有支持NB-IoT功能的模块,例如文中提到的LPM2100或BC26型号,并确认这些模块已成功连接至运营商提供的蜂窝网络。 - **软件工具**:选择合适的MQTT客户端应用程序来调试和监控消息流。推荐使用MQTT.fx这样的图形界面工具来进行初步配置与测试;也可以考虑更现代化的选择如MQTTX作为替代方案[^3]。 - **服务器设置**:挑选一个可靠的MQTT代理(Broker)。对于开发阶段而言,可以选择公开可用的服务提供商,像`broker-cn.emqx.io:1883`就是一个不错的选择。 #### 3. 实现过程 当NB-IoT模组收集到来自外部世界的测量值或其他形式的信息之后,会按照预设逻辑将其打包成适合在网络上传输的形式——即构建符合MQTT标准的有效负载(payload),连同目标主题(Topic)一起提交给指定的MQTT Broker。具体来说: - 需要在NB-IoT模组内部编写相应的固件代码负责处理原始传感数据并向MQTT Server发起请求; - 发送过程中涉及的关键参数包括但不限于Socket ID、Packet ID、QoS级别以及Retain标志位等信息,这些都是用来控制消息行为的重要属性[^2]; - 成功建立连接后,即可依据实际需求定期推送更新或者响应来自其他系统的查询指令。 ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client = mqtt.Client() client.on_connect = on_connect # Connect to the broker client.connect("broker-cn.emqx.io", 1883) # Publish a message topic = "/public/scau/bc26" payload = "Hello from NB-IoT!" qos_level = 1 retain_flag = False client.publish(topic, payload=payload, qos=qos_level, retain=retain_flag) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值