Changes for page DS20L -- LoRaWAN Smart Distance Detector User Manual 01
Last modified by Mengting Qiu on 2023/12/14 11:15
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 4 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -47,7 +47,6 @@ 47 47 * Firmware upgradable via program port or LoRa protocol 48 48 * Built-in 2400mAh battery or power by external power source 49 49 50 - 51 51 == 1.3 Specification == 52 52 53 53 ... ... @@ -61,9 +61,6 @@ 61 61 * ToF FoV: ±9°, Total 18° 62 62 * Light source: VCSEL 63 63 64 - 65 - 66 - 67 67 == 1.4 Power Consumption == 68 68 69 69 ... ... @@ -77,9 +77,6 @@ 77 77 * Idle: 21 mA @ 3.3v 78 78 * Max : 360 mA 79 79 80 - 81 - 82 - 83 83 = 2. Configure DS20L to connect to LoRaWAN network = 84 84 85 85 == 2.1 How it works == ... ... @@ -131,6 +131,7 @@ 131 131 132 132 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L 133 133 127 +[[image:image-20231128133704-1.png||height="189" width="441"]] 134 134 135 135 Press the button for 5 seconds to activate the DS20L. 136 136 ... ... @@ -156,9 +156,9 @@ 156 156 157 157 Example parse in TTNv3 158 158 159 -[[image: image-20230805103904-1.png||height="131" width="711"]]153 +[[image:1701149922873-259.png]] 160 160 161 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x2 4155 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21 162 162 163 163 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 164 164 ... ... @@ -232,114 +232,110 @@ 232 232 [[Message Type>>||anchor="HMessageType"]] 233 233 ))) 234 234 235 - [[image:image-20230805104104-2.png||height="136"width="754"]]229 +==== **MOD~=1** ==== 236 236 231 +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. 237 237 238 - ====(% style="color:blue" %)**BatteryInfo**(%%)====233 +Uplink Payload totals 10 bytes. 239 239 235 +(% border="1" cellspacing="4" style="width:510px;background-color:#f2f2f2" %) 236 +|(% style="width:60px;background-color:#4F81BD;color:white" %)**Size(bytes)**|(% style="width:41px;background-color:#4F81BD;color:white" %)**2**|(% style="width:176px;background-color:#4F81BD;color:white" %)**1**|(% style="width:74px;background-color:#4F81BD;color:white" %)**2**|(% style="width:100px;background-color:#4F81BD;color:white" %)**1**|(% style="width:119px;background-color:#4F81BD;color:white" %)**4** 237 +|(% style="width:91px" %)Value|(% style="width:41px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:176px" %)MOD+ Alarm+Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count 240 240 241 -Check the battery voltage for DS20L. 242 242 243 - Ex1:0x0B45= 2885mV240 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]] 244 244 245 - Ex2:0x0B49=2889mV242 +==== **Battery Info** ==== 246 246 244 +Check the battery voltage for DS20L 247 247 248 - ==== (% style="color:blue"%)**DS18B20Temperature sensor**(%%)====246 +Ex1: 0x0E10 = 3600mV 249 249 248 +**MOD & Alarm & Interrupt** 250 250 251 - This is optional, user can connect externalDS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.250 +**MOD:** 252 252 252 +**Example: ** (0x60>>6) & 0x3f =1 253 253 254 -**Example**: 254 +**0x01:** Regularly detect distance and report. 255 +**0x02: ** Uninterrupted measurement (external power supply). 255 255 256 - If payload is: 0105H: (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree257 +**Alarm:** 257 257 258 - Ifpayload is:FF3FH:(FF3F & FC00 == 1), temp=(FF3FH-65536)/10= -19.3 degrees.259 +When the detection distance exceeds the limit, the alarm flag is set to 1. 259 259 261 +**Interrupt:** 260 260 261 - ====(%style="color:blue"%)**Distance**(%%) ====263 +Whether it is an external interrupt. 262 262 265 +==== Distance** info** ==== 263 263 264 -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. 265 - 266 - 267 267 **Example**: 268 268 269 -If the datayouget from the registeris0x0B0xEA, thedistancebetweenthe sensor and the measured object is0BEA(H)=3050 (D)/10= 305cm.269 +If payload is: 0708H: distance = 0708H = 1800 mm 270 270 271 +==== **Sensor State** ==== 271 271 272 - ====(%style="color:blue"%)**Distancesignal strength**(%%) ====273 +Ex1: 0x00: Normal collection distance 273 273 275 +Ex2 0x0x: Distance collection is wrong 274 274 275 - Refersto the signal strength, the default output value will be between 0-65535. When the distance measurement gears fixed,thefarther the distance measurementis, 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.277 +==== **Interript Count** ==== 276 276 279 +If payload is:000007D0H: count = 07D0H =2000 277 277 278 -** Example**:281 +**MOD=2** 279 279 280 - Ifpayloadis:01D7(H)=471(D),distance signalstrength=471,471>100,471≠65535,themeasured valueofDist isconsideredcredible.283 +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. 281 281 282 -Customers can judge whether they need to adjust the environment based on the signal strength. 285 +|**Size(bytes)**|**2**|**1**|**4**|**2**|**2** 286 +|Value|[[BAT>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/DS20L_LoRaWAN_Smart_Distance_Detector_User_Manual/#HBatteryInfo]]|MOD+ Alarm+Do+ Limit flag|Distance Limit Alarm count|Upper limit|Lower limit 283 283 284 284 285 - **1) When thensor detects valid data:**289 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]] 286 286 287 - [[image:image-20230805155335-1.png||height="145"width="724"]]291 +**MOD & Alarm & Do & Limit** **flag** 288 288 293 +**MOD:** 289 289 290 -** 2) Whenthesensordetectsinvaliddata:**295 +**Example: ** (0x60>>6) & 0x3f =1 291 291 292 -[[image:image-20230805155428-2.png||height="139" width="726"]] 297 +**0x01:** Regularly detect distance and report. 298 +**0x02: ** Uninterrupted measurement (external power supply). 293 293 300 +**Alarm:** 294 294 295 - **3)When thesensorisnotconnected:**302 +When the detection distance exceeds the limit, the alarm flag is set to 1. 296 296 297 - [[image:image-20230805155515-3.png||height="143" width="725"]]304 +**Do:** 298 298 306 +When the distance exceeds the set threshold, pull the Do pin high. 299 299 300 - ==== (% style="color:blue" %)**Interrupt Pin & InterruptLevel**(%%) ====308 +**Limit** **flag:** 301 301 310 +Mode for setting threshold: 0~~5 302 302 303 - Thisdata field shows if this packet isgenerated by interruptor not.[[Click here>>||anchor="H3.3.2SetInterruptMode"]] forthe hardware andsoftwaresetup.312 +0: does not use upper and lower limits 304 304 305 - Note:TheInternetPin isaseparate pinin the screwterminal.See pinmapping of GPIO_EXTI .314 +1: Use upper and lower limits 306 306 307 - **Example:**316 +2: is less than the lower limit value 308 308 309 - Ifbyte[0]&0x01=0x00:Normaluplinkpacket.318 +3: is greater than the lower limit value 310 310 311 - Ifbyte[0]&0x01=0x01: Interrupt Uplink Packet.320 +4: is less than the upper limit 312 312 322 +5: is greater than the upper limit 313 313 314 - ==== (% style="color:blue"%)**LiDAR temp**(%%) ====324 +**Upper limit:** 315 315 326 +The upper limit of the threshold cannot exceed 2000mm. 316 316 317 - Characterizethe internaltemperature value of the sensor.328 +**Lower limit:** 318 318 319 -**Example: ** 320 -If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃. 321 -If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃. 330 +The lower limit of the threshold cannot be less than 3mm. 322 322 323 323 324 -==== (% style="color:blue" %)**Message Type**(%%) ==== 325 - 326 - 327 -((( 328 -For a normal uplink payload, the message type is always 0x01. 329 -))) 330 - 331 -((( 332 -Valid Message Type: 333 -))) 334 - 335 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %) 336 -|=(% 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** 337 -|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload 338 -|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload 339 - 340 -[[image:image-20230805150315-4.png||height="233" width="723"]] 341 - 342 - 343 343 === 2.3.3 Historical measuring distance, FPORT~=3 === 344 344 345 345 ... ... @@ -471,90 +471,18 @@ 471 471 472 472 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake. 473 473 474 -[[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"]]464 +[[image:1701152946067-561.png]] 475 475 476 476 477 -== 2.5 DatalogFeature ==467 +== 2.5 Frequency Plans == 478 478 479 479 480 -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. 481 - 482 - 483 -=== 2.5.1 Ways to get datalog via LoRaWAN === 484 - 485 - 486 -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. 487 - 488 -* ((( 489 -a) DS20L will do an ACK check for data records sending to make sure every data arrive server. 490 -))) 491 -* ((( 492 -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. 493 -))) 494 - 495 -=== 2.5.2 Unix TimeStamp === 496 - 497 - 498 -DS20L uses Unix TimeStamp format based on 499 - 500 -[[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"]] 501 - 502 -User can get this time from link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] : 503 - 504 -Below is the converter example 505 - 506 -[[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"]] 507 - 508 - 509 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25 510 - 511 - 512 -=== 2.5.3 Set Device Time === 513 - 514 - 515 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command. 516 - 517 -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). 518 - 519 -(% 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.** 520 - 521 - 522 -=== 2.5.4 Poll sensor value === 523 - 524 - 525 -Users can poll sensor values based on timestamps. Below is the downlink command. 526 - 527 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %) 528 -|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)** 529 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte** 530 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval 531 - 532 -((( 533 -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. 534 -))) 535 - 536 -((( 537 -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"]] 538 -))) 539 - 540 -((( 541 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data 542 -))) 543 - 544 -((( 545 -Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s. 546 -))) 547 - 548 - 549 -== 2.6 Frequency Plans == 550 - 551 - 552 552 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. 553 553 554 554 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 555 555 556 556 557 -3. Configure DS20L 475 += 3. Configure DS20L = 558 558 559 559 == 3.1 Configure Methods == 560 560 ... ... @@ -626,10 +626,7 @@ 626 626 Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 627 627 ))) 628 628 * ((( 629 -Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 630 - 631 - 632 - 547 +Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 633 633 ))) 634 634 635 635 === 3.3.2 Set Interrupt Mode === ... ... @@ -649,7 +649,7 @@ 649 649 the mode is 0 =Disable Interrupt 650 650 ))) 651 651 |(% style="width:154px" %)((( 652 -AT+INTMOD= 2567 +AT+INTMOD=3 653 653 654 654 (default) 655 655 )))|(% style="width:196px" %)((( ... ... @@ -670,6 +670,74 @@ 670 670 671 671 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 672 672 588 + 589 +== 3.3.3 Set work mode == 590 + 591 + 592 +Feature: Switch working mode 593 + 594 +(% style="color:blue" %)**AT Command: AT+MOD** 595 + 596 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 597 +|=(% 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** 598 +|(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK 599 +|(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)((( 600 +OK 601 +Attention:Take effect after ATZ 602 +))) 603 + 604 +(% style="color:blue" %)**Downlink Command:** 605 + 606 +* **Example: **0x0A00 ~/~/ Same as AT+MOD=0 607 + 608 +* **Example:** 0x0A01 ~/~/ Same as AT+MOD=1 609 + 610 +=== 3.3.4 Set threshold and threshold mode === 611 + 612 + 613 +Feature, Set threshold and threshold mode 614 + 615 +When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms. 616 + 617 +(% style="color:blue" %)**AT Command: AT+DOL** 618 + 619 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 620 +|(% 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** 621 +|(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)((( 622 +0,0,0,0,400 623 +OK 624 +))) 625 +|(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK 626 + 627 + 628 + 629 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 630 +|(% rowspan="11" style="color:blue; width:120px" %)**AT+DOL=5,1800,0,0,400**|(% rowspan="6" style="width:240px" %)The first bit sets the limit mode|(% style="width:150px" %)0: Do not use upper and lower limits 631 +|(% style="width:251px" %)1: Use upper and lower limits 632 +|(% style="width:251px" %)2: Less than the lower limit 633 +|(% style="width:251px" %)3: Greater than the lower limit 634 +|(% style="width:251px" %)4: Less than the upper limit 635 +|(% style="width:251px" %)5: Greater than the upper limit 636 +|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM 637 +|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM 638 +|(% 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 639 +|(% style="width:251px" %)1 Person or object counting statistics 640 +|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)((( 641 +0~~10000ms 642 + 643 + 644 +))) 645 + 646 +(% style="color:blue" %)**Downlink Command: 0x07** 647 + 648 +Format: Command Code (0x07) followed by 9bytes. 649 + 650 +* Example 0: Downlink Payload: 070000000000000190 **~-~-->** AT+MOD=0,0,0,0,400 651 + 652 +* Example 1: Downlink Payload: 070107080064000190 **~-~-->** AT+MOD=1,1800,100,0,400 653 + 654 + 655 + 673 673 = 4. Battery & Power Consumption = 674 674 675 675
- 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
- image-20231128133704-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +190.6 KB - Content