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

From version 90.8
edited by Xiaoling
on 2023/07/15 15:40
Change comment: There is no comment for this version
To version 113.5
edited by Xiaoling
on 2023/11/10 09:51
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -LDS12-LB -- LoRaWAN LiDAR ToF Distance Sensor User Manual
1 +DS20L -- LoRaWAN Smart Distance Detector User Manual
Content
... ... @@ -1,5 +1,5 @@
1 1  (% style="text-align:center" %)
2 -[[image:image-20230614153353-1.png]]
2 +[[image:image-20231110085342-2.png||height="481" width="481"]]
3 3  
4 4  
5 5  
... ... @@ -7,6 +7,7 @@
7 7  
8 8  
9 9  
10 +
10 10  **Table of Contents:**
11 11  
12 12  {{toc/}}
... ... @@ -18,166 +18,55 @@
18 18  
19 19  = 1. Introduction =
20 20  
21 -== 1.1 What is LoRaWAN LiDAR ToF Distance Sensor ==
22 +== 1.1 What is LoRaWAN Smart Distance Detector ==
22 22  
23 23  
24 -The Dragino LDS12-LB is a (% style="color:blue" %)**LoRaWAN LiDAR ToF (Time of Flight) Distance Sensor**(%%) for Internet of Things solution. It is capable to measure the distance to an object as close as 10 centimeters (+/- 5cm up to 6m) and as far as 12 meters (+/-1% starting at 6m)!. The LiDAR probe uses laser induction technology for distance measurement.
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 25  
26 -The LDS12-LB can be applied to scenarios such as horizontal distance measurement, parking management system, object proximity and presence detection, intelligent trash can management system, robot obstacle avoidance, automatic control, sewer, etc.
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.
27 27  
28 -It detects the distance between the measured object and the sensor, and uploads the value via wireless to LoRaWAN IoT Server.
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.**
29 29  
30 -The LoRa wireless technology used in LDS12-LB allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption.
32 +DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
31 31  
32 -LDS12-L(% style="color:blue" %)**supports BLE configure**(%%) and (% style="color:blue" %)**wireless OTA update**(%%) which make user easy to use.
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.
33 33  
34 -LDS12-LB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years.
36 +[[image:image-20231110091506-4.png||height="391" width="768"]]
35 35  
36 -Each LDS12-LB is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on.
37 37  
38 -[[image:image-20230615152941-1.png||height="459" width="800"]]
39 -
40 -
41 41  == 1.2 ​Features ==
42 42  
43 43  
44 -* LoRaWAN 1.0.3 Class A
45 -* Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
46 -* Ultra-low power consumption
47 -* Laser technology for distance detection
48 -* Measure Distance: 0.1m~~12m @ 90% Reflectivity
49 -* Accuracy :  ±5cm@(0.1-6m), ±1%@(6m-12m)
50 -* Monitor Battery Level
51 -* Support Bluetooth v5.1 and LoRaWAN remote configure
52 -* Support wireless OTA update firmware
42 +* LoRaWAN Class A protocol
43 +* LiDAR distance detector, range 3 ~~ 200cm
44 +* Periodically detect or continuously detect mode
53 53  * AT Commands to change parameters
54 -* Downlink to change configure
55 -* 8500mAh Battery for long term use
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
56 56  
57 57  == 1.3 Specification ==
58 58  
59 59  
60 -(% style="color:#037691" %)**Common DC Characteristics:**
55 +(% style="color:#037691" %)**LiDAR Sensor:**
61 61  
62 -* Supply Voltage: built in 8500mAh Li-SOCI2 battery , 2.5v ~~ 3.6v
63 -* Operating Temperature: -40 ~~ 85°C
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 64  
65 -(% style="color:#037691" %)**Probe Specification:**
66 66  
67 -* Storage temperature:-20℃~~75℃
68 -* Operating temperature : -20℃~~60℃
69 -* Measure Distance:
70 -** 0.1m ~~ 12m @ 90% Reflectivity
71 -** 0.1m ~~ 4m @ 10% Reflectivity
72 -* Accuracy : ±5cm@(0.1-6m), ±1%@(6m-12m)
73 -* Distance resolution : 5mm
74 -* Ambient light immunity : 70klux
75 -* Enclosure rating : IP65
76 -* Light source : LED
77 -* Central wavelength : 850nm
78 -* FOV : 3.6°
79 -* Material of enclosure : ABS+PC
80 -* Wire length : 25cm
81 -
82 -(% style="color:#037691" %)**LoRa Spec:**
83 -
84 -* Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
85 -* Max +22 dBm constant RF output vs.
86 -* RX sensitivity: down to -139 dBm.
87 -* Excellent blocking immunity
88 -
89 -(% style="color:#037691" %)**Battery:**
90 -
91 -* Li/SOCI2 un-chargeable battery
92 -* Capacity: 8500mAh
93 -* Self-Discharge: <1% / Year @ 25°C
94 -* Max continuously current: 130mA
95 -* Max boost current: 2A, 1 second
96 -
97 -(% style="color:#037691" %)**Power Consumption**
98 -
99 -* Sleep Mode: 5uA @ 3.3v
100 -* LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
101 -
102 -== 1.4 Applications ==
103 -
104 -
105 -* Horizontal distance measurement
106 -* Parking management system
107 -* Object proximity and presence detection
108 -* Intelligent trash can management system
109 -* Robot obstacle avoidance
110 -* Automatic control
111 -* Sewer
112 -
113 113  (% style="display:none" %)
114 114  
115 -== 1.5 Sleep mode and working mode ==
116 116  
69 += 2. Configure DS20L to connect to LoRaWAN network =
117 117  
118 -(% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
119 -
120 -(% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
121 -
122 -
123 -== 1.6 Button & LEDs ==
124 -
125 -
126 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
127 -
128 -
129 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
130 -|=(% style="width: 167px;background-color:#D9E2F3;color:#0070C0" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 225px;background-color:#D9E2F3;color:#0070C0" %)**Action**
131 -|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
132 -If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
133 -Meanwhile, BLE module will be active and user can connect via BLE to configure device.
134 -)))
135 -|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
136 -(% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network.
137 -(% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
138 -Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
139 -)))
140 -|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
141 -
142 -== 1.7 BLE connection ==
143 -
144 -
145 -LDS12-LB support BLE remote configure.
146 -
147 -BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
148 -
149 -* Press button to send an uplink
150 -* Press button to active device.
151 -* Device Power on or reset.
152 -
153 -If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
154 -
155 -
156 -== 1.8 Pin Definitions ==
157 -
158 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WL03A-LB_LoRaWAN_None-Position_Rope_Type_Water_Leak_Controller_User_Manual/WebHome/image-20230613144156-1.png?rev=1.1||alt="image-20230613144156-1.png"]]
159 -
160 -
161 -== 1.9 Mechanical ==
162 -
163 -
164 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]]
165 -
166 -
167 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143899218-599.png]]
168 -
169 -
170 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]]
171 -
172 -
173 -(% style="color:blue" %)**Probe Mechanical:**
174 -
175 -
176 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654827224480-952.png?rev=1.1||alt="1654827224480-952.png"]]
177 -
178 -
179 -= 2. Configure LDS12-LB to connect to LoRaWAN network =
180 -
181 181  == 2.1 How it works ==
182 182  
183 183  
... ... @@ -192,7 +192,7 @@
192 192  
193 193  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.
194 194  
195 -[[image:image-20230615153004-2.png||height="459" width="800"]](% style="display:none" %)
85 +[[image:image-20231110091447-3.png||height="383" width="752"]](% style="display:none" %)
196 196  
197 197  
198 198  (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from LDS12-LB.
... ... @@ -238,7 +238,6 @@
238 238  
239 239  == 2.3 ​Uplink Payload ==
240 240  
241 -
242 242  === 2.3.1 Device Status, FPORT~=5 ===
243 243  
244 244  
... ... @@ -247,19 +247,21 @@
247 247  The Payload format is as below.
248 248  
249 249  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
250 -|=(% style="width: 62.5px;background-color:#4F81BD;color:white" %)(((
139 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
251 251  **Size(bytes)**
252 -)))|=(% style="width: 110px; background-color: rgb(79, 129, 189); color: white;" %)**1**|=(% style="width: 48px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="background-color: rgb(79, 129, 189); color: white; width: 94px;" %)**1**|=(% style="background-color: rgb(79, 129, 189); color: white; width: 91px;" %)**1**|=(% style="background-color: rgb(79, 129, 189); color: white; width: 60px;" %)**2**
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**
253 253  |(% 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
254 254  
255 255  Example parse in TTNv3
256 256  
257 -**Sensor Model**: For LDS12-LB, this value is 0x24
146 +[[image:image-20230805103904-1.png||height="131" width="711"]]
258 258  
259 -**Firmware Version**: 0x0100, Means: v1.0.0 version
148 +(% style="color:blue" %)**Sensor Model**(%%): For LDS12-LB, this value is 0x24
260 260  
261 -**Frequency Band**:
150 +(% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
262 262  
152 +(% style="color:blue" %)**Frequency Band**:
153 +
263 263  0x01: EU868
264 264  
265 265  0x02: US915
... ... @@ -288,7 +288,7 @@
288 288  
289 289  0x0e: MA869
290 290  
291 -**Sub-Band**:
182 +(% style="color:blue" %)**Sub-Band**:
292 292  
293 293  AU915 and US915:value 0x00 ~~ 0x08
294 294  
... ... @@ -296,7 +296,7 @@
296 296  
297 297  Other Bands: Always 0x00
298 298  
299 -**Battery Info**:
190 +(% style="color:blue" %)**Battery Info**:
300 300  
301 301  Check the battery voltage.
302 302  
... ... @@ -309,29 +309,29 @@
309 309  
310 310  
311 311  (((
312 -LDS12-LB will uplink payload via LoRaWAN with below payload format: 
313 -)))
203 +LDS12-LB will send this uplink **after** Device Status once join the LoRaWAN network successfully. And LDS12-LB will:
314 314  
315 -(((
316 -Uplink payload includes in total 11 bytes.
205 +periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
206 +
207 +Uplink Payload totals 11 bytes.
317 317  )))
318 318  
319 319  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
320 320  |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
321 321  **Size(bytes)**
322 -)))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 122px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**
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**
323 323  |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
324 324  [[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
325 325  )))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
326 -[[Interrupt flag & Interrupt_level||anchor="HInterruptPin26A0InterruptLevel">>]]
217 +[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
327 327  )))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
328 328  [[Message Type>>||anchor="HMessageType"]]
329 329  )))
330 330  
331 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654833689380-972.png?rev=1.1||alt="1654833689380-972.png"]]
222 +[[image:image-20230805104104-2.png||height="136" width="754"]]
332 332  
333 333  
334 -====(% style="color:blue" %)**Battery Info** ====
225 +==== (% style="color:blue" %)**Battery Info**(%%) ====
335 335  
336 336  
337 337  Check the battery voltage for LDS12-LB.
... ... @@ -341,7 +341,7 @@
341 341  Ex2: 0x0B49 = 2889mV
342 342  
343 343  
344 -====(% style="color:blue" %)**DS18B20 Temperature sensor** ====
235 +==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
345 345  
346 346  
347 347  This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
... ... @@ -354,7 +354,7 @@
354 354  If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
355 355  
356 356  
357 -====(% style="color:blue" %)**Distance** ====
248 +==== (% style="color:blue" %)**Distance**(%%) ====
358 358  
359 359  
360 360  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.
... ... @@ -365,7 +365,7 @@
365 365  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.
366 366  
367 367  
368 -====(% style="color:blue" %)**Distance signal strength** ====
259 +==== (% style="color:blue" %)**Distance signal strength**(%%) ====
369 369  
370 370  
371 371  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.
... ... @@ -378,21 +378,36 @@
378 378  Customers can judge whether they need to adjust the environment based on the signal strength.
379 379  
380 380  
381 -====(% style="color:blue" %)**Interrupt Pin & Interrupt Level** ====
272 +**1) When the sensor detects valid data:**
382 382  
274 +[[image:image-20230805155335-1.png||height="145" width="724"]]
383 383  
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 +
384 384  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.
385 385  
386 -Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.8PinDefinitions"]].
292 +Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.8PinDefinitions"]] of GPIO_EXTI .
387 387  
388 388  **Example:**
389 389  
390 -0x00: Normal uplink packet.
296 +If byte[0]&0x01=0x00 : Normal uplink packet.
391 391  
392 -0x01: Interrupt Uplink Packet.
298 +If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
393 393  
394 394  
395 -====(% style="color:blue" %)**LiDAR temp** ====
301 +==== (% style="color:blue" %)**LiDAR temp**(%%) ====
396 396  
397 397  
398 398  Characterize the internal temperature value of the sensor.
... ... @@ -402,7 +402,7 @@
402 402  If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
403 403  
404 404  
405 -====(% style="color:blue" %)**Message Type** ====
311 +==== (% style="color:blue" %)**Message Type**(%%) ====
406 406  
407 407  
408 408  (((
... ... @@ -415,14 +415,97 @@
415 415  
416 416  (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
417 417  |=(% 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**
418 -|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)[[Normal Uplink Payload>>||anchor="H2.3200BUplinkPayload"]]
419 -|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)[[Configure Info Payload>>||anchor="H3.ConfigureLDS12-LB"]]
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
420 420  
327 +[[image:image-20230805150315-4.png||height="233" width="723"]]
421 421  
422 422  
423 -=== 2.3.3 Decode payload in The Things Network ===
330 +=== 2.3.3 Historical measuring distance, FPORT~=3 ===
424 424  
425 425  
333 +LDS12-LB 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, LDS12-LB 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 LDS12-LB 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 +
426 426  While using TTN network, you can add the payload format to decode the payload.
427 427  
428 428  [[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"]]
... ... @@ -437,15 +437,9 @@
437 437  )))
438 438  
439 439  
440 -== 2.4 Uplink Interval ==
429 +== 2.4 ​Show Data in DataCake IoT Server ==
441 441  
442 442  
443 -The LDS12-LB by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: [[Change Uplink Interval>>||anchor="H3.3.1SetTransmitIntervalTime"]]
444 -
445 -
446 -== 2.5 ​Show Data in DataCake IoT Server ==
447 -
448 -
449 449  (((
450 450  [[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:
451 451  )))
... ... @@ -478,13 +478,13 @@
478 478  [[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"]]
479 479  
480 480  
481 -== 2.6 Datalog Feature ==
464 +== 2.5 Datalog Feature ==
482 482  
483 483  
484 484  Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, LDS12-LB will store the reading for future retrieving purposes.
485 485  
486 486  
487 -=== 2.6.1 Ways to get datalog via LoRaWAN ===
470 +=== 2.5.1 Ways to get datalog via LoRaWAN ===
488 488  
489 489  
490 490  Set PNACKMD=1, LDS12-LB will wait for ACK for every uplink, when there is no LoRaWAN network,LDS12-LB 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.
... ... @@ -496,14 +496,11 @@
496 496  b) LDS12-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but LDS12-LB 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 LDS12-LB gets a ACK, LDS12-LB will consider there is a network connection and resend all NONE-ACK messages.
497 497  )))
498 498  
499 -Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
500 500  
501 -[[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-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
502 502  
484 +=== 2.5.2 Unix TimeStamp ===
503 503  
504 -=== 2.6.2 Unix TimeStamp ===
505 505  
506 -
507 507  LDS12-LB uses Unix TimeStamp format based on
508 508  
509 509  [[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"]]
... ... @@ -518,7 +518,7 @@
518 518  So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
519 519  
520 520  
521 -=== 2.6.3 Set Device Time ===
501 +=== 2.5.3 Set Device Time ===
522 522  
523 523  
524 524  User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
... ... @@ -528,13 +528,13 @@
528 528  (% 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.**
529 529  
530 530  
531 -=== 2.6.4 Poll sensor value ===
511 +=== 2.5.4 Poll sensor value ===
532 532  
533 533  
534 534  Users can poll sensor values based on timestamps. Below is the downlink command.
535 535  
536 536  (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
537 -|(% colspan="4" style="background-color:#d9e2f3; color:#0070c0; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
517 +|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
538 538  |(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
539 539  |(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
540 540  
... ... @@ -555,7 +555,7 @@
555 555  )))
556 556  
557 557  
558 -== 2.7 Frequency Plans ==
538 +== 2.6 Frequency Plans ==
559 559  
560 560  
561 561  The LDS12-LB 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.
... ... @@ -563,92 +563,8 @@
563 563  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
564 564  
565 565  
566 -== 2.8 LiDAR ToF Measurement ==
546 +(% style="color:inherit; font-family:inherit; font-size:29px" %)3. Configure LDS12-LB
567 567  
568 -=== 2.8.1 Principle of Distance Measurement ===
569 -
570 -
571 -The LiDAR probe is based on TOF, namely, Time of Flight principle. To be specific, the product emits modulation wave of near infrared ray on a periodic basis, which will be reflected after contacting object. The product obtains the time of flight by measuring round-trip phase difference and then calculates relative range between the product and the detection object, as shown below.
572 -
573 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654831757579-263.png?rev=1.1||alt="1654831757579-263.png"]]
574 -
575 -
576 -=== 2.8.2 Distance Measurement Characteristics ===
577 -
578 -
579 -With optimization of light path and algorithm, The LiDAR probe has minimized influence from external environment on distance measurement performance. Despite that, the range of distance measurement may still be affected by the environment illumination intensity and the reflectivity of detection object. As shown in below:
580 -
581 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654831774373-275.png?rev=1.1||alt="1654831774373-275.png"]]
582 -
583 -
584 -(((
585 -(% style="color:blue" %)**① **(%%)Represents the detection blind zone of The LiDAR probe, 0-10cm, within which the output data is unreliable.
586 -)))
587 -
588 -(((
589 -(% style="color:blue" %)**② **(%%)Represents the operating range of The LiDAR probe detecting black target with 10% reflectivity, 0.1-5m.
590 -)))
591 -
592 -(((
593 -(% style="color:blue" %)**③ **(%%)Represents the operating range of The LiDAR probe detecting white target with 90% reflectivity, 0.1-12m.
594 -)))
595 -
596 -
597 -(((
598 -Vertical Coordinates: Represents the radius of light spot for The LiDAR probe at different distances. The diameter of light spot depends on the FOV of The LiDAR probe (the term of FOV generally refers to the smaller value between the receiving angle and the transmitting angle), which is calculated as follows:
599 -)))
600 -
601 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654831797521-720.png?rev=1.1||alt="1654831797521-720.png"]]
602 -
603 -(((
604 -In the formula above, d is the diameter of light spot; D is detecting range; β is the value of the receiving angle of The LiDAR probe, 3.6°. Correspondence between the diameter of light spot and detecting range is given in Table below.
605 -)))
606 -
607 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654831810009-716.png?rev=1.1||alt="1654831810009-716.png"]]
608 -
609 -(((
610 -If the light spot reaches two objects with different distances, as shown in Figure 3, the output distance value will be a value between the actual distance values of the two objects. For a high accuracy requirement in practice, the above situation should be noticed to avoid the measurement error.
611 -)))
612 -
613 -
614 -=== 2.8.3 Notice of usage ===
615 -
616 -
617 -Possible invalid /wrong reading for LiDAR ToF tech:
618 -
619 -* Measure high reflectivity object such as: Mirror, Smooth ceramic tile, static milk surface, will have possible wrong readings.
620 -* While there is transparent object such as glass, water drop between the measured object and the LiDAR sensor, the reading might be wrong.
621 -* The LiDAR probe is cover by dirty things; the reading might be wrong. In this case, need to clean the probe.
622 -* The sensor window is made by Acrylic. Don't touch it with alcohol material. This will destroy the sensor window.
623 -
624 -=== 2.8.4  Reflectivity of different objects ===
625 -
626 -
627 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:379px" %)
628 -|=(% style="width: 54px;background-color:#4F81BD;color:white" %)Item|=(% style="width: 231px;background-color:#4F81BD;color:white" %)Material|=(% style="width: 94px;background-color:#4F81BD;color:white" %)Relectivity
629 -|(% style="width:53px" %)1|(% style="width:229px" %)Black foam rubber|(% style="width:93px" %)2.4%
630 -|(% style="width:53px" %)2|(% style="width:229px" %)Black fabric|(% style="width:93px" %)3%
631 -|(% style="width:53px" %)3|(% style="width:229px" %)Black rubber|(% style="width:93px" %)4%
632 -|(% style="width:53px" %)4|(% style="width:229px" %)Coal (different types of coal)|(% style="width:93px" %)4~~8%
633 -|(% style="width:53px" %)5|(% style="width:229px" %)Black car paint|(% style="width:93px" %)5%
634 -|(% style="width:53px" %)6|(% style="width:229px" %)Black Jam|(% style="width:93px" %)10%
635 -|(% style="width:53px" %)7|(% style="width:229px" %)Opaque black plastic|(% style="width:93px" %)14%
636 -|(% style="width:53px" %)8|(% style="width:229px" %)Clean rough board|(% style="width:93px" %)20%
637 -|(% style="width:53px" %)9|(% style="width:229px" %)Translucent plastic bottle|(% style="width:93px" %)62%
638 -|(% style="width:53px" %)10|(% style="width:229px" %)Carton cardboard|(% style="width:93px" %)68%
639 -|(% style="width:53px" %)11|(% style="width:229px" %)Clean pine|(% style="width:93px" %)70%
640 -|(% style="width:53px" %)12|(% style="width:229px" %)Opaque white plastic|(% style="width:93px" %)87%
641 -|(% style="width:53px" %)13|(% style="width:229px" %)White Jam|(% style="width:93px" %)90%
642 -|(% style="width:53px" %)14|(% style="width:229px" %)Kodak Standard Whiteboard|(% style="width:93px" %)100%
643 -|(% style="width:53px" %)15|(% style="width:229px" %)(((
644 -Unpolished white metal surface
645 -)))|(% style="width:93px" %)130%
646 -|(% style="width:53px" %)16|(% style="width:229px" %)Glossy light metal surface|(% style="width:93px" %)150%
647 -|(% style="width:53px" %)17|(% style="width:229px" %)stainless steel|(% style="width:93px" %)200%
648 -|(% style="width:53px" %)18|(% style="width:229px" %)Reflector plate, reflective tape|(% style="width:93px" %)>300%
649 -
650 -= 3. Configure LDS12-LB =
651 -
652 652  == 3.1 Configure Methods ==
653 653  
654 654  
... ... @@ -728,9 +728,9 @@
728 728  === 3.3.2 Set Interrupt Mode ===
729 729  
730 730  
731 -Feature, Set Interrupt mode for PA8 of pin.
627 +Feature, Set Interrupt mode for pin of GPIO_EXTI.
732 732  
733 -When AT+INTMOD=0 is set, PA8 is used as a digital input port.
629 +When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
734 734  
735 735  (% style="color:blue" %)**AT Command: AT+INTMOD**
736 736  
... ... @@ -741,7 +741,11 @@
741 741  OK
742 742  the mode is 0 =Disable Interrupt
743 743  )))
744 -|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
640 +|(% style="width:154px" %)(((
641 +AT+INTMOD=2
642 +
643 +(default)
644 +)))|(% style="width:196px" %)(((
745 745  Set Transmit Interval
746 746  0. (Disable Interrupt),
747 747  ~1. (Trigger by rising and falling edge)
... ... @@ -759,33 +759,7 @@
759 759  
760 760  * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
761 761  
762 -=== 3.3.3  Set Power Output Duration ===
763 763  
764 -Control the output duration 3V3 . Before each sampling, device will
765 -
766 -~1. first enable the power output to external sensor,
767 -
768 -2. keep it on as per duration, read sensor value and construct uplink payload
769 -
770 -3. final, close the power output.
771 -
772 -(% style="color:blue" %)**AT Command: AT+3V3T**
773 -
774 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
775 -|=(% 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**
776 -|(% style="width:154px" %)AT+3V3T=?|(% style="width:196px" %)Show 3V3 open time.|(% style="width:157px" %)0 (default)
777 -OK
778 -|(% style="width:154px" %)AT+3V3T=1000|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:157px" %)OK
779 -|(% style="width:154px" %)AT+3V3T=0|(% style="width:196px" %)Always turn on the power supply of 3V3 pin.|(% style="width:157px" %)OK
780 -
781 -(% style="color:blue" %)**Downlink Command: 0x07**(%%)
782 -Format: Command Code (0x07) followed by 3 bytes.
783 -
784 -The first byte is 01,the second and third bytes are the time to turn on.
785 -
786 -* Example 1: Downlink Payload: 07 01 00 00  **~-~-->**  AT+3V3T=0
787 -* Example 2: Downlink Payload: 07 01 01 F4  **~-~-->**  AT+3V3T=500
788 -
789 789  = 4. Battery & Power Consumption =
790 790  
791 791  
... ... @@ -854,7 +854,7 @@
854 854  = 8. Order Info =
855 855  
856 856  
857 -Part Number: (% style="color:blue" %)**LDS12-LB-XXX**
731 +Part Number: (% style="color:blue" %)**DS20L-XXX**
858 858  
859 859  (% style="color:red" %)**XXX**(%%): **The default frequency band**
860 860  
... ... @@ -879,7 +879,7 @@
879 879  
880 880  (% style="color:#037691" %)**Package Includes**:
881 881  
882 -* LDS12-LB LoRaWAN LiDAR ToF Distance Sensor x 1
756 +* DS20L LoRaWAN Smart Distance Detector x 1
883 883  
884 884  (% style="color:#037691" %)**Dimension and weight**:
885 885  
image-20230805103904-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.9 KB
Content
image-20230805104104-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.3 KB
Content
image-20230805144259-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +872.7 KB
Content
image-20230805144936-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +37.5 KB
Content
image-20230805145056-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +30.7 KB
Content
image-20230805150315-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +90.6 KB
Content
image-20230805155335-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.4 KB
Content
image-20230805155428-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.5 KB
Content
image-20230805155515-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +45.7 KB
Content
image-20231110085300-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +613.3 KB
Content
image-20231110085342-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +178.7 KB
Content
image-20231110091447-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +85.4 KB
Content
image-20231110091506-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +85.4 KB
Content