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

From version 114.2
edited by Xiaoling
on 2023/11/10 11:30
Change comment: There is no comment for this version
To version 125.8
edited by Xiaoling
on 2023/11/29 09:19
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -22,7 +22,7 @@
22 22  == 1.1 What is LoRaWAN Smart Distance Detector ==
23 23  
24 24  
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.
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 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 28  consumption. It targets professional wireless sensor network applications such smart cities, building automation, and so on.
... ... @@ -31,7 +31,6 @@
31 31  
32 32  DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
33 33  
34 -DS20L supports (% style="color:blue" %)**Datalog feature**(%%). It will record the data when there is no network coverage and users can retrieve the sensor value later to ensure no miss for every sensor reading.
35 35  
36 36  [[image:image-20231110102635-5.png||height="402" width="807"]]
37 37  
... ... @@ -45,7 +45,6 @@
45 45  * AT Commands to change parameters
46 46  * Remotely configure parameters via LoRaWAN Downlink
47 47  * Alarm & Counting mode
48 -* Datalog Feature
49 49  * Firmware upgradable via program port or LoRa protocol
50 50  * Built-in 2400mAh battery or power by external power source
51 51  
... ... @@ -64,10 +64,23 @@
64 64  * ToF FoV: ±9°, Total 18°
65 65  * Light source: VCSEL
66 66  
67 -(% style="display:none" %)
68 68  
69 69  
67 +== 1.4 Power Consumption ==
70 70  
69 +
70 +(% style="color:#037691" %)**Battery Power Mode:**
71 +
72 +* Idle: 0.003 mA @ 3.3v
73 +* Max : 360 mA
74 +
75 +(% style="color:#037691" %)**Continuously mode**:
76 +
77 +* Idle: 21 mA @ 3.3v
78 +* Max : 360 mA
79 +
80 +
81 +
71 71  = 2. Configure DS20L to connect to LoRaWAN network =
72 72  
73 73  == 2.1 How it works ==
... ... @@ -119,6 +119,7 @@
119 119  
120 120  (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
121 121  
133 +[[image:image-20231128133704-1.png||height="189" width="441"]]
122 122  
123 123  Press the button for 5 seconds to activate the DS20L.
124 124  
... ... @@ -144,9 +144,9 @@
144 144  
145 145  Example parse in TTNv3
146 146  
147 -[[image:image-20230805103904-1.png||height="131" width="711"]]
159 +[[image:1701149922873-259.png]]
148 148  
149 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
161 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
150 150  
151 151  (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
152 152  
... ... @@ -200,219 +200,120 @@
200 200  === 2.3.2 Uplink Payload, FPORT~=2 ===
201 201  
202 202  
203 -(((
204 -DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
215 +==== (% style="color:red" %)**MOD~=1**(%%) ====
205 205  
206 -periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
217 +Regularly detect distance and report. When the distance exceeds the limit, the alarm flag is set to 1, and the report can be triggered by external interrupts.
207 207  
208 -Uplink Payload totals 11 bytes.
209 -)))
219 +Uplink Payload totals 10 bytes.
210 210  
211 211  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
212 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
213 -**Size(bytes)**
214 -)))|=(% 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**
215 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
216 -[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
217 -)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
218 -[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
219 -)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
220 -[[Message Type>>||anchor="HMessageType"]]
221 -)))
222 +|(% style="background-color:#4f81bd; color:white; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:30px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**1**|(% style="background-color:#4f81bd; color:white; width:120px" %)**4**
223 +|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+ Alarm+Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count
222 222  
223 -[[image:image-20230805104104-2.png||height="136" width="754"]]
225 +[[image:1701155076393-719.png]]
224 224  
227 +(% style="color:blue" %)**Battery Info:**
225 225  
226 -==== (% style="color:blue" %)**Battery Info**(%%) ====
229 +Check the battery voltage for DS20L
227 227  
231 +Ex1: 0x0E10 = 3600mV
228 228  
229 -Check the battery voltage for DS20L.
230 230  
231 -Ex1: 0x0B45 = 2885mV
234 +(% style="color:blue" %)**MOD & Alarm & Interrupt:**
232 232  
233 -Ex2: 0x0B49 = 2889mV
236 +(% style="color:red" %)**MOD:**
234 234  
238 +**Example: ** (0x60>>6) & 0x3f =1
235 235  
236 -==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
240 +**0x01:**  Regularly detect distance and report.
241 +**0x02: ** Uninterrupted measurement (external power supply).
237 237  
243 +(% style="color:red" %)**Alarm:**
238 238  
239 -This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
245 +When the detection distance exceeds the limit, the alarm flag is set to 1.
240 240  
247 +(% style="color:red" %)**Interrupt:**
241 241  
242 -**Example**:
249 +Whether it is an external interrupt.
243 243  
244 -If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
245 245  
246 -If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
252 +(% style="color:blue" %)**Distance info:**
247 247  
248 -
249 -==== (% style="color:blue" %)**Distance**(%%) ====
250 -
251 -
252 -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.
253 -
254 -
255 255  **Example**:
256 256  
257 -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.
256 +If payload is: 0708H: distance = 0708H = 1800 mm
258 258  
259 259  
260 -==== (% style="color:blue" %)**Distance signal strength**(%%) ====
259 +(% style="color:blue" %)**Sensor State:**
261 261  
261 +Ex1: 0x00: Normal collection distance
262 262  
263 -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.
263 +Ex2 0x0x: Distance collection is wrong
264 264  
265 265  
266 -**Example**:
266 +(% style="color:blue" %)**Interript Count:**
267 267  
268 -If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
268 +If payload is:000007D0H: count = 07D0H =2000
269 269  
270 -Customers can judge whether they need to adjust the environment based on the signal strength.
271 271  
272 272  
273 -**1) When the sensor detects valid data:**
272 +==== (% style="color:red" %)**MOD~=2**(%%)** ** ====
274 274  
275 -[[image:image-20230805155335-1.png||height="145" width="724"]]
274 +Uninterrupted measurement. When the distance exceeds the limit, the output IO is set high and reports are reported every five minutes. The time can be set and powered by an external power supply.Uplink Payload totals 11bytes.
276 276  
277 -
278 -**2) When the sensor detects invalid data:**
279 -
280 -[[image:image-20230805155428-2.png||height="139" width="726"]]
281 -
282 -
283 -**3) When the sensor is not connected:**
284 -
285 -[[image:image-20230805155515-3.png||height="143" width="725"]]
286 -
287 -
288 -==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
289 -
290 -
291 -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.
292 -
293 -Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
294 -
295 -**Example:**
296 -
297 -If byte[0]&0x01=0x00 : Normal uplink packet.
298 -
299 -If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
300 -
301 -
302 -==== (% style="color:blue" %)**LiDAR temp**(%%) ====
303 -
304 -
305 -Characterize the internal temperature value of the sensor.
306 -
307 -**Example: **
308 -If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
309 -If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
310 -
311 -
312 -==== (% style="color:blue" %)**Message Type**(%%) ====
313 -
314 -
315 -(((
316 -For a normal uplink payload, the message type is always 0x01.
317 -)))
318 -
319 -(((
320 -Valid Message Type:
321 -)))
322 -
323 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
324 -|=(% 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**
325 -|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
326 -|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
327 -
328 -[[image:image-20230805150315-4.png||height="233" width="723"]]
329 -
330 -
331 -=== 2.3.3 Historical measuring distance, FPORT~=3 ===
332 -
333 -
334 -DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
335 -
336 -The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
337 -
338 338  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
339 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
340 -**Size(bytes)**
341 -)))|=(% 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
342 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
343 -Reserve(0xFF)
344 -)))|Distance|Distance signal strength|(% style="width:88px" %)(((
345 -LiDAR temp
346 -)))|(% style="width:85px" %)Unix TimeStamp
277 +|(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**4**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**
278 +|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+Alarm+Do+Limit flag|(% style="width:74px" %)Distance Limit Alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
347 347  
348 -**Interrupt flag & Interrupt level:**
280 +[[image:1701155150328-206.png]]
349 349  
350 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
351 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
352 -**Size(bit)**
353 -)))|=(% 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**
354 -|(% 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" %)(((
355 -Interrupt flag
356 -)))
282 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
357 357  
358 -* (((
359 -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.
360 -)))
284 +(% style="color:red" %)**MOD:**
361 361  
362 -For example, in the US915 band, the max payload for different DR is:
286 +**Example: ** (0x60>>6) & 0x3f =1
363 363  
364 -**a) DR0:** max is 11 bytes so one entry of data
288 +**0x01:**  Regularly detect distance and report.
289 +**0x02: ** Uninterrupted measurement (external power supply).
365 365  
366 -**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
291 +(% style="color:red" %)**Alarm:**
367 367  
368 -**c) DR2:** total payload includes 11 entries of data
293 +When the detection distance exceeds the limit, the alarm flag is set to 1.
369 369  
370 -**d) DR3:** total payload includes 22 entries of data.
295 +(% style="color:red" %)**Do:**
371 371  
372 -If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
297 +When the distance exceeds the set threshold, pull the Do pin high.
373 373  
299 +(% style="color:red" %)**Limit flag:**
374 374  
375 -**Downlink:**
301 +Mode for setting threshold: **0~~5**
376 376  
377 -0x31 64 CC 68 0C 64 CC 69 74 05
303 +**0:** does not use upper and lower limits
378 378  
379 -[[image:image-20230805144936-2.png||height="113" width="746"]]
305 +**1:** Use upper and lower limits
380 380  
381 -**Uplink:**
307 +**2:** is less than the lower limit value
382 382  
383 -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
309 +**3:** is greater than the lower limit value
384 384  
311 +**4:** is less than the upper limit
385 385  
386 -**Parsed Value:**
313 +**5:** is greater than the upper limit
387 387  
388 -[DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
389 389  
316 +(% style="color:blue" %)**Upper limit:**
390 390  
391 -[360,176,30,High,True,2023-08-04 02:53:00],
318 +The upper limit of the threshold cannot exceed 2000mm.
392 392  
393 -[355,168,30,Low,False,2023-08-04 02:53:29],
394 394  
395 -[245,211,30,Low,False,2023-08-04 02:54:29],
321 +(% style="color:blue" %)**Lower limit:**
396 396  
397 -[57,700,30,Low,False,2023-08-04 02:55:29],
323 +The lower limit of the threshold cannot be less than 3mm.
398 398  
399 -[361,164,30,Low,True,2023-08-04 02:56:00],
400 400  
401 -[337,184,30,Low,False,2023-08-04 02:56:40],
326 +== 2.4 Decode payload in The Things Network ==
402 402  
403 -[20,4458,30,Low,False,2023-08-04 02:57:40],
404 404  
405 -[362,173,30,Low,False,2023-08-04 02:58:53],
406 -
407 -
408 -**History read from serial port:**
409 -
410 -[[image:image-20230805145056-3.png]]
411 -
412 -
413 -=== 2.3.4 Decode payload in The Things Network ===
414 -
415 -
416 416  While using TTN network, you can add the payload format to decode the payload.
417 417  
418 418  [[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"]]
... ... @@ -427,7 +427,7 @@
427 427  )))
428 428  
429 429  
430 -== 2.4 ​Show Data in DataCake IoT Server ==
343 +== 2.5 ​Show Data in DataCake IoT Server ==
431 431  
432 432  
433 433  (((
... ... @@ -459,82 +459,9 @@
459 459  
460 460  After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
461 461  
462 -[[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"]]
375 +[[image:image-20231129085201-1.png||height="515" width="961"]]
463 463  
464 464  
465 -== 2.5 Datalog Feature ==
466 -
467 -
468 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DS20L will store the reading for future retrieving purposes.
469 -
470 -
471 -=== 2.5.1 Ways to get datalog via LoRaWAN ===
472 -
473 -
474 -Set PNACKMD=1, DS20L will wait for ACK for every uplink, when there is no LoRaWAN network, DS20L 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.
475 -
476 -* (((
477 -a) DS20L will do an ACK check for data records sending to make sure every data arrive server.
478 -)))
479 -* (((
480 -b) DS20L will send data in **CONFIRMED Mode** when PNACKMD=1, but DS20L 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 DS20L gets a ACK, DS20L will consider there is a network connection and resend all NONE-ACK messages.
481 -)))
482 -
483 -
484 -=== 2.5.2 Unix TimeStamp ===
485 -
486 -
487 -DS20L uses Unix TimeStamp format based on
488 -
489 -[[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"]]
490 -
491 -User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
492 -
493 -Below is the converter example
494 -
495 -[[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"]]
496 -
497 -
498 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
499 -
500 -
501 -=== 2.5.3 Set Device Time ===
502 -
503 -
504 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
505 -
506 -Once DS20L Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to DS20L. If DS20L fails to get the time from the server, DS20L will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
507 -
508 -(% 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.**
509 -
510 -
511 -=== 2.5.4 Poll sensor value ===
512 -
513 -
514 -Users can poll sensor values based on timestamps. Below is the downlink command.
515 -
516 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
517 -|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
518 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
519 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
520 -
521 -(((
522 -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.
523 -)))
524 -
525 -(((
526 -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"]]
527 -)))
528 -
529 -(((
530 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
531 -)))
532 -
533 -(((
534 -Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s.
535 -)))
536 -
537 -
538 538  == 2.6 Frequency Plans ==
539 539  
540 540  
... ... @@ -543,7 +543,7 @@
543 543  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
544 544  
545 545  
546 -3. Configure DS20L
386 += 3. Configure DS20L =
547 547  
548 548  == 3.1 Configure Methods ==
549 549  
... ... @@ -617,7 +617,7 @@
617 617  Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
618 618  )))
619 619  * (((
620 -Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
460 +Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
621 621  
622 622  
623 623  
... ... @@ -640,7 +640,7 @@
640 640  the mode is 0 =Disable Interrupt
641 641  )))
642 642  |(% style="width:154px" %)(((
643 -AT+INTMOD=2
483 +AT+INTMOD=3
644 644  
645 645  (default)
646 646  )))|(% style="width:196px" %)(((
... ... @@ -663,6 +663,98 @@
663 663  
664 664  
665 665  
506 +=== 3.3.3 Set work mode ===
507 +
508 +
509 +Feature: Switch working mode
510 +
511 +(% style="color:blue" %)**AT Command: AT+MOD**
512 +
513 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
514 +|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Response**
515 +|(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
516 +|(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
517 +OK
518 +Attention:Take effect after ATZ
519 +)))
520 +
521 +(% style="color:blue" %)**Downlink Command:**
522 +
523 +* **Example: **0x0A00  ~/~/  Same as AT+MOD=0
524 +
525 +* **Example:** 0x0A01  ~/~/  Same as AT+MOD=1
526 +
527 +
528 +
529 +=== 3.3.4 Set threshold and threshold mode ===
530 +
531 +
532 +Feature, Set threshold and threshold mode
533 +
534 +When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
535 +
536 +(% style="color:blue" %)**AT Command: AT+DOL**
537 +
538 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
539 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:240px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:108px" %)**Response**
540 +|(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
541 +0,0,0,0,400
542 +OK
543 +)))
544 +|(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
545 +
546 +
547 +
548 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
549 +|(% rowspan="11" style="color:blue; width:120px" %)(((
550 +
551 +
552 +
553 +
554 +
555 +
556 +
557 +
558 +
559 +
560 +
561 +**AT+DOL=5,1800,0,0,400**
562 +)))|(% rowspan="6" style="width:240px" %)The first bit sets the limit mode|(% style="width:150px" %)0: Do not use upper and lower limits
563 +|(% style="width:251px" %)1: Use upper and lower limits
564 +|(% style="width:251px" %)2: Less than the lower limit
565 +|(% style="width:251px" %)3: Greater than the lower limit
566 +|(% style="width:251px" %)4: Less than the upper limit
567 +|(% style="width:251px" %)5: Greater than the upper limit
568 +|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
569 +|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
570 +|(% 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
571 +|(% style="width:251px" %)1 Person or object counting statistics
572 +|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
573 +0~~10000ms
574 +
575 +
576 +)))
577 +
578 +
579 +
580 +(% style="color:blue" %)**Downlink Command: 0x07**
581 +
582 +Format: Command Code (0x07) followed by 9bytes.
583 +
584 +* Example 0: Downlink Payload: 070000000000000190  **~-~-->**  AT+MOD=0,0,0,0,400
585 +
586 +* Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
587 +
588 +* Example 2: Downlink Payload: 070200000064000190  **~-~-->**  AT+MOD=2,0,100,0,400
589 +
590 +* Example 3: Downlink Payload: 070300000064000190  **~-~-->**  AT+MOD=3,1800,100,0,400
591 +
592 +* Example 4: Downlink Payload: 070407080000000190  **~-~-->**  AT+MOD=4,0,100,0,400
593 +
594 +* Example 5: Downlink Payload: 070507080000000190  **~-~-->**  AT+MOD=5,1800,100,0,400
595 +
596 +
597 +
666 666  = 4. Battery & Power Consumption =
667 667  
668 668  
... ... @@ -701,6 +701,33 @@
701 701  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"]]
702 702  
703 703  
636 +== 6.2 DS20L programming line ==
637 +
638 +
639 +缺图 后续补上
640 +
641 +feature:
642 +
643 +for AT commands
644 +
645 +Update the firmware of DS20L
646 +
647 +Support interrupt mode
648 +
649 +
650 +== 6.3 LiDAR probe position ==
651 +
652 +
653 +[[image:1701155390576-216.png||height="285" width="307"]]
654 +
655 +The black oval hole in the picture is the LiDAR probe.
656 +
657 +
658 +== 6.4 Interface definition ==
659 +
660 +[[image:image-20231128151132-2.png||height="305" width="557"]]
661 +
662 +
704 704  = 7. Trouble Shooting =
705 705  
706 706  == 7.1 AT Command input doesn't work ==
1701149922873-259.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +24.5 KB
Content
1701152902759-553.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +52.2 KB
Content
1701152946067-561.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +52.2 KB
Content
1701155076393-719.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +54.6 KB
Content
1701155150328-206.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +54.6 KB
Content
1701155390576-216.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +293.9 KB
Content
image-20231128133704-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +190.6 KB
Content
image-20231128151132-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +281.2 KB
Content
image-20231129085201-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +70.6 KB
Content