Changes for page wiki_test
Last modified by Mengting Qiu on 2024/09/05 17:35
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 7 added, 0 removed)
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 **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*. 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*. 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 **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 (% style="color:blue" %)**waterproof anti-condensation casing**(%%) for long term use. 23 23 24 -S31-NB supports different uplink methods include **TCP, MQTT, UDP** 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. 25 25 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). 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). 27 27 28 28 *make sure you have NB-IoT coverage locally. 29 29 ... ... @@ -46,7 +46,6 @@ 46 46 * 8500mAh Battery for long term use 47 47 * Nano SIM card slot for NB-IoT SIM 48 48 49 - 50 50 == 1.3 Specification == 51 51 52 52 ... ... @@ -106,7 +106,6 @@ 106 106 * STOP Mode: 10uA @ 3.3v 107 107 * Max transmit power: 350mA@3.3v 108 108 109 - 110 110 == 1.4 Applications == 111 111 112 112 ... ... @@ -118,8 +118,6 @@ 118 118 * Smart Factory 119 119 120 120 121 - 122 - 123 123 == 1.5 Sleep mode and working mode == 124 124 125 125 ... ... @@ -136,7 +136,7 @@ 136 136 137 137 138 138 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 139 -|=(% style="width: 167px;background-color:# D9E2F3;color:#0070C0" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width:D9E2F3;color:#0070C0" %)**Action**135 +|=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width:225px;background-color:#4F81BD;color:white" %)**Action** 140 140 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)((( 141 141 If sensor has already attached to NB-IoT network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once. 142 142 Meanwhile, BLE module will be active and user can connect via BLE to configure device. ... ... @@ -148,7 +148,6 @@ 148 148 ))) 149 149 |(% 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. 150 150 151 - 152 152 == 1.7 BLE connection == 153 153 154 154 ... ... @@ -164,444 +164,336 @@ 164 164 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode. 165 165 166 166 167 -== 1.8 Pin Definitions == 162 +== 1.8 Pin Definitions & Switch == 168 168 169 -[[image:image-20230819104805-5.png]] 170 170 165 +S31x-NB use the mother board from S31-NB which as below. 171 171 172 - == 1.8 HardwareVariant ==167 +[[image:image-20230819104805-5.png]] 173 173 174 174 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 181 181 182 - CableLength: 2meters171 +=== 1.8.1 Jumper JP2 === 183 183 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 190 190 191 -Installed in device. 192 -))) 174 +Power on Device when put this jumper. 193 193 194 -(% style="display:none" %) 195 195 177 +=== 1.8.2 BOOT MODE / SW1 === 196 196 197 197 198 -= =1.9Mechanical==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. 199 199 182 +2) (% style="color:blue" %)**Flash**(%%): work mode, device starts to work and send out console output for further debug 200 200 201 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]] 202 202 185 +=== 1.8.3 Reset Button === 203 203 204 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143899218-599.png]] 205 205 188 +Press to reboot the device. 206 206 207 -[[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]] 208 208 209 209 210 -= 2.ConfigureS31x-LB to connect to LoRaWANnetwork=192 +== 1.9 Hardware Variant == 211 211 212 -== 2.1 How it works == 213 213 195 +(% border="1" cellspacing="5" style="width:410px" %) 196 +|=(% style="width: 102px;background-color:#4F81BD;color:white" %)Model|=(% style="width: 126px; background-color:#4F81BD;color:white" %)Photo|=(% style="width: 179px;background-color:#4F81BD;color:white" %)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 214 214 215 - The S31x-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAAClass A**(%%) modeby default. It has OTAA keysto joinLoRaWAN network. To connecta local LoRaWAN network, you need to input theOTAAkeys in the LoRaWAN IoT server and press the button to activate the S31x-LB.It will automatically join thenetwork via OTAA and start to send the sensorvalue. The default uplink interval is20 minutes.205 +Cable Length : 3 meters 216 216 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 217 217 218 -== 2.2 Quick guide to connect to LoRaWAN server (OTAA) == 217 +Installed in device. 218 +))) 219 219 220 +(% style="display:none" %) 220 220 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. 224 224 225 225 226 - (%style="color:blue"%)**Step1:**(%%)Createa devicein TTNwiththe OTAAkeys fromS31x-LB.225 += 2. Use S31-NB to communicate with IoT Server = 227 227 228 - EachS31x-LBis shippedwithastickerwiththedefaultdeviceEUIas below:227 +== 2.1 Send data to IoT server via NB-IoT network == 229 229 230 -[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]] 231 231 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. 232 232 233 -You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: 234 234 233 +Below shows the network structure: 235 235 236 - (% style="color:blue" %)**Register the device**235 +[[image:1692415924540-357.png]] 237 237 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"]] 239 239 238 +There are two version: (% style="color:blue" %)**-GE**(%%) and (% style="color:blue" %)**-1D**(%%) version of S31-NB. 240 240 241 -(% style="color:blue" %)**Add APP EUI and DEV EUI** 242 242 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"]]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. 244 244 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]]. 245 245 246 - (%style="color:blue"%)**AddAPPEUIin thepplication**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]]. 247 247 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"]] 250 250 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" %) 251 251 252 -(% style="color:blue" %)**Add APP KEY** 253 253 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"]]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]]. 255 255 256 256 257 - (%style="color:blue"%)**Step2:**(%%) Activateon S31x-LB265 +== 2.2 Payload Types == 258 258 259 259 260 - Pressthebuttonfor5 secondstoactivatethe S31x-LB.268 +To meet different server requirement, S31-NB supports different payload type. 261 261 262 - (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.270 +Includes: 263 263 264 - Afterjoinsuccess, it willstarttouploadmessagestoTTNandyou can seethemessagesinthepanel.272 +* [[General JSON format payload>>path:#General_Json]]. (Type=5) 265 265 274 +* [[HEX format Payload>>path:#HEX_Payload]]. (Type=0) 266 266 267 - ==2.3Uplink=276 +* [[ThingSpeak Format>>path:#ThingSpeak_Payload]]. (Type=1) 268 268 269 - ===2.3.1 DeviceStatus, FPORT~=5 ===278 +* [[ThingsBoard Format>>path:#ThingsBoard_Payload]]. (Type=3) 270 270 280 +User can specify the payload type when choose the connection protocol. Example: 271 271 272 - Userscan usethedownlink command(**0x26 01**)toaskS31x-LBtosenddeviceconfigure detail, includedevice configurestatus.S31x-LBwill uplinkapayloadvia FPort=5 to server.282 +(% style="color:#037691" %)**AT+PRO=2,0** (%%) ~/~/Use UDP Connection & hex Payload 273 273 274 - ThePayload formatisasbelow.284 +(% style="color:#037691" %)**AT+PRO=2,5** (%%) ~/~/ Use UDP Connection & Json Payload 275 275 286 +(% style="color:#037691" %)**AT+PRO=3,5 ** (%%) ~/~/ Use MQTT Connection & Json Payload 276 276 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 281 281 282 - Exampleparse in TTNv3289 +=== 2.2.1 General Json Format (Type === 283 283 284 - [[image:image-20230524144422-1.png||height="174"width="1080"]]291 +5) === 285 285 293 +This is the General Json Format. As below: 286 286 287 -(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A 288 288 289 -(% style="color:# 037691" %)**FirmwareVersion**(%%): 0x0100,Means:v1.0.0version296 +(% 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}}** 290 290 291 -(% style="color:#037691" %)**Frequency Band**: 292 292 293 -0x01: EU868 294 294 295 - 0x02:US915300 +(% style="color:red" %)Notice, from above payload: 296 296 297 - 0x03:IN865302 +* Temperature , Humidity , Battery & Signal are the value at uplink time. 298 298 299 - 0x04: AU915304 +* 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. 300 300 301 -0x05: KZ865 302 302 303 -0x06: RU864 304 304 305 - 0x07:AS923308 +=== 2.2.2 HEX format Payload(Type === 306 306 307 -0 x08:AS923-1310 +0) === 308 308 309 -0x09: AS923-2 310 310 311 - 0x0a:AS923-3313 +This is the HEX Format. As below: 312 312 313 -0 x0b: CN470315 +(% style="color:#4472c4" %)**f86620705346276200640cba16010000000011011801e864d49c2d011a01e364d49925011901eb64d49871011901e564d497bd011a01e664d49709011901e964d49655011a01e864d495a1011a01e864d494ed011801e864d49439** 314 314 315 -0x0c: EU433 316 316 317 - 0x0d:KR920318 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]] 318 318 319 -0x0e: MA869 320 320 321 +(% style="color:blue" %)**Version:** 321 321 322 - (%style="color:#037691"%)**Sub-Band**:323 +These bytes include the hardware and software version. 323 323 324 - AU915andUS915:value 0x00~~0x08325 +(% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x00 for S31B-NB & S31-NB 325 325 326 - CN470:value 0x0B~~0x0C327 +(% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x64=100, means firmware version 100 327 327 328 -Other Bands: Always 0x00 329 329 330 +(% style="color:#037691" %)**BAT (Battery Info):** 330 330 331 - (% style="color:#037691"%)**BatteryInfo**:332 +Ex1: 0x0CBA = 3258mV 332 332 333 -Check the battery voltage. 334 334 335 - Ex1:0x0B45=2885mV335 +(% style="color:blue" %)**Signal Strength:** 336 336 337 - Ex2: 0x0B49=2889mV337 +NB-IoT Network signal Strength. 338 338 339 +**Ex1: 0x16 = 22** 339 339 340 - ===2.3.2SensorData. FPORT~=2 ===341 +**0** -113dBm or less 341 341 343 +**1** -111dBm 342 342 343 - SensorDatais uplink via FPORT=2345 +**2...30** -109dBm... -53dBm 344 344 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 -))) 347 +**31** -51dBm or greater 360 360 361 - [[image:image-20230524144456-2.png||height="180"width="1142"]]349 +**99** Not known or not detectable 362 362 363 363 364 - ====(% style="color:#4472c4" %)**Battery**(%%) ====352 +(% style="color:blue" %)**Temperature: ** 365 365 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 - 377 377 If payload is: 0105H: (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree 378 378 379 379 If payload is: FF3FH : (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees. 380 380 381 - (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)358 +(FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative) 382 382 383 383 384 -==== (% style="color:#4472c4" %)**Humidity**(%%) ==== 385 385 362 +(% style="color:blue" %)**Humidity: ** 386 386 387 -Read:0 x(0197)=412Value:412/ 10=41.2, So41.2%364 +Read:0295(H)=661(D) Value: 661 / 10=66.1, So 66.1% 388 388 389 389 390 - ====(% style="color:#4472c4" %)**AlarmFlag & MOD & Level of PA8**(%%) ====367 +(% style="color:blue" %)**TimeStamp: ** 391 391 369 +Unit TimeStamp Example: 64d49439(H) = 1691653177(D) 392 392 393 - **Example:**371 +Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time. 394 394 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. 396 396 397 - If payload & 0x01=0x00**~-~->**This is anormaluplink message,no alarm.374 +=== 2.2.3 ThingsBoard Payload(Type === 398 398 399 - Ifpayload & 0x80>>7=0x01 **~-~->** The PA8 is low level.376 +3) === 400 400 401 - Ifpayload&0x80>>7=0x00**~-~->**ThePA8ishigh level.378 +Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard. 402 402 403 -If payload >> 2 = 0x00 **~-~->** means MOD=1, This is a sampling uplink message. 404 404 405 - Ifpayload >>2= 0x31**~-~->** meansMOD=31,his message is a replymessage forpolling, this message contains the alarm settings.see [[this link>>path:#HPolltheAlarmsettings:]] for detail.381 +(% style="color:#4472c4" %)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24}** 406 406 407 407 408 -== 2.4 Payload Decoderfile==384 +=== 2.2.4 ThingSpeak Payload(Type === 409 409 386 +1) === 410 410 411 - InTTN, usecanadda custom payload so it showsfriendlyreading388 +This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~~4 are: 412 412 413 - In thege(% style="color:#037691"%)**Applications~-~-> PayloadFormats ~-~-> Custom ~-~-> decoder**(%%)to addthe decoder from:390 +Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform 414 414 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]] 416 416 393 +As below: 417 417 418 - ==2.5 DatalogFeature395 +(% style="color:#4472c4" %)**field1=27.9&field2=49.9&field3=3.23&field4=28** 419 419 420 420 421 - DatalogFeatureis to ensure IoTServer can getall samplingdata from Sensoreven if the LoRaWANnetworkisdown. For each sampling, S31x-LB will storethe reading for futureetrievingpurposes.398 +== 2.3 Test Uplink and Change Update Interval == 422 422 423 423 424 - === 2.5.1 WaystogetdatalogviaLoRaWAN==401 +By default, Sensor will send uplinks (% style="color:blue" %)**every 2 hours**(%%) & AT+NOUD=8 425 425 426 426 427 - Set[[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayload28FPORT3D329"]],S31x-LB will wait for ACK for everyuplink, whenthere is noLoRaWAN network,S31x-LBwill mark these recordswith non-ackmessagesand store the sensordata, and it will sendallmessages (10sinterval) after the network recovery.404 +User can use below commands to change the (% style="color:blue" %)**uplink interval**. 428 428 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 -))) 406 +(% style="color:#037691" %)** AT+TDC=600 ** (%%) ~/~/ Set Update Interval to 600s 435 435 436 -Below is the typical case for the auto-update datalog feature (Set PNACKMD=1) 437 437 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"]]409 +User can also push the button for more than 1 seconds to activate an uplink. 439 439 440 440 441 -=== 2.5.2 Unix TimeStamp === 442 442 443 443 444 - S31x-LBusesUnix TimeStampformatbasedon414 +== 2.4 Multi-Samplings and One uplink == 445 445 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"]] 447 447 448 - Usercangetthistimefromlink:[[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]]: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: 449 449 450 - Belowis the converterexample419 +* (% 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) 451 451 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"]]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. 453 453 423 +The diagram below explains the relationship between TR, NOUD, and TDC more clearly: 454 454 455 - So, we can useAT+TIMESTAMP=1611889405or downlink 3060137afd00toset thecurrenttime 2021– Jan ~-~- 29 Friday03:03:25425 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png||alt="IMG_256"]] 456 456 457 457 458 -== =2.5.3SetDeviceTime ===428 +== 2.5 Humidity and Temperature alarm function == 459 459 460 460 461 - Userneedtoset(%style="color:blue"%)**SYNCMOD=1**(%%)toenablesync timeviaMACcommand.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. 462 462 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). 464 464 465 -(% style="color: red" %)**Note: LoRaWANServer need to support LoRaWAN v1.0.3(MACv1.0.3)or higher to support this MAC commandfeature, 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.**434 +(% style="color:blue" %)**AT Commands:** 466 466 436 +(% style="color:#037691" %)**AT+ SHHUM=min,max** 467 467 468 - === 2.5.4 DatalogUplinkpayload(FPORT~=3)===438 +Example: AT+ SHHUM=50,80 ~/~/ Alarm when humidity lower than 50 or higher than 80. 469 469 470 470 471 - TheDatalog uplinks will usebelow payload format.441 +(% style="color:#037691" %)**AT+ SHTEMP=min,max** 472 472 473 - **Retrievaldatapayload:**443 +Example: AT+ SHTEMP=20,30 ~/~/ Alarm when temperature lower than 20 or higher than 30 474 474 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 -))) 485 485 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 446 +(% style="color:red" %)**Notice:** 494 494 495 -* *Pollmessageflag&AlarmFlag&Level ofPA8:**448 +* To disable Alarm, user can set min and max to same value , such as (% style="color:#037691" %)**AT+SHTEMP=0,0.** 496 496 497 - [[image:image-20230524114302-1.png||height="115"width="736"]]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.** 498 498 499 499 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) 501 501 502 -**Poll Message Flag**: 1: This message is a poll message reply. 503 503 504 -* Poll Message Flag is set to 1. 505 505 506 - *Eachdata entryis 11 bytes,to saveairtime andbattery,devices will send maxbytes accordingto thecurrentDR and Frequency bands.456 +== 2.6 Trggier an uplink by external interrupt == 507 507 508 -For example, in US915 band, the max payload for different DR is: 509 509 510 - **a)DR0:** max is11 bytessoone entryof data459 +S31-NB has an external trigger interrupt function. Users can use the PB15 pin to trigger the upload of data packets. 511 511 512 - **b)DR1:** max is53 bytes so devices willpload 4entriesofdata (total 44 bytes)461 +(% style="color:blue" %)**AT command:** 513 513 514 -* *c)DR2:**totalpayloadincludes11entriesofdata463 +* (% style="color:#037691" %)**AT+INTMOD **(%%) ~/~/ Set the trigger interrupt mode 515 515 516 -* *d)DR3:**total payloadincludes22 entries of data.465 +* (% style="color:#037691" %)**AT+INTMOD=0 **(%%) ~/~/Disable Interrupt 517 517 518 - Ifdevisedoesn'thaveanydatainthepollingtime.Device willuplink11 bytes of 0467 +* (% style="color:#037691" %)**AT+INTMOD=1 **(%%) ~/~/Trigger by rising and falling edge 519 519 520 -* *Example:**469 +* (% style="color:#037691" %)**AT+INTMOD=2 **(%%) ~/~/Trigger by falling edge 521 521 522 - IfS31x-LBhasbelowdatainsideFlash:471 +* (% style="color:#037691" %)**AT+INTMOD=3 **(%%) ~/~/Trigger by rising edge 523 523 524 -[[image:image-20230524114654-2.png]] 525 525 526 526 527 -If user sends below downlink command: 31646D84E1646D856C05 528 528 529 - Where:Start time:646D84E1 =time 23/5/24 03:30:41476 += 3. Configure S31x-NB = 530 530 531 - Stop time: 646D856C= time 23/5/24 03:33:00 532 - 533 - 534 -**S31x-LB will uplink this payload.** 535 - 536 -[[image:image-20230524114826-3.png||height="448" width="1244"]] 537 - 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 -))) 541 - 542 -((( 543 -Where the first 11 bytes is for the first entry: 544 -))) 545 - 546 -((( 547 -00 00 02 36 01 10 40 64 6D 84 E1 548 -))) 549 - 550 -((( 551 -**Hum**=0x0236/10=56.6 552 -))) 553 - 554 -((( 555 -**Temp**=0x0110/10=27.2 556 -))) 557 - 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 595 == 3.1 Configure Methods == 596 596 597 597 598 -S31x- LB supports below configure method:481 +S31x-NB supports below configure method: 599 599 600 600 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]. 484 + 601 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]]. 486 + 602 602 * LoRaWAN Downlink. Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 603 603 604 604 490 + 491 + 605 605 == 3.2 General Commands == 606 606 607 607 ... ... @@ -649,7 +649,6 @@ 649 649 * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 650 650 * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 651 651 652 - 653 653 === 3.3.2 Get Device Status === 654 654 655 655 ... ... @@ -733,7 +733,6 @@ 733 733 734 734 * Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message. 735 735 736 - 737 737 === 3.3.7 Set Interrupt Mode === 738 738 739 739 ... ... @@ -767,7 +767,6 @@ 767 767 * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 768 768 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 769 769 770 - 771 771 === 3.3.8 Set Power Output Duration === 772 772 773 773 ... ... @@ -796,7 +796,6 @@ 796 796 * Example 1: Downlink Payload: 070000 **~-~-->** AT+5VT=0 797 797 * Example 2: Downlink Payload: 0701F4 **~-~-->** AT+5VT=500 798 798 799 - 800 800 = 4. Battery & Power Consumption = 801 801 802 802 ... ... @@ -823,7 +823,6 @@ 823 823 * (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/]]** 824 824 * 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]]**. 825 825 826 - 827 827 = 6. FAQ = 828 828 829 829 ... ... @@ -851,7 +851,6 @@ 851 851 852 852 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band 853 853 854 - 855 855 = 8. Packing Info = 856 856 857 857 ... ... @@ -869,7 +869,6 @@ 869 869 870 870 * Weight / pcs : g 871 871 872 - 873 873 = 9. Support = 874 874 875 875 ... ... @@ -876,3 +876,6 @@ 876 876 * 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. 877 877 878 878 * 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,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +94.4 KB - Content
- image-20230819110632-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +224.4 KB - Content
- image-20230819110702-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +53.2 KB - Content
- image-20230819113244-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.0 KB - Content
- image-20230819113244-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +57.5 KB - Content
- image-20230819113244-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.0 KB - Content
- image-20230819113244-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.5 KB - Content