项目简介
本项目借助C语言实现了LoRaMQTT - SN通信系统,通过LoRa通信技术达成MQTT - SN客户端功能。MQTT - SN是MQTT的简化版本,适用于资源受限设备和低带宽环境。此系统为LoRaWAN网络设备赋予MQTT - SN客户端能力,可进行设备初始化、连接、断开连接、消息发布与订阅等操作。
项目的主要特性和功能
- 为LoRaWAN网络设备实现MQTT - SN客户端功能。
- 支持利用LoRa技术进行长距离、低功耗无线通信。
- 支持MQTT - SN协议的消息发布和订阅操作。
- 有效管理设备的连接和断开连接流程。
- 保障设备在连接与通信过程中的稳定性和可靠性,具备错误处理和状态管理功能。
- 涵盖内存分配、释放管理以及使用情况监控。
- 运用AES加密和CMAC消息完整性检查,确保通信数据安全完整。
安装使用步骤
依赖
- 三个B - L0722Z - LRWAN设备,分别作为网关的RxDevice和TxDevice以及客户端设备。
- 三个USB - UART转换器。
- 安装GNU Arm Embedded Toolchain,下载地址:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
- 安装STM32CubeProgrammer,下载地址:https://www.st.com/en/development-tools/stm32cubeprog.html
构建步骤
1. MQTT - SN网关
make SENSORNET=loralink
2. 传感网络设备
- 网关的RxDevice
make TYPE=RXMODEM 使用STM32CubeProgrammer将Build/Firmware.bin下载到B - L0722Z - LRWAN。
- 网关的TxDevice
touch AppSrc/test.c make TYPE=TXMODEM 使用STM32CubeProgrammer将Build/Firmware.bin下载到B - L0722Z - LRWAN。
- 客户端设备
touch AppSrc/test.c make TYPE=CLIENT LOG=DEBUGLOGENABLE 使用STM32CubeProgrammer将Build/Firmware.bin下载到B - L0722Z - LRWAN。
配置与部署
- 根据具体应用需求,配置项目参数,如设备ID、信道、同步字等。
- 使用C语言编写代码,通过STM32的HAL库进行硬件抽象层操作。
- 利用STM32的开发工具链进行编译和调试。
- 将编译后的代码部署到STM32微控制器,并连接LoRa硬件模块开展通信。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】