项目介绍
本项目是ESP32+SX1302,做成LoRaWAN 多通道GW,支持packet-forward
开发环境
- IDF:V5.2.1
- IDE:VSCode+ESP-IDF插件
PCBA示意图
固件烧录
接线
1.烧录程序时接这个口,ESP32烧程序是先让设备进入烧录模式(先按住BOOT0按键,然后按下EN按键,此时ESP32重启,进入烧录模式,然后松开BOOT0按键,ESP32停留在烧录模式)
Note:
- 如果使用ESP-PROG,板上带有自动进入boot模式的功能,烧录时可以不用按按键进入boot模式
烧录软件
1.下载 flash_download_tool_3.9.6_2
2.选择芯片和下载方式
3.配置下载地址和bin文件,点击start开始下载
配置
WEB 配置
设备上电会进入AP模式
设备内置一个web端,可用于对设备进行配置
设备首次上电WIFI会进入AP模块,AP模式下设备配置如下
用户需要再配置网关的区域、频点、网关ID、packet-forward转发地址,网关ID默认会根据MAC地址自动生成,可以不用修改
网关的频点是通过修改radio0和radio1来实现的,8个频点和radio0,radio1的映射,不同地区会不一样
命令行配置
设备支持命令行进行配置,请使用putty或XSHELL进行
- 串口配置为115200,8,N,1
如上,可通过设备pkt_fwd命令进行设置
- pkt_fwd,用于配置设备pkt_fwd相关的信息
- ifconfig,用于查看所有网卡的信息
- reboot,用于设备重启
- help,查看帮助说明
LoRaWAN NS
测试用NS,域名: lora.ansitw.com,IP:106.52.124.231
WEB端地址:106.52.124.231:8080
包转发地址:
- CN470:106.52.124.231:1700
- EU868:106.52.124.231:1701
- US915_0:106.52.124.231:1702
- US915_1:106.52.124.231:1703
网关测试
发送测试
test_hal_tx -r 1250 -f 506.5 -s 12 --pwid 22 -n 10
-r:指定射频前端芯片为1250
-f:发送的频点(MHz)
-s:SF
--pwid 22:
接收测试
test_hal_rx -r 1250 -a 475.5 -b 476.5
WEB配置
总体概述
- GW Info,网关信息查看
- Configuration,网关配置查看和修改
- Maintenance,维护页(设备升级、恢复出厂设备)
配置
- WIFI STA,支持WIFI接入点方式连接网络
- Management MQTT,用来配置管理通道的MQTT参数
- 支持ThingsBoard
- 支持标准MQTT
验收测试方法
- 烧录程序,可正常烧录
- 烧录后,重新上电,RUN指示灯,0.5s间隔闪烁
- 连接设备的WIFI热点(ssid:LoRaGW-xxxxxx 密码:loragwwifi),浏览器输入( http://192.168.4.1),可看到设备的配置页面
- 测试以太网,将设备接入路由器,设备能以DHCP方式获取到IP,说明以太网功能正常
- 设备联网后,SX1302和GNSS模块启动,将设备的GWID(GWID默认为SN)录入到NS服务器,可在NS服务器上看到网关上线,说明SX1302功能正常
- 插入4G SIM,拔掉网线,4G正常获取到IP地址,说明4G功能正常
- 将GNSS放到室外有GNSS信号的地方,可以获取到经纬度和海拔,说明GNSS功能正常
- 至此,各硬件功能都验证完成,测试通过
网关配置通道
标准MQTT通道
配置通道通过MQTT进行数据交互,其中设备发往服务器的通道称为上行通道,服务器发往设备的通道称为下行通道
其中:
- 上行Topic:up/gw/{SN}/0
- 下行Topic:dn/gw/{SN}/0
例如网关的SN:64e833fffe5909d8,那么上下行通道分别为
- 上行Topic:up/gw/64e833fffe5909d8/0
- 下行Topic:dn/gw/64e833fffe5909d8/0
网关会周期性地通过上行通道发送周期心跳包
服务器也可以通过下行通道,向网关下发数据
周期包
更改网关配置
直接修改Configuration中的内容,下发下来即可
回复:
重启
回复
升级
回复(收到升级命令)
ThingsBoard MQTT通道
配置通道通过MQTT进行数据交互,网关发送数据给云平台称为uplink,云平台发送命令给网关称为downlink 有两条链路:
- 网关主动发送数据
- telemetry_uplink
- 设备每隔一段时间会发送心跳包
- 设备在上电和配置信息更改时,会发送配置信息
- 云平台发送命令给网关
- request_downlink,云平台发送命令给网关
- respone_uplink,网关回复数据给云平台 其中:
- telemetry_uplink_topic:v1/devices/me/telemetry //支持修改,支持修改的字符串中有 {SN}/telemetry
- request_downlink_topic:v1/devices/me/rpc/request/${request_id} //支持修改,支持修改的字符串中有 {SN}/rpc/request
- respone_uplink_topic: v1/devices/me/rpc/response/${request_id} //支持修改,支持修改的字符串中有 {SN}/rpc/response
例如网关本次消息的 request_id:10001,那么上下行通道分别为
- telemetry_uplink_topic:v1/devices/me/telemetry
- request_downlink:v1/devices/me/rpc/request/10001
- respone_uplink: v1/devices/me/rpc/response/10001
网关信息包
- 设备在上电、配置被修改时发送
- 设备每1h,发送一次
心跳包
更改网关配置
直接修改Configuration中的内容,下发下来即可
回复:
查询网关状态及配置
回复
重启
回复
恢复出厂设置
回复
升级
回复(收到升级命令)