Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Mengting Qiu on 2025/07/03 15:42
From version 41.7
edited by Xiaoling
on 2023/02/01 16:01
on 2023/02/01 16:01
Change comment:
There is no comment for this version
To version 44.1
edited by Bei Jinggeng
on 2023/02/22 14:46
on 2023/02/22 14:46
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Bei - Content
-
... ... @@ -22,30 +22,40 @@ 22 22 == 1.1 What is SDI-12 to LoRaWAN Converter == 23 23 24 24 25 +((( 25 25 The Dragino (% style="color:blue" %)**SDI-12-LB**(%%) is a (% style="color:blue" %)**SDI-12 to LoRaWAN Converter **(%%)designed for Smart Agriculture solution. 27 +))) 26 26 29 +((( 27 27 SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous [[serial communications>>url:https://en.wikipedia.org/wiki/Serial_communication]] protocol for intelligent sensors that monitor environment data. SDI-12 protocol is widely used in Agriculture sensor and Weather Station sensors. 31 +))) 28 28 33 +((( 29 29 SDI-12-LB has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol. 35 +))) 30 30 37 +((( 31 31 The LoRa wireless technology used in SDI-12-LB allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. 39 +))) 32 32 41 +((( 33 33 SDI-12-LB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years. 43 +))) 34 34 45 +((( 35 35 Each SDI-12-LB is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. 47 +))) 36 36 37 37 38 38 [[image:image-20230201084414-1.png||height="464" width="1108"]] 39 39 40 40 41 - 42 - 43 43 == 1.2 Features == 44 44 45 45 46 46 * LoRaWAN 1.0.3 Class A 47 47 * Ultra-low power consumption 48 -* Controllable 5v and 12v output to power external sensor 58 +* Controllable 3.3v, 5v and 12v output to power external sensor 49 49 * SDI-12 Protocol to connect to SDI-12 Sensor 50 50 * Monitor Battery Level 51 51 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 ... ... @@ -122,19 +122,18 @@ 122 122 [[image:1675212633011-651.png]] 123 123 124 124 125 - 126 126 (% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %) 127 -|=(% style="width: 167px;" %)**Behavior on ACT**|=(% style="width: 1 17px;" %)**Function**|=(% style="width: 225px;" %)**Action**128 -|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:1 17px" %)Send an uplink|(% style="width:225px" %)(((136 +|=(% style="width: 167px;" %)**Behavior on ACT**|=(% style="width: 109px;" %)**Function**|=(% style="width: 231px;" %)**Action** 137 +|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:109px" %)Send an uplink|(% style="width:231px" %)((( 129 129 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once. 130 130 Meanwhile, BLE module will be active and user can connect via BLE to configure device. 131 131 ))) 132 -|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:1 17px" %)Active Device|(% style="width:225px" %)(((141 +|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:109px" %)Active Device|(% style="width:231px" %)((( 133 133 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. 134 134 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. 135 135 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network. 136 136 ))) 137 -|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:1 17px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. MeansPS-LB is in Deep Sleep Mode.146 +|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:109px" %)Deactivate Device|(% style="width:231px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means SDI-12-LB is in Deep Sleep Mode. 138 138 139 139 == 1.7 Pin Mapping == 140 140 ... ... @@ -452,7 +452,7 @@ 452 452 453 453 (% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//. 454 454 455 -(% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2retries.464 +(% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 3 retries. 456 456 457 457 (% style="color:red" %)**0 **(%%) No validation check; 458 458 ... ... @@ -479,14 +479,14 @@ 479 479 **c**: define the position for valid value. 480 480 ))) 481 481 482 -For example, if return from AT+COMMAND1 is “013METER TER12 112T12-00024895” , Below AT+DATACUT1 will get different result to combine payload: 491 +For example, if return from AT+COMMAND1 is “013METER TER12 112T12-00024895<CR><LF>” , Below AT+DATACUT1 will get different result to combine payload: 483 483 484 484 485 485 (% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %) 486 -|(% style="width:1 70px" %)**AT+DATACUT1 value**|(% style="width:338px" %)**Final Result to combine Payload**487 -|(% style="width:1 70px" %)34,1,1+2+3|(% style="width:338px" %)0D 00 01 30 31 33488 -|(% style="width:1 70px" %)34,2,1~~8+12~~16|(% style="width:338px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32489 -|(% style="width:1 70px" %)34,2,1~~34|(% style="width:338px" %)0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A495 +|=(% style="width: 164px;" %)**AT+DATACUT1 value**|=(% style="width: 344px;" %)**Final Result to combine Payload** 496 +|(% style="width:164px" %)34,1,1+2+3|(% style="width:344px" %)0D 00 01 30 31 33 497 +|(% style="width:164px" %)34,2,1~~8+12~~16|(% style="width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32 498 +|(% style="width:164px" %)34,2,1~~34|(% style="width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A 490 490 491 491 * (% style="color:blue" %)** Downlink Payload:** 492 492 ... ... @@ -501,10 +501,10 @@ 501 501 Where: 502 502 503 503 * (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 504 -* (% style="color:#037691" %)**NN **(%%): 1: set the AT+ DATACUTvalue ; 2: set the AT+DATACUT value.513 +* (% style="color:#037691" %)**NN **(%%): 1: set the AT+COMMAND value ; 2: set the AT+DATACUT value. 505 505 * (% style="color:#037691" %)**LL **(%%): The length of AT+COMMAND or AT+DATACUT command 506 506 * (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command 507 -* (% style="color:#037691" %)**YY **(%%): If YY=0, RS485-LNwill execute the downlink command without uplink; if YY=1,RS485-LNwill execute an uplink after got this command.516 +* (% style="color:#037691" %)**YY **(%%): If YY=0, SDI-12-LB will execute the downlink command without uplink; if YY=1, SDI-12-LB will execute an uplink after got this command. 508 508 509 509 (% style="color:blue" %)**Example:** 510 510 ... ... @@ -511,6 +511,7 @@ 511 511 [[image:image-20230201094129-18.png]] 512 512 513 513 523 + 514 514 (% style="color:blue" %)**Clear SDI12 Command** 515 515 516 516 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. ... ... @@ -554,12 +554,11 @@ 554 554 555 555 (% style="color:blue" %)**Compose Uplink** 556 556 557 - 558 558 (% style="color:#4f81bd" %)**AT+DATAUP=0** 559 559 560 -Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK. 569 +Compose the uplink payload with value returns in sequence and send with **__A SIGNLE UPLINK__**. 561 561 562 -Final Payload is Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 571 +Final Payload is **__Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx__** 563 563 564 564 Where PAYVER is defined by AT+PAYVER, below is an example screen shot. 565 565 ... ... @@ -569,12 +569,10 @@ 569 569 570 570 (% style="color:#4f81bd" %)**AT+DATAUP=1** 571 571 572 -Compose the uplink payload with value returns in sequence and send with Multiply UPLINKs. 581 +Compose the uplink payload with value returns in sequence and send with **__Multiply UPLINKs__**. 573 573 574 -Final Payload is 583 +Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__ 575 575 576 -__**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__ 577 - 578 578 1. Battery Info (2 bytes): Battery voltage 579 579 1. PAYVER (1 byte): Defined by AT+PAYVER 580 580 1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. ... ... @@ -598,15 +598,6 @@ 598 598 599 599 == 2.4 Uplink Payload == 600 600 601 - 602 -Uplink payloads have two types: 603 - 604 -* Distance Value: Use FPORT=2 605 -* Other control commands: Use other FPORT fields. 606 - 607 -The application server should parse the correct value based on FPORT settings. 608 - 609 - 610 610 === 2.4.1 Device Payload, FPORT~=5 === 611 611 612 612 ... ... @@ -614,10 +614,10 @@ 614 614 615 615 Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink. 616 616 617 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:4 37px" %)615 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:420px" %) 618 618 |(% colspan="6" style="width:434px" %)**Device Status (FPORT=5)** 619 -|(% style="width:1 02px" %)**Size67px" %)**1**|(% style="width:80px" %)**2**|(% style="width:89px" %)**1**|(% style="width:52px" %)**1**|(% style="width:44px" %)**2**620 -|(% style="width:1 02px" %)**Value**|(% style="width:67px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:89px" %)Frequency Band|(% style="width:52px" %)Sub-band|(% style="width:44px" %)BAT617 +|(% style="width:114px" %)**Size(bytes)**|(% style="width:39px" %)**1**|(% style="width:80px" %)**2**|(% style="width:89px" %)**1**|(% style="width:59px" %)**1**|(% style="width:37px" %)**2** 618 +|(% style="width:114px" %)**Value**|(% style="width:39px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:89px" %)Frequency Band|(% style="width:59px" %)Sub-band|(% style="width:37px" %)BAT 621 621 622 622 Example parse in TTNv3 623 623 ... ... @@ -686,15 +686,15 @@ 686 686 687 687 * Periodically Uplink: FPORT=2 688 688 689 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:5 10px" %)690 -|(% style="width:9 3px" %)(((687 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:500px" %) 688 +|=(% style="width: 90px;" %)((( 691 691 **Size(bytes)** 692 -)))|(% style="width:8 3px" %)**2**|(% style="width:70px" %)**1**|(% style="width:234px" %)**Length depends on the return from the commands**690 +)))|=(% style="width: 80px;" %)**2**|=(% style="width: 90px;" %)**1**|=(% style="width: 240px;" %)**Length depends on the return from the commands** 693 693 |(% style="width:93px" %)**Value**|(% style="width:83px" %)((( 694 694 Battery(mV) 695 695 & 696 696 Interrupt_Flag 697 -)))|(% style="width: 70px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:234px" %)(((695 +)))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)((( 698 698 If the valid payload is too long and exceed the maximum support. 699 699 Payload length in server,server will show payload not provided in the LoRaWAN server. 700 700 ))) ... ... @@ -726,6 +726,7 @@ 726 726 727 727 === 2.4.5 Payload version === 728 728 727 +The version number of the payload, mainly used for decoding. The default is 01. 729 729 730 730 731 731 === 2.4.6 Decode payload in The Things Network === ... ... @@ -749,22 +749,87 @@ 749 749 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval]]]] 750 750 751 751 751 +== 2.6 Examples To Set SDI commands. == 752 752 753 +=== 2.6.1 Examples 1 === 753 753 754 - ==2.6FrequencyPlans==755 +COM port and SDI-12 sensor communication converted to SDI-12-LB and SDI-12 sensor communication. 755 755 757 +[[image:image-20230222143809-1.png||height="564" width="729"]] 756 756 759 +1)The AT+COMMANDx command is applied to the red arrow part, and sends the SDI12 command to the SDI12 sensor: 760 + 761 +a.Send the first command and get the first reply: 762 + 763 +AT+COMMANDx=1I!,0,0,1 764 + 765 +b.Send the second command and get the second reply: 766 + 767 +AT+COMMANDx=2I!,0,0,1 768 + 769 +c.Send the third command and get the third reply: 770 + 771 +AT+COMMANDx=3I!,0,0,1 772 + 773 +d.Send the fourth command and get the fourth reply: 774 + 775 +AT+COMMANDx=4I!,0,0,1 776 + 777 +e.Send the fifth command plus the sixth command, get the sixth reply: 778 + 779 +AT+COMMANDx=1M!,2,1,1 780 + 781 +f.Send the seventh command plus the eighth command, get the eighth reply: 782 + 783 +AT+COMMANDx=2M!,2,1,1 784 + 785 +g.Send the ninth command plus the tenth command, get the tenth reply: 786 + 787 +AT+COMMANDx=3M!,1,1,1 788 + 789 +h.Send the eleventh command plus the twelfth command, get the twelfth reply: 790 + 791 +AT+COMMANDx=4M!,1,1,1 792 + 793 + 794 +2) The AT+DATACUTx command is applied to the green arrow part, receiving and cut out data from the SDI12 sensor: 795 + 796 +a.The first reply, all 34 characters: ”113TRUEBNERSMT100038220303182331<CR><LF>” 797 + 798 +Cut out all characters: AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34; 799 + 800 +b. The sixth reply, all 31 characters:”1+19210+1.04+0.00+22.49+11.75<CR><LF>” 801 + 802 +Cut out all characters: AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31; 803 + 804 +c. The eighth reply, all 31 characters:”2+18990+1.08+0.00+22.24+11.80<CR><LF>” 805 + 806 +Cut out all characters: AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31; 807 + 808 +d. The tenth reply, all 15 characters:”3-2919.8+24.0<CR><LF>” 809 + 810 +Cut out all characters: AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15; 811 + 812 +e. The twelfth reply, all 25 characters:”4+30.8+22.84+4.7+954.38<CR><LF>” 813 + 814 +Partial cut, the cut sensor address and the first two parameters:AT+DATACUTx=25,2,1~~12, cut out the character field ” 4+30.8+22.84”. 815 + 816 +== == 817 + 818 +== 2.7 Frequency Plans == 819 + 820 + 757 757 The SDI-12-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. 758 758 759 759 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 760 760 761 761 762 -== 2. 7Firmware Change Log ==826 +== 2.8 Firmware Change Log == 763 763 764 764 765 765 **Firmware download link:** 766 766 767 -[[https:~~/~~/www.dropbox.com/sh/g f1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0>>url:https://www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0]]831 +[[https:~~/~~/www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0>>https://www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0]] 768 768 769 769 770 770 = 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink = ... ... @@ -794,7 +794,7 @@ 794 794 These commands only valid for SDI-12-LB, as below: 795 795 796 796 797 -== 3.1 Set Transmit Interval Time ==861 +== 3.1 Set Transmit Interval Time == 798 798 799 799 800 800 Feature: Change LoRaWAN End Node Transmit Interval. ... ... @@ -835,14 +835,14 @@ 835 835 |(% style="width:156px" %)AT+INTMOD=?|(% style="width:187px" %)Show current interrupt mode|(% style="width:165px" %)((( 836 836 0 837 837 OK 838 -the mode is 0 = Nointerruption902 +the mode is 0 = Disable Interrupt 839 839 ))) 840 840 |(% style="width:156px" %)AT+INTMOD=2|(% style="width:187px" %)((( 841 841 Set Transmit Interval 842 - ~1. (Disable Interrupt),843 - 2. (Trigger by rising and falling edge)844 - 3. (Trigger by falling edge)845 - 4. (Trigger by rising edge)906 +0. (Disable Interrupt), 907 +~1. (Trigger by rising and falling edge) 908 +2. (Trigger by falling edge) 909 +3. (Trigger by rising edge) 846 846 )))|(% style="width:165px" %)OK 847 847 848 848 (% style="color:blue" %)**Downlink Command: 0x06** ... ... @@ -981,6 +981,7 @@ 981 981 982 982 == 3.6 Set the payload version == 983 983 1048 + 984 984 Feature, Set the payload version. 985 985 986 986 (% style="color:blue" %)**AT Command: AT+PAYVER** ... ... @@ -1114,10 +1114,15 @@ 1114 1114 = 8. Order Info = 1115 1115 1116 1116 1182 +((( 1117 1117 (% style="color:blue" %)**Part Number: SDI-12-LB-XXX** 1184 +))) 1118 1118 1186 +((( 1119 1119 XXX: The default frequency band 1188 +))) 1120 1120 1190 +((( 1121 1121 (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band 1122 1122 (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band 1123 1123 (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band ... ... @@ -1126,13 +1126,9 @@ 1126 1126 (% style="color:red" %)**US915**(%%): LoRaWAN US915 band 1127 1127 (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band 1128 1128 (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band 1199 +))) 1129 1129 1130 1130 1131 - 1132 - 1133 - 1134 - 1135 - 1136 1136 = 9. Packing Info = 1137 1137 1138 1138
- image-20230222143809-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Bei - Size
-
... ... @@ -1,0 +1,1 @@ 1 +322.1 KB - Content