MQTT package based on Quectel BC28 AT module
bc28_mqtt 是基于移远 BC28 模块 AT 固件的 MQTT 软件包,使用 UART 与 MCU 通信,目前实现了与阿里云物联网平台的连接。
从手册来看,BC35-G、BC28 和 BC95 的 AT 指令是兼容的,因此本软件包应该同时支持这三类模组。
- 接口简单易用
- 支持掉线重连
- 支持多实例
- 线程安全
名称 | 说明 |
---|---|
docs | 文档目录 |
examples | 例子目录 |
inc | 头文件目录 |
src | 源代码目录 |
bc28_mqtt 软件包遵循 LGPL-2.1 许可,详见 LICENSE
文件。
-
RT-Thread 4.0+
-
AT 组件,需要开启 at client 功能
RT-Thread Components ---> Network ---> [*] AT commands ---> -*- Enable AT commands client
使用 bc28_mqtt 软件包需要在 RT-Thread 的包管理器中选择它,具体路径如下:
RT-Thread online packages --->
internet of things --->
[*] BC28 MQTT: connect to Aliyun with Quectel BC28 model --->
保存配置参数后,使用 pkgs --update
命令更新包到 BSP 中。
版本 | 说明 |
---|---|
v0.0.1 | 基本实现 BC28 客户端初始化,建立 MQTT 通道 |
latest | 目前支持 MQTT 连接阿里云物联网平台,将持续维护、优化代码 |
建议开发者使用 latest 版本。
目前有如下几个配置项:
配置项 | 数据类型 | 说明 |
---|---|---|
AT client device name | string | AT Client 串口设备名称,如 uart3 |
Select baud rate | int | 串口波特率,可选 4800、9600、115200 |
Select operating band | int | BC28 模块工作频段,可选 1、3、5、8、20、28 |
Reset pin | int | BC28 复位引脚号 |
ADC pin | int | BC28 ADC 引脚号(暂时无效) |
Product Key | string | 阿里云三元组信息 |
Device Name | string | 阿里云三元组信息 |
Device Secret | string | 阿里云三元组信息 |
Keep-alive time | int | MQTT 保活时间 |
int bc28_mqtt_auth(void); /* 配置阿里云设备信息 */
int bc28_mqtt_open(void); /* 为MQTT客户端打开网络 */
int bc28_mqtt_close(void); /* 关闭MQTT客户端网络 */
int bc28_mqtt_connect(void); /* 连接客户端到MQTT服务器 */
int bc28_mqtt_disconnect(void); /* 断开客户端与MQTT服务器的连接 */
int bc28_mqtt_subscribe(const char *topic); /* 订阅topic主题 */
int bc28_mqtt_unsubscribe(const char *topic); /* 取消订阅topic主题 */
int bc28_mqtt_publish(const char *topic, const char *msg); /* 发布msg消息到topic主题 */
void bc28_bind_parser(void (*callback)(const char *json)); /* 绑定JSON解析函数 */
注意:使用 bc28_mqtt_publish
函数时需事先构建 msg 消息,默认采用定长消息方式发布,因此 msg 字符串末尾不需要添加 \x1A
字符( CTRL + Z )。
int bc28_client_attach(void); /* UE附着网络 */
int bc28_client_deattach(void); /* UE去附着 */
int bc28_init(void); /* 初始化BC28模块 */
int bc28_build_mqtt_network(void); /* 建立MQTT通信网络 */
int bc28_rebuild_mqtt_network(void); /* 重新建立MQTT通信网络 */
bc28_mqtt 接口简单,代码请参考示例 example/bc28_mqtt_sample.c
见 docs 目录。