<
From version < 42.1 >
edited by Saxer Lin
on 2023/05/16 11:27
To version < 11.1 >
edited by Edwin Chen
on 2023/05/11 20:42
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -SN50v3-LB LoRaWAN Sensor Node User Manual
1 +SN50v3-LB User Manual
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Saxer
1 +XWiki.Edwin
Content
... ... @@ -1,5 +1,4 @@
1 -(% style="text-align:center" %)
2 -[[image:image-20230515135611-1.jpeg||height="589" width="589"]]
1 +[[image:image-20230511201248-1.png||height="403" width="489"]]
3 3  
4 4  
5 5  
... ... @@ -123,7 +123,7 @@
123 123  == 1.7 Pin Definitions ==
124 124  
125 125  
126 -[[image:image-20230513102034-2.png]]
125 +[[image:image-20230511203450-2.png||height="443" width="785"]]
127 127  
128 128  
129 129  == 1.8 Mechanical ==
... ... @@ -150,7 +150,7 @@
150 150  == 2.1 How it works ==
151 151  
152 152  
153 -The SN50v3-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
152 +The S31x-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
154 154  
155 155  
156 156  == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
... ... @@ -161,11 +161,11 @@
161 161  The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
162 162  
163 163  
164 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from SN50v3-LB.
163 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB.
165 165  
166 -Each SN50v3-LB is shipped with a sticker with the default device EUI as below:
165 +Each S31x-LB is shipped with a sticker with the default device EUI as below:
167 167  
168 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/S31-LB_S31B-LB/WebHome/image-20230426084152-1.png?width=502&height=233&rev=1.1||alt="图片-20230426084152-1.png" height="233" width="502"]]
167 +[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
169 169  
170 170  
171 171  You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
... ... @@ -192,10 +192,10 @@
192 192  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
193 193  
194 194  
195 -(% style="color:blue" %)**Step 2:**(%%) Activate SN50v3-LB
194 +(% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB
196 196  
197 197  
198 -Press the button for 5 seconds to activate the SN50v3-LB.
197 +Press the button for 5 seconds to activate the S31x-LB.
199 199  
200 200  (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
201 201  
... ... @@ -207,7 +207,7 @@
207 207  === 2.3.1 Device Status, FPORT~=5 ===
208 208  
209 209  
210 -Users can use the downlink command(**0x26 01**) to ask SN50v3 to send device configure detail, include device configure status. SN50v3 will uplink a payload via FPort=5 to server.
209 +Users can use the downlink command(**0x26 01**) to ask S31x-LB to send device configure detail, include device configure status. S31x-LB will uplink a payload via FPort=5 to server.
211 211  
212 212  The Payload format is as below.
213 213  
... ... @@ -219,9 +219,11 @@
219 219  
220 220  Example parse in TTNv3
221 221  
221 +[[image:image-20230421171614-1.png||alt="图片-20230421171614-1.png"]]
222 222  
223 -(% style="color:#037691" %)**Sensor Model**(%%): For SN50v3, this value is 0x1C
224 224  
224 +(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A
225 +
225 225  (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
226 226  
227 227  (% style="color:#037691" %)**Frequency Band**:
... ... @@ -273,396 +273,39 @@
273 273  Ex2: 0x0B49 = 2889mV
274 274  
275 275  
276 -=== 2.3.2 Working Modes & Sensor Data. Uplink via FPORT~=2 ===
277 +=== 2.3.2  Sensor Data. FPORT~=2 ===
277 277  
278 278  
279 -SN50v3 has different working mode for the connections of different type of sensors. This section describes these modes. Use can use the AT Command AT+MOD to set SN50v3 to different working modes.
280 +Sensor Data is uplink via FPORT=2
280 280  
281 -For example:
282 -
283 - **AT+MOD=2  ** ~/~/ will set the SN50v3 to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
284 -
285 -
286 -(% style="color:red" %) **Important Notice:**
287 -
288 -1. Some working modes has payload more than 12 bytes, The US915/AU915/AS923 frequency bands' definition has maximum 11 bytes in **DR0**. Server sides will see NULL payload while SN50v3 transmit in DR0 with 12 bytes payload.
289 -1. All modes share the same Payload Explanation from HERE.
290 -1. By default, the device will send an uplink message every 20 minutes.
291 -
292 -==== 2.3.2.1  MOD~=1 (Default Mode) ====
293 -
294 -In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
295 -
296 -(% style="width:1110px" %)
297 -|**Size(bytes)**|**2**|(% style="width:191px" %)**2**|(% style="width:78px" %)**2**|(% style="width:216px" %)**1**|(% style="width:308px" %)**2**|(% style="width:154px" %)**2**
298 -|**Value**|Bat|(% style="width:191px" %)(((
299 -Temperature(DS18B20)
300 -
301 -(PC13)
302 -)))|(% style="width:78px" %)(((
303 -ADC
304 -
305 -(PA4)
306 -)))|(% style="width:216px" %)(((
307 -Digital in(PB15) &
308 -
309 -Digital Interrupt(PA8)
310 -
311 -
312 -)))|(% style="width:308px" %)(((
313 -Temperature
314 -
315 -(SHT20 or SHT31 or BH1750 Illumination Sensor)
316 -)))|(% style="width:154px" %)(((
317 -Humidity
318 -
319 -(SHT20 or SHT31)
320 -)))
321 -
322 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220627150949-6.png?rev=1.1||alt="image-20220627150949-6.png"]]
323 -
324 -
325 -==== 2.3.2.2  MOD~=2 (Distance Mode) ====
326 -
327 -This mode is target to measure the distance. The payload of this mode is totally 11 bytes. The 8^^th^^ and 9^^th^^ bytes is for the distance.
328 -
329 -(% style="width:1011px" %)
330 -|**Size(bytes)**|**2**|(% style="width:196px" %)**2**|(% style="width:87px" %)**2**|(% style="width:189px" %)**1**|(% style="width:208px" %)**2**|(% style="width:117px" %)**2**
331 -|**Value**|BAT|(% style="width:196px" %)(((
332 -Temperature(DS18B20)
333 -
334 -(PC13)
335 -)))|(% style="width:87px" %)(((
336 -ADC
337 -
338 -(PA4)
339 -)))|(% style="width:189px" %)(((
340 -Digital in(PB15) &
341 -
342 -Digital Interrupt(PA8)
343 -)))|(% style="width:208px" %)(((
344 -Distance measure by:
345 -1) LIDAR-Lite V3HP
346 -Or
347 -2) Ultrasonic Sensor
348 -)))|(% style="width:117px" %)Reserved
349 -
350 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656324539647-568.png?rev=1.1||alt="1656324539647-568.png"]]
351 -
352 -**Connection of LIDAR-Lite V3HP:**
353 -
354 -[[image:image-20230512173758-5.png||height="563" width="712"]]
355 -
356 -**Connection to Ultrasonic Sensor:**
357 -
358 -Need to remove R1 and R2 resistors to get low power,otherwise there will be 240uA standby current.
359 -
360 -[[image:image-20230512173903-6.png||height="596" width="715"]]
361 -
362 -For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
363 -
364 -(% style="width:1113px" %)
365 -|**Size(bytes)**|**2**|(% style="width:183px" %)**2**|(% style="width:173px" %)**1**|(% style="width:84px" %)**2**|(% style="width:323px" %)**2**|(% style="width:188px" %)**2**
366 -|**Value**|BAT|(% style="width:183px" %)(((
367 -Temperature(DS18B20)
368 -
369 -(PC13)
370 -)))|(% style="width:173px" %)(((
371 -Digital in(PB15) &
372 -
373 -Digital Interrupt(PA8)
374 -)))|(% style="width:84px" %)(((
375 -ADC
376 -
377 -(PA4)
378 -)))|(% style="width:323px" %)(((
379 -Distance measure by:1)TF-Mini plus LiDAR
380 -Or 
381 -2) TF-Luna LiDAR
382 -)))|(% style="width:188px" %)Distance signal  strength
383 -
384 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656376779088-686.png?rev=1.1||alt="1656376779088-686.png"]]
385 -
386 -**Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
387 -
388 -Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.
389 -
390 -[[image:image-20230512180609-7.png||height="555" width="802"]]
391 -
392 -**Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
393 -
394 -Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.
395 -
396 -[[image:image-20230513105207-4.png||height="469" width="802"]]
397 -
398 -
399 -==== 2.3.2.3  MOD~=3 (3 ADC + I2C) ====
400 -
401 -This mode has total 12 bytes. Include 3 x ADC + 1x I2C
402 -
403 -(% style="width:1031px" %)
404 -|=(((
282 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
283 +|=(% style="width: 90px;background-color:#D9E2F3" %)(((
405 405  **Size(bytes)**
406 -)))|=(% style="width: 68px;" %)**2**|=(% style="width: 75px;" %)**2**|=**2**|=**1**|=(% style="width: 304px;" %)2|=(% style="width: 163px;" %)2|=(% style="width: 53px;" %)1
407 -|**Value**|(% style="width:68px" %)(((
408 -ADC1
409 -
410 -(PA4)
411 -)))|(% style="width:75px" %)(((
412 -ADC2
413 -
414 -(PA5)
415 -)))|(((
416 -ADC3
417 -
418 -(PA8)
419 -)))|(((
420 -Digital Interrupt(PB15)
421 -)))|(% style="width:304px" %)(((
422 -Temperature
423 -
424 -(SHT20 or SHT31 or BH1750 Illumination Sensor)
425 -)))|(% style="width:163px" %)(((
426 -Humidity
427 -
428 -(SHT20 or SHT31)
429 -)))|(% style="width:53px" %)Bat
430 -
431 -[[image:image-20230513110214-6.png]]
432 -
433 -
434 -==== 2.3.2.4 MOD~=4 (3 x DS18B20) ====
435 -
436 -
437 -This mode has total 11 bytes. As shown below:
438 -
439 -(% style="width:1017px" %)
440 -|**Size(bytes)**|**2**|(% style="width:186px" %)**2**|(% style="width:82px" %)**2**|(% style="width:210px" %)**1**|(% style="width:191px" %)**2**|(% style="width:183px" %)**2**
441 -|**Value**|BAT|(% style="width:186px" %)(((
442 -Temperature1(DS18B20)
443 -(PC13)
444 -)))|(% style="width:82px" %)(((
445 -ADC
446 -
447 -(PA4)
448 -)))|(% style="width:210px" %)(((
449 -Digital in(PB15) &
450 -
451 -Digital Interrupt(PA8) 
452 -)))|(% style="width:191px" %)Temperature2(DS18B20)
453 -(PB9)|(% style="width:183px" %)Temperature3(DS18B20)
454 -(PB8)
455 -
456 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656377606181-607.png?rev=1.1||alt="1656377606181-607.png"]]
457 -
458 -[[image:image-20230513134006-1.png||height="559" width="736"]]
459 -
460 -
461 -==== 2.3.2.5  MOD~=5(Weight Measurement by HX711) ====
462 -
463 -[[image:image-20230512164658-2.png||height="532" width="729"]]
464 -
465 -Each HX711 need to be calibrated before used. User need to do below two steps:
466 -
467 -1. Zero calibration. Don't put anything on load cell and run **AT+WEIGRE** to calibrate to Zero gram.
468 -1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run **AT+WEIGAP** to adjust the Calibration Factor.
469 -1. (((
470 -Weight has 4 bytes, the unit is g.
285 +)))|=(% style="width: 80px;background-color:#D9E2F3" %)2|=(% style="width: 90px;background-color:#D9E2F3" %)4|=(% style="width:80px;background-color:#D9E2F3" %)1|=(% style="width: 80px;background-color:#D9E2F3" %)**2**|=(% style="width: 80px;background-color:#D9E2F3" %)2
286 +|(% style="width:99px" %)**Value**|(% style="width:69px" %)(((
287 +[[Battery>>||anchor="HBattery:"]]
288 +)))|(% style="width:130px" %)(((
289 +[[Unix TimeStamp>>||anchor="H2.5.2UnixTimeStamp"]]
290 +)))|(% style="width:91px" %)(((
291 +[[Alarm Flag>>||anchor="HAlarmFlag26MOD:"]]
292 +)))|(% style="width:103px" %)(((
293 +[[Temperature>>||anchor="HTemperature:"]]
294 +)))|(% style="width:80px" %)(((
295 +[[Humidity>>||anchor="HHumidity:"]]
471 471  )))
472 472  
473 -For example:
298 +==== (% style="color:#4472c4" %)**Battery**(%%) ====
474 474  
475 -**AT+GETSENSORVALUE =0**
300 +Sensor Battery Level.
476 476  
477 -Response:  Weight is 401 g
478 -
479 -Check the response of this command and adjust the value to match the real value for thing.
480 -
481 -(% style="width:767px" %)
482 -|=(((
483 -**Size(bytes)**
484 -)))|=**2**|=(% style="width: 193px;" %)**2**|=(% style="width: 85px;" %)**2**|=(% style="width: 186px;" %)**1**|=(% style="width: 100px;" %)**4**
485 -|**Value**|BAT|(% style="width:193px" %)(((
486 -Temperature(DS18B20)
487 -
488 -(PC13)
489 -
490 -
491 -)))|(% style="width:85px" %)(((
492 -ADC
493 -
494 -(PA4)
495 -)))|(% style="width:186px" %)(((
496 -Digital in(PB15) &
497 -
498 -Digital Interrupt(PA8)
499 -)))|(% style="width:100px" %)Weight
500 -
501 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220820120036-2.png?width=1003&height=469&rev=1.1||alt="image-20220820120036-2.png" height="469" width="1003"]]
502 -
503 -
504 -==== 2.3.2.6  MOD~=6 (Counting Mode) ====
505 -
506 -In this mode, the device will work in counting mode. It counts the interrupt on the interrupt pins and sends the count on TDC time.
507 -
508 -Connection is as below. The PIR sensor is a count sensor, it will generate interrupt when people come close or go away. User can replace the PIR sensor with other counting sensors.
509 -
510 -[[image:image-20230512181814-9.png||height="543" width="697"]]
511 -
512 -**Note:** LoRaWAN wireless transmission will infect the PIR sensor. Which cause the counting value increase +1 for every uplink. User can change PIR sensor or put sensor away of the SN50_v3 to avoid this happen.
513 -
514 -(% style="width:961px" %)
515 -|=**Size(bytes)**|=**2**|=(% style="width: 256px;" %)**2**|=(% style="width: 108px;" %)**2**|=(% style="width: 126px;" %)**1**|=(% style="width: 145px;" %)**4**
516 -|**Value**|BAT|(% style="width:256px" %)(((
517 -Temperature(DS18B20)
518 -
519 -(PC13)
520 -)))|(% style="width:108px" %)(((
521 -ADC
522 -
523 -(PA4)
524 -)))|(% style="width:126px" %)(((
525 -Digital in
526 -
527 -(PB15)
528 -)))|(% style="width:145px" %)(((
529 -Count
530 -
531 -(PA8)
532 -)))
533 -
534 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378441509-171.png?rev=1.1||alt="1656378441509-171.png"]]
535 -
536 -
537 -==== 2.3.2.7  MOD~=7 (Three interrupt contact modes) ====
538 -
539 -(% style="width:1108px" %)
540 -|=(((
541 -**Size(bytes)**
542 -)))|=**2**|=(% style="width: 188px;" %)**2**|=(% style="width: 83px;" %)**2**|=(% style="width: 184px;" %)**1**|=(% style="width: 186px;" %)**1**|=(% style="width: 197px;" %)1|=(% style="width: 100px;" %)2
543 -|**Value**|BAT|(% style="width:188px" %)(((
544 -Temperature(DS18B20)
545 -
546 -(PC13)
547 -)))|(% style="width:83px" %)(((
548 -ADC
549 -
550 -(PA5)
551 -)))|(% style="width:184px" %)(((
552 -Digital Interrupt1(PA8)
553 -)))|(% style="width:186px" %)Digital Interrupt2(PA4)|(% style="width:197px" %)Digital Interrupt3(PB15)|(% style="width:100px" %)Reserved
554 -
555 -[[image:image-20230513111203-7.png||height="324" width="975"]]
556 -
557 -==== 2.3.2.8  MOD~=8 (3ADC+1DS18B20) ====
558 -
559 -(% style="width:922px" %)
560 -|=(((
561 -**Size(bytes)**
562 -)))|=**2**|=(% style="width: 207px;" %)**2**|=(% style="width: 94px;" %)**2**|=(% style="width: 198px;" %)**1**|=(% style="width: 84px;" %)**2**|=(% style="width: 82px;" %)2
563 -|**Value**|BAT|(% style="width:207px" %)(((
564 -Temperature(DS18B20)
565 -
566 -(PC13)
567 -)))|(% style="width:94px" %)(((
568 -ADC1
569 -
570 -(PA4)
571 -)))|(% style="width:198px" %)(((
572 -Digital Interrupt(PB15)
573 -)))|(% style="width:84px" %)(((
574 -ADC2
575 -
576 -(PA5)
577 -)))|(% style="width:82px" %)(((
578 -ADC3
579 -
580 -(PA8)
581 -)))
582 -
583 -[[image:image-20230513111231-8.png||height="335" width="900"]]
584 -
585 -
586 -==== 2.3.2.9  MOD~=9 (3DS18B20+ two Interrupt count mode) ====
587 -
588 -(% style="width:1010px" %)
589 -|=(((
590 -**Size(bytes)**
591 -)))|=**2**|=**2**|=**2**|=**1**|=(% style="width: 193px;" %)**2**|=(% style="width: 78px;" %)4|=(% style="width: 78px;" %)4
592 -|**Value**|BAT|(((
593 -Temperature1(DS18B20)
594 -
595 -(PC13)
596 -)))|(((
597 -Temperature2(DS18B20)
598 -
599 -(PB9)
600 -)))|(((
601 -Digital Interrupt
602 -
603 -(PB15)
604 -)))|(% style="width:193px" %)(((
605 -Temperature3(DS18B20)
606 -
607 -(PB8)
608 -)))|(% style="width:78px" %)(((
609 -Count1
610 -
611 -(PA8)
612 -)))|(% style="width:78px" %)(((
613 -Count2
614 -
615 -(PA4)
616 -)))
617 -
618 -[[image:image-20230513111255-9.png||height="341" width="899"]]
619 -
620 -**The newly added AT command is issued correspondingly:**
621 -
622 -**~ AT+INTMOD1** ** PA8**  pin:  Corresponding downlink:  **06 00 00 xx**
623 -
624 -**~ AT+INTMOD2**  **PA4**  pin:  Corresponding downlink:**  06 00 01 xx**
625 -
626 -**~ AT+INTMOD3**  **PB15**  pin:  Corresponding downlink:  ** 06 00 02 xx**
627 -
628 -**AT+SETCNT=aa,bb** 
629 -
630 -When AA is 1, set the count of PA8 pin to BB Corresponding downlink:09 01 bb bb bb bb
631 -
632 -When AA is 2, set the count of PA4 pin to BB Corresponding downlink:09 02 bb bb bb bb
633 -
634 -
635 -
636 -=== 2.3.3  ​Decode payload ===
637 -
638 -While using TTN V3 network, you can add the payload format to decode the payload.
639 -
640 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378466788-734.png?rev=1.1||alt="1656378466788-734.png"]]
641 -
642 -The payload decoder function for TTN V3 are here:
643 -
644 -SN50v3 TTN V3 Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
645 -
646 -
647 -==== 2.3.3.1 Battery Info ====
648 -
649 -Check the battery voltage for SN50v3.
650 -
651 651  Ex1: 0x0B45 = 2885mV
652 652  
653 653  Ex2: 0x0B49 = 2889mV
654 654  
655 655  
656 -==== 2.3.3.2  Temperature (DS18B20) ====
657 657  
658 -If there is a DS18B20 connected to PC13 pin. The temperature will be uploaded in the payload.
308 +==== (% style="color:#4472c4" %)**Temperature**(%%) ====
659 659  
660 -More DS18B20 can check the [[3 DS18B20 mode>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/#2.3.4MOD3D4283xDS18B2029]]
661 -
662 -**Connection:**
663 -
664 -[[image:image-20230512180718-8.png||height="538" width="647"]]
665 -
666 666  **Example**:
667 667  
668 668  If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
... ... @@ -672,208 +672,195 @@
672 672  (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
673 673  
674 674  
675 -==== 2.3.3.3 Digital Input ====
319 +==== (% style="color:#4472c4" %)**Humidity**(%%) ====
676 676  
677 -The digital input for pin PB15,
678 678  
679 -* When PB15 is high, the bit 1 of payload byte 6 is 1.
680 -* When PB15 is low, the bit 1 of payload byte 6 is 0.
322 +Read:0x(0197)=412    Value:  412 / 10=41.2, So 41.2%
681 681  
682 -(% class="wikigeneratedid" id="H2.3.3.4A0AnalogueDigitalConverter28ADC29" %)
683 -(((
684 -When the digital interrupt pin is set to AT+INTMODx=0, this pin is used as a digital input pin.
685 685  
686 -**Note:**The maximum voltage input supports 3.6V.
687 -)))
325 +==== (% style="color:#4472c4" %)**Alarm Flag& MOD**(%%) ====
688 688  
689 -==== 2.3.3.4  Analogue Digital Converter (ADC) ====
690 690  
691 -The measuring range of the ADC is only about 0V to 1.1V The voltage resolution is about 0.24mv.
328 +**Example:**
692 692  
693 -When the measured output voltage of the sensor is not within the range of 0V and 1.1V, the output voltage terminal of the sensor shall be divided The example in the following figure is to reduce the output voltage of the sensor by three times If it is necessary to reduce more times, calculate according to the formula in the figure and connect the corresponding resistance in series.
330 +If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message
694 694  
695 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220628150112-1.png?width=285&height=241&rev=1.1||alt="image-20220628150112-1.png" height="241" width="285"]]
332 +If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm
696 696  
697 -**Note:**If the ADC type sensor needs to be powered by SN50_v3, it is recommended to use +5V to control its switch.Only sensors with low power consumption can be powered with VDD.
334 +If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message
698 698  
699 -==== 2.3.3.5 Digital Interrupt ====
336 +If payload >> 2 = 0x3 **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>path:#HPolltheAlarmsettings:]] for detail. 
700 700  
701 -Digital Interrupt refers to pin PA8, and there are different trigger methods. When there is a trigger, the SN50v3 will send a packet to the server.
702 702  
703 -**~ Interrupt connection method:**
339 +== 2.4 Payload Decoder file ==
704 704  
705 -[[image:image-20230513105351-5.png||height="147" width="485"]]
706 706  
707 -**Example to use with door sensor :**
342 +In TTN, use can add a custom payload so it shows friendly reading
708 708  
709 -The door sensor is shown at right. It is a two wire magnetic contact switch used for detecting the open/close status of doors or windows.
344 +In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
710 710  
711 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379210849-860.png?rev=1.1||alt="1656379210849-860.png"]]
346 +[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B >>https://github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B]]
712 712  
713 -When the two pieces are close to each other, the 2 wire output will be short or open (depending on the type), while if the two pieces are away from each other, the 2 wire output will be the opposite status. So we can use SN50_v3 interrupt interface to detect the status for the door or window.
714 714  
715 -**~ Below is the installation example:**
349 +== 2.5 Datalog Feature ==
716 716  
717 -Fix one piece of the magnetic sensor to the door and connect the two pins to SN50_v3 as follows:
718 718  
719 -* (((
720 -One pin to SN50_v3's PA8 pin
721 -)))
722 -* (((
723 -The other pin to SN50_v3's VDD pin
724 -)))
352 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes.
725 725  
726 -Install the other piece to the door. Find a place where the two pieces will be close to each other when the door is closed. For this particular magnetic sensor, when the door is closed, the output will be short, and PA8 will be at the VCC voltage.
727 727  
728 -Door sensors have two types: ** NC (Normal close)** and **NO (normal open)**. The connection for both type sensors are the same. But the decoding for payload are reverse, user need to modify this in the IoT Server decoder.
355 +=== 2.5.1 Ways to get datalog via LoRaWAN ===
729 729  
730 -When door sensor is shorted, there will extra power consumption in the circuit, the extra current is 3v3/R14 = 3v3/1Mohm = 3uA which can be ignored.
731 731  
732 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379283019-229.png?rev=1.1||alt="1656379283019-229.png"]]
358 +Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayloadA028FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
733 733  
734 -The above photos shows the two parts of the magnetic switch fitted to a door.
360 +* a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server.
361 +* b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages.
735 735  
736 -The software by default uses the falling edge on the signal line as an interrupt. We need to modify it to accept both the rising edge (0v ~-~-> VCC , door close) and the falling edge (VCC ~-~-> 0v , door open) as the interrupt.
363 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
737 737  
738 -The command is:
365 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
739 739  
740 -**AT+INTMOD1=1       **~/~/(more info about INMOD please refer** **[[**AT Command Manual**>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/&file=DRAGINO_LSN50_AT_Commands_v1.5.1.pdf]]**. **)
367 +=== 2.5.2 Unix TimeStamp ===
741 741  
742 -Below shows some screen captures in TTN V3:
743 743  
744 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379339508-835.png?rev=1.1||alt="1656379339508-835.png"]]
370 +S31x-LB uses Unix TimeStamp format based on
745 745  
746 -In MOD=1, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
372 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
747 747  
748 -door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
374 +User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
749 749  
376 +Below is the converter example
750 750  
751 -==== 2.3.3.6 I2C Interface (SHT20 & SHT31) ====
378 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
752 752  
753 -The SDA and SCK are I2C interface lines. You can use these to connect to an I2C device and get the sensor data.
380 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 Jan ~-~- 29 Friday 03:03:25
754 754  
755 -We have made an example to show how to use the I2C interface to connect to the SHT20/ SHT31 Temperature and Humidity Sensor.
756 756  
757 -Notice: Different I2C sensors have different I2C commands set and initiate process, if user want to use other I2C sensors, User need to re-write the source code to support those sensors. SHT20/ SHT31 code in SN50_v3 will be a good reference.
383 +=== 2.5.3 Set Device Time ===
758 758  
759 -Below is the connection to SHT20/ SHT31. The connection is as below:
760 760  
386 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
761 761  
762 -[[image:image-20230513103633-3.png||height="448" width="716"]]
388 +Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
763 763  
764 -The device will be able to get the I2C sensor data now and upload to IoT Server.
390 +(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
765 765  
766 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379664142-345.png?rev=1.1||alt="1656379664142-345.png"]]
767 767  
768 -Convert the read byte to decimal and divide it by ten.
393 +=== 2.5.4 Datalog Uplink payload (FPORT~=3) ===
769 769  
770 -**Example:**
771 771  
772 -Temperature:  Read:0116(H) = 278(D)  Value 278 /10=27.8℃;
396 +The Datalog uplinks will use below payload format.
773 773  
774 -Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
398 +**Retrieval data payload:**
775 775  
776 -If you want to use other I2C device, please refer the SHT20 part source code as reference.
400 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
401 +|=(% style="width: 80px;background-color:#D9E2F3" %)(((
402 +**Size(bytes)**
403 +)))|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 120px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 103px; background-color: rgb(217, 226, 243);" %)**1**|=(% style="width: 85px; background-color: rgb(217, 226, 243);" %)**4**
404 +|(% style="width:103px" %)**Value**|(% style="width:54px" %)(((
405 +[[Temp_Black>>||anchor="HTemperatureBlack:"]]
406 +)))|(% style="width:51px" %)[[Temp_White>>||anchor="HTemperatureWhite:"]]|(% style="width:89px" %)[[Temp_ Red or Temp _White>>||anchor="HTemperatureREDorTemperatureWhite:"]]|(% style="width:103px" %)Poll message flag & Ext|(% style="width:54px" %)[[Unix Time Stamp>>||anchor="H2.5.2UnixTimeStamp"]]
777 777  
408 +**Poll message flag & Ext:**
778 778  
779 -==== 2.3.3.7  ​Distance Reading ====
410 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20221006192726-1.png?width=754&height=112&rev=1.1||alt="图片-20221006192726-1.png" height="112" width="754"]]
780 780  
781 -Refer [[Ultrasonic Sensor section>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/#H2.4.8UltrasonicSensor]].
412 +**No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
782 782  
414 +**Poll Message Flag**: 1: This message is a poll message reply.
783 783  
784 -==== 2.3.3.8 Ultrasonic Sensor ====
416 +* Poll Message Flag is set to 1.
785 785  
786 -This Fundamental Principles of this sensor can be found at this link: [[https:~~/~~/wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU~~_~~__SEN0208>>url:https://wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU___SEN0208]]
418 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
787 787  
788 -The SN50_v3 detects the pulse width of the sensor and converts it to mm output. The accuracy will be within 1 centimeter. The usable range (the distance between the ultrasonic probe and the measured object) is between 24cm and 600cm.
420 +For example, in US915 band, the max payload for different DR is:
789 789  
790 -The working principle of this sensor is similar to the **HC-SR04** ultrasonic sensor.
422 +**a) DR0:** max is 11 bytes so one entry of data
791 791  
792 -The picture below shows the connection:
424 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
793 793  
794 -[[image:image-20230512173903-6.png||height="596" width="715"]]
426 +**c) DR2:** total payload includes 11 entries of data
795 795  
796 -Connect to the SN50_v3 and run **AT+MOD=2** to switch to ultrasonic mode (ULT).
428 +**d) DR3: **total payload includes 22 entries of data.
797 797  
798 -The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
430 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
799 799  
432 +
800 800  **Example:**
801 801  
802 -Distance:  Read: 0C2D(Hex) = 3117(D)  Value 3117 mm=311.7 cm
435 +If S31x-LB has below data inside Flash:
803 803  
437 +[[image:1682646494051-944.png]]
804 804  
439 +If user sends below downlink command: 3160065F9760066DA705
805 805  
806 -==== 2.3.3.9  Battery Output - BAT pin ====
441 +Where : Start time: 60065F97 = time 21/1/19 04:27:03
807 807  
808 -The BAT pin of SN50v3 is connected to the Battery directly. If users want to use BAT pin to power an external sensor. User need to make sure the external sensor is of low power consumption. Because the BAT pin is always open. If the external sensor is of high power consumption. the battery of SN50v3-LB will run out very soon.
443 + Stop time: 60066DA7= time 21/1/19 05:27:03
809 809  
810 810  
811 -==== 2.3.3.1 +5V Output ====
446 +**S31x-LB will uplink this payload.**
812 812  
813 -SN50v3 will enable +5V output before all sampling and disable the +5v after all sampling
448 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-13.png?width=727&height=421&rev=1.1||alt="图片-20220523001219-13.png" height="421" width="727"]]
814 814  
815 -The 5V output time can be controlled by AT Command.
450 +(((
451 +__**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
452 +)))
816 816  
817 -**AT+5VT=1000**
454 +(((
455 +Where the first 11 bytes is for the first entry:
456 +)))
818 818  
819 -Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
458 +(((
459 +7FFF089801464160065F97
460 +)))
820 820  
821 -By default the AT+5VT=500. If the external sensor which require 5v and require more time to get stable state, user can use this command to increase the power ON duration for this sensor.
462 +(((
463 +**Ext sensor data**=0x7FFF/100=327.67
464 +)))
822 822  
466 +(((
467 +**Temp**=0x088E/100=22.00
468 +)))
823 823  
470 +(((
471 +**Hum**=0x014B/10=32.6
472 +)))
824 824  
825 -==== 2.3.3.11  BH1750 Illumination Sensor ====
474 +(((
475 +**poll message flag & Ext**=0x41,means reply data,Ext=1
476 +)))
826 826  
827 -MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
478 +(((
479 +**Unix time** is 0x60066009=1611030423s=21/1/19 04:27:03
480 +)))
828 828  
829 -[[image:image-20230512172447-4.png||height="416" width="712"]]
830 830  
831 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220628110012-12.png?rev=1.1||alt="image-20220628110012-12.png" height="361" width="953"]]
483 +(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的
832 832  
485 +== 2.6 Temperature Alarm Feature ==
833 833  
834 -==== 2.3.3.12  Working MOD ====
835 835  
836 -The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
488 +S31x-LB work flow with Alarm feature.
837 837  
838 -User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
839 839  
840 -Case 7^^th^^ Byte >> 2 & 0x1f:
491 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/image-20220623090437-1.png?rev=1.1||alt="图片-20220623090437-1.png"]]
841 841  
842 -* 0: MOD1
843 -* 1: MOD2
844 -* 2: MOD3
845 -* 3: MOD4
846 -* 4: MOD5
847 -* 5: MOD6
848 -* 6: MOD7
849 -* 7: MOD8
850 -* 8: MOD9
851 851  
852 -== 2.4 Payload Decoder file ==
494 +== 2.7 Frequency Plans ==
853 853  
854 854  
855 -In TTN, use can add a custom payload so it shows friendly reading
497 +The S31x-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
856 856  
857 -In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
858 -
859 -[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/SN50_v3-LB>>https://github.com/dragino/dragino-end-node-decoder/tree/main/SN50_v3-LB]]
860 -
861 -
862 -
863 -== 2.5 Frequency Plans ==
864 -
865 -
866 -The SN50v3-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
867 -
868 868  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
869 869  
870 870  
871 -= 3. Configure SN50v3-LB =
502 += 3. Configure S31x-LB =
872 872  
873 873  == 3.1 Configure Methods ==
874 874  
875 875  
876 -SN50v3-LB supports below configure method:
507 +S31x-LB supports below configure method:
877 877  
878 878  * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
879 879  * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
... ... @@ -892,7 +892,7 @@
892 892  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
893 893  
894 894  
895 -== 3.3 Commands special design for SN50v3-LB ==
526 +== 3.3 Commands special design for S31x-LB ==
896 896  
897 897  
898 898  These commands only valid for S31x-LB, as below:
... ... @@ -900,6 +900,7 @@
900 900  
901 901  === 3.3.1 Set Transmit Interval Time ===
902 902  
534 +
903 903  Feature: Change LoRaWAN End Node Transmit Interval.
904 904  
905 905  (% style="color:blue" %)**AT Command: AT+TDC**
... ... @@ -925,161 +925,118 @@
925 925  * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
926 926  * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
927 927  
928 -
929 929  === 3.3.2 Get Device Status ===
930 930  
931 -Send a LoRaWAN downlink to ask the device to send its status.
932 932  
563 +Send a LoRaWAN downlink to ask device send Alarm settings.
564 +
933 933  (% style="color:blue" %)**Downlink Payload:  **(%%)0x26 01
934 934  
935 935  Sensor will upload Device Status via FPORT=5. See payload section for detail.
936 936  
937 937  
938 -=== 3.3.3 Set Interrupt Mode ===
570 +=== 3.3.3 Set Temperature Alarm Threshold ===
939 939  
940 -Feature, Set Interrupt mode for GPIO_EXIT.
572 +* (% style="color:blue" %)**AT Command:**
941 941  
942 -(% style="color:blue" %)**AT Command: AT+INTMOD1,AT+INTMOD2,AT+INTMOD3**
574 +(% style="color:#037691" %)**AT+SHTEMP=min,max**
943 943  
944 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
945 -|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
946 -|(% style="width:154px" %)AT+INTMOD1=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
947 -0
948 -OK
949 -the mode is 0 =Disable Interrupt
950 -)))
951 -|(% style="width:154px" %)AT+INTMOD1=2|(% style="width:196px" %)(((
952 -Set Transmit Interval
953 -0. (Disable Interrupt),
954 -~1. (Trigger by rising and falling edge)
955 -2. (Trigger by falling edge)
956 -3. (Trigger by rising edge)
957 -)))|(% style="width:157px" %)OK
958 -|(% style="width:154px" %)AT+INTMOD2=3|(% style="width:196px" %)(((
959 -Set Transmit Interval
576 +* When min=0, and max≠0, Alarm higher than max
577 +* When min≠0, and max=0, Alarm lower than min
578 +* When min≠0 and max≠0, Alarm higher than max or lower than min
960 960  
961 -trigger by rising edge.
962 -)))|(% style="width:157px" %)OK
963 -|(% style="width:154px" %)AT+INTMOD3=0|(% style="width:196px" %)Disable Interrupt|(% style="width:157px" %)OK
580 +Example:
964 964  
965 -(% style="color:blue" %)**Downlink Command: 0x06**
582 + AT+SHTEMP=0,30   ~/~/ Alarm when temperature higher than 30.
966 966  
967 -Format: Command Code (0x06) followed by 3 bytes.
584 +* (% style="color:blue" %)**Downlink Payload:**
968 968  
969 -This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
586 +(% style="color:#037691" %)**0x(0C 01 00 1E)**  (%%) ~/~/ Set AT+SHTEMP=0,30
970 970  
971 -* Example 1: Downlink Payload: 06000000  **~-~-->**  AT+INTMOD1=0
972 -* Example 2: Downlink Payload: 06000003  **~-~-->**  AT+INTMOD1=3
973 -* Example 3: Downlink Payload: 06000102  **~-~-->**  AT+INTMOD2=2
974 -* Example 4: Downlink Payload: 06000201  **~-~-->**  AT+INTMOD3=1
588 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)**
975 975  
976 976  
977 -=== 3.3.4 Set Power Output Duration ===
591 +=== 3.3.4 Set Humidity Alarm Threshold ===
978 978  
979 -Control the output duration 5V . Before each sampling, device will
593 +* (% style="color:blue" %)**AT Command:**
980 980  
981 -~1. first enable the power output to external sensor,
595 +(% style="color:#037691" %)**AT+SHHUM=min,max**
982 982  
983 -2. keep it on as per duration, read sensor value and construct uplink payload
597 +* When min=0, and max≠0, Alarm higher than max
598 +* When min≠0, and max=0, Alarm lower than min
599 +* When min≠0 and max≠0, Alarm higher than max or lower than min
984 984  
985 -3. final, close the power output.
601 +Example:
986 986  
987 -(% style="color:blue" %)**AT Command: AT+5VT**
603 + AT+SHHUM=70,0  ~/~/ Alarm when humidity lower than 70%.
988 988  
989 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
990 -|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
991 -|(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)(((
992 -500(default)
605 +* (% style="color:blue" %)**Downlink Payload:**
993 993  
994 -OK
995 -)))
996 -|(% style="width:154px" %)AT+5VT=1000|(% style="width:196px" %)(((
997 -Close after a delay of 1000 milliseconds.
998 -)))|(% style="width:157px" %)OK
607 +(% style="color:#037691" %)**0x(0C 02 46 00)**(%%)  ~/~/ Set AT+SHTHUM=70,0
999 999  
1000 -(% style="color:blue" %)**Downlink Command: 0x07**
609 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))**
1001 1001  
1002 -Format: Command Code (0x07) followed by 2 bytes.
1003 1003  
1004 -The first and second bytes are the time to turn on.
612 +=== 3.3.5 Set Alarm Interval ===
1005 1005  
1006 -* Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
1007 -* Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
614 +The shortest time of two Alarm packet. (unit: min)
1008 1008  
616 +* (% style="color:blue" %)**AT Command:**
1009 1009  
1010 -=== 3.3.5 Set Weighing parameters ===
618 +(% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes.
1011 1011  
1012 -Feature: Working mode 5 is effective, weight initialization and weight factor setting of HX711.
620 +* (% style="color:blue" %)**Downlink Payload:**
1013 1013  
1014 -(% style="color:blue" %)**AT Command: AT+WEIGRE,AT+WEIGAP**
622 +(% style="color:#037691" %)**0x(0D 00 1E)**(%%)     **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes
1015 1015  
1016 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1017 -|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
1018 -|(% style="width:154px" %)AT+WEIGRE|(% style="width:196px" %)Weight is initialized to 0.|(% style="width:157px" %)OK
1019 -|(% style="width:154px" %)AT+WEIGAP=?|(% style="width:196px" %)400.0|(% style="width:157px" %)OK(default)
1020 -|(% style="width:154px" %)AT+WEIGAP=400.3|(% style="width:196px" %)Set the factor to 400.3.|(% style="width:157px" %)OK
1021 1021  
1022 -(% style="color:blue" %)**Downlink Command: 0x08**
625 +=== 3.3.6 Get Alarm settings ===
1023 1023  
1024 -Format: Command Code (0x08) followed by 2 bytes or 4 bytes.
1025 1025  
1026 -Use AT+WEIGRE when the first byte is 1, only 1 byte. When it is 2, use AT+WEIGAP, there are 3 bytes.
628 +Send a LoRaWAN downlink to ask device send Alarm settings.
1027 1027  
1028 -The second and third bytes are multiplied by 10 times to be the AT+WEIGAP value.
630 +* (% style="color:#037691" %)**Downlink Payload **(%%)0x0E 01
1029 1029  
1030 -* Example 1: Downlink Payload: 0801  **~-~-->**  AT+WEIGRE
1031 -* Example 2: Downlink Payload: 08020FA3  **~-~-->**  AT+WEIGAP=400.3
1032 -* Example 3: Downlink Payload: 08020FA0  **~-~-->**  AT+WEIGAP=400.0
632 +**Example:**
1033 1033  
634 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/1655948182791-225.png?rev=1.1||alt="1655948182791-225.png"]]
1034 1034  
1035 -=== 3.3.6 Set Digital pulse count value ===
1036 1036  
1037 -Feature: Set the pulse count value.
637 +**Explain:**
1038 1038  
1039 -Count 1 is PA8 pin of mode 6 and mode 9. Count 2 is PA4 pin of mode 9.
639 +* Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
1040 1040  
1041 -(% style="color:blue" %)**AT Command: AT+SETCNT**
641 +=== 3.3.7 Set Interrupt Mode ===
1042 1042  
1043 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1044 -|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
1045 -|(% style="width:154px" %)AT+SETCNT=1,100|(% style="width:196px" %)Initialize the count value 1 to 100.|(% style="width:157px" %)OK
1046 -|(% style="width:154px" %)AT+SETCNT=2,0|(% style="width:196px" %)Initialize the count value 2 to 0.|(% style="width:157px" %)OK
1047 1047  
1048 -(% style="color:blue" %)**Downlink Command: 0x09**
644 +Feature, Set Interrupt mode for GPIO_EXIT.
1049 1049  
1050 -Format: Command Code (0x09) followed by 5 bytes.
646 +(% style="color:blue" %)**AT Command: AT+INTMOD**
1051 1051  
1052 -The first byte is to select which count value to initialize, and the next four bytes are the count value to be initialized.
1053 -
1054 -* Example 1: Downlink Payload: 090100000000  **~-~-->**  AT+SETCNT=1,0
1055 -* Example 2: Downlink Payload: 0902000003E8  **~-~-->**  AT+SETCNT=2,1000
1056 -
1057 -
1058 -=== 3.3.7 Set Workmode ===
1059 -
1060 -Feature: Switch working mode.
1061 -
1062 -(% style="color:blue" %)**AT Command: AT+MOD**
1063 -
1064 1064  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1065 1065  |=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
1066 -|(% style="width:154px" %)AT+MOD=?|(% style="width:196px" %)Get the current working mode.|(% style="width:157px" %)(((
650 +|(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
651 +0
1067 1067  OK
653 +the mode is 0 =Disable Interrupt
1068 1068  )))
1069 -|(% style="width:154px" %)AT+MOD=4|(% style="width:196px" %)Set the working mode to 3DS18B20s.|(% style="width:157px" %)(((
1070 -OK
655 +|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
656 +Set Transmit Interval
657 +0. (Disable Interrupt),
658 +~1. (Trigger by rising and falling edge)
659 +2. (Trigger by falling edge)
660 +3. (Trigger by rising edge)
661 +)))|(% style="width:157px" %)OK
1071 1071  
1072 -Attention:Take effect after ATZ
1073 -)))
663 +(% style="color:blue" %)**Downlink Command: 0x06**
1074 1074  
1075 -(% style="color:blue" %)**Downlink Command: 0x0A**
665 +Format: Command Code (0x06) followed by 3 bytes.
1076 1076  
1077 -Format: Command Code (0x0A) followed by 1 bytes.
667 +This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1078 1078  
1079 -* Example 1: Downlink Payload: 0A01  **~-~-->**  AT+MOD=1
1080 -* Example 2: Downlink Payload: 0A04  **~-~-->**  AT+MOD=4
669 +* Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
670 +* Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1081 1081  
1082 -
1083 1083  = 4. Battery & Power Consumption =
1084 1084  
1085 1085  
... ... @@ -1108,10 +1108,7 @@
1108 1108  
1109 1109  = 6. FAQ =
1110 1110  
1111 -== 6.1 Where can i find source code of SN50v3-LB? ==
1112 1112  
1113 -* **[[Hardware Source Files>>https://github.com/dragino/Lora/tree/master/LSN50/v3.0]].**
1114 -* **[[Software Source Code & Compile instruction>>https://github.com/dragino/SN50v3]].**
1115 1115  
1116 1116  = 7. Order Info =
1117 1117  
... ... @@ -1153,4 +1153,4 @@
1153 1153  
1154 1154  
1155 1155  * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
1156 -* Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.cc>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.cc]]
742 +* Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]]
image-20230512163509-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -1.5 MB
Content
image-20230512164658-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.0 MB
Content
image-20230512170701-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.5 MB
Content
image-20230512172447-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.0 MB
Content
image-20230512173758-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.1 MB
Content
image-20230512173903-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.3 MB
Content
image-20230512180609-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.3 MB
Content
image-20230512180718-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.3 MB
Content
image-20230512181814-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -2.2 MB
Content
image-20230513084523-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -611.3 KB
Content
image-20230513102034-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -607.1 KB
Content
image-20230513103633-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -595.5 KB
Content
image-20230513105207-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -384.7 KB
Content
image-20230513105351-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -37.6 KB
Content
image-20230513110214-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -172.7 KB
Content
image-20230513111203-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -79.9 KB
Content
image-20230513111231-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -64.9 KB
Content
image-20230513111255-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -70.4 KB
Content
image-20230513134006-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Saxer
Size
... ... @@ -1,1 +1,0 @@
1 -1.9 MB
Content
image-20230515135611-1.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -948.0 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0