1、LoRaWAN终端节点
1.1 LoRaWAN End Node
** LoRaWAN End Node 模块选用的是利尔达科技的LSD4WN-2L717M90 **
LSD4WN-2L717M90官网资料
模块特点:
超高接收灵敏度:-136±1dBm(@SF=12);
超远有效通讯距离:5Km(城市公路环境,非旷野环境);
符合 LoRaWANTM Specification 1.01 标准,支持 EU433、CN470 同频协议等;
内部集成 LoRaWANTM 协议栈,支持 Class A\Class C 设备类型;
低功耗:待机电流 ≤ 2 uA;
UART 通信,简易指令配置模块参数;
技术参数:
1.2 模块功能介绍
本模块集成了 LoRaWANTM 协议栈,符合 LoRa Alliance 发布的 LoRaWANTM
Specification 1.01,支持 Class A\Class C 设备类型,从空口支持的频段来看, 模块
功能包括:
- LoRaWAN CN470~510 同频应用等
- LoRaWAN CN470 应用等
本模块通过串口与用户进行数据/指令交互。
用户在命令模式通过 AT 指令配置 LoRaWAN 网络参数(如果未配置,将采用默认参数配置)。
用户首次使用,需要配置模块必要的网络参数,并执行保存命令后,复位模块(模块将以新参数来初始化),然后切换为透传模式。
缺省情况下,模块会自动加入设定的 LoRaWAN 网络,并启动运行。用户可以通过判断 STAT 引脚状态,或者进入命令模式查询当前数据发送结果等详细信息,以获取模块入网结果等信息。
如下图为模块功能图谱:
温馨提示: 可点击图片看大图
1.3 硬件实现
用户接口:串口、GPIO、电源
天线接口:50Ω邮票孔输出
说明:
1:加粗 Trace 为系统所需连接(推荐)。
2:天线出口(ANT<->PIN22)的绿色 Trace 要求 50Ω阻抗匹配。
3:缺省情况下,R1 为 0Ω,C1,C2 为空贴。C4 空贴(只做预留)。
4、R1、C1、C2 参数的具体取值,由产品进行天线匹配后确定。
模块封装图
2、 LoRa节点开发
命令模式:
- MODE引脚 接 高电平
- WAKE引脚 接 高电平
- 接 串口
- 接 VCC
- 1、2、6、12、17、20、21号引脚 接 GND
透传模式: - MODE引脚 接 低电平
- WAKE引脚 接 高电平
- 接串口
- 接VCC
- 1、2、6、12、17、20、21号引脚 接 GND
命令模式切换透传模式:
模式切换时电源可以不用断开
在wake引脚低电平状态下,先拉低mode引脚再拉高wake引脚,进入透传模式
模式之间切换需要延时100毫秒
执行指令时需要延时10毫秒
2.1 串口调试,配置参数
模块引脚飞线直接和PC机通过串口连接,使用串口助手配置参数
波特率:9600 、 1个停止位、无校验位
LoRaWAN 节点 OTAA 方式入网步骤:
(1) 唤醒模块:保持 WAKE 引脚为高,模块不进入睡眠
(2) 进入指令模式:拉高 MODE 引脚
(3) 配置 OTAA 模式(出厂默认值,如果未改变,该项可不配置)
AT+OTAA=1
(4) 配置 AppEui,(该参数 FF 00 66 FF FF FF 0 1 仅作为示例说明,以实
际使用为准,需与服务器端保持一致)
AT+APPEUI= FF 00 66 FF FF FF 0 1
(5) 配置 AppKey,(该密钥 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE
FF 仅作为示例说明,以实际使用为准,需与服务器端保持一致)
AT+APPKEY= 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
(6) 保存参数到 EEPROM
AT+SAVE
(7) 复位,重启模块
AT+RESET 或者拉低 Reset 引脚 ,并保持 1ms
(8) 进入透传模式(请注意:只有在透传模式下,模块才会执行 JOIN 操
作)。拉低 MODE 引脚
(9)BUSY,STAT 引脚为高电平,表明模块加入成功。加入成功后,用
户可以通过串口收发数据。
(以上任何参数发生变化,需要执行 SAVE,并复位后,处于透传模式的
模块将使用新参数 JOIN 网络)
串口助手发送命令配置节点过程:
[14:47:21.704]发→◇AT+DEVEUI?
[14:47:21.721]收←◆
+DEVEUI: 00 ** ** 00 00 00 ** **
OK
[14:47:24.574]发→◇AT+FACTORY
[14:47:24.597]收←◆
OK
[14:47:26.942]发→◇AT+OTAA=1
[14:47:26.954]收←◆
OK
[14:52:47.351]发→◇AT+APPEUI=C6DA60**********
[14:52:47.381]收←◆
OK
[14:52:49.750]发→◇AT+APPKEY=E91DF491*******************
[14:52:49.906]收←◆
OK
[14:59:25.793]发→◇AT+CLASS=0
[14:59:25.808]收←◆
OK
[15:00:07.695]发→◇AT+DEBUG=1
[15:00:07.709]收←◆
OK
[15:00:10.030]发→◇AT+RX1?
[15:00:10.040]收←◆
+RX1: 1000, 0, 5000
OK
[15:00:13.719]发→◇AT+VER?
[15:00:13.730]收←◆
+VER:LoRaWAN1.0.2_CN470P.01-02.21.14_Aug 2 2019 17:06:38
OK
[15:00:26.599]发→◇AT+PORT?
[15:00:26.611]收←◆
+PORT: 0A
OK
[15:00:32.422]发→◇AT+DATARATE?
[15:00:32.438]收←◆
+DATARATE: 3, 3, 50, 08, 20
OK
[15:05:11.135]发→◇AT+BAND?
[15:05:11.147]收←◆
+BAND: 7, 1, 0, 0
OK
[15:05:15.104]发→◇AT+BAND=7
[15:05:15.119]收←◆
OK
[15:05:17.790]发→◇AT+FREQ?
[15:05:17.802]收←◆
+FREQ:
CH0: 475300000, 50
CH1: 475500000, 50
CH2: 475700000, 50
CH3: 475900000, 50
CH4: 476100000, 50
CH5: 476300000, 50
CH6: 476500000, 50
CH7: 476700000, 50
OK
[15:05:21.734]发→◇AT+FREQ=1,8,475300000
[15:05:21.793]收←◆
OK
[15:05:25.509]发→◇AT+SAVE
[15:05:25.592]收←◆
OK
[15:05:27.653]发→◇AT+RESET
[15:05:27.665]收←◆
OK
[15:05:27.700]收←◆LoRaWAN1.0.2_CN470P.01-02.21.14_Aug 2 2019 17:06:38
LoRaWAN Modem - Command
注: DEVEUI、APPEUI等关键信息我用星号“ * ”代替。
2.2 在LoRaWAN物联网平台添加LoRa节点
登录LoRaWAN NS物联网平台后,在 项目管理 -->查看 对应项目 --> 设备管理 中选择 节点,如下图:
注: 我已经添加过两个节点设备
点击 添加,选择添加OTAA设备
配置的三元素与平台添加设备要一致
- DEVEUI:设备固件的EUI
- APPEUI:平台应用EUI,自己可以随便设定,位数
- APPKEY:自己可以设置,与平台保持一致即可
- 设置为CLASS_A模式
- loraWAN版本
最后点确定,添加节点成功,在节点列表中显示。
3、上行、下行数据调试
3.1硬件连接
模式切换为透传模式:
- MODE引脚 接 低电平(透传模式)
- WAKE引脚 接 高电平(激活)
- 串口连接USU转TTL调试工具
- 打开PC端串口调试助手
串口打印输出:
[15:12:56.337]收←◆+JOIN INFO: 0, 7, [3]475900000, 0, 9, 20, -133, -12
[15:12:58.673]收←◆
[UP] Cfm_Stat: 0,UpCnt: 0,CH4: 476100000,DR3: SF9,TxPower: 20,AckCnt: 0,PER: 10000,TOA: 164864,nbTrials: 1,BackOff: 0,cRssi: 0,Nb: 0,Band: 7
3.2 平台准备
登录LoRaWAN NS物联网平台后,在 项目管理 -->查看 对应项目 --> 设备管理 中选择 节点找到对应设备点节点调试按钮,如下图:
进入节点调试后如下图:
选择对应调试类型。
节点调试可选择下行的模式,如auto、rx1和rx2
- CLASS A调试:支持CLASS A、CLASS B、CLASS C 设备
- 自动回复:CLASS A调试适用,勾选并提交后会根据节点上行自动回复调试内容
- 优先:CLASS A调试适用,勾选并提交后会将当前调试内容优先下发
3.3 上行数据调试
在PC端通过串口小助手发送数据,平台端将接收到数据。
PC端 上报数据“8888888888888888888888”
[16:44:16.144]发→◇8888888888888888888888□
[16:44:18.427]收←◆
[UP] Cfm_Stat: 0,UpCnt: 24,CH1: 475500000,DR5: SF7,TxPower: 20,AckCnt: 0,PER: 10000,TOA: 77056,nbTrials: 1,BackOff: 0,cRssi: 0,Nb: 0,Band: 7
注: “ [UP] ”为上行标志,这部分内容是平台响应设备端,表示数据上报平台成功。
平台端 收到数据部分为 “38383838383838383838383838383838383838383838”
2020-06-03 16:44:14.730: {"gatewayEui":"D896E0FFF0******","devEui":"0095690000******","devAddr":"00000***","serverTime":"2020-06-03 16:44:14","tmst":1090752987,"chan":1,"rfch":0,"freq":475.5,"stat":1,"modu":"LORA","datr":"SF7BW125","codr":"4/5","lsnr":8.8,"rssi":-53,"size":35,"data":"401A0100008018000A14B26432FD87B3419E7B234893C0D7EB90B6B887F394CF0A8814","pingtime":28753,"hashCode":"46FF1BCE0DC375F934559067F5AD73AC","major":0,"adr":true,"adrAckReq":false,"ack":false,"mic":true,"foptsLen":0,"fcnt":24,"fport":10,"payloadData":"38383838383838383838383838383838383838383838","toa":77.056,"mtype":2}
注: payloadData(数据部分)是经过字符串转16进制获得的。
3.4 下行命令调试
下行命令只能是设备端主动上报数据时,平台再将缓存的命令下发至设备
第一步: 在平台提交命令
- 提示:已提交!
- 显示:调试等待
第二步: 在PC端上报数据
PC端 上报数据“666666”
收到命令“111111”
[17:06:27.959]发→◇666666□
[17:06:29.091]收←◆
[UP] Cfm_Stat: 0,UpCnt: 27,CH4: 476100000,DR5: SF7,TxPower: 20,AckCnt: 0,PER: 10000,TOA: 51456,nbTrials: 1,BackOff: 0,cRssi: 0,Nb: 0,Band: 7
[DN] Ind_Stat: 0,DnCnt: 5,CH4: 476100000,DR5: SF7,Port: 10,RxSlot: 0,pRSSI: -68,SNR: +6,Pend: 0,SIZE: 6,Multi: 0,Margin: 0,nGW: 0
111111
注: “ [DN] ”为下行标志,这部分内容是平台下发设备端。
平台端 收到数据部分为 “363636363636”
下发命令“111111”
2020-06-03 17:03:50.210: 调试等待
2020-06-03 17:06:26.510: {"gatewayEui":"D896E0***0000***","devEui":"0095690***","devAddr":"0000****","serverTime":"2020-06-03 17:06:26","tmst":2422522483,"chan":4,"rfch":1,"freq":476.1,"stat":1,"modu":"LORA","datr":"SF7BW125","codr":"4/5","lsnr":9.5,"rssi":-55,"size":19,"data":"401A010000801B000A1A7EF2B08AFDF1833697","pingtime":28900,"hashCode":"E9BDB1DE265F315F27E29744A25888EE","major":0,"adr":true,"adrAckReq":false,"ack":false,"mic":true,"foptsLen":0,"fcnt":27,"fport":10,"payloadData":"363636363636","toa":51.456,"mtype":2}
2020-06-03 17:06:26.921: {"gatewayEui":"D896E0FFF00****","devEui":"0095690000*****","devAddr":"000****","serverTime":"2020-06-03 17:06:26","imme":false,"tmst":2423522483,"freq":476.1,"rfch":0,"powe":17,"modu":"LORA","datr":"SF7BW125","codr":"4/5","ipol":true,"size":19,"data":"601A0100008005000A97F1FC6256B85F22D5A0","ncrc":true,"major":0,"adr":true,"ack":false,"foptsLen":0,"fcnt":5,"fport":10,"payloadData":"313131313131","toa":51.456,"mtype":3}
注: “mtype”:3,表示此数据为设备对平台下发命令的响应,说明设备已收到命令,设备响应部分在平台调试窗口显示为灰色。
4、节点数据查看
在 项目管理 -->查看 对应项目 --> 设备管理 中选择 节点找到对应设备点击设备的 devEui 号按钮,进入设备详情如下图:
点击查看数据可查看该设备的所有上下行数据
至此 LoRaWAN 节点添加,调试已经完成,下一节将对接应用服务器 。