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, 9 added, 0 removed)
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,9 +31,8 @@ 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 -[[image:image-20231110 091506-4.png||height="391" width="768"]]35 +[[image:image-20231110102635-5.png||height="402" width="807"]] 37 37 38 38 39 39 == 1.2 Features == ... ... @@ -45,10 +45,11 @@ 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 50 + 51 + 52 52 == 1.3 Specification == 53 53 54 54 ... ... @@ -63,9 +63,22 @@ 63 63 * Light source: VCSEL 64 64 65 65 66 -(% style="display:none" %) 67 67 67 +== 1.4 Power Consumption == 68 68 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 + 69 69 = 2. Configure DS20L to connect to LoRaWAN network = 70 70 71 71 == 2.1 How it works == ... ... @@ -80,11 +80,10 @@ 80 80 81 81 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. 82 82 83 -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. 96 +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" %) 84 84 85 -[[image:image-20231110 091447-3.png||height="383" width="752"]](% style="display:none" %)98 +[[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %) 86 86 87 - 88 88 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L. 89 89 90 90 Each DS20L is shipped with a sticker with the default device EUI as below: ... ... @@ -118,6 +118,7 @@ 118 118 119 119 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L 120 120 133 +[[image:image-20231128133704-1.png||height="189" width="441"]] 121 121 122 122 Press the button for 5 seconds to activate the DS20L. 123 123 ... ... @@ -143,9 +143,9 @@ 143 143 144 144 Example parse in TTNv3 145 145 146 -[[image: image-20230805103904-1.png||height="131" width="711"]]159 +[[image:1701149922873-259.png]] 147 147 148 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x2 4161 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21 149 149 150 150 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 151 151 ... ... @@ -199,219 +199,120 @@ 199 199 === 2.3.2 Uplink Payload, FPORT~=2 === 200 200 201 201 202 -((( 203 -DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will: 215 +==== (% style="color:red" %)**MOD~=1**(%%) ==== 204 204 205 - periodically send thisuplinkevery20minutes, thisinterval [[can bechanged>>||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. 206 206 207 -Uplink Payload totals 11 bytes. 208 -))) 219 +Uplink Payload totals 10 bytes. 209 209 210 210 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 211 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 212 -**Size(bytes)** 213 -)))|=(% 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** 214 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)((( 215 -[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]] 216 -)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)((( 217 -[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]] 218 -)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)((( 219 -[[Message Type>>||anchor="HMessageType"]] 220 -))) 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 221 221 222 -[[image: image-20230805104104-2.png||height="136" width="754"]]225 +[[image:1701155076393-719.png]] 223 223 227 +(% style="color:blue" %)**Battery Info:** 224 224 225 - ====(% style="color:blue"%)**BatteryInfo**(%%)====229 +Check the battery voltage for DS20L 226 226 231 +Ex1: 0x0E10 = 3600mV 227 227 228 -Check the battery voltage for DS20L. 229 229 230 - Ex1:0x0B45=2885mV234 +(% style="color:blue" %)**MOD & Alarm & Interrupt:** 231 231 232 - Ex2:0x0B49=2889mV236 +(% style="color:red" %)**MOD:** 233 233 238 +**Example: ** (0x60>>6) & 0x3f =1 234 234 235 -==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ==== 240 +**0x01:** Regularly detect distance and report. 241 +**0x02: ** Uninterrupted measurement (external power supply). 236 236 243 +(% style="color:red" %)**Alarm:** 237 237 238 - Thisisoptional,user canonnectexternal DS18B20 sensorto the+3.3v,1-wire and GND pin .andthisfieldwillreport temperature.245 +When the detection distance exceeds the limit, the alarm flag is set to 1. 239 239 247 +(% style="color:red" %)**Interrupt:** 240 240 241 - **Example**:249 +Whether it is an external interrupt. 242 242 243 -If payload is: 0105H: (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree 244 244 245 - Ifpayload is:FF3FH : (FF3F & FC00 == 1),temp= (FF3FH - 65536)/10 = -19.3 degrees.252 +(% style="color:blue" %)**Distance info:** 246 246 247 - 248 -==== (% style="color:blue" %)**Distance**(%%) ==== 249 - 250 - 251 -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. 252 - 253 - 254 254 **Example**: 255 255 256 -If the datayouget from the registeris0x0B0xEA, thedistancebetweenthe sensor and the measured object is0BEA(H)=3050 (D)/10= 305cm.256 +If payload is: 0708H: distance = 0708H = 1800 mm 257 257 258 258 259 - ====(% style="color:blue" %)**Distancesignalstrength**(%%) ====259 +(% style="color:blue" %)**Sensor State:** 260 260 261 +Ex1: 0x00: Normal collection distance 261 261 262 - Refersto the signal strength, the default output value will be between0-65535. When the distance measurement gear is fixed,the farther the distancemeasurement is, the lower the signalstrength; thelower the target reflectivity, the lower the signalstrength. When Strengthisgreater than 100 and not equal to 65535, the measured value of Dist is considered credible.263 +Ex2 0x0x: Distance collection is wrong 263 263 264 264 265 - **Example**:266 +(% style="color:blue" %)**Interript Count:** 266 266 267 -If payload is: 1D7(H)=471(D),distance signal strength=471,471>100,471≠65535, the measured value ofDistis considered credible.268 +If payload is:000007D0H: count = 07D0H =2000 268 268 269 -Customers can judge whether they need to adjust the environment based on the signal strength. 270 270 271 271 272 - **1)Whenthesensor detects validdata:**272 +==== (% style="color:red" %)**MOD~=2**(%%)** ** ==== 273 273 274 - [[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. 275 275 276 - 277 -**2) When the sensor detects invalid data:** 278 - 279 -[[image:image-20230805155428-2.png||height="139" width="726"]] 280 - 281 - 282 -**3) When the sensor is not connected:** 283 - 284 -[[image:image-20230805155515-3.png||height="143" width="725"]] 285 - 286 - 287 -==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ==== 288 - 289 - 290 -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. 291 - 292 -Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.8PinDefinitions"]] of GPIO_EXTI . 293 - 294 -**Example:** 295 - 296 -If byte[0]&0x01=0x00 : Normal uplink packet. 297 - 298 -If byte[0]&0x01=0x01 : Interrupt Uplink Packet. 299 - 300 - 301 -==== (% style="color:blue" %)**LiDAR temp**(%%) ==== 302 - 303 - 304 -Characterize the internal temperature value of the sensor. 305 - 306 -**Example: ** 307 -If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃. 308 -If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃. 309 - 310 - 311 -==== (% style="color:blue" %)**Message Type**(%%) ==== 312 - 313 - 314 -((( 315 -For a normal uplink payload, the message type is always 0x01. 316 -))) 317 - 318 -((( 319 -Valid Message Type: 320 -))) 321 - 322 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %) 323 -|=(% 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** 324 -|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload 325 -|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload 326 - 327 -[[image:image-20230805150315-4.png||height="233" width="723"]] 328 - 329 - 330 -=== 2.3.3 Historical measuring distance, FPORT~=3 === 331 - 332 - 333 -DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]]. 334 - 335 -The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance. 336 - 337 337 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 338 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 339 -**Size(bytes)** 340 -)))|=(% 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 341 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)((( 342 -Reserve(0xFF) 343 -)))|Distance|Distance signal strength|(% style="width:88px" %)((( 344 -LiDAR temp 345 -)))|(% 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 346 346 347 - **Interrupt flag& Interrupt level:**280 +[[image:1701155150328-206.png]] 348 348 349 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %) 350 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 351 -**Size(bit)** 352 -)))|=(% 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** 353 -|(% 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" %)((( 354 -Interrupt flag 355 -))) 282 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:** 356 356 357 -* ((( 358 -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. 359 -))) 284 +(% style="color:red" %)**MOD:** 360 360 361 - For example,inthe US915 band, the maxpayloadfordifferent DR is:286 +**Example: ** (0x60>>6) & 0x3f =1 362 362 363 -**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). 364 364 365 - **b)DR1:** max is53 bytes so devices will upload 4 entries ofdata(total 44 bytes)291 +(% style="color:red" %)**Alarm:** 366 366 367 - **c)DR2:**totalpayload includes11entriesofdata293 +When the detection distance exceeds the limit, the alarm flag is set to 1. 368 368 369 - **d)DR3:**total payload includes 22 entriesof data.295 +(% style="color:red" %)**Do:** 370 370 371 - If DS20L doesn'thave anydatainthe pollingtime.Itwill uplink11 bytes of 0297 +When the distance exceeds the set threshold, pull the Do pin high. 372 372 299 +(% style="color:red" %)**Limit flag:** 373 373 374 - **Downlink:**301 +Mode for setting threshold: **0~~5** 375 375 376 -0 x3164CC680C64CC69 74 05303 +**0:** does not use upper and lower limits 377 377 378 - [[image:image-20230805144936-2.png||height="113"width="746"]]305 +**1:** Use upper and lower limits 379 379 380 -** Uplink:**307 +**2:** is less than the lower limit value 381 381 382 - 43FF0E1000B01E64 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 6D309 +**3:** is greater than the lower limit value 383 383 311 +**4:** is less than the upper limit 384 384 385 -** ParsedValue:**313 +**5:** is greater than the upper limit 386 386 387 -[DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME] 388 388 316 +(% style="color:blue" %)**Upper limit:** 389 389 390 - [360,176,30,High,True,2023-08-0402:53:00],318 +The upper limit of the threshold cannot exceed 2000mm. 391 391 392 -[355,168,30,Low,False,2023-08-04 02:53:29], 393 393 394 - [245,211,30,Low,False,2023-08-0402:54:29],321 +(% style="color:blue" %)**Lower limit:** 395 395 396 - [57,700,30,Low,False,2023-08-0402:55:29],323 +The lower limit of the threshold cannot be less than 3mm. 397 397 398 -[361,164,30,Low,True,2023-08-04 02:56:00], 399 399 400 - [337,184,30,Low,False,2023-08-0402:56:40],326 +== 2.4 Decode payload in The Things Network == 401 401 402 -[20,4458,30,Low,False,2023-08-04 02:57:40], 403 403 404 -[362,173,30,Low,False,2023-08-04 02:58:53], 405 - 406 - 407 -**History read from serial port:** 408 - 409 -[[image:image-20230805145056-3.png]] 410 - 411 - 412 -=== 2.3.4 Decode payload in The Things Network === 413 - 414 - 415 415 While using TTN network, you can add the payload format to decode the payload. 416 416 417 417 [[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"]] ... ... @@ -426,7 +426,7 @@ 426 426 ))) 427 427 428 428 429 -== 2. 4Show Data in DataCake IoT Server ==343 +== 2.5 Show Data in DataCake IoT Server == 430 430 431 431 432 432 ((( ... ... @@ -458,83 +458,9 @@ 458 458 459 459 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake. 460 460 461 -[[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"]] 462 462 463 463 464 -== 2.5 Datalog Feature == 465 - 466 - 467 -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. 468 - 469 - 470 -=== 2.5.1 Ways to get datalog via LoRaWAN === 471 - 472 - 473 -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. 474 - 475 -* ((( 476 -a) DS20L will do an ACK check for data records sending to make sure every data arrive server. 477 -))) 478 -* ((( 479 -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. 480 -))) 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 ... ... @@ -556,6 +556,8 @@ 556 556 557 557 * LoRaWAN Downlink. Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 558 558 399 + 400 + 559 559 == 3.2 General Commands == 560 560 561 561 ... ... @@ -615,7 +615,7 @@ 615 615 Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 616 616 ))) 617 617 * ((( 618 -Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 460 +Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 619 619 620 620 621 621 ... ... @@ -638,7 +638,7 @@ 638 638 the mode is 0 =Disable Interrupt 639 639 ))) 640 640 |(% style="width:154px" %)((( 641 -AT+INTMOD= 2483 +AT+INTMOD=3 642 642 643 643 (default) 644 644 )))|(% style="width:196px" %)((( ... ... @@ -660,6 +660,109 @@ 660 660 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 661 661 662 662 505 + 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 + 562 + 563 + 564 + 565 + 566 + 567 + 568 + 569 + 570 + 571 +**AT+DOL=5,1800,0,0,400** 572 +)))|(% rowspan="6" style="width:240px" %)The first bit sets the limit mode|(% style="width:150px" %)0: Do not use upper and lower limits 573 +|(% style="width:251px" %)1: Use upper and lower limits 574 +|(% style="width:251px" %)2: Less than the lower limit 575 +|(% style="width:251px" %)3: Greater than the lower limit 576 +|(% style="width:251px" %)4: Less than the upper limit 577 +|(% style="width:251px" %)5: Greater than the upper limit 578 +|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM 579 +|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM 580 +|(% 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 581 +|(% style="width:251px" %)1 Person or object counting statistics 582 +|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)((( 583 +0~~10000ms 584 + 585 + 586 +))) 587 + 588 + 589 + 590 +(% style="color:blue" %)**Downlink Command: 0x07** 591 + 592 +Format: Command Code (0x07) followed by 9bytes. 593 + 594 +* Example 0: Downlink Payload: 070000000000000190 **~-~-->** AT+MOD=0,0,0,0,400 595 + 596 +* Example 1: Downlink Payload: 070107080064000190 **~-~-->** AT+MOD=1,1800,100,0,400 597 + 598 +* Example 2: Downlink Payload: 070200000064000190 **~-~-->** AT+MOD=2,0,100,0,400 599 + 600 +* Example 3: Downlink Payload: 070300000064000190 **~-~-->** AT+MOD=3,1800,100,0,400 601 + 602 +* Example 4: Downlink Payload: 070407080000000190 **~-~-->** AT+MOD=4,0,100,0,400 603 + 604 +* Example 5: Downlink Payload: 070507080000000190 **~-~-->** AT+MOD=5,1800,100,0,400 605 + 606 + 607 + 663 663 = 4. Battery & Power Consumption = 664 664 665 665 ... ... @@ -688,6 +688,8 @@ 688 688 689 689 * 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]]**. 690 690 636 + 637 + 691 691 = 6. FAQ = 692 692 693 693 == 6.1 What is the frequency plan for DS20L? == ... ... @@ -696,6 +696,33 @@ 696 696 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"]] 697 697 698 698 646 +== 6.2 DS20L programming line == 647 + 648 + 649 +缺图 后续补上 650 + 651 +feature: 652 + 653 +for AT commands 654 + 655 +Update the firmware of DS20L 656 + 657 +Support interrupt mode 658 + 659 + 660 +== 6.3 LiDAR probe position == 661 + 662 + 663 +[[image:1701155390576-216.png||height="285" width="307"]] 664 + 665 +The black oval hole in the picture is the LiDAR probe. 666 + 667 + 668 +== 6.4 Interface definition == 669 + 670 +[[image:image-20231128151132-2.png||height="305" width="557"]] 671 + 672 + 699 699 = 7. Trouble Shooting = 700 700 701 701 == 7.1 AT Command input doesn't work == ... ... @@ -748,6 +748,8 @@ 748 748 749 749 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band 750 750 725 + 726 + 751 751 = 9. Packing Info = 752 752 753 753 ... ... @@ -765,6 +765,8 @@ 765 765 766 766 * Weight / pcs : g 767 767 744 + 745 + 768 768 = 10. Support = 769 769 770 770
- 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