当前位置: 首页 >应用方案 >技术应用 >

LoRa模块需要自己写协议吗?AT指令新手入门教程

第一次拿到LoRa模块,很多新手都会问同一个问题:这模块需要自己写协议栈吗?答案是:完全不需要。市面上的主流LoRa模块出厂就支持透明传输模式,你只需要通过串口发数据,另一端就能原样收到,跟用一根虚拟串口线一样简单。本文从透明传输原理、AT指令详解、实战配对通信、自定义协议必要性四个维度,带你零基础入门LoRa模块开发,3分钟跑通第一个无线通信链路。


一、透明传输:开箱即用,无需写协议

1.1 什么是透明传输?

透明传输是LoRa模块最常用的工作模式。模块内部自动完成数据的打包、调制、发送、接收、解调全流程,用户只需要通过串口把原始数据发给模块,另一端就会原样输出收到的数据——发什么,收什么,整个过程对用户来说就像在用一根"无线串口线"。

1.2 新手零门槛

以亿佰特E22系列LoRa模块为例,出厂默认参数为波特率9600、8N1、透明传输模式。两个模块接上串口转USB工具,打开串口调试助手,配置好相同参数,直接输入数据,对方就能收到——不需要写任何代码。

1.3 通信模式对比

通信模式

描述

适用场景

需要写协议吗?

透明传输

串口输入什么,对方就输出什么

传感器数据采集、远程控制

不需要

定点传输

发送时附加目标地址和信道,模块选择性接收

多节点组网

需在数据前加地址头

广播传输

地址设为0xFFFF,同信道所有模块都能收到

批量控制、群发通知

不需要

监听模式

地址设为0xFFFF,监听同信道所有数据

协议分析、网络调试

不需要

二、AT指令模式vs SPI直驱模式

对比维度

AT指令模式(串口)

SPI/寄存器直驱模式

开发难度

极低

较高

硬件接口

仅需UART串口(2根线)

需SPI接口(6根线+中断引脚)

底层控制力

有限(模块固件封装了底层)

完全控制(可自定义调制参数)

代码量

0~10行(串口收发即可)

500~2000行

适用人群

新手、快速原型、非嵌入式专业

有经验的嵌入式开发者

LoRa模块的开发方式主要有两种,各有各的适用场景。

AT指令模式下,模块内部已经固化了完整的通信协议栈,用户只需通过串口发送AT指令即可配置参数和收发数据,是目前最推荐新手入门的方式。SPI直驱模式适合对功耗、速率、频段有特殊要求的进阶开发者。

三、AT指令详解

以亿佰特E22系列LoRa模块为例,AT指令集覆盖配置、查询、收发三大类功能。

通用测试指令: AT(测试通信)、AT+VER(查询固件版本)、AT+REBT(重启模块)、AT+RESTORE(恢复出厂设置)。

无线参数配置指令: AT+ADDR=<addr>(设置地址,0~65535)、AT+CHANNEL=<ch>(设置信道,0~80)、AT+NETID=<id>(设置网络ID,0~255)、AT+KEY=<key>(设置通信密钥)、AT+UART=<baud>,<parity>(设置串口波特率)。

模式切换指令: AT+MODE=<mode>(0=透传模式,1=定点模式,3=配置模式)、AT+EXAT(退出配置模式进入透传)、+++(透传模式下返回命令模式)。

所有AT指令以AT+ 开头,以回车换行结束,返回统一以 +OK 或 +ERR 开头。

四、实战:两个LoRa模块配对通信

下面以两个E22系列LoRa模块为例,演示完整的配对通信流程。

硬件准备: 两个LoRa模块、两个USB转TTL串口工具、杜邦线若干、串口调试助手。

接线方法: 模块的VCC接3.3V,GND接GND,TXD接串口工具的RXD,RXD接串口工具的TXD。M0和M1同时接地进入传输模式。

配置模块A: 打开串口调试助手,设置波特率9600、8N1,发送以下指令:

AT+ADDR=1001 — 设置模块A地址为1001

AT+CHANNEL=23 — 设置信道23

AT+NETID=1 — 设置网络ID为1

AT+MODE=0 — 切换到透传模式

AT+EXAT — 退出配置模式,进入透传

配置模块B: 同样步骤,地址设为1002,信道和网络ID必须与模块A一致。

关键要点: 两个模块的信道、网络ID、密钥、空中速率必须设置一致,否则无法通信。

收发测试: 将两个模块的M0和M1都接地,在模块A的串口助手中输入"Hello LoRa!"并发送,模块B的串口助手中应该立即收到同样的内容。这就是透明传输——发什么,收什么。

五、什么时候需要自定义协议?

虽然透明传输开箱即用,但在实际项目中,有些场景需要加一点简单的协议来保证数据可靠性。

不需要自定义协议的场景: 单向传感器上报(传感器定时发一个数值)、简单的遥控开关(发"ON"开灯、"OFF"关灯)、调试测试环境。

需要自定义协议的场景:

1. 数据粘包:多个数据包连续发送时,接收端无法区分边界。解决方案是在数据前后加帧头和帧尾标记。

2. 数据错误:电磁干扰导致数据位翻转。加CRC校验,接收端校验不通过则丢弃。

3. 丢包:信号遮挡导致数据没发过去。加ACK确认和超时重传机制。

4. 多传感器区分:多个传感器数据混在一起,不知道来自谁。加设备ID字段。

一个简单的自定义协议格式: 帧头(2字节)+ 设备ID(1字节)+ 数据类型(1字节)+ 数据长度(1字节)+ 数据(N字节)+ CRC校验(2字节)+ 帧尾(2字节)。对于新手,建议从最简单的"帧头+数据+帧尾"开始,等系统稳定后再逐步增加校验和重传。

六、开发路线建议

1. 入门期(第1天):用AT指令+透传模式,跑通两个模块对发数据;

2. 进阶期(第2~3天):学习定点模式,实现多节点轮询通信;

3. 实战期(第1周):加入简单的帧头+校验,提高数据传输可靠性;

4. 深入期(第2周):学习SPI直驱模式,实现低功耗休眠唤醒和控制。

总结

LoRa模块开发并没有想象中那么复杂。对于新手来说,AT指令模式加透明传输是最快入门的方式——两个模块上电接好,发数据就能收,3分钟就能跑通第一个通信链路。透明传输模式下,模块内部完成了所有无线通信的底层工作,用户只需要关心自己的数据内容。等基础通信跑通了,再根据项目需求逐步加入定点模式、帧头校验、重传机制等进阶功能,一步步把通信方案做扎实。

亿佰特(Ebyte)作为深耕物联网无线通信领域的国家高新技术企业,提供从无线数传模块到通信设备的全链路产品矩阵,所有产品均通过无线电发射设备型号核准,支持-40~+85℃工业级宽温工作,已在智慧农业、工业物联网、智慧城市等领域规模化落地。

如需进一步了解LoRa模组选型或获取技术支持,欢迎通过以下方式联系亿佰特专业团队:


相关阅读:

1、亿佰特LoRa模块产品方案选型与应用指南技术参考

2、LoRa模块从入门到精通:技术原理、选型指南与常见问题全解

3、什么是LoRa模块?LoRa模块使用指南及常见问题

4、LoRa模块空中速率与通信距离配置指南扩频因子链路预算

5、LoRa模块的选择和使用技巧指南


点击拨打: 亿佰特官网 4000-330-990