Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luhuadong/rtt-bc28-mqtt
MQTT package based on Quectel BC28 AT module
https://github.com/luhuadong/rtt-bc28-mqtt
rt-thread
Last synced: about 15 hours ago
JSON representation
MQTT package based on Quectel BC28 AT module
- Host: GitHub
- URL: https://github.com/luhuadong/rtt-bc28-mqtt
- Owner: luhuadong
- License: lgpl-2.1
- Created: 2020-04-08T01:55:09.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-09T15:53:53.000Z (over 1 year ago)
- Last Synced: 2023-10-09T17:15:12.720Z (over 1 year ago)
- Topics: rt-thread
- Language: C
- Homepage:
- Size: 2.02 MB
- Stars: 20
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rt-thread - bc28_mqtt - Connect to Aliyun with Quectel BC28 model. (Packages / IoT)
- awesome-rt-thread - bc28_mqtt - Connect to Aliyun with Quectel BC28 model. (Packages / IoT)
README
# rtt-bc28-mqtt
MQTT package based on Quectel BC28 AT module## 1、介绍
bc28_mqtt 是基于移远 BC28 模块 AT 固件的 MQTT 软件包,使用 UART 与 MCU 通信,目前实现了与阿里云物联网平台的连接。
> 从手册来看,BC35-G、BC28 和 BC95 的 AT 指令是兼容的,因此本软件包应该同时支持这三类模组。
### 1.1 特性
- 接口简单易用
- 支持掉线重连
- 支持多实例
- 线程安全### 1.2 目录结构
| 名称 | 说明 |
| -------- | ---------- |
| docs | 文档目录 |
| examples | 例子目录 |
| inc | 头文件目录 |
| src | 源代码目录 |### 1.3 许可证
bc28_mqtt 软件包遵循 LGPL-2.1 许可,详见 `LICENSE` 文件。
### 1.4 依赖
- RT-Thread 4.0+
- AT 组件,需要开启 at client 功能
```
RT-Thread Components --->
Network --->
[*] AT commands --->
-*- Enable AT commands client
```## 2、获取 bc28_mqtt 软件包
使用 bc28_mqtt 软件包需要在 RT-Thread 的包管理器中选择它,具体路径如下:
```
RT-Thread online packages --->
internet of things --->
[*] BC28 MQTT: connect to Aliyun with Quectel BC28 model --->
```保存配置参数后,使用 `pkgs --update` 命令更新包到 BSP 中。
## 3、使用 bc28_mqtt 软件包
### 3.1 版本说明
| 版本 | 说明 |
| ------ | -------------------------------------------------------- |
| v0.0.1 | 基本实现 BC28 客户端初始化,建立 MQTT 通道 |
| latest | 目前支持 MQTT 连接阿里云物联网平台,将持续维护、优化代码 |建议开发者使用 latest 版本。
### 3.2 配置选项
目前有如下几个配置项:
| 配置项 | 数据类型 | 说明 |
| --------------------- | -------- | ------------------------------------------ |
| 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 保活时间 |## 4、API 说明
### 4.1 MQTT 功能接口
```c
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 )。
### 4.2 网络附着和去附着
```c
int bc28_client_attach(void); /* UE附着网络 */
int bc28_client_deattach(void); /* UE去附着 */
```### 4.3 网络初始化接口
```c
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
## 5、相关文档
见 docs 目录。
## 6、联系方式
- 维护:[email protected]
- 主页: