Last modified by Xiaoling on 2023/04/20 18:14
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.Xiao ye1 +XWiki.Xiaoling - Content
-
... ... @@ -10,6 +10,7 @@ 10 10 The Dragino LoRaWAN gateway can commuicate with LoRaWAN ABP End Node without the need of LoRaWAN server. It can be used in some cases such as: 11 11 12 12 * No internet connection. 13 + 13 13 * User wants to get data forward in gateway and forward to their server base on MQTT/HTTP, etc. (Combine ABP communication method and [[MQTT forward together>>MQTT Forward Instruction]]). 14 14 15 15 ((( ... ... @@ -16,12 +16,13 @@ 16 16 The basic of this feature is the decoding of (% style="color:red" %)**LoRaWAN ABP End Node**(%%). Requirements: 17 17 ))) 18 18 19 -1. LoRaWAN End Node in ABP mode. Make sure your end node works in this mode. End node most are default set to OTAA mode 20 -1. LoRaWAN Gateway model: [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]] 21 -1. Firmware version for below instruction:**[[(% style="color:purple" %)Since LG02_LG08~~-~~-build-v5.4.1593400722-20200629-1120>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]](%%)** 20 +* LoRaWAN End Node in ABP mode. Make sure your end node works in this mode. End node most are default set to OTAA mode 22 22 22 +* LoRaWAN Gateway model: [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]] 23 23 24 +* Firmware version for below instruction: **[[(% style="color:purple" %)Since LG02_LG08~~-~~-build-v5.4.1593400722-20200629-1120>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]](%%)** 24 24 26 + 25 25 = 2. How it works = 26 26 27 27 ... ... @@ -45,12 +45,13 @@ 45 45 46 46 We need to input above keys in LG308 and enable ABP decryption. 47 47 50 + 48 48 [[image:image-20220527161119-1.png]] 49 49 53 + 50 50 Input the ABP keys in LG308 51 51 52 52 53 - 54 54 == 2.1 Upstream == 55 55 56 56 ... ... @@ -57,14 +57,18 @@ 57 57 Now when this End Node (Dev Addr=2602111D) send a uplink packet. When this packet arrive LG308, LG308 will decode it and put the decode data on the file /var/iot/channels/2602111D . So we have this data for further process with other applications in LG308. 58 58 59 59 ((( 60 -We can see the log of LG308 to know this packet arrive 63 +We can see the log of LG308 to know this packet arrive. 64 + 65 + 61 61 ))) 62 62 63 63 [[image:image-20220527161149-2.png]] 64 64 70 + 65 65 LG308 log by "(% style="color:red" %)**logread -f**" (%%)command 66 66 67 67 74 + 68 68 The data of End Node is stored in the file /var/iot/channels/2602111D. We can use hexdump command to check it. 69 69 70 70 (% class="box" %) ... ... @@ -76,10 +76,11 @@ 76 76 ))) 77 77 78 78 * **RSSI**: 4646 4646 4646 3946 = 0xFFFF FF9F : So RSSI = (0xFFFF FF9F - 0x100000000) = -97 86 + 79 79 * **SNR**: 3030 3030 3030 3546 = 0x0000 005F = 95, need to divide 10 so SNR is 9.5 88 + 80 80 * **Payload**: 0xcc0c 0b63 0266 017f ff7f ff00 81 81 82 - 83 83 (% class="box" %) 84 84 ((( 85 85 (% style="color:red" %)**Notice 1**(%%): The data file stored in LG308 for the end node is bin file. If the end node sends ASCII string to gateway, the output will as below: ... ... @@ -97,7 +97,6 @@ 97 97 ))) 98 98 99 99 100 - 101 101 === 2.2.1 Decode Method === 102 102 103 103 ... ... @@ -137,7 +137,6 @@ 137 137 Above scripts are store in /etc/lora/decoder/. User can put their scripts here and select it in the UI. 138 138 139 139 140 - 141 141 === 2.2.2 How to Decode My End Node === 142 142 143 143 ... ... @@ -159,14 +159,17 @@ 159 159 **Some notice:** 160 160 161 161 * RSSI and SNR are added when gateway receive the packet, so there is always this field. 168 + 162 162 * If you rename the file, please make it executable. 170 + 163 163 * See this link for lua.bit module: [[http:~~/~~/luaforge.net/projects/bit/>>url:http://luaforge.net/projects/bit/]] 172 + 164 164 * Lua json module: [[http:~~/~~/json.luaforge.net/>>url:http://json.luaforge.net/]] 174 + 165 165 * the last line return is what will be used for MQTT 176 + 166 166 * User can use other language ,not limited to Lua, just make sure the return is what you want to send. 167 167 168 - 169 - 170 170 == 2.2 Downstream == 171 171 172 172 ... ... @@ -176,19 +176,25 @@ 176 176 177 177 (% style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload** 178 178 179 -Since fimware > Dragino-v2 lgw-5.4.1608518541 . Support more option 180 180 181 - (%style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow**189 +Since fimware > [[Dragino lgw~~-~~-build-v5.4.1668567157>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LG308-LG301/Firmware/Release/]] . Support more option 182 182 191 +(% style="color:#037691" %)**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow,Fport** 192 + 183 183 * **dev_addr:** Inptu the device address 194 + 184 184 * **imme/time:** 185 185 ** imme: send downstream immediately,For Class C end node. 186 186 ** time: send downstream after receive device's uplink. For Class A end node 198 + 187 187 * **txt/hex:** 188 188 ** txt: send payload in ASCII 189 189 ** hex: send payload in HEX 202 + 190 190 * **payload: **payload to be sent, payload lenght should match the LoRaWAN protocol requirement. 204 + 191 191 * **txpw:** Transmit Power. example: 20 206 + 192 192 * **txbw:** bandwidth: 193 193 ** 1: 500 kHz 194 194 ** 2: 250 kHz ... ... @@ -195,25 +195,41 @@ 195 195 ** 3: 125 kHz 196 196 ** 4: 62.5 kHz 197 197 * **SF:** Spreading Factor : SF7/SF8/SF9/SF10/SF11/SF12 213 + 198 198 * **Frequency:** Transmit Frequency: example: 923300000 215 + 199 199 * **rxwindow:** transmit on Rx1Window or Rx2Window. 200 200 218 +* **Fport: **Transmit port,example:8 219 + 220 + 221 + 201 201 (% style="color:blue" %)**Completely exmaple:** 202 202 203 203 * **Old version:** echo 018193F4,imme,hex,0101 > /var/iot/push/test 204 -* **New version:** echo 018193F4,imme,hex,0101,20,1,SF12,923300000,2 > /var/iot/push/test 205 205 206 - (%style="color:#037691"%)**Downstream Frequency**226 +* **New version:** echo 018193F4,imme,hex,0101,20,1,SF12,923300000,2,8 > /var/iot/push/test 207 207 228 + 229 + 230 +Downstream(% style="color:#037691" %)** Frequency:** 231 + 208 208 The LG308 will use the RX2 window info to send the downstream payload, use the default LoRaWAN settings, as below: 209 209 210 210 * EU868: 869.525Mhz, DR0(SF12BW125) 235 + 211 211 * US915: 923.3Mhz, SF12 BW500 237 + 212 212 * CN470: 505.3Mhz, SF12 BW125 239 + 213 213 * AU915: 923.3Mhz, SF12 BW500 241 + 214 214 * AS923: 923.2Mhz, SF10 BW125 243 + 215 215 * KR920: 921.9Mhz, SF12 BW125 245 + 216 216 * IN865: 866.55Mhz, SF10 BW125 247 + 217 217 * RU864: 869.1Mhz, SF12 BW125 218 218 219 219 (% style="color:#037691" %)**Examples:** ... ... @@ -264,7 +264,6 @@ 264 264 ))) 265 265 266 266 267 - 268 268 = 3. Example 1: Communicate with LT-22222-L = 269 269 270 270 ... ... @@ -309,38 +309,44 @@ 309 309 ))) 310 310 311 311 312 -** ~1. Input keys**342 +(% style="color:blue" %)**1. Input keys** 313 313 344 + 314 314 [[image:image-20220527162450-3.png]] 315 315 316 316 Input Keys in LPS8 317 317 318 318 319 -**2. Make sure the LPS8 and LT use the same frequency bands, choose EU868 in this test.** 320 320 351 +(% style="color:blue" %)**2. Make sure the LPS8 and LT use the same frequency bands, choose EU868 in this test.** 321 321 322 -**3. Choose Built-in server** 323 323 354 +(% style="color:blue" %)**3. Choose Built-in server** 355 + 356 + 324 324 [[image:image-20220527162518-4.png]] 325 325 326 326 Choose Built-in server 327 327 328 328 329 -**4. Run the script.** 330 330 363 +(% style="color:blue" %)**4. Run the script.** 364 + 365 + 331 331 [[image:image-20220722115213-2.png]] 332 332 333 333 Run the script 334 334 335 335 336 -**5. Output:** 337 337 372 +(% style="color:blue" %)**5. Output:** 373 + 374 + 338 338 [[image:image-20220722115133-1.png]] 339 339 340 340 Output from LPS8 341 341 342 342 343 - 344 344 = 4. Example 2: Communicate to TCP Server = 345 345 346 346 ... ... @@ -351,9 +351,9 @@ 351 351 352 352 Full instruction video inlcude how to write scripts to fit server needed is here: 353 353 354 - 355 355 (% style="color:#037691" %)**Video Instruction**(%%): **[[https:~~/~~/youtu.be/-nevW6U2TsE>>url:https://youtu.be/-nevW6U2TsE]]** 356 356 392 +(% style="display:none" %) (%%) 357 357 358 358 (% style="color:red" %)**Note: Firmware version must be higher than lgw-5.4.1607519907** 359 359 ... ... @@ -366,8 +366,9 @@ 366 366 367 367 368 368 369 -**run socket tool in PC** 405 +(% style="color:blue" %)**run socket tool in PC** 370 370 407 + 371 371 [[image:image-20220527163028-9.png]] 372 372 373 373 ... ... @@ -375,8 +375,9 @@ 375 375 376 376 377 377 378 -**Input Server address and port** 415 +(% style="color:blue" %)**Input Server address and port** 379 379 417 + 380 380 [[image:image-20220527163106-10.png]] 381 381 382 382 Input Server address and port ... ... @@ -383,10 +383,11 @@ 383 383 384 384 385 385 386 -**See value receive in socket tool:** 424 +(% style="color:blue" %)**See value receive in socket tool:** 387 387 388 -[[image:image-20220527163144-11.png]] 389 389 427 +[[image:image-20220527163144-11.png||height="502" width="1371"]] 428 + 390 390 value receive in socket tool 391 391 392 392