Version 113.7 by Xiaoling on 2023/11/10 10:22

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.
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 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
36 [[image:image-20231110091506-4.png||height="391" width="768"]]
37
38
39 == 1.2 ​Features ==
40
41
42 * LoRaWAN Class A protocol
43 * LiDAR distance detector, range 3 ~~ 200cm
44 * Periodically detect or continuously detect mode
45 * AT Commands to change parameters
46 * Remotely configure parameters via LoRaWAN Downlink
47 * Alarm & Counting mode
48 * Datalog Feature
49 * Firmware upgradable via program port or LoRa protocol
50 * Built-in 2400mAh battery or power by external power source
51
52 == 1.3 Specification ==
53
54
55 (% style="color:#037691" %)**LiDAR Sensor:**
56
57 * Operation Temperature: -40 ~~ 80 °C
58 * Operation Humidity: 0~~99.9%RH (no Dew)
59 * Storage Temperature: -10 ~~ 45°C
60 * Measure Range: 3cm~~200cm @ 90% reflectivity
61 * Accuracy: ±2cm @ (3cm~~100cm); ±5% @ (100~~200cm)
62 * ToF FoV: ±9°, Total 18°
63 * Light source: VCSEL
64
65
66 (% style="display:none" %)
67
68
69 = 2. Configure DS20L to connect to LoRaWAN network =
70
71 == 2.1 How it works ==
72
73
74 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.
75
76 (% style="display:none" %) (%%)
77
78 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
79
80
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
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.
84
85 [[image:image-20231110091447-3.png||height="383" width="752"]](% style="display:none" %)
86
87
88 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
89
90 Each DS20L is shipped with a sticker with the default device EUI as below:
91
92 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
93
94
95 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
96
97
98 (% style="color:blue" %)**Register the device**
99
100 [[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"]]
101
102
103 (% style="color:blue" %)**Add APP EUI and DEV EUI**
104
105 [[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"]]
106
107
108 (% style="color:blue" %)**Add APP EUI in the application**
109
110
111 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
112
113
114 (% style="color:blue" %)**Add APP KEY**
115
116 [[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"]]
117
118
119 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
120
121
122 Press the button for 5 seconds to activate the DS20L.
123
124 (% 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.
125
126 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
127
128
129 == 2.3 ​Uplink Payload ==
130
131 === 2.3.1 Device Status, FPORT~=5 ===
132
133
134 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.
135
136 The Payload format is as below.
137
138 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
139 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
140 **Size(bytes)**
141 )))|=(% 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**
142 |(% 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
143
144 Example parse in TTNv3
145
146 [[image:image-20230805103904-1.png||height="131" width="711"]]
147
148 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
149
150 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
151
152 (% style="color:blue" %)**Frequency Band**:
153
154 0x01: EU868
155
156 0x02: US915
157
158 0x03: IN865
159
160 0x04: AU915
161
162 0x05: KZ865
163
164 0x06: RU864
165
166 0x07: AS923
167
168 0x08: AS923-1
169
170 0x09: AS923-2
171
172 0x0a: AS923-3
173
174 0x0b: CN470
175
176 0x0c: EU433
177
178 0x0d: KR920
179
180 0x0e: MA869
181
182 (% style="color:blue" %)**Sub-Band**:
183
184 AU915 and US915:value 0x00 ~~ 0x08
185
186 CN470: value 0x0B ~~ 0x0C
187
188 Other Bands: Always 0x00
189
190 (% style="color:blue" %)**Battery Info**:
191
192 Check the battery voltage.
193
194 Ex1: 0x0B45 = 2885mV
195
196 Ex2: 0x0B49 = 2889mV
197
198
199 === 2.3.2 Uplink Payload, FPORT~=2 ===
200
201
202 (((
203 DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
204
205 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
206
207 Uplink Payload totals 11 bytes.
208 )))
209
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 )))
221
222 [[image:image-20230805104104-2.png||height="136" width="754"]]
223
224
225 ==== (% style="color:blue" %)**Battery Info**(%%) ====
226
227
228 Check the battery voltage for DS20L.
229
230 Ex1: 0x0B45 = 2885mV
231
232 Ex2: 0x0B49 = 2889mV
233
234
235 ==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
236
237
238 This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
239
240
241 **Example**:
242
243 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
244
245 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
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 **Example**:
255
256 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.
257
258
259 ==== (% style="color:blue" %)**Distance signal strength**(%%) ====
260
261
262 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
264
265 **Example**:
266
267 If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
268
269 Customers can judge whether they need to adjust the environment based on the signal strength.
270
271
272 **1) When the sensor detects valid data:**
273
274 [[image:image-20230805155335-1.png||height="145" width="724"]]
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 (% 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
346
347 **Interrupt flag & Interrupt level:**
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 )))
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 )))
360
361 For example, in the US915 band, the max payload for different DR is:
362
363 **a) DR0:** max is 11 bytes so one entry of data
364
365 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
366
367 **c) DR2:** total payload includes 11 entries of data
368
369 **d) DR3:** total payload includes 22 entries of data.
370
371 If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
372
373
374 **Downlink:**
375
376 0x31 64 CC 68 0C 64 CC 69 74 05
377
378 [[image:image-20230805144936-2.png||height="113" width="746"]]
379
380 **Uplink:**
381
382 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
383
384
385 **Parsed Value:**
386
387 [DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
388
389
390 [360,176,30,High,True,2023-08-04 02:53:00],
391
392 [355,168,30,Low,False,2023-08-04 02:53:29],
393
394 [245,211,30,Low,False,2023-08-04 02:54:29],
395
396 [57,700,30,Low,False,2023-08-04 02:55:29],
397
398 [361,164,30,Low,True,2023-08-04 02:56:00],
399
400 [337,184,30,Low,False,2023-08-04 02:56:40],
401
402 [20,4458,30,Low,False,2023-08-04 02:57:40],
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 While using TTN network, you can add the payload format to decode the payload.
416
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"]]
418
419
420 (((
421 The payload decoder function for TTN is here:
422 )))
423
424 (((
425 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
426 )))
427
428
429 == 2.4 ​Show Data in DataCake IoT Server ==
430
431
432 (((
433 [[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:
434 )))
435
436
437 (((
438 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
439 )))
440
441 (((
442 (% 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:**
443 )))
444
445
446 [[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"]]
447
448
449 [[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"]]
450
451
452 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
453
454 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
455
456 [[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"]]
457
458
459 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
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"]]
462
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 == 2.6 Frequency Plans ==
539
540
541 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.
542
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
545
546 3. Configure DS20L
547
548 == 3.1 Configure Methods ==
549
550
551 DS20L supports below configure method:
552
553 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
554
555 * 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]].
556
557 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
558
559 == 3.2 General Commands ==
560
561
562 These commands are to configure:
563
564 * General system settings like: uplink interval.
565
566 * LoRaWAN protocol & radio related command.
567
568 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
569
570 [[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/]]
571
572
573 == 3.3 Commands special design for DS20L ==
574
575
576 These commands only valid for DS20L, as below:
577
578
579 === 3.3.1 Set Transmit Interval Time ===
580
581
582 (((
583 Feature: Change LoRaWAN End Node Transmit Interval.
584 )))
585
586 (((
587 (% style="color:blue" %)**AT Command: AT+TDC**
588 )))
589
590 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
591 |=(% 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**
592 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
593 30000
594 OK
595 the interval is 30000ms = 30s
596 )))
597 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
598 OK
599 Set transmit interval to 60000ms = 60 seconds
600 )))
601
602 (((
603 (% style="color:blue" %)**Downlink Command: 0x01**
604 )))
605
606 (((
607 Format: Command Code (0x01) followed by 3 bytes time value.
608 )))
609
610 (((
611 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
612 )))
613
614 * (((
615 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
616 )))
617 * (((
618 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
619
620
621
622 )))
623
624 === 3.3.2 Set Interrupt Mode ===
625
626
627 Feature, Set Interrupt mode for pin of GPIO_EXTI.
628
629 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
630
631 (% style="color:blue" %)**AT Command: AT+INTMOD**
632
633 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
634 |=(% 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**
635 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
636 0
637 OK
638 the mode is 0 =Disable Interrupt
639 )))
640 |(% style="width:154px" %)(((
641 AT+INTMOD=2
642
643 (default)
644 )))|(% style="width:196px" %)(((
645 Set Transmit Interval
646 0. (Disable Interrupt),
647 ~1. (Trigger by rising and falling edge)
648 2. (Trigger by falling edge)
649 3. (Trigger by rising edge)
650 )))|(% style="width:157px" %)OK
651
652 (% style="color:blue" %)**Downlink Command: 0x06**
653
654 Format: Command Code (0x06) followed by 3 bytes.
655
656 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
657
658 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
659
660 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
661
662
663 = 4. Battery & Power Consumption =
664
665
666 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.
667
668 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
669
670
671 = 5. OTA Firmware update =
672
673
674 (% class="wikigeneratedid" %)
675 User can change firmware DS20L to:
676
677 * Change Frequency band/ region.
678
679 * Update with new features.
680
681 * Fix bugs.
682
683 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
684
685 Methods to Update Firmware:
686
687 * (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/]]**
688
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
691 = 6. FAQ =
692
693 == 6.1 What is the frequency plan for LDS12-LB? ==
694
695
696 LDS12-LB use the same frequency as other Dragino products. User can see the detail from this link:  [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]]
697
698
699 = 7. Trouble Shooting =
700
701 == 7.1 AT Command input doesn't work ==
702
703
704 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.
705
706
707 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
708
709
710 (((
711 (% 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.)
712 )))
713
714 (((
715 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
716 )))
717
718
719 (((
720 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
721 )))
722
723 (((
724 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
725 )))
726
727
728 = 8. Order Info =
729
730
731 Part Number: (% style="color:blue" %)**DS20L-XXX**
732
733 (% style="color:red" %)**XXX**(%%): **The default frequency band**
734
735 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
736
737 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
738
739 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
740
741 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
742
743 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
744
745 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
746
747 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
748
749 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
750
751 = 9. ​Packing Info =
752
753
754 (% style="color:#037691" %)**Package Includes**:
755
756 * DS20L LoRaWAN Smart Distance Detector x 1
757
758 (% style="color:#037691" %)**Dimension and weight**:
759
760 * Device Size: cm
761
762 * Device Weight: g
763
764 * Package Size / pcs : cm
765
766 * Weight / pcs : g
767
768 = 10. Support =
769
770
771 * 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.
772
773 * 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]].