6.5 KiB
Module LoRaWAN {docsify-ignore-all}
📝描述 :octocat:例程 🔌原理图 🛒购买链接
EasyLoader
描述
LoRaWAN 是M5Stack堆叠模块系列中的一款,节点通信模块.该模块集成了由Ai-Thinker设计的RHF76-052模组,它是LoRaWAN™UART调制解调器&兼容设备,支持LoRaWAN通信.你可以使用M5Core作为主机MCU,然后通过简单的AT指令或UART去控制这个调制解调器.
LoRaWAN基于LoRa远距离通信网络设计的一套通讯协议和系统架构.如果按协议分层来说LoRaWAN是媒体访问控制(MAC)层,LoRa是物理层.它是由LoRa联盟维护的路由协议,主要用作管理LPWAN网关和端节点设备之间的通信的网络协议.
利用 LoRa / LoRaWAN 远距离低功耗传输的特点,并将其应用到实际项目中去提高设备工作效率.
LoRaWAN默认的串口配置: 波特率为9600,8位数据位,无校验位,1位停止位.
注意: 位于模块丝印"LoRaWAN"的下方,提供了5个穿孔用作LoRaWAN模块固件升级.
产品特性
- 内置PCB天线
- 外部天线接口
- 产品尺寸:54.2mm x 54.2mm x 12.8mm
- 产品重量:17.5g
LoRaWAN 模块规范
- 模组: RHF76-052
- 版本: C - 单频段868/915 MHz
- Radio IC: Semtech SX1276
- 微处理器: STM32L052C8T6
- 封装: SMD-33
- 尺寸: 28 x 23 x 3 mm
- 重量: 3.2g
- 接口: UART
- 协议:AT命令
- 嵌入式LoRaWAN协议栈
- 频率:868/915 MHz
- TXOP: 20dBm @ 868MHz/915MHz
- 链路估算: 160dB
- 天线: 外部 (通过PCB焊盘)
- 电源电压范围:1.8~3.6V
- 基准电源电压: 3.3V
- 睡眠模式工作电流: 1.45uA
- 协议:LoRaWAN
- 工作温度:-40~ + 85℃
- 储存温度:-40~ + 90℃,<90%RH
- 认证: FCC, CE, IC, TELEC
- 引脚说明 (数据手册, p. 6-7):
- SPI
- USART
- I2C
- USB
- ADC
- 10 GPIO
包含
- 1x LoRa Module
应用
- 自动远程抄表
- 智能交通智能停车场
- 远程灌溉及环境监测
管脚映射
| RHF76-052_UART | ESP32 Chip |
|---|---|
| RXD | U2TXD(GPIO17) |
| TXD | U2RXD(GPIO16) |
M5Stack Fire 中的 GPIO 16 / 17 默认与PSRAM连接,这使得 LoRaWAN 模块的TXD / RXD(GPIO16,GPIO17)与其产生冲突.因此,当你使用 M5Stack Fire 去驱动 LoRaWAN 模块时,你需要将 LoRaWAN 模块的 TXD 与 RXD 切断,然后通过飞线引至另一组 UART 引脚.
相关链接
EasyLoader
1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序.
2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 "Burn" 即可开始烧录
!>3.EasyLoader烧录前需要安装有CP210X(USB驱动程序),点击此处查看驱动安装教程
例程
Arduino IDE
本案例将使用两个LoRaWAN模块,实现P2P(点对点)通讯,详情请参考 LoRaWAN使用手册的3.6.
功能: 按下按键B设置LoRaWAN工作频率为433MHz,并发送字符串"Hello World". 按下按键C设置LoRaWAN工作频率为868MHz,并发送字符串"Hello World". 按下按键A清除屏幕信息.
注意: 在编译该程序前,请将 LoRaWan_for_M5Stack.rar 解压缩到该路径C:\Users\<user_name>\Documents\Arduino\libraries.
以下代码仅为片段,如需获取完整代码, 请点击此处.
/*
device_A.ino
*/
#include <M5Stack.h>
#include <LoRaWan.h>
#define SerialUSB Serial
// declaration
M5.begin();
SerialUSB.begin(9600);
lora.init();
delay(2000); // must delay for lorawan power on
// 433MHz frequency initialization
lora.initP2PMode(433, SF12, BW500, 8, 8, 20);
// 868MHz frequency initialization
lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
// send string
lora.transferPacketP2PMode("hello world");
// receive data
short length = 0;
short rssi = 0;
memset(buffer, 0, 128);
length = lora.receivePacketP2PMode(buffer, 128, &rssi, 1);
/*
device_B.ino
*/
#include <M5Stack.h>
#include <LoRaWan.h>
#define SerialUSB Serial
// declaration
M5.begin();
SerialUSB.begin(9600);
lora.init();
delay(2000); // must delay for lorawan power on
// 433MHz frequency initialization
lora.initP2PMode(433, SF12, BW500, 8, 8, 20);
// 868MHz frequency initialization
lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
// send string
lora.transferPacketP2PMode("hello world");
// receive data
short length = 0;
short rssi = 0;
memset(buffer, 0, 128);
length = lora.receivePacketP2PMode(buffer, 128, &rssi, 1);
原理图

