Last modified by Mengting Qiu on 2023/12/14 11:15

From version 79.20
edited by Xiaoling
on 2023/06/14 15:26
Change comment: Update document after refactoring.
To version 118.2
edited by Xiaoling
on 2023/11/28 14:00
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -LDS12-LB_LoRaWAN_LiDAR_ToF_Distance_Sensor_User_Manual
1 +DS20L -- LoRaWAN Smart Distance Detector User Manual
Content
... ... @@ -1,5 +1,5 @@
1 1  (% style="text-align:center" %)
2 -[[image:image-20230613133716-2.png||height="717" width="717"]]
2 +[[image:image-20231110085342-2.png||height="481" width="481"]]
3 3  
4 4  
5 5  
... ... @@ -19,450 +19,423 @@
19 19  
20 20  = 1. Introduction =
21 21  
22 -== 1.1 What is LoRaWAN Ultrasonic liquid level Sensor ==
22 +== 1.1 What is LoRaWAN Smart Distance Detector ==
23 23  
24 24  
25 -The Dragino DDS20-LB is a (% style="color:blue" %)**LoRaWAN Ultrasonic liquid level sensor**(%%) for Internet of Things solution. It uses (% style="color:blue" %)**none-contact method **(%%)to measure the (% style="color:blue" %)**height of liquid**(%%) in a container without opening the container, and send the value via LoRaWAN network to IoT Server.
25 +The Dragino (% style="color:blue" %)**DS20L is a smart distance detector**(%%) base on long-range wireless LoRaWAN technology. It uses (% style="color:blue" %)**LiDAR sensor**(%%) to detect the distance between DS20L and object, then DS20L will send the distance data to the IoT Platform via LoRaWAN. DS20L can measure range between 3cm ~~ 200cm.
26 26  
27 -The DDS20-LB sensor is installed directly below the container to detect the height of the liquid level. User doesn't need to open a hole on the container to be tested. The none-contact measurement makes the measurement safety, easier and possible for some strict situation. 
27 +DS20L allows users to send data and reach extremely long ranges via LoRaWAN. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current 
28 +consumption. It targets professional wireless sensor network applications such smart cities, building automation, and so on.
28 28  
29 -DDS20-LB uses (% style="color:blue" %)**ultrasonic sensing technology**(%%) for distance measurement. DDS20-LB is of high accuracy to measure various liquid such as: (% style="color:blue" %)**toxic substances**(%%), (% style="color:blue" %)**strong acids**(%%), (% style="color:blue" %)**strong alkalis**(%%) and (% style="color:blue" %)**various pure liquids**(%%) in high-temperature and high-pressure airtight containers.
30 +DS20L has a (% style="color:blue" %)**built-in 2400mAh non-chargeable battery**(%%) for long-term use up to several years*. Users can also power DS20L with an external power source for (% style="color:blue" %)**continuous measuring and distance alarm / counting purposes.**
30 30  
31 -The LoRa wireless technology used in DDS20-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.
32 +DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
32 32  
33 -DDS20-LB (% style="color:blue" %)**supports BLE configure**(%%) and (% style="color:blue" %)**wireless OTA update**(%%) which make user easy to use.
34 34  
35 -DDS20-LB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years.
35 +[[image:image-20231110102635-5.png||height="402" width="807"]]
36 36  
37 -Each DDS20-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.
38 38  
39 -[[image:image-20230613140115-3.png||height="453" width="800"]]
40 -
41 -
42 42  == 1.2 ​Features ==
43 43  
44 44  
45 -* LoRaWAN 1.0.3 Class A
46 -* Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
47 -* Ultra-low power consumption
48 -* Liquid Level Measurement by Ultrasonic technology
49 -* Measure through container, No need to contact Liquid
50 -* Valid level range 20mm - 2000mm
51 -* Accuracy: ±(5mm+S*0.5%) (S: Measure Value)
52 -* Cable Length : 25cm
53 -* Support Bluetooth v5.1 and LoRaWAN remote configure
54 -* Support wireless OTA update firmware
41 +* LoRaWAN Class A protocol
42 +* LiDAR distance detector, range 3 ~~ 200cm
43 +* Periodically detect or continuously detect mode
55 55  * AT Commands to change parameters
56 -* Downlink to change configure
57 -* IP66 Waterproof Enclosure
58 -* 8500mAh Battery for long term use
45 +* Remotely configure parameters via LoRaWAN Downlink
46 +* Alarm & Counting mode
47 +* Firmware upgradable via program port or LoRa protocol
48 +* Built-in 2400mAh battery or power by external power source
59 59  
60 -
61 -
62 62  == 1.3 Specification ==
63 63  
64 64  
65 -(% style="color:#037691" %)**Common DC Characteristics:**
53 +(% style="color:#037691" %)**LiDAR Sensor:**
66 66  
67 -* Supply Voltage: built in 8500mAh Li-SOCI2 battery , 2.5v ~~ 3.6v
68 -* Operating Temperature: -40 ~~ 85°C
55 +* Operation Temperature: -40 ~~ 80 °C
56 +* Operation Humidity: 0~~99.9%RH (no Dew)
57 +* Storage Temperature: -10 ~~ 45°C
58 +* Measure Range: 3cm~~200cm @ 90% reflectivity
59 +* Accuracy: ±2cm @ (3cm~~100cm); ±5% @ (100~~200cm)
60 +* ToF FoV: ±9°, Total 18°
61 +* Light source: VCSEL
69 69  
70 -(% style="color:#037691" %)**LoRa Spec:**
63 +== 1.4 Power Consumption ==
71 71  
72 -* Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
73 -* Max +22 dBm constant RF output vs.
74 -* RX sensitivity: down to -139 dBm.
75 -* Excellent blocking immunity
76 76  
77 -(% style="color:#037691" %)**Battery:**
66 +(% style="color:#037691" %)**Battery Power Mode:**
78 78  
79 -* Li/SOCI2 un-chargeable battery
80 -* Capacity: 8500mAh
81 -* Self-Discharge: <1% / Year @ 25°C
82 -* Max continuously current: 130mA
83 -* Max boost current: 2A, 1 second
68 +* Idle: 0.003 mA @ 3.3v
69 +* Max : 360 mA
84 84  
85 -(% style="color:#037691" %)**Power Consumption**
71 +(% style="color:#037691" %)**Continuously mode**:
86 86  
87 -* Sleep Mode: 5uA @ 3.3v
88 -* LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
73 +* Idle: 21 mA @ 3.3v
74 +* Max : 360 mA
89 89  
76 += 2. Configure DS20L to connect to LoRaWAN network =
90 90  
78 +== 2.1 How it works ==
91 91  
92 -== 1.4 Suitable Container & Liquid ==
93 93  
81 +The DS20L 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 DS20L. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
94 94  
95 -* Solid Wall container such as: steel, iron, glass, ceramics, non-foaming plastics etc.
96 -* Container shape is regular, and surface is smooth.
97 -* Container Thickness:
98 -** Pure metal material.  2~~8mm, best is 3~~5mm
99 -** Pure non metal material: <10 mm
100 -* Pure liquid without irregular deposition.
83 +(% style="display:none" %) (%%)
101 101  
85 +== 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
102 102  
103 103  
104 -(% style="display:none" %)
88 +Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
105 105  
106 -== 1.5 Install DDS20-LB ==
90 +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.(% style="display:none" %)
107 107  
92 +[[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
108 108  
109 -(% style="color:blue" %)**Step 1**(%%) ** Choose the installation point.**
94 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
110 110  
111 -DDS20-LB (% style="color:red" %)**MUST**(%%) be installed on the container bottom middle position.
96 +Each DS20L is shipped with a sticker with the default device EUI as below:
112 112  
113 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/image-20220615091045-3.png?rev=1.1||alt="image-20220615091045-3.png"]]
98 +[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
114 114  
115 115  
116 -(((
117 -(% style="color:blue" %)**Step 2**(%%):  **Polish the installation point.**
118 -)))
101 +You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
119 119  
120 -(((
121 -For Metal Surface with paint, it is important to polish the surface, first use crude sand paper to polish the paint level , then use exquisite sand paper to polish the metal level to make it shine & smooth.
122 -)))
123 123  
124 -[[image:image-20230613143052-5.png]]
104 +(% style="color:blue" %)**Register the device**
125 125  
106 +[[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/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
126 126  
127 -No polish needed if the container is shine metal surface without paint or non-metal container.
128 128  
129 -[[image:image-20230613143125-6.png]]
109 +(% style="color:blue" %)**Add APP EUI and DEV EUI**
130 130  
111 +[[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-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
131 131  
132 -(((
133 -(% style="color:blue" %)**Step3:   **(%%)**Test the installation point.**
134 -)))
135 135  
136 -(((
137 -Power on DDS20-LB, check if the blue LED is on, If the blue LED is on, means the sensor works. Then put ultrasonic coupling paste on the sensor and put it tightly on the installation point.
138 -)))
114 +(% style="color:blue" %)**Add APP EUI in the application**
139 139  
140 -(((
141 -It is necessary to put the coupling paste between the sensor and the container, otherwise DDS20-LB won't detect the liquid level.
142 -)))
143 143  
144 -(((
145 -After paste the DDS20-LB well, power on DDS20-LB. In the first 30 seconds of booting, device will check the sensors status and BLUE LED will show the status as below. After 30 seconds, BLUE LED will be off to save battery life.
146 -)))
117 +[[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-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
147 147  
148 148  
149 -(((
150 -(% style="color:blue" %)**LED Status:**
151 -)))
120 +(% style="color:blue" %)**Add APP KEY**
152 152  
153 -* (((
154 -**Onboard LED**: When power on device, the onboard LED will fast blink 4 times which means detect the sensor well.
155 -)))
122 +[[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"]]
156 156  
157 -* (((
158 -(% style="color:blue" %)**BLUE LED**(% style="color:red" %)** always ON**(%%): Sensor is power on but doesn't detect liquid. There is problem in installation point.
159 -)))
160 -* (((
161 -(% style="color:blue" %)**BLUE LED**(% style="color:red" %)** slowly blinking**(%%): Sensor detects Liquid Level, The installation point is good.
162 -)))
163 163  
164 -(((
165 -LDDS20 will enter into low power mode at 30 seconds after system reset or power on, Blue LED will be off after that.
166 -)))
125 +(% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
167 167  
127 +[[image:image-20231128133704-1.png||height="189" width="441"]]
168 168  
169 -(((
170 -(% style="color:red" %)**Note :**(%%)** (% style="color:blue" %)Ultrasonic coupling paste(%%)**(% style="color:blue" %) (%%) is subjected in most shipping way. So the default package doesn't include it and user needs to purchase locally.
171 -)))
129 +Press the button for 5 seconds to activate the DS20L.
172 172  
131 +(% 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.
173 173  
174 -(((
175 -(% style="color:blue" %)**Step4:   **(%%)**Install use Epoxy ab glue.**
176 -)))
133 +After join success, it will start to upload messages to TTN and you can see the messages in the panel.
177 177  
178 -(((
179 -Prepare Eproxy AB glue.
180 -)))
181 181  
182 -(((
183 -Put Eproxy AB glue in the sensor and press it hard on the container installation point.
184 -)))
136 +== 2.3 ​Uplink Payload ==
185 185  
186 -(((
187 -Reset DDS20-LB and see if the BLUE LED is slowly blinking.
188 -)))
138 +=== 2.3.1 Device Status, FPORT~=5 ===
189 189  
190 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/image-20220615091045-8.png?width=341&height=203&rev=1.1||alt="image-20220615091045-8.png"]] [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/image-20220615091045-9.png?width=284&height=200&rev=1.1||alt="image-20220615091045-9.png"]]
191 191  
141 +Users can use the downlink command(**0x26 01**) to ask DS20L to send device configure detail, include device configure status. DS20L will uplink a payload via FPort=5 to server.
192 192  
193 -(((
194 -(% style="color:red" %)**Note :**
143 +The Payload format is as below.
195 195  
196 -(% style="color:red" %)**1:**(%%)** (% style="color:blue" %)Eproxy AB glue(%%)** needs 3~~ 5 minutes to stable attached. we can use other glue material to keep it in the position.
197 -)))
145 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
146 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
147 +**Size(bytes)**
148 +)))|=(% style="width: 100px; background-color: #4F81BD;color:white;" %)**1**|=(% style="width: 100px; background-color: #4F81BD;color:white;" %)**2**|=(% style="background-color: #4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 50px;" %)**2**
149 +|(% style="width:62.5px" %)Value|(% style="width:110px" %)Sensor Model|(% style="width:48px" %)Firmware Version|(% style="width:94px" %)Frequency Band|(% style="width:91px" %)Sub-band|(% style="width:60px" %)BAT
198 198  
199 -(((
200 -(% style="color:red" %)**2:**(%%)** (% style="color:blue" %)Eproxy AB glue(%%)** is subjected in most shipping way. So the default package doesn't include it and user needs to purchase locally.
201 -)))
151 +Example parse in TTNv3
202 202  
153 +[[image:1701149922873-259.png]]
203 203  
204 -== 1.6 Applications ==
155 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
205 205  
157 +(% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
206 206  
207 -* Smart liquid control solution
159 +(% style="color:blue" %)**Frequency Band**:
208 208  
209 -* Smart liquefied gas solution
161 +0x01: EU868
210 210  
163 +0x02: US915
211 211  
165 +0x03: IN865
212 212  
213 -== 1.7 Precautions ==
167 +0x04: AU915
214 214  
169 +0x05: KZ865
215 215  
216 -* At room temperature, containers of different materials, such as steel, glass, iron, ceramics, non-foamed plastics and other dense materials, have different detection blind areas and detection limit heights.
171 +0x06: RU864
217 217  
218 -* For containers of the same material at room temperature, the detection blind zone and detection limit height are also different for the thickness of the container.
173 +0x07: AS923
219 219  
220 -* When the detected liquid level exceeds the effective detection value of the sensor, and the liquid level of the liquid to be measured shakes or tilts, the detected liquid height is unstable.
175 +0x08: AS923-1
221 221  
177 +0x09: AS923-2
222 222  
223 -(% style="display:none" %)
179 +0x0a: AS923-3
224 224  
225 -== 1.8 Sleep mode and working mode ==
181 +0x0b: CN470
226 226  
183 +0x0c: EU433
227 227  
228 -(% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
185 +0x0d: KR920
229 229  
230 -(% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
187 +0x0e: MA869
231 231  
189 +(% style="color:blue" %)**Sub-Band**:
232 232  
233 -== 1.9 Button & LEDs ==
191 +AU915 and US915:value 0x00 ~~ 0x08
234 234  
193 +CN470: value 0x0B ~~ 0x0C
235 235  
236 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
195 +Other Bands: Always 0x00
237 237  
197 +(% style="color:blue" %)**Battery Info**:
238 238  
239 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
240 -|=(% style="width: 167px;background-color:#D9E2F3;color:#0070C0" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 225px;background-color:#D9E2F3;color:#0070C0" %)**Action**
241 -|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
242 -If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
243 -Meanwhile, BLE module will be active and user can connect via BLE to configure device.
244 -)))
245 -|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
246 -(% 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.
247 -(% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
248 -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.
249 -)))
250 -|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
199 +Check the battery voltage.
251 251  
201 +Ex1: 0x0B45 = 2885mV
252 252  
203 +Ex2: 0x0B49 = 2889mV
253 253  
254 -== 1.10 BLE connection ==
255 255  
206 +=== 2.3.2 Uplink Payload, FPORT~=2 ===
256 256  
257 -DDS20-LB support BLE remote configure.
258 258  
259 -BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
209 +(((
210 +DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
260 260  
261 -* Press button to send an uplink
262 -* Press button to active device.
263 -* Device Power on or reset.
212 +periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
264 264  
265 -If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
214 +Uplink Payload totals 11 bytes.
215 +)))
266 266  
217 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
218 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
219 +**Size(bytes)**
220 +)))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 80px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**
221 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
222 +[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
223 +)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
224 +[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
225 +)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
226 +[[Message Type>>||anchor="HMessageType"]]
227 +)))
267 267  
268 -== 1.11 Pin Definitions ==
229 +[[image:image-20230805104104-2.png||height="136" width="754"]]
269 269  
270 -[[image:image-20230523174230-1.png]]
271 271  
232 +==== (% style="color:blue" %)**Battery Info**(%%) ====
272 272  
273 -== 1.12 Mechanical ==
274 274  
235 +Check the battery voltage for DS20L.
275 275  
276 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]]
237 +Ex1: 0x0B45 = 2885mV
277 277  
239 +Ex2: 0x0B49 = 2889mV
278 278  
279 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143899218-599.png]]
280 280  
242 +==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
281 281  
282 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]]
283 283  
245 +This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
284 284  
285 -(% style="color:blue" %)**Probe Mechanical:**
286 286  
287 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/image-20220615090910-1.png?rev=1.1||alt="image-20220615090910-1.png"]]
248 +**Example**:
288 288  
250 +If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
289 289  
290 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/image-20220615090910-2.png?rev=1.1||alt="image-20220615090910-2.png"]]
252 +If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
291 291  
292 292  
293 -= 2. Configure DDS20-LB to connect to LoRaWAN network =
255 +==== (% style="color:blue" %)**Distance**(%%) ====
294 294  
295 -== 2.1 How it works ==
296 296  
258 +Represents the distance value of the measurement output, the default unit is cm, and the value range parsed as a decimal number is 0-1200. In actual use, when the signal strength value Strength.
297 297  
298 -The DDS20-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 DDS20-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
299 299  
300 -(% style="display:none" %) (%%)
261 +**Example**:
301 301  
302 -== 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
263 +If the data you get from the register is 0x0B 0xEA, the distance between the sensor and the measured object is 0BEA(H) = 3050 (D)/10 = 305cm.
303 303  
304 304  
305 -Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
266 +==== (% style="color:blue" %)**Distance signal strength**(%%) ====
306 306  
307 -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.
308 308  
309 -[[image:image-20230613140140-4.png||height="453" width="800"]](% style="display:none" %)
269 +Refers to the signal strength, the default output value will be between 0-65535. When the distance measurement gear is fixed, the farther the distance measurement is, the lower the signal strength; the lower the target reflectivity, the lower the signal strength. When Strength is greater than 100 and not equal to 65535, the measured value of Dist is considered credible.
310 310  
311 311  
312 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DDS20-LB.
272 +**Example**:
313 313  
314 -Each DDS20-LB is shipped with a sticker with the default device EUI as below:
274 +If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
315 315  
316 -[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
276 +Customers can judge whether they need to adjust the environment based on the signal strength.
317 317  
318 318  
319 -You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
279 +**1) When the sensor detects valid data:**
320 320  
281 +[[image:image-20230805155335-1.png||height="145" width="724"]]
321 321  
322 -(% style="color:blue" %)**Register the device**
323 323  
324 -[[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/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
284 +**2) When the sensor detects invalid data:**
325 325  
286 +[[image:image-20230805155428-2.png||height="139" width="726"]]
326 326  
327 -(% style="color:blue" %)**Add APP EUI and DEV EUI**
328 328  
329 -[[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-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
289 +**3) When the sensor is not connected:**
330 330  
291 +[[image:image-20230805155515-3.png||height="143" width="725"]]
331 331  
332 -(% style="color:blue" %)**Add APP EUI in the application**
333 333  
294 +==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
334 334  
335 -[[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-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
336 336  
297 +This data field shows if this packet is generated by interrupt or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]] for the hardware and software set up.
337 337  
338 -(% style="color:blue" %)**Add APP KEY**
299 +Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
339 339  
340 -[[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"]]
301 +**Example:**
341 341  
303 +If byte[0]&0x01=0x00 : Normal uplink packet.
342 342  
343 -(% style="color:blue" %)**Step 2:**(%%) Activate on DDS20-LB
305 +If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
344 344  
345 345  
346 -Press the button for 5 seconds to activate the DDS20-LB.
308 +==== (% style="color:blue" %)**LiDAR temp**(%%) ====
347 347  
348 -(% 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.
349 349  
350 -After join success, it will start to upload messages to TTN and you can see the messages in the panel.
311 +Characterize the internal temperature value of the sensor.
351 351  
313 +**Example: **
314 +If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
315 +If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
352 352  
353 -== 2.3  ​Uplink Payload ==
354 354  
318 +==== (% style="color:blue" %)**Message Type**(%%) ====
355 355  
320 +
356 356  (((
357 -DDS20-LB will uplink payload via LoRaWAN with below payload format: 
322 +For a normal uplink payload, the message type is always 0x01.
358 358  )))
359 359  
360 360  (((
361 -Uplink payload includes in total 8 bytes.
326 +Valid Message Type:
362 362  )))
363 363  
364 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
365 -|=(% style="width: 62.5px;background-color:#D9E2F3;color:#0070C0" %)(((
366 -**Size(bytes)**
367 -)))|=(% style="width: 62.5px;background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="background-color:#D9E2F3;color:#0070C0" %)1|=(% style="background-color:#D9E2F3;color:#0070C0" %)2|=(% style="background-color:#D9E2F3;color:#0070C0" %)**1**
368 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="H2.3.1A0BatteryInfo"]]|(((
369 -[[Distance>>||anchor="H2.3.2A0Distance"]]
370 -(unit: mm)
371 -)))|[[Digital Interrupt (Optional)>>||anchor="H2.3.3A0InterruptPin"]]|(((
372 -[[Temperature (Optional )>>||anchor="H2.3.4A0DS18B20Temperaturesensor"]]
373 -)))|[[Sensor Flag>>||anchor="H2.3.5A0SensorFlag"]]
329 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
330 +|=(% style="width: 161px;background-color:#4F81BD;color:white" %)**Message Type Code**|=(% style="width: 164px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 174px;background-color:#4F81BD;color:white" %)**Payload**
331 +|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
332 +|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
374 374  
375 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS20%20-%20LoRaWAN%20Liquid%20Level%20Sensor%20User%20Manual/WebHome/1654850511545-399.png?rev=1.1||alt="1654850511545-399.png"]]
334 +[[image:image-20230805150315-4.png||height="233" width="723"]]
376 376  
377 377  
378 -=== 2.3. Battery Info ===
337 +=== 2.3.3 Historical measuring distance, FPORT~=3 ===
379 379  
380 380  
381 -Check the battery voltage for DDS20-LB.
340 +DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
382 382  
383 -Ex1: 0x0B45 = 2885mV
342 +The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
384 384  
385 -Ex2: 0x0B49 = 2889mV
344 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
345 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
346 +**Size(bytes)**
347 +)))|=(% style="width: 80px;background-color:#4F81BD;color:white" %)1|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD; color: white; width: 85px;" %)**1**|=(% style="background-color: #4F81BD; color: white; width: 85px;" %)4
348 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
349 +Reserve(0xFF)
350 +)))|Distance|Distance signal strength|(% style="width:88px" %)(((
351 +LiDAR temp
352 +)))|(% style="width:85px" %)Unix TimeStamp
386 386  
354 +**Interrupt flag & Interrupt level:**
387 387  
388 -=== 2.3.2  Distance ===
356 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
357 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
358 +**Size(bit)**
359 +)))|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit6**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**[bit5:bit2]**|=(% style="width: 90px; background-color: #4F81BD; color: white;" %)**bit1**|=(% style="background-color: #4F81BD; color: white; width: 90px;" %)**bit0**
360 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)No ACK message|(% style="width:62.5px" %)Poll Message Flag|Reserve|(% style="width:91px" %)Interrupt level|(% style="width:88px" %)(((
361 +Interrupt flag
362 +)))
389 389  
390 -
391 -(((
392 -Get the distance. Flat object range 20mm - 2000mm.
364 +* (((
365 +Each data entry is 11 bytes and has the same structure as [[Uplink Payload>>||anchor="H2.3.2UplinkPayload2CFPORT3D2"]], to save airtime and battery, DS20L will send max bytes according to the current DR and Frequency bands.
393 393  )))
394 394  
395 -(((
396 -For example, if the data you get from the register is **0x06 0x05**, the distance between the sensor and the measured object is(% style="color:#4472c4" %)** **
368 +For example, in the US915 band, the max payload for different DR is:
397 397  
398 -(% style="color:blue" %)**0605(H) = 1541 (D) = 1541 mm.**
399 -)))
370 +**a) DR0:** max is 11 bytes so one entry of data
400 400  
401 -* If the sensor value is 0x0000, it means system doesn't detect ultrasonic sensor.
372 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
402 402  
403 -* If the sensor value lower than 0x0014 (20mm), the sensor value will be invalid.
374 +**c) DR2:** total payload includes 11 entries of data
404 404  
376 +**d) DR3:** total payload includes 22 entries of data.
405 405  
378 +If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
406 406  
407 -=== 2.3.3  Interrupt Pin ===
408 408  
381 +**Downlink:**
409 409  
410 -This data field shows if this packet is generated by interrupt or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]] for the hardware and software set up.
383 +0x31 64 CC 68 0C 64 CC 69 74 05
411 411  
412 -**Example:**
385 +[[image:image-20230805144936-2.png||height="113" width="746"]]
413 413  
414 -0x00: Normal uplink packet.
387 +**Uplink:**
415 415  
416 -0x01: Interrupt Uplink Packet.
389 +43 FF 0E 10 00 B0 1E 64 CC 68 0C 40 FF 0D DE 00 A8 1E 64 CC 68 29 40 FF 09 92 00 D3 1E 64 CC 68 65 40 FF 02 3A 02 BC 1E 64 CC 68 A1 41 FF 0E 1A 00 A4 1E 64 CC 68 C0 40 FF 0D 2A 00 B8 1E 64 CC 68 E8 40 FF 00 C8 11 6A 1E 64 CC 69 24 40 FF 0E 24 00 AD 1E 64 CC 69 6D
417 417  
418 418  
419 -=== 2.3.4  DS18B20 Temperature sensor ===
392 +**Parsed Value:**
420 420  
394 +[DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
421 421  
422 -This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
423 423  
424 -**Example**:
397 +[360,176,30,High,True,2023-08-04 02:53:00],
425 425  
426 -If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
399 +[355,168,30,Low,False,2023-08-04 02:53:29],
427 427  
428 -If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
401 +[245,211,30,Low,False,2023-08-04 02:54:29],
429 429  
403 +[57,700,30,Low,False,2023-08-04 02:55:29],
430 430  
431 -=== 2.3.5  Sensor Flag ===
405 +[361,164,30,Low,True,2023-08-04 02:56:00],
432 432  
407 +[337,184,30,Low,False,2023-08-04 02:56:40],
433 433  
434 -(((
435 -0x01: Detect Ultrasonic Sensor
436 -)))
409 +[20,4458,30,Low,False,2023-08-04 02:57:40],
437 437  
438 -(((
439 -0x00: No Ultrasonic Sensor
440 -)))
411 +[362,173,30,Low,False,2023-08-04 02:58:53],
441 441  
442 442  
443 -=== 2.3.6  Decode payload in The Things Network ===
414 +**History read from serial port:**
444 444  
416 +[[image:image-20230805145056-3.png]]
445 445  
418 +
419 +=== 2.3.4 Decode payload in The Things Network ===
420 +
421 +
446 446  While using TTN network, you can add the payload format to decode the payload.
447 447  
448 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654850829385-439.png?rev=1.1||alt="1654850829385-439.png"]]
424 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654592762713-715.png?rev=1.1||alt="1654592762713-715.png"]]
449 449  
450 -The payload decoder function for TTN V3 is here:
451 451  
452 452  (((
453 -DDS20-LB TTN V3 Payload Decoder:  [[ttps:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
428 +The payload decoder function for TTN is here:
454 454  )))
455 455  
431 +(((
432 +DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
433 +)))
456 456  
457 -== 2.4  Uplink Interval ==
458 458  
436 +== 2.4 ​Show Data in DataCake IoT Server ==
459 459  
460 -The DDS20-LB by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: [[Change Uplink Interval>>||anchor="H3.3.1SetTransmitIntervalTime"]]
461 461  
462 -
463 -== 2.5  ​Show Data in DataCake IoT Server ==
464 -
465 -
466 466  (((
467 467  [[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, once we have data in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
468 468  )))
... ... @@ -485,7 +485,7 @@
485 485  
486 486  (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
487 487  
488 -(% style="color:blue" %)**Step 4**(%%)**: Search the DDS20-LB and add DevEUI.**
461 +(% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
489 489  
490 490  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654851029373-510.png?rev=1.1||alt="1654851029373-510.png"]]
491 491  
... ... @@ -495,97 +495,20 @@
495 495  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20220610165129-11.png?width=1088&height=595&rev=1.1||alt="image-20220610165129-11.png"]]
496 496  
497 497  
498 -== 2.6 Datalog Feature ==
471 +== 2.5 Frequency Plans ==
499 499  
500 500  
501 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DDS20-LB will store the reading for future retrieving purposes.
474 +The DS20L 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.
502 502  
503 -
504 -=== 2.6.1 Ways to get datalog via LoRaWAN ===
505 -
506 -
507 -Set PNACKMD=1, DDS20-LB will wait for ACK for every uplink, when there is no LoRaWAN network,DDS20-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.
508 -
509 -* (((
510 -a) DDS20-LB will do an ACK check for data records sending to make sure every data arrive server.
511 -)))
512 -* (((
513 -b) DDS20-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but DDS20-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 DDS20-LB gets a ACK, DDS20-LB will consider there is a network connection and resend all NONE-ACK messages.
514 -)))
515 -
516 -Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
517 -
518 -[[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"]]
519 -
520 -
521 -=== 2.6.2 Unix TimeStamp ===
522 -
523 -
524 -DDS20-LB uses Unix TimeStamp format based on
525 -
526 -[[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"]]
527 -
528 -User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
529 -
530 -Below is the converter example
531 -
532 -[[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"]]
533 -
534 -
535 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
536 -
537 -
538 -=== 2.6.3 Set Device Time ===
539 -
540 -
541 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
542 -
543 -Once DDS20-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to DDS20-LB. If DDS20-LB fails to get the time from the server, DDS20-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
544 -
545 -(% 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.**
546 -
547 -
548 -=== 2.6.4 Poll sensor value ===
549 -
550 -
551 -Users can poll sensor values based on timestamps. Below is the downlink command.
552 -
553 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
554 -|(% colspan="4" style="background-color:#d9e2f3; color:#0070c0; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
555 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
556 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
557 -
558 -(((
559 -Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
560 -)))
561 -
562 -(((
563 -For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]]
564 -)))
565 -
566 -(((
567 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
568 -)))
569 -
570 -(((
571 -Uplink Internal =5s,means DDS20-LB will send one packet every 5s. range 5~~255s.
572 -)))
573 -
574 -
575 -== 2.7 Frequency Plans ==
576 -
577 -
578 -The DDS20-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.
579 -
580 580  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
581 581  
582 582  
583 -= 3. Configure DDS20-LB =
479 += 3. Configure DS20L =
584 584  
585 585  == 3.1 Configure Methods ==
586 586  
587 587  
588 -DDS20-LB supports below configure method:
484 +DS20L supports below configure method:
589 589  
590 590  * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
591 591  
... ... @@ -593,8 +593,6 @@
593 593  
594 594  * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
595 595  
596 -
597 -
598 598  == 3.2 General Commands ==
599 599  
600 600  
... ... @@ -609,10 +609,10 @@
609 609  [[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/]]
610 610  
611 611  
612 -== 3.3 Commands special design for DDS20-LB ==
506 +== 3.3 Commands special design for DS20L ==
613 613  
614 614  
615 -These commands only valid for DDS20-LB, as below:
509 +These commands only valid for DS20L, as below:
616 616  
617 617  
618 618  === 3.3.1 Set Transmit Interval Time ===
... ... @@ -627,7 +627,7 @@
627 627  )))
628 628  
629 629  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
630 -|=(% style="width: 156px;background-color:#D9E2F3; color:#0070c0" %)**Command Example**|=(% style="width: 137px;background-color:#D9E2F3; color:#0070c0" %)**Function**|=(% style="background-color:#D9E2F3; color:#0070c0" %)**Response**
524 +|=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response**
631 631  |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
632 632  30000
633 633  OK
... ... @@ -654,29 +654,31 @@
654 654  Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
655 655  )))
656 656  * (((
657 -Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
658 -
659 -
660 -
551 +Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
661 661  )))
662 662  
554 +
663 663  === 3.3.2 Set Interrupt Mode ===
664 664  
665 665  
666 -Feature, Set Interrupt mode for PA8 of pin.
558 +Feature, Set Interrupt mode for pin of GPIO_EXTI.
667 667  
668 -When AT+INTMOD=0 is set, PA8 is used as a digital input port.
560 +When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
669 669  
670 670  (% style="color:blue" %)**AT Command: AT+INTMOD**
671 671  
672 672  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
673 -|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response**
565 +|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
674 674  |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
675 675  0
676 676  OK
677 677  the mode is 0 =Disable Interrupt
678 678  )))
679 -|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
571 +|(% style="width:154px" %)(((
572 +AT+INTMOD=3
573 +
574 +(default)
575 +)))|(% style="width:196px" %)(((
680 680  Set Transmit Interval
681 681  0. (Disable Interrupt),
682 682  ~1. (Trigger by rising and falling edge)
... ... @@ -696,10 +696,76 @@
696 696  
697 697  
698 698  
595 +== 3.3.3 Set work mode ==
596 +
597 +
598 +Feature: Switch working mode
599 +
600 +(% style="color:blue" %)**AT Command: AT+MOD**
601 +
602 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:463px" %)
603 +|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 108px;background-color:#4F81BD;color:white" %)**Response**
604 +|(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
605 +|(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
606 +OK
607 +
608 +Attention:Take effect after ATZ
609 +)))
610 +
611 +(% style="color:blue" %)**Downlink Command:**
612 +
613 +* **Example: **0x0A00  ~/~/  Same as AT+MOD=0
614 +
615 +* **Example:** 0x0A01  ~/~/  Same as AT+MOD=1
616 +
617 +
618 +=== 3.3.4 Set threshold and threshold mode ===
619 +
620 +
621 +Feature, Set threshold and threshold mode
622 +
623 +When **AT+DOL=0,0,0,0,400** is set, No threshold is used, the sampling time is 400ms.
624 +
625 +**AT Command: AT+DOL**
626 +
627 +(% border="1" cellspacing="4" style="width:571.818px" %)
628 +|(% style="width:172px" %)**Command Example**|(% style="width:279px" %)**Function**|(% style="width:118px" %)**Response**
629 +|(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
630 +0,0,0,0,400
631 +
632 +OK
633 +)))
634 +|(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
635 +
636 +
637 +(% border="1" cellspacing="4" style="width:668.818px" %)
638 +|(% rowspan="11" style="width:166px" %)**AT+DOL=5,1800,0,0,400**|(% rowspan="6" style="width:226px" %)The first bit sets the limit mode|(% style="width:251px" %)0:Do not use upper and lower limits
639 +|(% style="width:251px" %)1:Use upper and lower limits
640 +|(% style="width:251px" %)2:Less than the lower limit
641 +|(% style="width:251px" %)3:Greater than the lower limit
642 +|(% style="width:251px" %)4:Less than the upper limit
643 +|(% style="width:251px" %)5: Greater than the upper limit
644 +|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
645 +|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
646 +|(% rowspan="2" style="width:226px" %)The fourth bit sets the over-limit alarm or person or object count.|(% style="width:251px" %)0 Over-limit alarm, DO output is high
647 +|(% style="width:251px" %)1 Person or object counting statistics
648 +|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
649 +0~~10000ms
650 +
651 +
652 +)))
653 +
654 +**Downlink Command: 0x07**
655 +
656 +Format: Command Code (0x07) followed by 9bytes.
657 +
658 +* Example 0: Downlink Payload: 070000000000000190  **~-~-->**  AT+MOD=0,0,0,0,400
659 +* Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
660 +
699 699  = 4. Battery & Power Consumption =
700 700  
701 701  
702 -DDS20-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
664 +DS20L use built-in 2400mAh non-chargeable battery for long-term use up to several years*. See below link for detail information about the battery info and how to replace.
703 703  
704 704  [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
705 705  
... ... @@ -708,7 +708,7 @@
708 708  
709 709  
710 710  (% class="wikigeneratedid" %)
711 -User can change firmware DDS20-LB to:
673 +User can change firmware DS20L to:
712 712  
713 713  * Change Frequency band/ region.
714 714  
... ... @@ -716,7 +716,7 @@
716 716  
717 717  * Fix bugs.
718 718  
719 -Firmware and changelog can be downloaded from : **[[Firmware download link>>url:https://www.dropbox.com/sh/ph4uyz0rchflrnw/AADr1f_5Sg30804NItpfOQbla?dl=0]]**
681 +Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
720 720  
721 721  Methods to Update Firmware:
722 722  
... ... @@ -724,43 +724,40 @@
724 724  
725 725  * Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
726 726  
727 -
728 -
729 729  = 6. FAQ =
730 730  
731 -== 6.1  What is the frequency plan for DDS20-LB? ==
691 +== 6.1 What is the frequency plan for DS20L? ==
732 732  
733 733  
734 -DDS20-LB use the same frequency as other Dragino products. User can see the detail from this link:  [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]]
694 +DS20L use the same frequency as other Dragino products. User can see the detail from this link:  [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]]
735 735  
736 736  
737 -== 6.2  Can I use DDS20-LB in condensation environment? ==
697 += 7Trouble Shooting =
738 738  
699 +== 7.1 AT Command input doesn't work ==
739 739  
740 -DDS20-LB is not suitable to be used in condensation environment. Condensation on the DDS20-LB probe will affect the reading and always got 0.
741 741  
702 +In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:blue" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:blue" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
742 742  
743 -= 7.  Trouble Shooting =
744 744  
745 -== 7.1  Why I can't join TTN V3 in US915 / AU915 bands? ==
705 +== 7.2 Significant error between the output distant value of LiDAR and actual distance ==
746 746  
747 747  
748 -It is due to channel mapping. Please see below link:  [[Frequency band>>doc:Main.LoRaWAN Communication Debug.WebHome||anchor="H2.NoticeofUS9152FCN4702FAU915Frequencyband"]]
708 +(((
709 +(% style="color:blue" %)**Cause ①**(%%)**:**Due to the physical principles of The LiDAR probe, the above phenomenon is likely to occur if the detection object is the material with high reflectivity (such as mirror, smooth floor tile, etc.) or transparent substance. (such as glass and water, etc.)
710 +)))
749 749  
712 +(((
713 +(% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
714 +)))
750 750  
751 -== 7.2  AT Command input doesn't work ==
752 752  
753 -
754 -In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:blue" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:blue" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
755 -
756 -
757 -== 7.3  Why i always see 0x0000 or 0 for the distance value? ==
758 -
759 -
760 760  (((
761 -LDDS20 has a strict [[**installation requirement**>>||anchor="H1.5A0InstallDDS20-LB"]]. Please make sure the installation method exactly follows up with the installation requirement. Otherwise, the reading might be always 0x00.
718 +(% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
719 +)))
762 762  
763 -If you have followed the instruction requirement exactly but still see the 0x00 reading issue, please. please double-check the decoder, you can check the raw payload to verify.
721 +(((
722 +(% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
764 764  )))
765 765  
766 766  
... ... @@ -767,7 +767,7 @@
767 767  = 8. Order Info =
768 768  
769 769  
770 -Part Number: (% style="color:blue" %)**DDS20-LB-XXX**
729 +Part Number: (% style="color:blue" %)**DS20L-XXX**
771 771  
772 772  (% style="color:red" %)**XXX**(%%): **The default frequency band**
773 773  
... ... @@ -787,14 +787,12 @@
787 787  
788 788  * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
789 789  
790 -
791 -
792 792  = 9. ​Packing Info =
793 793  
794 794  
795 795  (% style="color:#037691" %)**Package Includes**:
796 796  
797 -* DDS20-LB LoRaWAN Ultrasonic Liquid Level Sensor x 1
754 +* DS20L LoRaWAN Smart Distance Detector x 1
798 798  
799 799  (% style="color:#037691" %)**Dimension and weight**:
800 800  
... ... @@ -806,8 +806,6 @@
806 806  
807 807  * Weight / pcs : g
808 808  
809 -
810 -
811 811  = 10. Support =
812 812  
813 813  
1701149922873-259.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +24.5 KB
Content
image-20230614153353-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +112.1 KB
Content
image-20230614162334-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +88.3 KB
Content
image-20230614162359-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +88.3 KB
Content
image-20230615152941-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +87.9 KB
Content
image-20230615153004-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +87.9 KB
Content
image-20230805103904-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.9 KB
Content
image-20230805104104-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.3 KB
Content
image-20230805144259-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +872.7 KB
Content
image-20230805144936-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +37.5 KB
Content
image-20230805145056-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +30.7 KB
Content
image-20230805150315-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +90.6 KB
Content
image-20230805155335-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.4 KB
Content
image-20230805155428-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.5 KB
Content
image-20230805155515-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.7 KB
Content
image-20231110085300-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +613.3 KB
Content
image-20231110085342-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +178.7 KB
Content
image-20231110091447-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +85.4 KB
Content
image-20231110091506-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +85.4 KB
Content
image-20231110102635-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +84.7 KB
Content
image-20231128133704-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +190.6 KB
Content