项目介绍
本项目是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模式下设备配置如下
# AP模式下WIFI配置
SSID:LoRaGW-xxxxxx
password:loragwwifi
xxxxxx为SN的后6位
WEB端地址:192.168.4.1
用户需要再配置网关的区域、频点、网关ID、packet-forward转发地址,网关ID默认会根据MAC地址自动生成,可以不用修改
网关的频点是通过修改radio0和radio1来实现的,8个频点和radio0,radio1的映射,不同地区会不一样
CN470(通常radio0与radio1相差800KHZ,默认radio=470600000Hz,radio1=471400000Hz)
freq0 = RADIO0-300KHz,默认为470.3MHz
freq1 = RADIO0-100KHz,默认为470.5MHz
freq2 = RADIO0+100KHz,默认为470.7MHz
freq3 = RADIO0+300KHz,默认为470.9MHz
freq4 = RADIO1-300KHz,默认为471.1MHz
freq5 = RADIO1-100KHz,默认为471.3MHz
freq6 = RADIO1+100KHz,默认为471.5MHz
freq7 = RADIO1+300KHz,默认为471.7MHz
EU868(默认radio=867500000Hz,radio1=868500000Hz)
freq0 = RADIO1-400KHz 默认为868.1MHz
freq1 = RADIO1-200KHz 默认为868.3MHz
freq2 = RADIO1 默认为868.5MHz
freq3 = RADIO0-400KHz 默认为867.1MHz
freq4 = RADIO0-200KHz 默认为867.3MHz
freq5 = RADIO0 默认为867.5MHz
freq6 = RADIO0+200KHz 默认为867.7MHz
freq7 = RADIO0+400KHz 默认为867.9MHz
US915(默认radio=904300000Hz,radio1=905000000Hz) //US915_1
freq0 = RADIO0-400KHz 默认为903.9MHz
freq1 = RADIO0-200KHz 默认为904.1MHz
freq2 = RADIO0 默认为904.3MHz
freq3 = RADIO0+200KHz 默认为904.5MHz
freq4 = RADIO1-300KHz 默认为904.7MHz
freq5 = RADIO1-100KHz 默认为904.9MHz
freq6 = RADIO1+100KHz 默认为905.1MHz
freq7 = RADIO1+300KHz 默认为905.3MHz
chan_LoRa_Std = radio0+300Khz,默认为904.6MHz
命令行配置
设备支持命令行进行配置,请使用putty或XSHELL进行
- 串口配置为115200,8,N,1
ESXP1302_GW >
ESXP1302_GW > help
pkt_fwd [-h] [--restore] [--host=< UDP Host >] [--port=< UDP Port >] [--gwid=< gateway id >]
ESP32 packet forwarder based on sx1302_hal
--restore clean NVS config
-h, --help print help
--host=< UDP Host > UDP Host
--port=< UDP Port > UDP Port
--gwid=< gateway id > Gateway Id
ifconfig
printf network status
reboot
reboot the system
help [< string >]
Print the summary of all registered commands if no arguments are given,
otherwise print summary of given command.
< string > Name of command
如上,可通过设备pkt_fwd命令进行设置
- pkt_fwd,用于配置设备pkt_fwd相关的信息
- ifconfig,用于查看所有网卡的信息
ESXP1302_GW > ESXP1302_GW > ifconfig =========ifconfig=========== --------if:ppp prio:20-------- link: NET_UP ip: 10.145.122.176 mask: 255.255.255.255 gw: 10.64.64.64 dns1: 218.85.157.99 dns2: 218.85.157.99 IMEI: 860761079936981 IMSI: 460115210945489 ICCID: 89860322245923849833 CSQ/BER: 23/0 --------if:eth prio:50-------- link: LINK_DOWN/NET_DOWN MAC: 66:e8:33:49:ba:47 ip: 0.0.0.0 mask: 0.0.0.0 gw: 0.0.0.0 dns1: 218.85.157.99 dns2: 218.85.157.99 --------if:ap prio:10-------- MAC: 64:e8:33:49:ba:45 ip: 192.168.4.1 ssid: esp32 pswd: esp32wifi =========ifconfig end===========
- 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,维护页(设备升级、恢复出厂设备)
配置
验收测试方法
- 烧录程序,可正常烧录
- 烧录后,重新上电,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
网关会周期性地通过上行通道发送周期心跳包
服务器也可以通过下行通道,向网关下发数据
周期包
{
"pkt": "periodUplink",
"GWInfo": {
"SN": "64e833fffe5909d8",
"SoftwareVersion": "V1.0.1",
"HardwareVersion": "V1.0.0"
},
"Staus": {
"GPSValid": true,
"Latitude": 24.000000,
"Longitude": 120.000000,
"Altitude": 0.000000,
"Cellular": {},
"Ethernet": {},
"WIFI": {
"Link": "NET_UP",
"IPMode": "DHCP",
"MAC": "64:e8:33:59:09:d8",
"IP": "192.169.4.12",
"Mask": "255.255.255.0",
"GW": "192.169.4.1",
"DNS1": "192.169.4.1",
"DNS2": "192.169.4.1"
}
},
"Configuration": {
"STA": {
"Enable": false,
"SSID": "",
"Password": ""
},
"Management": {
"MQTT": {
"Enable": true,
"URL": "mqtt://broker.emqx.io",
"ClientID": "64e833fffe5909d8",
"UplinkTopic": "up/gw/64e833fffe5909d8/0",
"DownlinkTopic": "dn/gw/64e833fffe5909d8/0"
}
},
"LoRaWAN": {
"Region": "cn470",
"Radio0": "470600000",
"Radio1": "enable",
"NsHost": "lora.ansitw.com",
"NsPort": "1700",
"GatewayID": "64e833fffe5909d8"
}
}
}
更改网关配置
直接修改Configuration中的内容,下发下来即可
{
"pkt": "downlink",
"Configuration": {
"STA": {
"Enable": false,
"SSID": "",
"Password": ""
},
"Management": {
"MQTT": {
"Enable": true,
"URL": "mqtt://broker.emqx.io",
"ClientID": "64e833fffe5909d8",
"UplinkTopic": "up/gw/64e833fffe5909d8/0",
"DownlinkTopic": "dn/gw/64e833fffe5909d8/0"
}
},
"LoRaWAN": {
"Region": "cn470",
"Radio0": "470600000",
"Radio1": "enable",
"NsHost": "lora.ansitw.com",
"NsPort": "1700",
"GatewayID": "64e833fffe5909d8"
}
}
}
回复:
{
"pkt": "downlinkRespone",
“result”:"success"
}
重启
{
"pkt": "downlink",
"cmd": {
"reboot": true
}
}
回复
{
"pkt": "downlinkRespone",
“result”:"success"
}
升级
{
"pkt": "downlink",
"cmd": {
"upgrade": "http://192.169.4.53/esp32_sx1302.bin"
}
}
回复(收到升级命令)
{
"pkt": "downlinkRespone",
“result”:"success"
}
ThingsBoard MQTT通道
配置通道通过MQTT进行数据交互,网关发送数据给云平台称为uplink,云平台发送命令给网关称为downlink
有两条链路:
- 网关主动发送数据
- telemetry_uplink
- 设备每隔一段时间会发送心跳包
- 设备在上电和配置信息更改时,会发送配置信息
- telemetry_uplink
- 云平台发送命令给网关
- request_downlink,云平台发送命令给网关
- respone_uplink,网关回复数据给云平台
其中:
- telemetry_uplink_topic:v1/devices/me/telemetry //支持修改,支持修改的字符串中有
审核编辑 黄宇
-
SX1302
+关注
关注
1文章
4浏览量
8145 -
lorawan
+关注
关注
3文章
318浏览量
23815 -
ESP32
+关注
关注
18文章
970浏览量
17198
发布评论请先 登录
相关推荐
评论