Changes for page DS20L -- LoRaWAN Smart Distance Detector User Manual 01
Last modified by Mengting Qiu on 2023/12/14 11:15
From version 114.1
edited by Xiaoling
on 2023/11/10 10:26
on 2023/11/10 10:26
Change comment:
Uploaded new attachment "image-20231110102635-5.png", version {1}
To version 170.2
edited by Mengting Qiu
on 2023/12/12 10:36
on 2023/12/12 10:36
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 38 added, 0 removed)
- 1701149922873-259.png
- 1701152902759-553.png
- 1701152946067-561.png
- 1701155076393-719.png
- 1701155150328-206.png
- 1701155390576-216.png
- image-20231128133704-1.png
- image-20231128151132-2.png
- image-20231129085201-1.png
- image-20231129100454-2.png
- image-20231206143515-1.png
- image-20231206144950-2.png
- image-20231206151412-3.png
- image-20231206154621-4.png
- image-20231206194804-5.png
- image-20231206195704-6.png
- image-20231207142208-1.png
- image-20231207144600-2.png
- image-20231207144837-3.png
- image-20231207144856-4.png
- image-20231207145121-5.png
- image-20231207153532-6.png
- image-20231207154046-7.png
- image-20231207155940-8.png
- image-20231207160053-9.png
- image-20231207160343-10.png
- image-20231207160733-11.png
- image-20231209152917-1.png
- image-20231209155616-2.png
- image-20231209171127-3.png
- image-20231209171549-4.png
- image-20231209173457-5.png
- image-20231211113113-1.png
- image-20231211113204-2.png
- image-20231211114932-3.png
- image-20231211220922-1.png
- image-20231211221253-2.png
- image-20231211221436-3.png
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.ting - Content
-
... ... @@ -8,7 +8,7 @@ 8 8 9 9 10 10 11 -**Table of Contents :**11 +**Table of Contents:(% style="display:none" %) (%%)** 12 12 13 13 {{toc/}} 14 14 ... ... @@ -22,7 +22,7 @@ 22 22 == 1.1 What is LoRaWAN Smart Distance Detector == 23 23 24 24 25 -The Dragino (% style="color:blue" %)**DS20L is a smart distance detector**(%%) base on long-range wireless LoRaWAN technology. It uses (% style="color:blue" %)**LiDAR sensor**(%%) to detect the distance between DS20L and object, then DS20L will send the distance data to the IoT Platform via LoRaWAN. 25 +The Dragino (% style="color:blue" %)**DS20L is a smart distance detector**(%%) base on long-range wireless LoRaWAN technology. It uses (% style="color:blue" %)**LiDAR sensor**(%%) to detect the distance between DS20L and object, then DS20L will send the distance data to the IoT Platform via LoRaWAN. DS20L can measure range between 3cm ~~ 200cm. 26 26 27 27 DS20L allows users to send data and reach extremely long ranges via LoRaWAN. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current 28 28 consumption. It targets professional wireless sensor network applications such smart cities, building automation, and so on. ... ... @@ -31,9 +31,8 @@ 31 31 32 32 DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway. 33 33 34 -DS20L supports (% style="color:blue" %)**Datalog feature**(%%). It will record the data when there is no network coverage and users can retrieve the sensor value later to ensure no miss for every sensor reading. 35 35 36 -[[image:image-20231110 091506-4.png||height="391" width="768"]]35 +[[image:image-20231110102635-5.png||height="402" width="807"]] 37 37 38 38 39 39 == 1.2 Features == ... ... @@ -45,13 +45,11 @@ 45 45 * AT Commands to change parameters 46 46 * Remotely configure parameters via LoRaWAN Downlink 47 47 * Alarm & Counting mode 48 -* Datalog Feature 49 49 * Firmware upgradable via program port or LoRa protocol 50 50 * Built-in 2400mAh battery or power by external power source 51 51 52 52 == 1.3 Specification == 53 53 54 - 55 55 (% style="color:#037691" %)**LiDAR Sensor:** 56 56 57 57 * Operation Temperature: -40 ~~ 80 °C ... ... @@ -62,10 +62,34 @@ 62 62 * ToF FoV: ±9°, Total 18° 63 63 * Light source: VCSEL 64 64 62 +== 1.4 Power Consumption == 65 65 66 -(% style="display:none" %) 67 67 65 +(% style="color:#037691" %)**Battery Power Mode:** 68 68 67 +* Idle: 3uA @ 3.3v 68 +* Max : 360 mA 69 + 70 +(% style="color:#037691" %)**Continuously mode**: 71 + 72 +* Idle: 21 mA @ 3.3v 73 +* Max : 360 mA 74 + 75 +== 1.5 Use Case == 76 + 77 +(% class="mark" %)**Regular Distance Detect** 78 + 79 +[[image:image-20231211220922-1.png||height="352" width="605"]] 80 + 81 + 82 +(% class="mark" %)**Counting / Alarm** 83 + 84 +[[image:image-20231211221253-2.png]] 85 + 86 + 87 +[[image:image-20231211221436-3.png]] 88 + 89 + 69 69 = 2. Configure DS20L to connect to LoRaWAN network = 70 70 71 71 == 2.1 How it works == ... ... @@ -80,52 +80,47 @@ 80 80 81 81 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example. 82 82 83 -The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server. 104 +The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.(% style="display:none" %) 84 84 85 -[[image:image-20231110 091447-3.png||height="383" width="752"]](% style="display:none" %)106 +[[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %) 86 86 108 +=== Step 1: Create a device in TTN with the OTAA keys from DS20L. === 87 87 88 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L. 89 - 90 90 Each DS20L is shipped with a sticker with the default device EUI as below: 91 91 92 92 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]] 93 93 94 94 95 -You can enter this key in the LoRaWAN Server portal. 115 +You can enter this key in the LoRaWAN Server portal. Below is TTN V3 screenshot: 96 96 97 97 98 98 (% style="color:blue" %)**Register the device** 99 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"]]120 +[[image:image-20231207144600-2.png||height="703" width="756"]] 101 101 102 102 103 -(% style="color:blue" %)**Add APPEUI andDEV EUI**123 +(% style="color:blue" %)**Add DevEUI and AppKey** 104 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"]]125 +[[image:image-20231207145121-5.png||height="540" width="756"]] 106 106 107 107 108 -(% style="color:blue" %)**Add APP EUI in the application** 109 109 129 +=== Step 2: Activate DS20L === 110 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"]]131 +[[image:image-20231128133704-1.png||height="189" width="441"]] 112 112 133 +Press the button for 5 seconds to activate the DS20L. 113 113 114 -(% style="color:blue" %)** Add APP KEY**135 +The switch is switched to (% style="color:blue" %)**E** (%%)and the external power supply is used. 115 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"]]137 +The switch is switched to (% style="color:blue" %)**I** (%%)and DS20L will be power by the built-in battery. 117 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 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 125 126 126 After join success, it will start to upload messages to TTN and you can see the messages in the panel. 127 127 128 128 144 + 129 129 == 2.3 Uplink Payload == 130 130 131 131 === 2.3.1 Device Status, FPORT~=5 === ... ... @@ -143,9 +143,9 @@ 143 143 144 144 Example parse in TTNv3 145 145 146 -[[image:image-20230 805103904-1.png||height="131" width="711"]]162 +[[image:image-20231206151412-3.png||height="179" width="1070"]] 147 147 148 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x2 4164 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21 149 149 150 150 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 151 151 ... ... @@ -199,222 +199,225 @@ 199 199 === 2.3.2 Uplink Payload, FPORT~=2 === 200 200 201 201 202 -((( 203 -DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will: 218 +==== (% style="color:red" %)**AT+MOD~=1**(%%) ==== 204 204 205 - periodically send thisuplinkevery20minutes, thisinterval [[can bechanged>>||anchor="H3.3.1SetTransmitIntervalTime"]].220 +Regularly detect distance and report. When the distance exceeds the limit, the alarm flag is set to 1, and the report can be triggered by external interrupts. 206 206 207 -Uplink Payload totals 11 bytes. 208 -))) 222 +**Uplink Payload totals 10 bytes.** 209 209 210 210 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 211 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 212 -**Size(bytes)** 213 -)))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 80px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1** 214 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)((( 215 -[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]] 216 -)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)((( 217 -[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]] 218 -)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)((( 219 -[[Message Type>>||anchor="HMessageType"]] 220 -))) 225 +|(% style="background-color:#4f81bd; color:White; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:White; width:30px" %)**2**|(% style="background-color:#4f81bd; color:White; width:130px" %)**1**|(% style="background-color:#4f81bd; color:White; width:70px" %)**2**|(% style="background-color:#4f81bd; color:White; width:100px" %)**1**|(% style="background-color:#4f81bd; color:White; width:120px" %)**4** 226 +|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+ Alarm+ Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count 221 221 222 - [[image:image-20230805104104-2.png||height="136" width="754"]]228 +**MOD+ Alarm+ Interrupt:** 223 223 230 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:400px" %) 231 +|(% style="background-color:#4f81bd; color:White; width:50px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:White; width:60px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:White; width:70px" %)**bit5**|(% style="background-color:#4f81bd; color:White; width:120px" %)**bit4** 232 +|(% style="width:80px" %)Value|(% style="width:80px" %)MOD|(% style="width:89px" %)Digital Interrupt 233 + |(% style="width:167px" %)((( 234 +Distance Alarm 224 224 225 - ====(% style="color:blue"%)**Battery Info**(%%) ====236 +0: No Alarm; 226 226 238 +1: Alarm 239 +))) 227 227 228 - Check the batteryvoltageforDS20L.241 +Example parse in TTNv3 229 229 230 - Ex1:x0B45885mV243 +[[image:image-20231209152917-1.png||height="300" width="1172"]] 231 231 232 - Ex2:0x0B49= 2889mV245 +(% style="color:blue" %)**Battery Info:** 233 233 247 +Check the battery voltage for DS20L 234 234 235 - ==== (% style="color:blue"%)**DS18B20Temperature sensor**(%%)====249 +Ex1: 0x0E10 = 3600mV 236 236 237 237 238 - Thisisoptional, usercan connect externalDS18B20 sensorto the+3.3v,1-wireandGNDpin. andthis field willreport temperature.252 +(% style="color:blue" %)**MOD & Alarm & Interrupt:** 239 239 254 +(% style="color:red" %)**MOD:** 240 240 241 -**Example** :256 +**Example: ** (0x60>>6) & 0x3f =1 242 242 243 -If payload is: 0105H: (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree 258 +**0x01:** Regularly detect distance and report. 259 +**0x02: ** Uninterrupted measurement (external power supply). 244 244 245 - Ifpayload is:FF3FH : (FF3F & FC00 == 1) , temp= (FF3FH - 65536)/10 = -19.3 degrees.261 +(% style="color:red" %)**Alarm:** 246 246 263 +When the detection distance exceeds the limit, the alarm flag is set to 1. 247 247 248 - ====(% style="color:blue" %)**Distance**(%%) ====265 +(% style="color:red" %)**Interrupt:** 249 249 267 +Whether it is an external interrupt. 250 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 252 270 +(% style="color:blue" %)**Distance info:** 253 253 254 254 **Example**: 255 255 256 -If the datayouget from the registeris0x0B0xEA, thedistancebetweenthe sensor and the measured object is0BEA(H)=3050 (D)/10= 305cm.274 +If payload is: 0708H: distance = 0708H = 1800 mm 257 257 258 258 259 - ====(% style="color:blue" %)**Distancesignalstrength**(%%) ====277 +(% style="color:blue" %)**Sensor State:** 260 260 279 +Ex1: 0x00: Normal collection distance 261 261 262 - Refersto the signal strength, the default output value will be between0-65535. When the distance measurement gear is fixed,the farther the distancemeasurement is, the lower the signalstrength; thelower the target reflectivity, the lower the signalstrength. When Strengthisgreater than 100 and not equal to 65535, the measured value of Dist is considered credible.281 +Ex2: 0x0x: Distance collection is wrong 263 263 264 264 265 - **Example**:284 +(% style="color:blue" %)**Interrupt Count:** 266 266 267 -If payload is: 1D7(H)=471(D),distance signal strength=471,471>100,471≠65535, the measured value ofDistis considered credible.286 +If payload is:000007D0H: count = 07D0H =2000 268 268 269 -Customers can judge whether they need to adjust the environment based on the signal strength. 270 270 271 271 272 - **1)Whenthesensor detects validdata:**290 +==== (% style="color:red" %)**AT+MOD~=2**(%%)** ** ==== 273 273 274 -[[image:image-20230805155335-1.png||height="145" width="724"]] 275 275 293 +The power consumption of uninterrupted measurement is high, and the device needs to use external power supply.(The switch is switched to E and the external power supply is used.) 276 276 277 - **2) Whenthesensor detectsinvaliddata:**295 +[[image:image-20231128133704-1.png||height="189" width="441"]] 278 278 279 -[[image:image-20230805155428-2.png||height="139" width="726"]] 280 280 298 +* **Set over-limit alarm mode: AT+DOL=3,500,244,**(% style="color:red" %)0(%%)**,120** 281 281 282 -**3) When the sensor is not connected:** 300 +(% class="wikigeneratedid" id="HUninterruptedmeasurement.Whenthedistanceexceedsthelimit2CtheoutputIOissethighandreportsarereportedeveryfiveminutes.Thetimecanbesetandpoweredbyanexternalpowersupply.UplinkPayloadtotals11bytes." %) 301 +Uninterrupted measurement. When the distance exceeds the limit, the output IO high, instant alarm. Uplink Payload totals 9 bytes. 283 283 284 -[[image:image-20230805155515-3.png||height="143" width="725"]] 303 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 304 +|(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2** 305 +|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+Alarm+DO+Limit flag|(% style="width:74px" %)Distance |(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit 285 285 307 +[[image:image-20231209171127-3.png||height="374" width="1209"]] 286 286 287 - ====(% style="color:blue" %)**InterruptPin&InterruptLevel**(%%) ====309 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:** 288 288 311 +(% style="color:red" %)**MOD:** 289 289 290 - This data field shows if thispacketisgenerated by interrupt or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]]forthe hardware and softwareset up.313 +**Example: ** (0x60>>6) & 0x3f =1 291 291 292 -Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.8PinDefinitions"]] of GPIO_EXTI . 315 +**0x01:** Regularly detect distance and report. 316 +**0x02: ** Uninterrupted measurement (external power supply). 293 293 294 -** Example:**318 +(% style="color:red" %)**Alarm:** 295 295 296 - Ifbyte[0]&0x01=0x00:Normaluplinkpacket.320 +When the detection distance exceeds the limit, the alarm flag is set to 1. 297 297 298 - Ifbyte[0]&0x01=0x01:Interrupt Uplink Packet.322 +(% style="color:red" %)**DO:** 299 299 324 +When the distance exceeds the set threshold, pull the Do pin high. 300 300 301 - ====(% style="color:blue" %)**LiDAR temp**(%%) ====326 +(% style="color:red" %)**Limit flag:** 302 302 328 +Mode for setting threshold: **0~~3** 303 303 304 - Characterizetheinternaltemperaturevalueof the sensor.330 +**0:** does not use upper and lower limits 305 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℃. 332 +**1:** Use upper and lower limits 309 309 334 +**2:** Less than the upper limit 310 310 311 - ==== (% style="color:blue"%)**MessageType**(%%)====336 +**3: **Greater than the lower limit 312 312 313 313 314 -((( 315 -For a normal uplink payload, the message type is always 0x01. 316 -))) 339 +(% style="color:blue" %)**Distance:** 317 317 318 -((( 319 -Valid Message Type: 320 -))) 341 + Actual sampling distance values. 321 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 343 +**Example:** 326 326 327 - [[image:image-20230805150315-4.png||height="233" width="723"]]345 +**AT+DOL=1,500,244,**(% style="color:red" %)0(%%)**,120 ** 328 328 347 +The distance is detected every 120ms. 329 329 330 - ===2.3.3 Historicalmeasuring distance,FPORT~=3===349 +When the actual detection value is within the range of [244mm,500mm], the data is uploaded in the normal TDC time. 331 331 351 +When the actual detection value is outside the range of [244mm,500mm], the uplink data will be immediately alerted. 332 332 333 - DS20Lstores sensor valuesanduserscanretrieve these history valuesviathe [[downlinkcommand>>||anchor="H2.5.4Pollsensorvalue"]].353 +If payload is: 0708H: distance = 0708H = 1800 mm 334 334 335 -The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance. 336 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 356 +(% style="color:blue" %)**Upper limit:** 346 346 347 - **Interrupt flag& Interruptlevel:**358 +The upper limit of the threshold cannot exceed 2000mm. 348 348 349 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %) 350 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 351 -**Size(bit)** 352 -)))|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit6**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**[bit5:bit2]**|=(% style="width: 90px; background-color: #4F81BD; color: white;" %)**bit1**|=(% style="background-color: #4F81BD; color: white; width: 90px;" %)**bit0** 353 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)No ACK message|(% style="width:62.5px" %)Poll Message Flag|Reserve|(% style="width:91px" %)Interrupt level|(% style="width:88px" %)((( 354 -Interrupt flag 355 -))) 356 356 357 -* ((( 358 -Each data entry is 11 bytes and has the same structure as [[Uplink Payload>>||anchor="H2.3.2UplinkPayload2CFPORT3D2"]], to save airtime and battery, DS20L will send max bytes according to the current DR and Frequency bands. 359 -))) 361 +(% style="color:blue" %)**Lower limit:** 360 360 361 - Forexample,intheUS915 band,themax payloadfordifferentDR is:363 +The lower limit of the threshold cannot be less than 3mm. 362 362 363 -**a) DR0:** max is 11 bytes so one entry of data 364 364 365 -* *b)DR1:**maxis 53 bytesso devices will upload 4entries ofdata(total44bytes)366 +* **Set the person or object count mode: AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120** 366 366 367 - **c) DR2:**total payload includes 11entriesof data368 +Continuous measurement, detect and count people or things passing by in distance limit mode. Uplink Payload totals 11 bytes. 368 368 369 -**d) DR3:** total payload includes 22 entries of data. 370 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:600px" %) 371 +|(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**4**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2** 372 +|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+Alarm+Do+Limit flag|(% style="width:176px" %)Distance limit alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit 370 370 371 - If DS20L doesn't havey data in thepollingime.Itwill uplink 11 bytes of0374 +[[image:image-20231209173457-5.png||height="277" width="1098"]] 372 372 376 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:** 373 373 374 -**D ownlink:**378 +(% style="color:red" %)**MOD:** 375 375 376 - 0x3164CC680C64CC69 7405380 +**Example: ** (0x60>>6) & 0x3f =1 377 377 378 -[[image:image-20230805144936-2.png||height="113" width="746"]] 382 +**0x01:** Regularly detect distance and report. 383 +**0x02: ** Uninterrupted measurement (external power supply). 379 379 380 -** Uplink:**385 +(% style="color:red" %)**Alarm:** 381 381 382 - 43FF0E1000B01E64CC680C40FF0D DE 00 A81E 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 6D387 +When the detection distance exceeds the limit, the alarm flag is set to 1. 383 383 389 +(% style="color:red" %)**Do:** 384 384 385 - **ParsedValue:**391 +When the distance exceeds the set threshold, pull the Do pin high. 386 386 387 - [DISTANCE,DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS, EXTI_FLAG , TIME]393 +(% style="color:red" %)**Limit flag:** 388 388 395 +Mode for setting threshold: **0~~3** 389 389 390 - [360,176,30,High,True,2023-08-0402:53:00],397 +**0:** does not use upper and lower limits 391 391 392 - [355,168,30,Low,False,2023-08-0402:53:29],399 +**1:** Use upper and lower limits 393 393 394 - [245,211,30,Low,False,2023-08-0402:54:29],401 +**2:** Less than the upper limit 395 395 396 - [57,700,30,Low,False,2023-08-0402:55:29],403 +**3: **Greater than the lower limit 397 397 398 -[361,164,30,Low,True,2023-08-04 02:56:00], 399 399 400 - [337,184,30,Low,False,2023-08-0402:56:40],406 +(% style="color:blue" %)**Distance limit alarm count:** 401 401 402 - [20,4458,30,Low,False,2023-08-0402:57:40],408 +People or objects are collected and counted within a limited distance. 403 403 404 - [362,173,30,Low,False,2023-08-0402:58:53],410 +The detection of a stationary person or object at each sampling time will be repeated three times, and the fourth sampling count will be added by 1. 405 405 412 +**Example:** 406 406 407 -** Historyreadfromserial port:**414 +**AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120 ** 408 408 409 - [[image:image-20230805145056-3.png]]416 +People or objects passing within the distance range of [244mm,500mm] are detected and counted every 120ms. 410 410 418 +If payload is: 0x56H, interrupt count =0x56H =86 411 411 412 -=== 2.3.4 Decode payload in The Things Network === 413 413 421 +(% style="color:blue" %)**Upper limit:** 414 414 423 +The upper limit of the threshold cannot exceed 2000mm. 424 + 425 + 426 +(% style="color:blue" %)**Lower limit:** 427 + 428 +The lower limit of the threshold cannot be less than 3mm. 429 + 430 + 431 +== 2.4 Decode payload in The Things Network == 432 + 433 + 415 415 While using TTN network, you can add the payload format to decode the payload. 416 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"]]436 +[[image:image-20231206143515-1.png||height="534" width="759"]] 418 418 419 419 420 420 ((( ... ... @@ -426,11 +426,11 @@ 426 426 ))) 427 427 428 428 429 -== 2. 4Show Data in DataCake IoT Server ==448 +== 2.5 Show Data in DataCake IoT Server == 430 430 431 431 432 432 ((( 433 -[[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, on ce wehavetain TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:452 +[[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, onhuman-friendlya 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 434 ))) 435 435 436 436 ... ... @@ -443,98 +443,28 @@ 443 443 ))) 444 444 445 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"]]465 +[[image:image-20231207153532-6.png||height="562" width="861"]] 447 447 448 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"]]468 +[[image:image-20231207155940-8.png]] 450 450 470 +For more detailed instructions, refer to the following instructions: [[Welcome - Datacake Docs>>url:https://docs.datacake.de/]] 451 451 472 +[[image:image-20231207160733-11.png||height="429" width="759"]] 473 + 474 + 452 452 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.** 453 453 454 454 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.** 455 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"]]479 +[[image:image-20231207160343-10.png||height="665" width="705"]] 457 457 458 458 459 459 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake. 460 460 461 -[[image: http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20220610165129-11.png?width=1088&height=595&rev=1.1||alt="image-20220610165129-11.png"]]484 +[[image:image-20231129100454-2.png||height="501" width="928"]] 462 462 463 463 464 -== 2.5 Datalog Feature == 465 - 466 - 467 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DS20L will store the reading for future retrieving purposes. 468 - 469 - 470 -=== 2.5.1 Ways to get datalog via LoRaWAN === 471 - 472 - 473 -Set PNACKMD=1, DS20L will wait for ACK for every uplink, when there is no LoRaWAN network, DS20L will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery. 474 - 475 -* ((( 476 -a) DS20L will do an ACK check for data records sending to make sure every data arrive server. 477 -))) 478 -* ((( 479 -b) DS20L will send data in **CONFIRMED Mode** when PNACKMD=1, but DS20L won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if DS20L gets a ACK, DS20L will consider there is a network connection and resend all NONE-ACK messages. 480 -))) 481 - 482 - 483 - 484 -=== 2.5.2 Unix TimeStamp === 485 - 486 - 487 -DS20L uses Unix TimeStamp format based on 488 - 489 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]] 490 - 491 -User can get this time from link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] : 492 - 493 -Below is the converter example 494 - 495 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]] 496 - 497 - 498 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25 499 - 500 - 501 -=== 2.5.3 Set Device Time === 502 - 503 - 504 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command. 505 - 506 -Once DS20L Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to DS20L. If DS20L fails to get the time from the server, DS20L will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days). 507 - 508 -(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.** 509 - 510 - 511 -=== 2.5.4 Poll sensor value === 512 - 513 - 514 -Users can poll sensor values based on timestamps. Below is the downlink command. 515 - 516 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %) 517 -|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)** 518 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte** 519 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval 520 - 521 -((( 522 -Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval. 523 -))) 524 - 525 -((( 526 -For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]] 527 -))) 528 - 529 -((( 530 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data 531 -))) 532 - 533 -((( 534 -Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s. 535 -))) 536 - 537 - 538 538 == 2.6 Frequency Plans == 539 539 540 540 ... ... @@ -543,7 +543,7 @@ 543 543 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 544 544 545 545 546 -3. Configure DS20L 495 += 3. Configure DS20L = 547 547 548 548 == 3.1 Configure Methods == 549 549 ... ... @@ -573,7 +573,7 @@ 573 573 == 3.3 Commands special design for DS20L == 574 574 575 575 576 - Thesecommands only valid for DS20L, as below:525 +Below commands only valid for DS20L, as below: 577 577 578 578 579 579 === 3.3.1 Set Transmit Interval Time === ... ... @@ -615,7 +615,7 @@ 615 615 Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 616 616 ))) 617 617 * ((( 618 -Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 567 +Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 619 619 620 620 621 621 ... ... @@ -638,7 +638,7 @@ 638 638 the mode is 0 =Disable Interrupt 639 639 ))) 640 640 |(% style="width:154px" %)((( 641 -AT+INTMOD= 2590 +AT+INTMOD=3 642 642 643 643 (default) 644 644 )))|(% style="width:196px" %)((( ... ... @@ -659,7 +659,117 @@ 659 659 660 660 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 661 661 611 +=== 3.3.3 Set work mode === 662 662 613 + 614 +Feature: Switch working mode 615 + 616 +(% style="color:blue" %)**AT Command: AT+MOD** 617 + 618 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 619 +|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Response** 620 +|(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK 621 +|(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)((( 622 +OK 623 +Attention:Take effect after ATZ 624 +))) 625 + 626 +(% style="color:blue" %)**Downlink Command:** 627 + 628 +* **Example: **0x0A01 ~/~/ Same as AT+MOD=1 629 + 630 +* **Example:** 0x0A02 ~/~/ Same as AT+MOD=2 631 + 632 +=== 3.3.4 Set threshold and threshold mode === 633 + 634 + 635 +Feature, Set threshold and threshold mode 636 + 637 +When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms. 638 + 639 +(% style="color:blue" %)**AT Command: AT+DOL** 640 + 641 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 642 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:240px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:108px" %)**Response** 643 +|(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)((( 644 +0,0,0,0,400 645 +OK 646 +))) 647 +|(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK 648 + 649 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 650 +|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %) Parameter 651 +|(% rowspan="11" style="color:blue; width:120px" %)((( 652 + 653 + 654 + 655 + 656 + 657 + 658 + 659 + 660 + 661 + 662 + 663 +**AT+DOL=1,1800,3,0,400** 664 +)))|(% rowspan="4" style="width:240px" %)((( 665 + 666 + 667 + 668 + 669 +The first bit sets the limit mode 670 +)))|(% style="width:150px" %)0: Do not use upper and lower limits 671 +|(% style="width:251px" %)1: Use upper and lower limits 672 +|(% style="width:251px" %)2:Less than the upper limit 673 +|(% style="width:251px" %)3: Greater than the lower limit 674 +|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM 675 +|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM 676 +|(% rowspan="2" style="width:226px" %)The fourth bit sets the over-limit alarm or person or object count.|(% style="width:251px" %)0 Over-limit alarm, DO output is high 677 +|(% style="width:251px" %)1 Person or object counting statistics 678 +|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)((( 679 +100~~10000ms 680 + 681 + 682 +))) 683 + 684 +(% style="color:blue" %)**Downlink Command: 0x07** 685 + 686 +Format: Command Code (0x07) followed by 9 bytes. 687 + 688 +If the downlink payload=**07 01 0708 0064 00 0190**, it means set the END Node's limit mode to 0x01,upper limit value to 0x0708=1800(mm), lower limit value to 0x0064=100(mm), to over-limit alarm(0x00) ,the sampling time to 0x0190=400(ms), while type code is 0x07. 689 + 690 +* Example 0: Downlink Payload: 07 00 0000 0000 00 0190 **~-~-->** AT+MOD=0,0,0,0,400 691 + 692 +* Example 1: Downlink Payload: 070107080064000190 **~-~-->** AT+MOD=1,1800,100,0,400 693 + 694 +* Example 2: Downlink Payload: 070200000064000190 **~-~-->** AT+MOD=2,1800,100,0,400 695 + 696 +* Example 3: Downlink Payload: 070300000064000190 **~-~-->** AT+MOD=3,0,100,0,400 697 + 698 +(% style="color:Red" %)**Note: The over-limit alarm is applied to MOD1 and MOD2.** 699 + 700 +**For example:** 701 + 702 +* **AT+MOD=1** 703 + 704 + **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300** 705 + 706 +Send data according to the normal TDC time. If the mode limit is exceeded, the alarm flag is set to 1: 707 + 708 +[[image:image-20231211113204-2.png||height="292" width="1093"]] 709 + 710 +* **AT+MOD=2 ** 711 + 712 + **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300** 713 + 714 +If the mode limit is exceeded, the data is immediately uplink and the alarm flag is set to 1: 715 + 716 +[[image:image-20231211114932-3.png||height="277" width="1248"]] 717 + 718 + 719 + 720 + 721 + 663 663 = 4. Battery & Power Consumption = 664 664 665 665 ... ... @@ -696,6 +696,33 @@ 696 696 DS20L use the same frequency as other Dragino products. User can see the detail from this link: [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]] 697 697 698 698 758 +== 6.2 DS20L programming line == 759 + 760 + 761 +缺图 后续补上 762 + 763 +feature: 764 + 765 +for AT commands 766 + 767 +Update the firmware of DS20L 768 + 769 +Support interrupt mode 770 + 771 + 772 +== 6.3 LiDAR probe position == 773 + 774 + 775 +[[image:1701155390576-216.png||height="285" width="307"]] 776 + 777 +The black oval hole in the picture is the LiDAR probe. 778 + 779 + 780 +== 6.4 Interface definition == 781 + 782 +[[image:image-20231128151132-2.png||height="305" width="557"]] 783 + 784 + 699 699 = 7. Trouble Shooting = 700 700 701 701 == 7.1 AT Command input doesn't work ==
- 1701149922873-259.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +24.5 KB - Content
- 1701152902759-553.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +52.2 KB - Content
- 1701152946067-561.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +52.2 KB - Content
- 1701155076393-719.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +54.6 KB - Content
- 1701155150328-206.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +54.6 KB - Content
- 1701155390576-216.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +293.9 KB - Content
- image-20231128133704-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +190.6 KB - Content
- image-20231128151132-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +281.2 KB - Content
- image-20231129085201-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +70.6 KB - Content
- image-20231129100454-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +70.1 KB - Content
- image-20231206143515-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +89.5 KB - Content
- image-20231206144950-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +41.0 KB - Content
- image-20231206151412-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +58.8 KB - Content
- image-20231206154621-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +71.2 KB - Content
- image-20231206194804-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +53.7 KB - Content
- image-20231206195704-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +64.1 KB - Content
- image-20231207142208-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.2 KB - Content
- image-20231207144600-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +55.4 KB - Content
- image-20231207144837-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +31.1 KB - Content
- image-20231207144856-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +31.1 KB - Content
- image-20231207145121-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +33.3 KB - Content
- image-20231207153532-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +164.7 KB - Content
- image-20231207154046-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +23.0 KB - Content
- image-20231207155940-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +41.7 KB - Content
- image-20231207160053-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +95.5 KB - Content
- image-20231207160343-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +80.5 KB - Content
- image-20231207160733-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +136.0 KB - Content
- image-20231209152917-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +65.9 KB - Content
- image-20231209155616-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +57.1 KB - Content
- image-20231209171127-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +80.8 KB - Content
- image-20231209171549-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +45.7 KB - Content
- image-20231209173457-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +66.3 KB - Content
- image-20231211113113-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +64.5 KB - Content
- image-20231211113204-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +59.7 KB - Content
- image-20231211114932-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +57.3 KB - Content
- image-20231211220922-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +411.2 KB - Content
- image-20231211221253-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +90.8 KB - Content
- image-20231211221436-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +64.9 KB - Content