Version 116.4 by Xiaoling on 2023/11/13 10:38

Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20231110085342-2.png||height="481" width="481"]]
3
4
5
6
7
8
9
10
11 **Table of Contents:**
12
13 {{toc/}}
14
15
16
17
18
19
20 = 1. Introduction =
21
22 == 1.1 What is LoRaWAN Smart Distance Detector ==
23
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. DS20L can measure range between 3cm ~~ 200cm.
26
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.
29
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.**
31
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
34
35 [[image:image-20231110102635-5.png||height="402" width="807"]]
36
37
38 == 1.2 ​Features ==
39
40
41 * LoRaWAN Class A protocol
42 * LiDAR distance detector, range 3 ~~ 200cm
43 * Periodically detect or continuously detect mode
44 * AT Commands to change parameters
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
49
50
51 == 1.3 Specification ==
52
53
54 (% style="color:#037691" %)**LiDAR Sensor:**
55
56 * Operation Temperature: -40 ~~ 80 °C
57 * Operation Humidity: 0~~99.9%RH (no Dew)
58 * Storage Temperature: -10 ~~ 45°C
59 * Measure Range: 3cm~~200cm @ 90% reflectivity
60 * Accuracy: ±2cm @ (3cm~~100cm); ±5% @ (100~~200cm)
61 * ToF FoV: ±9°, Total 18°
62 * Light source: VCSEL
63
64
65
66
67 == 1.4 Power Consumption ==
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
82
83 = 2. Configure DS20L to connect to LoRaWAN network =
84
85 == 2.1 How it works ==
86
87
88 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.
89
90 (% style="display:none" %) (%%)
91
92 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
93
94
95 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.
96
97 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" %)
98
99 [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
100
101 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
102
103 Each DS20L is shipped with a sticker with the default device EUI as below:
104
105 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
106
107
108 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
109
110
111 (% style="color:blue" %)**Register the device**
112
113 [[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"]]
114
115
116 (% style="color:blue" %)**Add APP EUI and DEV EUI**
117
118 [[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"]]
119
120
121 (% style="color:blue" %)**Add APP EUI in the application**
122
123
124 [[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"]]
125
126
127 (% style="color:blue" %)**Add APP KEY**
128
129 [[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"]]
130
131
132 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
133
134
135 Press the button for 5 seconds to activate the DS20L.
136
137 (% 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.
138
139 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
140
141
142 == 2.3 ​Uplink Payload ==
143
144 === 2.3.1 Device Status, FPORT~=5 ===
145
146
147 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.
148
149 The Payload format is as below.
150
151 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
152 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
153 **Size(bytes)**
154 )))|=(% 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**
155 |(% 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
156
157 Example parse in TTNv3
158
159 [[image:image-20230805103904-1.png||height="131" width="711"]]
160
161 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
162
163 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
164
165 (% style="color:blue" %)**Frequency Band**:
166
167 0x01: EU868
168
169 0x02: US915
170
171 0x03: IN865
172
173 0x04: AU915
174
175 0x05: KZ865
176
177 0x06: RU864
178
179 0x07: AS923
180
181 0x08: AS923-1
182
183 0x09: AS923-2
184
185 0x0a: AS923-3
186
187 0x0b: CN470
188
189 0x0c: EU433
190
191 0x0d: KR920
192
193 0x0e: MA869
194
195 (% style="color:blue" %)**Sub-Band**:
196
197 AU915 and US915:value 0x00 ~~ 0x08
198
199 CN470: value 0x0B ~~ 0x0C
200
201 Other Bands: Always 0x00
202
203 (% style="color:blue" %)**Battery Info**:
204
205 Check the battery voltage.
206
207 Ex1: 0x0B45 = 2885mV
208
209 Ex2: 0x0B49 = 2889mV
210
211
212 === 2.3.2 Uplink Payload, FPORT~=2 ===
213
214
215 (((
216 DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
217
218 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
219
220 Uplink Payload totals 11 bytes.
221 )))
222
223 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
224 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
225 **Size(bytes)**
226 )))|=(% 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**
227 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
228 [[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
229 )))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
230 [[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
231 )))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
232 [[Message Type>>||anchor="HMessageType"]]
233 )))
234
235 [[image:image-20230805104104-2.png||height="136" width="754"]]
236
237
238 ==== (% style="color:blue" %)**Battery Info**(%%) ====
239
240
241 Check the battery voltage for DS20L.
242
243 Ex1: 0x0B45 = 2885mV
244
245 Ex2: 0x0B49 = 2889mV
246
247
248 ==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
249
250
251 This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
252
253
254 **Example**:
255
256 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
257
258 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
259
260
261 ==== (% style="color:blue" %)**Distance**(%%) ====
262
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 **Example**:
268
269 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.
270
271
272 ==== (% style="color:blue" %)**Distance signal strength**(%%) ====
273
274
275 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.
276
277
278 **Example**:
279
280 If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
281
282 Customers can judge whether they need to adjust the environment based on the signal strength.
283
284
285 **1) When the sensor detects valid data:**
286
287 [[image:image-20230805155335-1.png||height="145" width="724"]]
288
289
290 **2) When the sensor detects invalid data:**
291
292 [[image:image-20230805155428-2.png||height="139" width="726"]]
293
294
295 **3) When the sensor is not connected:**
296
297 [[image:image-20230805155515-3.png||height="143" width="725"]]
298
299
300 ==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
301
302
303 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.
304
305 Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
306
307 **Example:**
308
309 If byte[0]&0x01=0x00 : Normal uplink packet.
310
311 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
312
313
314 ==== (% style="color:blue" %)**LiDAR temp**(%%) ====
315
316
317 Characterize the internal temperature value of the sensor.
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℃.
322
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 === 2.3.3 Historical measuring distance, FPORT~=3 ===
344
345
346 DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
347
348 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
349
350 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
351 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
352 **Size(bytes)**
353 )))|=(% 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
354 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
355 Reserve(0xFF)
356 )))|Distance|Distance signal strength|(% style="width:88px" %)(((
357 LiDAR temp
358 )))|(% style="width:85px" %)Unix TimeStamp
359
360 **Interrupt flag & Interrupt level:**
361
362 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
363 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
364 **Size(bit)**
365 )))|=(% 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**
366 |(% 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" %)(((
367 Interrupt flag
368 )))
369
370 * (((
371 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.
372 )))
373
374 For example, in the US915 band, the max payload for different DR is:
375
376 **a) DR0:** max is 11 bytes so one entry of data
377
378 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
379
380 **c) DR2:** total payload includes 11 entries of data
381
382 **d) DR3:** total payload includes 22 entries of data.
383
384 If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
385
386
387 **Downlink:**
388
389 0x31 64 CC 68 0C 64 CC 69 74 05
390
391 [[image:image-20230805144936-2.png||height="113" width="746"]]
392
393 **Uplink:**
394
395 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
396
397
398 **Parsed Value:**
399
400 [DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
401
402
403 [360,176,30,High,True,2023-08-04 02:53:00],
404
405 [355,168,30,Low,False,2023-08-04 02:53:29],
406
407 [245,211,30,Low,False,2023-08-04 02:54:29],
408
409 [57,700,30,Low,False,2023-08-04 02:55:29],
410
411 [361,164,30,Low,True,2023-08-04 02:56:00],
412
413 [337,184,30,Low,False,2023-08-04 02:56:40],
414
415 [20,4458,30,Low,False,2023-08-04 02:57:40],
416
417 [362,173,30,Low,False,2023-08-04 02:58:53],
418
419
420 **History read from serial port:**
421
422 [[image:image-20230805145056-3.png]]
423
424
425 === 2.3.4 Decode payload in The Things Network ===
426
427
428 While using TTN network, you can add the payload format to decode the payload.
429
430 [[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"]]
431
432
433 (((
434 The payload decoder function for TTN is here:
435 )))
436
437 (((
438 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
439 )))
440
441
442 == 2.4 ​Show Data in DataCake IoT Server ==
443
444
445 (((
446 [[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:
447 )))
448
449
450 (((
451 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
452 )))
453
454 (((
455 (% style="color:blue" %)**Step 2**(%%)**: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:**
456 )))
457
458
459 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654592790040-760.png?rev=1.1||alt="1654592790040-760.png"]]
460
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/1654592800389-571.png?rev=1.1||alt="1654592800389-571.png"]]
463
464
465 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
466
467 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
468
469 [[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"]]
470
471
472 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
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"]]
475
476
477 == 2.5 Datalog Feature ==
478
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 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
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
556
557 3. Configure DS20L
558
559 == 3.1 Configure Methods ==
560
561
562 DS20L supports below configure method:
563
564 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
565
566 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
567
568 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
569
570 == 3.2 General Commands ==
571
572
573 These commands are to configure:
574
575 * General system settings like: uplink interval.
576
577 * LoRaWAN protocol & radio related command.
578
579 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
580
581 [[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/]]
582
583
584 == 3.3 Commands special design for DS20L ==
585
586
587 These commands only valid for DS20L, as below:
588
589
590 === 3.3.1 Set Transmit Interval Time ===
591
592
593 (((
594 Feature: Change LoRaWAN End Node Transmit Interval.
595 )))
596
597 (((
598 (% style="color:blue" %)**AT Command: AT+TDC**
599 )))
600
601 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
602 |=(% 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**
603 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
604 30000
605 OK
606 the interval is 30000ms = 30s
607 )))
608 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
609 OK
610 Set transmit interval to 60000ms = 60 seconds
611 )))
612
613 (((
614 (% style="color:blue" %)**Downlink Command: 0x01**
615 )))
616
617 (((
618 Format: Command Code (0x01) followed by 3 bytes time value.
619 )))
620
621 (((
622 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
623 )))
624
625 * (((
626 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
627 )))
628 * (((
629 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
630
631
632
633 )))
634
635 === 3.3.2 Set Interrupt Mode ===
636
637
638 Feature, Set Interrupt mode for pin of GPIO_EXTI.
639
640 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
641
642 (% style="color:blue" %)**AT Command: AT+INTMOD**
643
644 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
645 |=(% 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**
646 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
647 0
648 OK
649 the mode is 0 =Disable Interrupt
650 )))
651 |(% style="width:154px" %)(((
652 AT+INTMOD=2
653
654 (default)
655 )))|(% style="width:196px" %)(((
656 Set Transmit Interval
657 0. (Disable Interrupt),
658 ~1. (Trigger by rising and falling edge)
659 2. (Trigger by falling edge)
660 3. (Trigger by rising edge)
661 )))|(% style="width:157px" %)OK
662
663 (% style="color:blue" %)**Downlink Command: 0x06**
664
665 Format: Command Code (0x06) followed by 3 bytes.
666
667 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
668
669 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
670
671 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
672
673 = 4. Battery & Power Consumption =
674
675
676 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.
677
678 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
679
680
681 = 5. OTA Firmware update =
682
683
684 (% class="wikigeneratedid" %)
685 User can change firmware DS20L to:
686
687 * Change Frequency band/ region.
688
689 * Update with new features.
690
691 * Fix bugs.
692
693 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
694
695 Methods to Update Firmware:
696
697 * (Recommanded way) OTA firmware update via wireless:  **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
698
699 * 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]]**.
700
701 = 6. FAQ =
702
703 == 6.1 What is the frequency plan for DS20L? ==
704
705
706 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"]]
707
708
709 = 7. Trouble Shooting =
710
711 == 7.1 AT Command input doesn't work ==
712
713
714 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.
715
716
717 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
718
719
720 (((
721 (% 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.)
722 )))
723
724 (((
725 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
726 )))
727
728
729 (((
730 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
731 )))
732
733 (((
734 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
735 )))
736
737
738 = 8. Order Info =
739
740
741 Part Number: (% style="color:blue" %)**DS20L-XXX**
742
743 (% style="color:red" %)**XXX**(%%): **The default frequency band**
744
745 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
746
747 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
748
749 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
750
751 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
752
753 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
754
755 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
756
757 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
758
759 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
760
761 = 9. ​Packing Info =
762
763
764 (% style="color:#037691" %)**Package Includes**:
765
766 * DS20L LoRaWAN Smart Distance Detector x 1
767
768 (% style="color:#037691" %)**Dimension and weight**:
769
770 * Device Size: cm
771
772 * Device Weight: g
773
774 * Package Size / pcs : cm
775
776 * Weight / pcs : g
777
778 = 10. Support =
779
780
781 * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
782
783 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[Support@dragino.cc>>mailto:Support@dragino.cc]].