Changes for page General Manual for -CB , -CS models
Last modified by Mengting Qiu on 2025/03/08 11:35
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 17 added, 0 removed)
- image-20240820144823-5.png
- image-20240820144913-6.png
- image-20240820145133-7.png
- image-20240820145309-8.png
- image-20240827145055-4.png
- image-20240827150121-5.png
- image-20240827150705-6.png
- image-20240903094214-1.png
- image-20240903094457-2.png
- image-20240903100736-3.png
- image-20240903100832-4.png
- image-20240903102327-5.png
- image-20240903102542-6.png
- image-20240903102621-7.png
- image-20240903102641-8.png
- image-20240903104250-9.png
- image-20240903104431-10.png
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. ting1 +XWiki.Xiaoling - Content
-
... ... @@ -187,30 +187,38 @@ 187 187 188 188 The NB-IoT Sensor can send packet to server use UDP protocol. 189 189 190 + 190 190 === 3.1.1 Simulate UDP Connection by PC tool === 191 191 193 + 192 192 We can use PC tool to simulate UDP connection to make sure server works ok. 193 193 194 -[[image:image-20230802112413-1.png ||height="468" width="1024"]]196 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20230802112413-1.png?width=1024&height=468&rev=1.1||alt="image-20230802112413-1.png"]] 195 195 198 + 196 196 === 3.1.2 Configure NB-IoT Sensor === 197 197 198 198 ==== 3.1.2.1 AT Commands ==== 199 199 203 + 200 200 (% style="color:blue" %)**AT Commands:** 201 201 202 202 * (% style="color:#037691" %)**AT+PRO=2,0** (%%) ~/~/ Set to use UDP protocol to uplink ,Payload Type select Hex payload 203 203 204 -* (% style="color:#037691" %)**AT+SERVADDR= 120.24.4.116,5601** (%%) ~/~/ Set UDP server address and port208 +* (% style="color:#037691" %)**AT+SERVADDR=8.217.91.207,1999** (%%) ~/~/ Set UDP server address and port 205 205 206 206 [[image:image-20240819102802-1.png]] 207 207 212 + 208 208 ==== 3.1.2.2 Uplink Example ==== 209 209 210 -[[image:image-20240819105418-8.png||height="671" width="1414"]] 211 211 216 +[[image:image-20240819105418-8.png||height="611" width="1287"]] 217 + 218 + 212 212 == 3.2 General COAP Connection == 213 213 221 + 214 214 The NB-IoT Sensor can send packet to server use COAP protocol. 215 215 216 216 Below are the commands. ... ... @@ -226,13 +226,16 @@ 226 226 227 227 [[image:image-20240819103212-2.png]] 228 228 237 + 229 229 === 3.2.1 Uplink Example === 230 230 240 + 231 231 [[image:image-20240819103909-4.png||height="453" width="955"]] 232 232 233 233 234 234 == 3.2 General MQTT Connection == 235 235 246 + 236 236 The NB-IoT Sensor can send packet to server use MQTT protocol. 237 237 238 238 Below are the commands. ... ... @@ -260,10 +260,12 @@ 260 260 261 261 (% style="color:red" %)**Notice: MQTT protocol has a much higher power consumption compare with UDP/CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.** 262 262 274 + 263 263 == 3.3 [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) == 264 264 265 265 === 3.3.1 Get MQTT Credentials === 266 266 279 + 267 267 [[ThingSpeak>>url:https://thingspeak.com/]] connection uses MQTT Connection. So we need to get MQTT Credentials first. You need to point MQTT Devices to ThingSpeak Channel as well. 268 268 269 269 [[image:image-20240819173602-1.png||height="401" width="743"]] ... ... @@ -270,10 +270,12 @@ 270 270 271 271 [[image:image-20240819173706-3.png||height="595" width="597"]] 272 272 286 + 273 273 === 3.3.2 Simulate with MQTT.fx === 274 274 275 275 ==== 3.3.2.1 Establish MQTT Connection ==== 276 276 291 + 277 277 After we got MQTT Credentials, we can first simulate with PC tool MQTT.fx tool to see if the Credentials and settings are fine. 278 278 279 279 [[image:image-20240819173826-4.png||height="534" width="734"]] ... ... @@ -288,8 +288,11 @@ 288 288 289 289 * (% style="color:#037691" %)**Password:**(%%) <Your ThingSpeak MQTT Password> 290 290 306 + 307 + 291 291 ==== 3.3.2.2 Publish Data to ThingSpeak Channel ==== 292 292 310 + 293 293 [[image:image-20240819174033-5.png]] 294 294 295 295 [[image:image-20240819174209-6.png]] ... ... @@ -306,10 +306,12 @@ 306 306 307 307 [[image:image-20240819174314-7.png||height="469" width="785"]] 308 308 327 + 309 309 === 3.3.3 Configure NB-IoT Sensor for connection === 310 310 311 311 ==== 3.3.3.1 AT Commands: ==== 312 312 332 + 313 313 In the NB-IoT, we can run below commands so to publish the channels like MQTT.fx 314 314 315 315 * (% style="color:blue" %)**AT+PRO=3,1** (%%) ~/~/ Set to use ThingSpeak Server and Related Payload ... ... @@ -324,8 +324,11 @@ 324 324 325 325 * (% style="color:blue" %)**AT+SUBTOPIC=<YOUR_CHANNEL_ID>** 326 326 347 + 348 + 327 327 ==== 3.3.3.2 Uplink Examples ==== 328 328 351 + 329 329 [[image:image-20240819174540-8.png]] 330 330 331 331 For SE01-NB ... ... @@ -350,8 +350,10 @@ 350 350 351 351 For SN50V3-NB 352 352 376 + 353 353 ==== 3.3.3.3 Map fields to sensor value ==== 354 354 379 + 355 355 When NB-IoT sensor upload to ThingSpeak. The payload already specify which fileds related to which sensor value. Use need to create fileds in Channels Settings. with name so to see the value correctly. 356 356 357 357 [[image:image-20240819174610-9.png]] ... ... @@ -360,25 +360,25 @@ 360 360 361 361 Below is the NB-IoT Product Table show the mapping. 362 362 363 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1 424px" %)364 -|(% style="background-color:#4f81bd; width:143px" %) |(% style="background-color:#4f81bd; color:white; width:103px" %)Field1|(% style="background-color:#4f81bd; color:white; width:102px" %)Field2|(% style="background-color:#4f81bd; color:white; width:157px" %)Field3|(% style="background-color:#4f81bd; color:white; width:1 54px" %)Field4|(% style="background-color:#4f81bd; color:white; width:153px" %)Field5|(% style="background-color:#4f81bd; color:white; width:151px" %)Field6|(% style="background-color:#4f81bd; color:white; width:160px" %)Field7|(% style="background-color:#4f81bd; color:white; width:152px" %)Field8|(% style="background-color:#4f81bd; color:white; width:67px" %)Field9|(% style="background-color:#4f81bd; color:white; width:69px" %)Field10365 -|(% style="background-color:#4f81bd; color:white; width:143px" %)S31x-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)Battery|(% style="width:1 54px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)366 -|(% style="background-color:#4f81bd; color:white; width:143px" %)SE01-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)conduct|(% style="width:1 54px" %)dielectric_constant|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)367 -|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS20-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:1 54px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)368 -|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS45-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:1 54px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)369 -|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS75-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:1 54px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)370 -|(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS120-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:1 54px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)371 -|(% rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SPH01-NB|(% style="width:103px" %)ph|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:1 54px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)372 -|(% style="background-color:#4f81bd; color:white; width:143px" %)NLM01-NB|(% style="width:103px" %)Humidity|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:1 54px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)373 -|(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS200-NB|(% style="width:103px" %)distance1|(% style="width:102px" %)distance2|(% style="width:157px" %)Battery|(% style="width:1 54px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)374 -|(% style="background-color:#4f81bd; color:white; width:143px" %)CPN01-NB|(% style="width:103px" %)alarm|(% style="width:102px" %)count|(% style="width:157px" %)door open duration|(% style="width:1 54px" %)calc flag|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)375 -|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)DS03A-NB|(% colspan="1" rowspan="1" style="width:103px" %)level|(% colspan="1" rowspan="1" style="width:102px" %)alarm|(% colspan="1" rowspan="1" style="width:157px" %)pb14door open num|(% colspan="1" rowspan="1" style="width:1 54px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:153px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:151px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:160px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:152px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:67px" %)Battery|(% colspan="1" rowspan="1" style="width:69px" %)RSSI376 -|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod1|(% colspan="1" rowspan="1" style="width:103px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:157px" %)RSSI|(% colspan="1" rowspan="1" style="width:1 54px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:151px" %)adc0|(% colspan="1" rowspan="1" style="width:160px" %)Temperature |(% colspan="1" rowspan="1" style="width:152px" %)Humidity|(% colspan="1" rowspan="1" style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)377 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod2|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:1 54px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc0|(% colspan="1" style="width:160px" %)distance|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)378 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod3|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:1 54px" %)adc0|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc1|(% colspan="1" style="width:160px" %)Temperature|(% colspan="1" style="width:152px" %)Humidity|(% colspan="1" style="width:67px" %)adc4|(% colspan="1" style="width:69px" %)379 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod4|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:1 54px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)DS18B20 Temp2|(% colspan="1" style="width:152px" %)DS18B20 Temp3|(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)380 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod5|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:1 54px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)Weight|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)381 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod6|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:1 54px" %)count|(% colspan="1" style="width:153px" %) |(% colspan="1" style="width:151px" %) |(% colspan="1" style="width:160px" %) |(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)388 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1353.82px" %) 389 +|(% style="background-color:#4f81bd; width:143px" %) |(% style="background-color:#4f81bd; color:white; width:103px" %)Field1|(% style="background-color:#4f81bd; color:white; width:102px" %)Field2|(% style="background-color:#4f81bd; color:white; width:157px" %)Field3|(% style="background-color:#4f81bd; color:white; width:139px" %)Field4|(% style="background-color:#4f81bd; color:white; width:141px" %)Field5|(% style="background-color:#4f81bd; color:white; width:142px" %)Field6|(% style="background-color:#4f81bd; color:white; width:151px" %)Field7|(% style="background-color:#4f81bd; color:white; width:137px" %)Field8|(% style="background-color:#4f81bd; color:white; width:69px" %)Field9|(% style="background-color:#4f81bd; color:white; width:65px" %)Field10 390 +|(% style="background-color:#4f81bd; color:white; width:143px" %)S31x-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 391 +|(% style="background-color:#4f81bd; color:white; width:143px" %)SE01-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)conduct|(% style="width:139px" %)dielectric_constant|(% style="width:141px" %)Battery|(% style="width:142px" %)RSSI|(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 392 +|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS20-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 393 +|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS45-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 394 +|(% style="background-color:#4f81bd; color:white; width:143px" %)DDS75-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 395 +|(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS120-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 396 +|(% rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SPH01-NB|(% style="width:103px" %)ph|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% colspan="1" rowspan="1" style="width:65px" %) 397 +|(% style="background-color:#4f81bd; color:white; width:143px" %)NLM01-NB|(% style="width:103px" %)Humidity|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 398 +|(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS200-NB|(% style="width:103px" %)distance1|(% style="width:102px" %)distance2|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 399 +|(% style="background-color:#4f81bd; color:white; width:143px" %)CPN01-NB|(% style="width:103px" %)alarm|(% style="width:102px" %)count|(% style="width:157px" %)door open duration|(% style="width:139px" %)calc flag|(% style="width:141px" %)Battery|(% style="width:142px" %)RSSI|(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %) 400 +|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)DS03A-NB|(% colspan="1" rowspan="1" style="width:103px" %)level|(% colspan="1" rowspan="1" style="width:102px" %)alarm|(% colspan="1" rowspan="1" style="width:157px" %)pb14door open num|(% colspan="1" rowspan="1" style="width:139px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:141px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:142px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:151px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:137px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:69px" %)Battery|(% colspan="1" rowspan="1" style="width:65px" %)RSSI 401 +|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod1|(% colspan="1" rowspan="1" style="width:103px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:157px" %)RSSI|(% colspan="1" rowspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:142px" %)adc0|(% colspan="1" rowspan="1" style="width:151px" %)Temperature |(% colspan="1" rowspan="1" style="width:137px" %)Humidity|(% colspan="1" rowspan="1" style="width:69px" %) |(% colspan="1" rowspan="1" style="width:65px" %) 402 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod2|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" style="width:142px" %)adc0|(% colspan="1" style="width:151px" %)distance|(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %) 403 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod3|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)adc0|(% colspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" style="width:142px" %)adc1|(% colspan="1" style="width:151px" %)Temperature|(% colspan="1" style="width:137px" %)Humidity|(% colspan="1" style="width:69px" %)adc4|(% colspan="1" style="width:65px" %) 404 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod4|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)adc0|(% colspan="1" style="width:142px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)DS18B20 Temp2|(% colspan="1" style="width:137px" %)DS18B20 Temp3|(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %) 405 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod5|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)adc0|(% colspan="1" style="width:142px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)Weight|(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %) 406 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod6|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)count|(% colspan="1" style="width:141px" %) |(% colspan="1" style="width:142px" %) |(% colspan="1" style="width:151px" %) |(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %) 382 382 383 383 == 3.4 [[Datacake>>https://datacake.co/]] == 384 384 ... ... @@ -392,10 +392,13 @@ 392 392 393 393 * (% style="color:blue" %)**S31B-CB-GE**(%%): This verson doesn't have pre-configure Datacake connection. User need to enter the AT Commands to connect to Datacake. See below for instruction. 394 394 420 + 421 + 395 395 === 3.4.1 For device Already has template === 396 396 397 397 ==== 3.4.1.1 Create Device ==== 398 398 426 + 399 399 (% style="color:blue" %)**Add Device**(%%) in DataCake. 400 400 401 401 [[image:image-20240820110003-1.png]] ... ... @@ -414,10 +414,12 @@ 414 414 415 415 [[image:image-20240820110114-6.png]] 416 416 445 + 417 417 === 3.4.2 For Device already registered in DataCake before shipped === 418 418 419 419 ==== 3.4.2.1 Scan QR Code to get the device info ==== 420 420 450 + 421 421 Users can use their phones or computers to scan QR codes to obtain device data information. 422 422 423 423 [[image:image-20240820110129-7.png]] ... ... @@ -424,32 +424,40 @@ 424 424 425 425 [[image:image-20240820110218-9.png]] 426 426 457 + 427 427 ==== 3.4.2.2 Claim Device to User Account ==== 428 428 429 429 By Default, the device is registered in Dragino's DataCake Account. User can Claim it to his account. 430 430 462 + 431 431 === 3.4.3 Manual Add Decoder in DataCake ( don't use the template in DataCake) === 432 432 465 + 433 433 **Step1: Add a device** 434 434 435 435 [[image:image-20240820110235-10.png]][[image:image-20240129170024-1.png||height="330" width="900"]] 436 436 470 + 437 437 **Step2: Choose your device type,please select dragino NB-IOT device** 438 438 439 439 [[image:image-20240820110247-11.png]] 440 440 475 + 441 441 **Step3: Choose to create a new device** 442 442 443 443 [[image:image-20240820111016-12.png]] 444 444 480 + 445 445 **Step4: Fill in the device ID of your NB device** 446 446 447 447 [[image:image-20240820111101-13.png]] 448 448 485 + 449 449 **Step5: Please select your device plan according to your needs and complete the creation of the device** 450 450 451 451 [[image:image-20240820111113-14.png]] 452 452 490 + 453 453 **Step6: Please add the decoder at the payload decoder of the device configuration.** 454 454 455 455 **Decoder location:**[[dragino-end-node-decoder/Datacake-Dragino_NB at main · dragino/dragino-end-node-decoder (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Datacake-Dragino_NB]] ... ... @@ -458,10 +458,12 @@ 458 458 459 459 [[image:image-20240820111248-16.png]] 460 460 499 + 461 461 **Step7: Add the output of the decoder as a field** 462 462 463 463 [[image:image-20240820111259-17.png]] 464 464 504 + 465 465 **Step8: Customize the dashboard and use fields as parameters of the dashboard** 466 466 467 467 [[image:image-20240820111312-18.png]] ... ... @@ -470,8 +470,10 @@ 470 470 471 471 [[image:image-20240820111333-20.png]] 472 472 513 + 473 473 === 3.4.4 For device have not configured to connect to DataCake === 474 474 516 + 475 475 (% class="lead" %) 476 476 Use AT command for connecting to DataCake 477 477 ... ... @@ -479,10 +479,12 @@ 479 479 480 480 (% style="color:blue" %)**AT+SERVADDR=67.207.76.90,4445** 481 481 524 + 482 482 == 3.5 Node-Red (via MQTT) == 483 483 484 484 === 3.5.1 Configure [[Node-Red>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/]] === 485 485 529 + 486 486 Take S31-NB UDP protocol as an example. 487 487 488 488 Dragino provides input flow examples for the sensors. ... ... @@ -513,8 +513,10 @@ 513 513 514 514 [[image:image-20240820111448-26.png]] 515 515 560 + 516 516 === 3.5.2 Simulate Connection === 517 517 563 + 518 518 We have completed the configuration of UDP. We can try sending packets to node red. 519 519 520 520 [[image:image-20240820111504-27.png]] ... ... @@ -521,8 +521,10 @@ 521 521 522 522 [[image:image-20240820111515-28.png]] 523 523 570 + 524 524 === 3.5.3 Configure NB-IoT Sensors === 525 525 573 + 526 526 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format** 527 527 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined** 528 528 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined** ... ... @@ -530,6 +530,8 @@ 530 530 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined** 531 531 * (% style="color:#037691" %)**AT+PWD=“Your device token”** 532 532 581 + 582 + 533 533 == 3.6 ThingsBoard.Cloud (via MQTT) == 534 534 535 535 === 3.6.1 Configure ThingsBoard === ... ... @@ -536,12 +536,15 @@ 536 536 537 537 ==== 3.6.1.1 Create Device ==== 538 538 589 + 539 539 Create a New Device in [[ThingsBoard>>url:https://thingsboard.cloud/]]. Record Device Name which is used for MQTT connection. 540 540 541 541 [[image:image-20240820112210-29.png]] 542 542 594 + 543 543 ==== 3.6.1.2 Create Uplink & Downlink Converter ==== 544 544 597 + 545 545 (% style="color:blue" %)**Uplink Converter** 546 546 547 547 The purpose of the decoder function is to parse the incoming data and metadata to a format that ThingsBoard can consume. deviceName and deviceType are required, while attributes and telemetry are optional. Attributes and telemetry are flat key-value objects. Nested objects are not supported. ... ... @@ -558,8 +558,10 @@ 558 558 559 559 (% style="color:red" %)**Note: Our device payload is already human readable data. Therefore, users do not need to write decoders. Simply create by default.** 560 560 614 + 561 561 ==== 3.6.1.3 MQTT Integration Setup ==== 562 562 617 + 563 563 Go to the (% style="color:blue" %)**Integrations center**(%%) **->** (% style="color:blue" %)**Integrations page**(%%) and click **“(% style="color:blue" %)plus(%%)”** icon to add a new integration. Name it (% style="color:blue" %)**“MQTT Integration”**(%%), select type (% style="color:blue" %)**MQTT**; 564 564 565 565 [[image:image-20240820112247-32.png]] ... ... @@ -578,6 +578,7 @@ 578 578 579 579 [[image:image-20240820112330-35.png]] 580 580 636 + 581 581 === 3.6.2 Simulate with MQTT.fx === 582 582 583 583 [[image:image-20240820112340-36.png]] ... ... @@ -584,8 +584,10 @@ 584 584 585 585 [[image:image-20240820112351-37.png]] 586 586 643 + 587 587 === 3.6.3 Configure NB-IoT Sensor === 588 588 646 + 589 589 (% style="color:blue" %)**AT Commands** 590 590 591 591 * (% style="color:#037691" %)**AT+PRO=3,3 **(%%)** **~/~/ Use MQTT to connect to ThingsBoard. Payload Type set to 3. ... ... @@ -608,10 +608,12 @@ 608 608 609 609 [[image:image-20240820112426-40.png]] 610 610 669 + 611 611 == 3.7 [[Tago.io>>url:https://admin.tago.io/]] (via MQTT) == 612 612 613 613 === 3.7.1 Create device & Get Credentials === 614 614 674 + 615 615 We use MQTT Connection to send data to [[Tago.io>>url:https://admin.tago.io/]]. We need to Create Device and Get MQTT Credentials first. 616 616 617 617 [[image:image-20240820112516-41.png]] ... ... @@ -658,8 +658,11 @@ 658 658 659 659 * (% style="color:#037691" %)**AT+PWD=“Your device token”** 660 660 721 + 722 + 661 661 === 3.7.2 Simulate with MQTT.fx === 662 662 725 + 663 663 [[image:image-20240820112552-44.png]] 664 664 665 665 [[image:image-20240820112604-45.png]] ... ... @@ -670,14 +670,18 @@ 670 670 671 671 [[image:image-20240820112626-47.png]] 672 672 736 + 673 673 === 3.7.3 tago data === 674 674 739 + 675 675 [[image:image-20240820112637-48.png]] 676 676 677 677 [[image:image-20240820112647-49.png]] 678 678 744 + 679 679 == 3.8 TCP Connection == 680 680 747 + 681 681 (% style="color:blue" %)**AT command:** 682 682 683 683 * (% style="color:#037691" %)**AT+PRO=4,0 ** (%%) ~/~/ Set to use TCP protocol to uplink(HEX format) ... ... @@ -694,17 +694,18 @@ 694 694 695 695 [[image:image-20240820112716-51.png]] 696 696 764 + 697 697 == 3.9 AWS Connection == 698 698 767 + 699 699 Users can refer to [[Dragino NB device connection to AWS platform instructions>>http://wiki.dragino.com/xwiki/bin/view/Dragino%20NB%20device%20connection%20to%20AWS%20platform%20instructions/#H1.LogintotheplatformandfindIoTcore]] 700 700 701 -(% class="wikigeneratedid" %) 702 -= = 703 703 704 704 = 4. COAP/UDP/MQTT/TCP downlink = 705 705 706 706 == 4.1 MQTT (via MQTT.fx) == 707 707 775 + 708 708 Configure MQTT connections properly and send downlink commands to configure nodes through the Publish function of MQTT.fx//.// 709 709 710 710 **1.** Configure node MQTT connection (via MQTT.fx): ... ... @@ -727,10 +727,12 @@ 727 727 728 728 [[image:image-20240820112732-52.png]][[image:image-20240820112758-53.png]] 729 729 798 + 730 730 **2. **When the node uplink packets, we can observe the data in MQTT.fx. 731 731 732 732 [[image:image-20240820112813-54.png]] 733 733 803 + 734 734 **3. **The downlink command can be successfully sent only when the downlink port is open. 735 735 736 736 The downlink port is opened for about 3 seconds after uplink packets are sent. ... ... @@ -746,9 +746,34 @@ 746 746 747 747 == 4.2 UDP (via Thingseye) == 748 748 749 -(% style="color:red" %)**Note:**(%%) The UDP service on the ThingsEye platform needs to be built by the user. 750 750 820 +(% style="color:red" %)**Note:**(%%) The UDP service on the ThingsEye platform needs to be built by the user. (Description Link:[[UDP service building instructions>>http://www.ithingsboard.com/docs/user-guide/integrations/udp/]]) 751 751 822 +After the node is successfully connected to the platform, you need to select the corresponding node (you can refer to the node's IMEI to find it) 823 + 824 +[[image:image-20240820141843-2.png||height="546" width="821"]] 825 + 826 +After clicking Show Node Details Page, (% style="color:blue" %)**Select Properties ~-~-- select Shared Properties ~-~-- click Add Properties** 827 + 828 +[[image:image-20240820143316-3.png||height="555" width="1170"]] 829 + 830 +After clicking Add Shared Attribute, set the key to (% style="color:red" %)**value**(%%), and write the command that needs to be downlinked in the Downlink Command Input box 831 + 832 +(% style="color:red" %)**(Note: Downlinks can only be downlinked in string format, otherwise the node will not recognize the downlink command.)** 833 + 834 +[[image:image-20240820143820-4.png||height="554" width="1168"]] 835 + 836 +After the command is successfully added, the platform will send the command down on the node's next uplink. 837 + 838 +[[image:image-20240820144913-6.png||height="585" width="1232"]] 839 + 840 +[[image:image-20240820145133-7.png||height="582" width="1227"]] 841 + 842 +Upon successful issuance, the platform automatically eliminates the attributes from the queue and waits for the next addition of new attributes 843 + 844 +[[image:image-20240820145309-8.png]] 845 + 846 + 752 752 = 5. GPS positioning function = 753 753 754 754 === 1. Turn on GPS function === ... ... @@ -771,6 +771,7 @@ 771 771 772 772 == 5.1 What is the usage of Multi Sampling and One Uplink? == 773 773 869 + 774 774 The NB series has the feature for Multi Sampling and one uplink. See one of them 775 775 776 776 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink]] ... ... @@ -785,8 +785,11 @@ 785 785 1*. **AT+TDC=7200** ~/~/ Uplink every 2 hours. 786 786 1*. this will mean each uplink will actually include the 6 uplink data (24 set data which cover 12 hours). So if device doesn't lost 6 continue data. There will not data lost. 787 787 884 + 885 + 788 788 == 5.2 Why the uplink JSON format is not standard? == 789 789 888 + 790 790 The json format in uplink packet is not standard Json format. Below is the example. This is to make the payload as short as possible, due to NB-IoT transmit limition, a standard Json is not able to include 32 sets of sensors data with timestamp. 791 791 792 792 The firmware version released after 2024, Mar will use change back to use Json format. Detail please check changelog. ... ... @@ -793,10 +793,12 @@ 793 793 794 794 [[image:image-20240820112848-57.png]] 795 795 895 + 796 796 = 6. Trouble Shooting: = 797 797 798 798 == 6.1 Checklist for debuging Network Connection issue. Signal Strenght:99 issue. == 799 799 900 + 800 800 There are many different providers provide NB-IoT service in the world. They might use different band, different APN & different operator configuration. Which makes connection to NB-IoT network is complicate. 801 801 802 802 If end device successfully attached NB-IoT Network, User can normally see the signal strengh as below (between 0~~31) ... ... @@ -821,12 +821,14 @@ 821 821 822 822 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.2 Why sometime the AT Command is slow in reponse?(%%) == 823 823 925 + 824 824 When the MCU is communicating with the NB-IoT module, the MCU response of AT Command will become slower, it might takes several seconds to response. 825 825 826 826 [[image:image-20240820113015-60.png]] 827 827 828 -== (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.3 What is the Downlink Command by the NB device?(%%) == 829 829 931 +== (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.3 What is the Downlink Command by the -CB device?(%%) == 932 + 830 830 (% data-sider-select-id="bb6e9353-0c3f-473c-938d-4b416c9a03e6" %) 831 831 === UDP: === 832 832 ... ... @@ -836,6 +836,7 @@ 836 836 837 837 {AT+TDC=300} 838 838 942 + 839 839 (% data-sider-select-id="90b80f1a-e924-4c8a-afc5-4429e019a657" %) 840 840 === MQTT: === 841 841 ... ... @@ -877,5 +877,136 @@ 877 877 878 878 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]] 879 879 984 + 985 +== 6.4 What if the signal is good but the domain name resolution fails? == 986 + 987 + 988 +If the domain name resolution fails, first check whether the domain name is correct, users can use their own website domain name resolution tool to verify the domain name. 989 + 990 +[[image:image-20240827150705-6.png||height="489" width="687"]] 991 + 992 +If the domain name is correct, but the domain name cannot be resolved, the user can turn off the domain name resolution function(AT+GDNS=1) and use the domain name communication directly. 993 + 994 +* Set the DNS 995 + 996 +(% style="color:blue" %)**AT Command: AT+GDNS** 997 + 998 +**AT+GDNS=0** ~/~/ Default. Automatically resolves the domain name and uses the resolved IP to communicate. 999 + 1000 +**AT+GDNS=1 **~/~/ Disabling Domain name resolution. Use the domain name directly to communicate. 1001 + 1002 +(% style="color:red" %)**Note: For -CB products, with the exception of AT+PRO=2,5, all protocols and payload formats support direct domain communication.** 1003 + 1004 +Example: 1005 + 1006 +[[image:image-20240827150121-5.png||height="476" width="680"]][[image:image-20240827145055-4.png||height="484" width="678"]] 1007 + 1008 + 1009 +== 6.5 GPS debugging == 1010 + 1011 + 1012 +Indoor GPS signal is very weak, **outdoor** positioning is generally recommended. 1013 + 1014 +[[image:image-20240903104250-9.png||height="275" width="614"]] 1015 + 1016 + 1017 +[[image:image-20240903104431-10.png||height="291" width="621"]] 1018 + 1019 + 1020 +=== 6.5.1 GPS commands === 1021 + 1022 + 1023 +The following are three related AT commands that introduce GPS functions. 1024 + 1025 +* **Turn on/off GPS** 1026 + 1027 +(% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GPS ** 1028 + 1029 +**Ex1: **AT+GPS=0 ~/~/ Turn off GPS 1030 + 1031 +**Ex2: **AT+GPS=1 ~/~/ Turn on GPS 1032 + 1033 +(% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x11(%%)** 1034 + 1035 +Format: Command Code (0x11) followed by 1 byte. 1036 + 1037 +Example: Downlink Payload: **11 01 **~/~/ AT+GPS=1 1038 + 1039 +* **Set GNSS open time** 1040 + 1041 +Extend the time to turn on GNSS. The automatic GPS location time is extended when the node is activated. 1042 + 1043 +(% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GNSST** 1044 + 1045 +Example: AT+GNSST=30 ~/~/ Set the GPS positioning time to 30 seconds 1046 + 1047 +(% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x10(%%)** 1048 + 1049 +Format: Command Code (0x10) followed by 2 bytes. 1050 + 1051 +Example: Downlink Payload: **10 00 1E **~/~/ AT+GNSST=30 1052 + 1053 +* **Set GPS positioning interval** 1054 + 1055 +Feature: Set GPS positioning interval (unit: hour). 1056 + 1057 +When GPS is enabled, the node automatically locates and uplinks each time it passes **GTDC time** after activation. 1058 + 1059 +(% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GTDC** 1060 + 1061 +Example: AT+GTDC=24 ~/~/ Set the GPS positioning interval to 24h. 1062 + 1063 +(% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x12(%%)** 1064 + 1065 +Format: Command Code (0x12) followed by 3 bytes. 1066 + 1067 +Example: 24 hours: 24(D)=0x18(H) 1068 + 1069 +Downlink Payload: **12 00 00 18 **~/~/ AT+GTDC=24 1070 + 1071 + 1072 +=== 6.5.2 GPS workflow === 1073 + 1074 + 1075 +The whole working process after the GPS function is enabled((% style="color:#037691" %)**AT+GPS=1**(%%)) is as follows: 1076 + 1077 +~1. When activate the node, the node will turn on the GNSS, if the GPS signal is good, the node will print and upload the position information with the first data packet immediately. 1078 + 1079 + If the signal is not good, it may take the whole (% style="color:#037691" %)**GNSST**(%%) time but still can not search the latitude and longitude information, at this time the node uploads the latitude and longitude all to 0. 1080 + 1081 + So if there is a failure of positioning, the user can extend the (% style="color:#037691" %)**GNSST**(%%) time appropriately. 1082 + 1083 +2. Each TDC time node is not repositioned and the positioning interval is determined by the AT+GTDC time. 1084 + 1085 + The latitude and longitude payload uplinked at each TDC time is the GPS positioning information from the previous (% style="color:#037691" %)**GTDC**(%%) time. 1086 + 1087 + Only when the node is activated or every (% style="color:#037691" %)**GTDC**(%%) time is reached, the node turns on the GNSS and we can observe the GPS search information through the serial assistant or Bluetooth tool. 1088 + 1089 + 1090 +=== 6.5.3 GPS debugging methods === 1091 + 1092 + 1093 +In summary, we can deduce the methods of debugging GPS: 1094 + 1095 +* **Check whether the GPS function is enabled.** 1096 + 1097 +[[image:image-20240903102327-5.png||height="271" width="529"]] 1098 + 1099 +* **Check whether the GPS antenna is loose**. 1100 + 1101 +If the GPS antenna is loose, the GPS signal is weak, and the positioning fails. 1102 + 1103 +[[image:image-20240903094214-1.png||height="340" width="461"]] 1104 + 1105 +* **Use the AT+GNSST command to extend the positioning time.** 1106 + 1107 +The default AT+GNSST=30, that is, the default positioning time is 30 seconds. 1108 + 1109 +If the location fails, users can extend the location time. 1110 + 1111 +[[image:image-20240903102641-8.png||height="303" width="600"]] 1112 + 1113 + 1114 + 1115 + 880 880 881 -
- image-20240820144823-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +145.6 KB - Content
- image-20240820144913-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +136.4 KB - Content
- image-20240820145133-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +164.5 KB - Content
- image-20240820145309-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.6 KB - Content
- image-20240827145055-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +74.2 KB - Content
- image-20240827150121-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +86.0 KB - Content
- image-20240827150705-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +86.7 KB - Content
- image-20240903094214-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +4.5 MB - Content
- image-20240903094457-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +2.6 MB - Content
- image-20240903100736-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +250.8 KB - Content
- image-20240903100832-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +181.5 KB - Content
- image-20240903102327-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +26.2 KB - Content
- image-20240903102542-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +16.9 KB - Content
- image-20240903102621-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.9 KB - Content
- image-20240903102641-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.0 KB - Content
- image-20240903104250-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.9 KB - Content
- image-20240903104431-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.ting - Size
-
... ... @@ -1,0 +1,1 @@ 1 +49.2 KB - Content