Changes for page wiki_test

Last modified by Mengting Qiu on 2024/09/05 17:35

From version 80.9
edited by Xiaoling
on 2023/08/19 13:40
Change comment: There is no comment for this version
To version 73.2
edited by Xiaoling
on 2023/08/19 10:48
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -17,13 +17,13 @@
17 17  == 1.1 What is S31x-NB NB-IoT Temperature & Humidity Sensor ==
18 18  
19 19  
20 -The Dragino S31-NB and S31B-NB are (% style="color:blue" %)**NB-IoT Temperature and Humidity Sensor**(%%) for Internet of Things solution. It is used to measure the surrounding (% style="color:blue" %)**environment temperature and relative air humidity precisely**(%%), and then upload to IoT server via NB-IoT network*.
20 +The Dragino S31-NB and S31B-NB are **NB-IoT Temperature and Humidity Sensor** for Internet of Things solution. It is used to measure the surrounding **environment temperature and relative air humidity precisely**, and then upload to IoT server via NB-IoT network*.
21 21  
22 -The temperature & humidity sensor used in S31-NB is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a (% style="color:blue" %)**waterproof anti-condensation casing**(%%) for long term use.
22 +The temperature & humidity sensor used in S31-NB is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a **waterproof anti-condensation casing** for long term use.
23 23  
24 -S31-NB supports different uplink methods include (% style="color:blue" %)**TCP, MQTT, UDP** for different application requirement. and Support Uplinks to various IoT Servers.
24 +S31-NB supports different uplink methods include **TCP, MQTT, UDP** for different application requirement. and Support Uplinks to various IoT Servers.
25 25  
26 -S31-NB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to several years. (Real-world battery life depends on the use environment, update period and uplink method. Please check related Power Analyze report).
26 +S31-NB is powered by **8500mAh Li-SOCI2 battery**, It is designed for long term use up to several years. (Real-world battery life depends on the use environment, update period and uplink method. Please check related Power Analyze report).
27 27  
28 28  *make sure you have NB-IoT coverage locally.
29 29  
... ... @@ -46,6 +46,7 @@
46 46  * 8500mAh Battery for long term use
47 47  * Nano SIM card slot for NB-IoT SIM
48 48  
49 +
49 49  == 1.3 Specification ==
50 50  
51 51  
... ... @@ -105,6 +105,7 @@
105 105  * STOP Mode: 10uA @ 3.3v
106 106  * Max transmit power: 350mA@3.3v
107 107  
109 +
108 108  == 1.4 Applications ==
109 109  
110 110  
... ... @@ -116,6 +116,8 @@
116 116  * Smart Factory
117 117  
118 118  
121 +
122 +
119 119  == 1.5 Sleep mode and working mode ==
120 120  
121 121  
... ... @@ -144,6 +144,7 @@
144 144  )))
145 145  |(% 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.
146 146  
151 +
147 147  == 1.7 BLE connection ==
148 148  
149 149  
... ... @@ -159,336 +159,444 @@
159 159  If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
160 160  
161 161  
162 -== 1.8 Pin Definitions & Switch ==
167 +== 1.8 Pin Definitions ==
163 163  
169 +[[image:image-20230819104805-5.png]]
164 164  
165 -S31x-NB use the mother board from S31-NB which as below.
166 166  
167 -[[image:image-20230819104805-5.png]]
172 +== 1.8 Hardware Variant ==
168 168  
169 169  
175 +(% border="1" cellspacing="5" style="width:472px" %)
176 +|=(% style="width: 102px;background-color:#D9E2F3;color:#0070C0" %)Model|=(% style="width: 190px;background-color:#D9E2F3;color:#0070C0" %)Photo|=(% style="width: 187px; background-color:#D9E2F3;color:#0070C0" %)Probe Info
177 +|(% style="width:102px" %)(((
178 +S31-LB
179 +)))|(% style="width:190px" %)[[image:image-20230527093214-2.jpeg]]|(% style="width:187px" %)(((
180 +1 x SHT31 Probe
170 170  
171 -=== 1.8.1 Jumper JP2 ===
182 +Cable Length : 2 meters
172 172  
184 +
185 +)))
186 +|(% style="width:102px" %)(((
187 +S31B-LB
188 +)))|(% style="width:190px" %)[[image:image-20230527093155-1.jpeg]]|(% style="width:187px" %)(((
189 +1 x SHT31 Probe
173 173  
174 -Power on Device when put this jumper.
191 +Installed in device.
192 +)))
175 175  
194 +(% style="display:none" %)
176 176  
177 -=== 1.8.2 BOOT MODE / SW1 ===
178 178  
179 179  
180 -1) (% style="color:blue" %)**ISP**(%%): upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
198 +== 1.9 Mechanical ==
181 181  
182 -2) (% style="color:blue" %)**Flash**(%%): work mode, device starts to work and send out console output for further debug
183 183  
201 +[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]]
184 184  
185 -=== 1.8.3 Reset Button ===
186 186  
204 +[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143899218-599.png]]
187 187  
188 -Press to reboot the device.
189 189  
207 +[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]]
190 190  
191 191  
192 -== 1.9 Hardware Variant ==
210 += 2. Configure S31x-LB to connect to LoRaWAN network =
193 193  
212 +== 2.1 How it works ==
194 194  
195 -(% border="1" cellspacing="5" style="width:410px" %)
196 -|=(% style="width: 102px;background-color:#D9E2F3;color:#0070C0" %)Model|=(% style="width: 126px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)Photo|=(% style="width: 179px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)Probe Info
197 -|(% style="width:102px" %)(((
198 -S31-LB
199 -)))|(% style="width:126px" %)(((
200 -(% style="text-align:center" %)
201 -[[image:image-20230819110632-6.png||height="130" width="104"]]
202 -)))|(% style="width:179px" %)(((
203 -1 x SHT31 Probe
204 204  
205 -Cable Length : 3 meters
215 +The S31x-LB 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 S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
206 206  
207 -
208 -)))
209 -|(% style="width:102px" %)(((
210 -S31B-LB
211 -)))|(% style="width:126px" %)(((
212 -(% style="text-align:center" %)
213 -[[image:image-20230819110702-7.png||height="164" width="90"]]
214 -)))|(% style="width:179px" %)(((
215 -1 x SHT31 Probe
216 216  
217 -Installed in device.
218 -)))
218 +== 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
219 219  
220 -(% style="display:none" %)
221 221  
221 +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.
222 222  
223 +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.
223 223  
224 224  
225 -= 2. Use S31-NB to communicate with IoT Server =
226 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB.
226 226  
227 -== 2.1 Send data to IoT server via NB-IoT network ==
228 +Each S31x-LB is shipped with a sticker with the default device EUI as below:
228 228  
230 +[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
229 229  
230 -The S31-NB is equipped with a NB-IoT module, the pre-loaded firmware in S31-NB will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by S31-NB.
231 231  
233 +You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
232 232  
233 -Below shows the network structure:
234 234  
235 -[[image:1692415924540-357.png]]
236 +(% style="color:blue" %)**Register the device**
236 236  
238 +[[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"]]
237 237  
238 -There are two version: (% style="color:blue" %)**-GE**(%%) and (% style="color:blue" %)**-1D**(%%) version of S31-NB.
239 239  
241 +(% style="color:blue" %)**Add APP EUI and DEV EUI**
240 240  
241 -(% style="color:blue" %)**GE Version**(%%): This version doesn’t include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set S31-NB send data to IoT server.
243 +[[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"]]
242 242  
243 -1. Install NB-IoT SIM card and configure APN. See instruction of [[Attach Network>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.AttachNetwork]].
244 244  
245 -1. Set up sensor to point to IoT Server. See instruction of [[Configure to Connect Different Servers>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.Configuretoconnecttodifferentservers]]. 
246 +(% style="color:blue" %)**Add APP EUI in the application**
246 246  
247 -Below shows result of different server as a glance.
248 248  
249 +[[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"]]
249 249  
250 -(% border="1" cellspacing="4" style="width:515px" %)
251 -|(% style="width:100px;background-color:#4F81BD;color:white" %)**Servers**|(% style="width:300px;background-color:#4F81BD;color:white" %)**Dash Board**|(% style="width:115px;background-color:#4F81BD;color:white" %)**Comments**
252 -|(% style="width:127px" %)[[Node-Red>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.5A0Node-RedA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20230819113244-8.png||height="183" width="367"]]|(% style="width:170px" %)
253 -|(% style="width:127px" %)[[DataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]|(% style="width:385px" %)[[image:image-20230819113244-9.png||height="120" width="369"]]|(% style="width:170px" %)
254 -|(% style="width:127px" %)[[Tago.IO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.7A0Tago.ioA028viaA0MQTT29]]|(% style="width:385px" %) |(% style="width:170px" %)
255 -|(% style="width:127px" %)[[General UDP>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.1GeneralA0UDPA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
256 -|(% style="width:127px" %)[[General MQTT>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.2GeneralA0MQTTA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
257 -|(% style="width:127px" %)[[ThingSpeak>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.3A0ThingSpeakA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20230819113244-10.png||height="82" width="291"]]|(% style="width:170px" %)
258 -|(% style="width:127px" %)[[ThingsBoard>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.6A0ThingsBoard.CloudA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20230819113244-11.png||height="113" width="293"]]|(% style="width:170px" %)
259 -|(% style="width:127px" %) |(% style="width:385px" %) |(% style="width:170px" %)
260 260  
252 +(% style="color:blue" %)**Add APP KEY**
261 261  
262 -(% style="color:blue" %)**1D Version**(%%): This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate S31-NB and user will be able to see data in DataCake. See here for [[DataCake Config Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]].
254 +[[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"]]
263 263  
264 264  
265 -== 2.2 ​Payload Types ==
257 +(% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB
266 266  
267 267  
268 -To meet different server requirement, S31-NB supports different payload type.
260 +Press the button for 5 seconds to activate the S31x-LB.
269 269  
270 -Includes:
262 +(% 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.
271 271  
272 -* [[General JSON format payload>>path:#General_Json]]. (Type=5)
264 +After join success, it will start to upload messages to TTN and you can see the messages in the panel.
273 273  
274 -* [[HEX format Payload>>path:#HEX_Payload]]. (Type=0)
275 275  
276 -* [[ThingSpeak Format>>path:#ThingSpeak_Payload]]. (Type=1)
267 +== 2.3 ​Uplink Payload ==
277 277  
278 -* [[ThingsBoard Format>>path:#ThingsBoard_Payload]]. (Type=3)
269 +=== 2.3.1 Device Status, FPORT~=5 ===
279 279  
280 -User can specify the payload type when choose the connection protocol. Example:
281 281  
282 -(% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/Use UDP Connection & hex Payload
272 +Users can use the downlink command(**0x26 01**) to ask S31x-LB to send device configure detail, include device configure status. S31x-LB will uplink a payload via FPort=5 to server.
283 283  
284 -(% style="color:#037691" %)**AT+PRO=2,5**   (%%) ~/~/ Use UDP Connection & Json Payload
274 +The Payload format is as below.
285 285  
286 -(% style="color:#037691" %)**AT+PRO=3,5 ** (%%) ~/~/ Use MQTT Connection & Json Payload
287 287  
277 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
278 +|(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)**
279 +|(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2**
280 +|(% style="width:103px" %)**Value**|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT
288 288  
289 -=== 2.2.1 General Json Format (Type ===
282 +Example parse in TTNv3
290 290  
291 -5) ===
284 +[[image:image-20230524144422-1.png||height="174" width="1080"]]
292 292  
293 -This is the General Json Format. As below:
294 294  
287 +(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A
295 295  
296 -(% style="color:#4472c4" %)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24,"Model":S31x-NB, "1":{28.2,48.3,2023/08/10 08:00:37},"2":{28.1,49.1,2023/08/10 07:57:37},"3":{28.1,48.5,2023/08/10 07:54:37},"4":{28.2,48.6,2023/08/10 07:51:37},"5":{28.1,48.9,2023/08/10 07:48:37},"6":{28.2,48.8,2023/08/10 07:45:37},"7":{28.2,48.8,2023/08/10 07:42:37},"8":{28.0,48.8,2023/08/10 07:39:37}}**
289 +(% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
297 297  
291 +(% style="color:#037691" %)**Frequency Band**:
298 298  
293 +0x01: EU868
299 299  
300 -(% style="color:red" %)Notice, from above payload:
295 +0x02: US915
301 301  
302 -* Temperature , Humidity , Battery & Signal are the value at uplink time.
297 +0x03: IN865
303 303  
304 -* Json entry 1 ~~ 8 are the last 1 ~~ 8 sampling data as specify by (% style="color:#037691" %)**AT+NOUD=8 ** (%%)Command. Each entry includes (from left to right): Temperature, Humidity, Sampling time.
299 +0x04: AU915
305 305  
301 +0x05: KZ865
306 306  
303 +0x06: RU864
307 307  
308 -=== 2.2.2 HEX format Payload(Type ===
305 +0x07: AS923
309 309  
310 -0) ===
307 +0x08: AS923-1
311 311  
309 +0x09: AS923-2
312 312  
313 -This is the HEX Format. As below:
311 +0x0a: AS923-3
314 314  
315 -(% style="color:#4472c4" %)**f86620705346276200640cba16010000000011011801e864d49c2d011a01e364d49925011901eb64d49871011901e564d497bd011a01e664d49709011901e964d49655011a01e864d495a1011a01e864d494ed011801e864d49439**
313 +0x0b: CN470
316 316  
315 +0x0c: EU433
317 317  
318 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]]
317 +0x0d: KR920
319 319  
319 +0x0e: MA869
320 320  
321 -(% style="color:blue" %)**Version:**
322 322  
323 -These bytes include the hardware and software version.
322 +(% style="color:#037691" %)**Sub-Band**:
324 324  
325 -(% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x00 for S31B-NB & S31-NB
324 +AU915 and US915:value 0x00 ~~ 0x08
326 326  
327 -(% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x64=100, means firmware version 100
326 +CN470: value 0x0B ~~ 0x0C
328 328  
328 +Other Bands: Always 0x00
329 329  
330 -(% style="color:#037691" %)**BAT (Battery Info):**
331 331  
332 -Ex1: 0x0CBA = 3258mV
331 +(% style="color:#037691" %)**Battery Info**:
333 333  
333 +Check the battery voltage.
334 334  
335 -(% style="color:blue" %)**Signal Strength:**
335 +Ex1: 0x0B45 = 2885mV
336 336  
337 -NB-IoT Network signal Strength.
337 +Ex2: 0x0B49 = 2889mV
338 338  
339 -**Ex1: 0x16 = 22**
340 340  
341 -**0**  -113dBm or less
340 +=== 2.3.2  Sensor Data. FPORT~=2 ===
342 342  
343 -**1**  -111dBm
344 344  
345 -**2...30** -109dBm... -53dBm
343 +Sensor Data is uplink via FPORT=2
346 346  
347 -**31**   -51dBm or greater
345 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
346 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
347 +**Size(bytes)**
348 +)))|=(% style="width: 40px;background-color:#D9E2F3;color:#0070C0" %)2|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)4|=(% style="width: 150px; background-color: #D9E2F3;color:#0070C0" %)1|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)**2**|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)2
349 +|(% style="width:99px" %)Value|(% style="width:69px" %)(((
350 +Battery
351 +)))|(% style="width:130px" %)(((
352 +Unix TimeStamp
353 +)))|(% style="width:194px" %)(((
354 +Alarm Flag & MOD& Level of PA8
355 +)))|(% style="width:106px" %)(((
356 +Temperature
357 +)))|(% style="width:97px" %)(((
358 +Humidity
359 +)))
348 348  
349 -**99**    Not known or not detectable
361 +[[image:image-20230524144456-2.png||height="180" width="1142"]]
350 350  
351 351  
352 -(% style="color:blue" %)**Temperature: **
364 +==== (% style="color:#4472c4" %)**Battery**(%%) ====
353 353  
366 +Sensor Battery Level.
367 +
368 +Ex1: 0x0B45 = 2885mV
369 +
370 +Ex2: 0x0B49 = 2889mV
371 +
372 +
373 +==== (% style="color:#4472c4" %)**Temperature**(%%) ====
374 +
375 +**Example**:
376 +
354 354  If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
355 355  
356 356  If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
357 357  
358 -(FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
381 +FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative
359 359  
360 360  
384 +==== (% style="color:#4472c4" %)**Humidity**(%%) ====
361 361  
362 -(% style="color:blue" %)**Humidity:   **
363 363  
364 -Read:0295(H)=661(D)    Value:  661 / 10=66.1, So 66.1%
387 +Read:0x(0197)=412    Value:  412 / 10=41.2, So 41.2%
365 365  
366 366  
367 -(% style="color:blue" %)**TimeStamp:   **
390 +==== (% style="color:#4472c4" %)**Alarm Flag & MOD & Level of PA8**(%%) ====
368 368  
369 -Unit TimeStamp Example: 64d49439(H) = 1691653177(D)
370 370  
371 -Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time.
393 +**Example:**
372 372  
395 +If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message.It means that the temperature and humidity exceed the alarm value or trigger an interrupt.
373 373  
374 -=== 2.2.3 ThingsBoard Payload(Type ===
397 +If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm.
375 375  
376 -3) ===
399 +If payload & 0x80>>7 = 0x01  **~-~->** The PA8 is low level.
377 377  
378 -Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard.
401 +If payload & 0x80>>7 =0x00  **~-~->** The PA8 is high level.
379 379  
403 +If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message.
380 380  
381 -(% style="color:#4472c4" %)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24}**
405 +If payload >> 2 = 0x31  **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>path:#HPolltheAlarmsettings:]] for detail
382 382  
383 383  
384 -=== 2.2.4 ThingSpeak Payload(Type ===
408 +== 2.4 Payload Decoder file ==
385 385  
386 -1) ===
387 387  
388 -This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~~4 are:
411 +In TTN, use can add a custom payload so it shows friendly reading
389 389  
390 -Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform
413 +In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
391 391  
415 +[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB>>https://github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB]]
392 392  
393 -As below:
394 394  
395 -(% style="color:#4472c4" %)**field1=27.9&field2=49.9&field3=3.23&field4=28**
418 +== 2.5 Datalog Feature ==
396 396  
397 397  
398 -== 2.3 Test Uplink and Change Update Interval ==
421 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes.
399 399  
400 400  
401 -By default, Sensor will send uplinks (% style="color:blue" %)**every 2 hours**(%%) & AT+NOUD=8
424 +=== 2.5.1 Ways to get datalog via LoRaWAN ===
402 402  
403 403  
404 -User can use below commands to change the (% style="color:blue" %)**uplink interval**.
427 +Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayload28FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-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.
405 405  
406 -(% style="color:#037691" %)** AT+TDC=600      ** (%%) ~/~/ Set Update Interval to 600s
429 +* (((
430 +a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server.
431 +)))
432 +* (((
433 +b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-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 S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages.
434 +)))
407 407  
436 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
408 408  
409 -User can also push the button for more than 1 seconds to activate an uplink.
438 +[[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"]]
410 410  
411 411  
441 +=== 2.5.2 Unix TimeStamp ===
412 412  
413 413  
414 -== 2.4 Multi-Samplings and One uplink ==
444 +S31x-LB uses Unix TimeStamp format based on
415 415  
446 +[[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"]]
416 416  
417 -To save battery life, S31-NB will sample temperature & humidity data every 15 minutes and send one uplink every 2 hours. So each uplink it will include 8 stored data + 1 real-time data. They are defined by:
448 +User can get this time from link [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
418 418  
419 -* (% style="color:#037691" %)**AT+TR=900**   (%%) ~/~/  The unit is seconds, and the default is to record data once every 900 seconds (15 minutes, the minimum can be set to 180 seconds)
450 +Below is the converter example
420 420  
421 -* (% style="color:#037691" %)**AT+NOUD=8**  (%%)~/~/   The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
452 +[[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"]]
422 422  
423 -The diagram below explains the relationship between TR, NOUD, and TDC more clearly:
424 424  
425 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png||alt="IMG_256"]]
455 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
426 426  
427 427  
428 -== 2.5 Humidity and Temperature alarm function ==
458 +=== 2.5.3 Set Device Time ===
429 429  
430 430  
431 -On each sampling define by AT+TR ( default 900s or 15 minutes), when the value exceed the range, it will trigger an Alarm and immediately sends a uplink.
461 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
432 432  
463 +Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
433 433  
434 -(% style="color:blue" %)**AT Commands:**
465 +(% 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.**
435 435  
436 -(% style="color:#037691" %)**AT+ SHHUM=min,max**
437 437  
438 -Example: AT+ SHHUM=50,80 ~/~/ Alarm when humidity lower than 50 or higher than 80.
468 +=== 2.5.4 Datalog Uplink payload (FPORT~=3) ===
439 439  
440 440  
441 -(% style="color:#037691" %)**AT+ SHTEMP=min,max**
471 +The Datalog uplinks will use below payload format.
442 442  
443 -Example: AT+ SHTEMP=20,30 ~/~/ Alarm when temperature lower than 20 or higher than 30
473 +**Retrieval data payload:**
444 444  
475 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
476 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
477 +**Size(bytes)**
478 +)))|=(% style="width: 40px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 55px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 65px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 180px; background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 100px; background-color:#D9E2F3;color:#0070C0" %)**4**
479 +|(% style="width:103px" %)Value|(% style="width:68px" %)(((
480 +ignore
481 +)))|(% style="width:104px" %)(((
482 +(((
483 +Humidity
484 +)))
445 445  
446 -(% style="color:red" %)**Notice:**
486 +(((
487 +
488 +)))
489 +)))|(% style="width:87px" %)(((
490 +Temperature
491 +)))|(% style="width:178px" %)(((
492 +Poll message flag & Alarm Flag& Level of PA8
493 +)))|(% style="width:137px" %)Unix Time Stamp
447 447  
448 -* To disable Alarm, user can set min and max to same value , such as (% style="color:#037691" %)**AT+SHTEMP=0,0.**
495 +**Poll message flag & Alarm Flag & Level of PA8:**
449 449  
450 -* If user only want to send only min or max, user can set the alarm to a value that device won’t reach. For example: (% style="color:#037691" %)**AT+SHTEMP=-80,0.**
497 +[[image:image-20230524114302-1.png||height="115" width="736"]]
451 451  
452 452  
500 +**No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
453 453  
502 +**Poll Message Flag**: 1: This message is a poll message reply.
454 454  
504 +* Poll Message Flag is set to 1.
455 455  
456 -== 2.6 Trggier an uplink by external interrupt ==
506 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
457 457  
508 +For example, in US915 band, the max payload for different DR is:
458 458  
459 -S31-NB has an external trigger interrupt function. Users can use the PB15 pin to trigger the upload of data packets.
510 +**a) DR0:** max is 11 bytes so one entry of data
460 460  
461 -(% style="color:blue" %)**AT command:**
512 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
462 462  
463 -* (% style="color:#037691" %)**AT+INTMOD **(%%) ~/~/ Set the trigger interrupt mode
514 +**c) DR2:** total payload includes 11 entries of data
464 464  
465 -* (% style="color:#037691" %)**AT+INTMOD=0 **(%%) ~/~/Disable Interrupt
516 +**d) DR3: **total payload includes 22 entries of data.
466 466  
467 -* (% style="color:#037691" %)**AT+INTMOD=1 **(%%) ~/~/Trigger by rising and falling edge
518 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
468 468  
469 -* (% style="color:#037691" %)**AT+INTMOD=2 **(%%) ~/~/Trigger by falling edge
520 +**Example:**
470 470  
471 -* (% style="color:#037691" %)**AT+INTMOD=3  **(%%) ~/~/Trigger by rising edge
522 +If S31x-LB has below data inside Flash:
472 472  
524 +[[image:image-20230524114654-2.png]]
473 473  
474 474  
527 +If user sends below downlink command: 31646D84E1646D856C05
475 475  
476 -= 3. Configure S31x-NB =
529 +Where : Start time: 646D84E1 = time 23/5/24 03:30:41
477 477  
478 -== 3.1 Configure Methods ==
531 + Stop time: 646D856C= time 23/5/24 03:33:00
479 479  
480 480  
481 -S31x-NB supports below configure method:
534 +**S31x-LB will uplink this payload.**
482 482  
483 -* AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
536 +[[image:image-20230524114826-3.png||height="448" width="1244"]]
484 484  
485 -* 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]].
538 +(((
539 +00 00 02 36 01 10 40 64 6D 84 E1 00 00 02 37 01 10 40 64 6D 84 F8 00 00 02 37 01 0F 40 64 6D 85 04 00 00 02 3A 01 0F 40 64 6D 85 18 00 00 02 3C 01 0F 40 64 6D 85 36 00 00 02 3D 01 0E 40 64 6D 85 3F 00 00 02 3F 01 0E 40 64 6D 85 60 00 00 02 40 01 0E 40 64 6D 85 6A
540 +)))
486 486  
487 -* LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
542 +(((
543 +Where the first 11 bytes is for the first entry:
544 +)))
488 488  
546 +(((
547 +00 00 02 36 01 10 40 64 6D 84 E1
548 +)))
489 489  
550 +(((
551 +**Hum**=0x0236/10=56.6
552 +)))
490 490  
554 +(((
555 +**Temp**=0x0110/10=27.2
556 +)))
491 491  
558 +(((
559 +**poll message flag & Alarm Flag & Level of PA8**=0x40,means reply data,sampling uplink message,the PA8 is low level.
560 +)))
561 +
562 +(((
563 +**Unix time** is 0x646D84E1=1684899041s=23/5/24 03:30:41
564 +)))
565 +
566 +
567 +(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的
568 +
569 +== 2.6 Temperature Alarm Feature ==
570 +
571 +
572 +S31x-LB work flow with Alarm feature.
573 +
574 +
575 +[[image:image-20230524110125-3.png||height="768" width="1115"]]
576 +
577 +
578 +
579 +== 2.7 Frequency Plans ==
580 +
581 +
582 +The S31x-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.
583 +
584 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
585 +
586 +
587 +== 2.8 ​Firmware Change Log ==
588 +
589 +
590 +**Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0>>https://www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0]]
591 +
592 +
593 += 3. Configure S31x-LB =
594 +
595 +== 3.1 Configure Methods ==
596 +
597 +
598 +S31x-LB supports below configure method:
599 +
600 +* AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
601 +* 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]].
602 +* LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
603 +
604 +
492 492  == 3.2 General Commands ==
493 493  
494 494  
... ... @@ -536,6 +536,7 @@
536 536  * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
537 537  * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
538 538  
652 +
539 539  === 3.3.2 Get Device Status ===
540 540  
541 541  
... ... @@ -619,6 +619,7 @@
619 619  
620 620  * Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
621 621  
736 +
622 622  === 3.3.7 Set Interrupt Mode ===
623 623  
624 624  
... ... @@ -652,6 +652,7 @@
652 652  * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
653 653  * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
654 654  
770 +
655 655  === 3.3.8 Set Power Output Duration ===
656 656  
657 657  
... ... @@ -680,6 +680,7 @@
680 680  * Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
681 681  * Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
682 682  
799 +
683 683  = 4. Battery & Power Consumption =
684 684  
685 685  
... ... @@ -706,6 +706,7 @@
706 706  * (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/]]**
707 707  * 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]]**.
708 708  
826 +
709 709  = 6. FAQ =
710 710  
711 711  
... ... @@ -733,6 +733,7 @@
733 733  
734 734  * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
735 735  
854 +
736 736  = 8. ​Packing Info =
737 737  
738 738  
... ... @@ -750,6 +750,7 @@
750 750  
751 751  * Weight / pcs : g
752 752  
872 +
753 753  = 9. Support =
754 754  
755 755  
... ... @@ -756,6 +756,3 @@
756 756  * 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.
757 757  
758 758  * 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]].
759 -
760 -
761 -(% style="display:none" %) (%%)
1692415924540-357.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -94.4 KB
Content
image-20230819110632-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -224.4 KB
Content
image-20230819110702-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -53.2 KB
Content
image-20230819113244-10.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -12.0 KB
Content
image-20230819113244-11.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -57.5 KB
Content
image-20230819113244-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -13.0 KB
Content
image-20230819113244-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -35.5 KB
Content