Files

6.5 KiB
Raw Permalink Blame History

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℃,<90RH
  • 认证: 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 / RXDGPIO16GPIO17)与其产生冲突.因此,当你使用 M5Stack Fire 去驱动 LoRaWAN 模块时,你需要将 LoRaWAN 模块的 TXD 与 RXD 切断,然后通过飞线引至另一组 UART 引脚.

相关链接

EasyLoader

点击下载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);

原理图