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)
Details
- Page properties
-
- Content
-
... ... @@ -236,13 +236,12 @@ 236 236 [[image:1692415924540-357.png]] 237 237 238 238 239 -There are two version: (% style="color:blue" %)**-GE**(%%)and(% style="color:blue" %)**-1D**(%%)version of S31-NB.239 +There are two version: **-GE** and **-1D** version of S31-NB. 240 240 241 241 242 - (% 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.242 +**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 243 244 244 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 - 246 246 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 248 248 Below shows result of different server as a glance. ... ... @@ -260,202 +260,384 @@ 260 260 261 261 262 262 263 - (% 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]].262 +**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]]. 264 264 265 265 266 266 == 2.2 Payload Types == 267 267 268 268 269 - To meetdifferent server requirement,S31-NB supportsfferentpayloadtype.268 +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. 270 270 271 - Includes:270 +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. 272 272 273 -* [[General JSON format payload>>path:#General_Json]]. (Type=5) 274 -* [[HEX format Payload>>path:#HEX_Payload]]. (Type=0) 275 -* [[ThingSpeak Format>>path:#ThingSpeak_Payload]]. (Type=1) 276 -* [[ThingsBoard Format>>path:#ThingsBoard_Payload]]. (Type=3) 277 277 273 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB. 278 278 279 - User canspecifythepayloadtype whenchoosetheconnectionprotocol.Example:275 +Each S31x-LB is shipped with a sticker with the default device EUI as below: 280 280 281 - (% style="color:#037691" %)**AT+PRO=2,0** (%%) ~/~/Use UDP Connection&hexPayload277 +[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]] 282 282 283 -(% style="color:#037691" %)**AT+PRO=2,5** (%%) ~/~/ Use UDP Connection & Json Payload 284 284 285 - (%style="color:#037691"%)**AT+PRO=3,5**(%%)~/~/ UseMQTTConnection& Json Payload280 +You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: 286 286 287 287 288 - ===2.2.1 GeneralJson Format(Type=5)===283 +(% style="color:blue" %)**Register the device** 289 289 290 - ThisistheGeneralJsonFormat. Asbelow:285 +[[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"]] 291 291 292 292 293 -(% 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/1008: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}}**288 +(% style="color:blue" %)**Add APP EUI and DEV EUI** 294 294 290 +[[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"]] 295 295 296 296 297 -(% style="color: red" %)Notice,fromabovepayload:293 +(% style="color:blue" %)**Add APP EUI in the application** 298 298 299 -* Temperature , Humidity , Battery & Signal are the value at uplink time. 300 300 301 - * Json entry 1 ~~ 8arethe last1 ~~ 8 samplingdataasspecify by (%style="color:#037691"%)**AT+NOUD=8 ** (%%)Command. Eachentry includes(from left to right):Temperature,Humidity,Samplingme.296 +[[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"]] 302 302 303 303 299 +(% style="color:blue" %)**Add APP KEY** 304 304 301 +[[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"]] 305 305 306 -=== 2.2.2 HEX format Payload(Type=0) === 307 307 304 +(% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB 308 308 309 -This is the HEX Format. As below: 310 310 311 - (%style="color:#4472C4"%)**f86620705346276200640cba16010000000011011801e864d49c2d011a01e364d49925011901eb64d49871011901e564d497bd011a01e664d49709011901e964d49655011a01e864d495a1011a01e864d494ed011801e864d49439**307 +Press the button for 5 seconds to activate the S31x-LB. 312 312 309 +(% 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. 313 313 314 - [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]]311 +After join success, it will start to upload messages to TTN and you can see the messages in the panel. 315 315 316 316 317 - (%style="color:blue"%)**Version:**314 +== 2.3 Uplink Payload == 318 318 319 - Thesebytesinclude the hardware and software version.316 +=== 2.3.1 Device Status, FPORT~=5 === 320 320 321 -(% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x00 for S31B-NB & S31-NB 322 322 323 - (%style="color:#037691"%)**Lowerbyte:**(%%)Specify thesoftware version:0x64=100,meansfirmwareversion 100319 +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. 324 324 321 +The Payload format is as below. 325 325 326 -(% style="color:#037691" %)**BAT (Battery Info):** 327 327 328 -Ex1: 0x0CBA = 3258mV 324 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 325 +|(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)** 326 +|(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2** 327 +|(% 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 329 329 329 +Example parse in TTNv3 330 330 331 - (% style="color:blue" %)**Signal Strength:**331 +[[image:image-20230524144422-1.png||height="174" width="1080"]] 332 332 333 -NB-IoT Network signal Strength. 334 334 335 - **Ex1:0x16=22**334 +(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A 336 336 337 -** 0**-113dBmor less336 +(% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 338 338 339 - **1**-111dBm338 +(% style="color:#037691" %)**Frequency Band**: 340 340 341 - **2...30** -109dBm...-53dBm340 +0x01: EU868 342 342 343 - **31**-51dBm or greater342 +0x02: US915 344 344 345 - **99**ot known or not detectable344 +0x03: IN865 346 346 346 +0x04: AU915 347 347 348 - (% style="color:blue"%)**Temperature: **348 +0x05: KZ865 349 349 350 +0x06: RU864 351 + 352 +0x07: AS923 353 + 354 +0x08: AS923-1 355 + 356 +0x09: AS923-2 357 + 358 +0x0a: AS923-3 359 + 360 +0x0b: CN470 361 + 362 +0x0c: EU433 363 + 364 +0x0d: KR920 365 + 366 +0x0e: MA869 367 + 368 + 369 +(% style="color:#037691" %)**Sub-Band**: 370 + 371 +AU915 and US915:value 0x00 ~~ 0x08 372 + 373 +CN470: value 0x0B ~~ 0x0C 374 + 375 +Other Bands: Always 0x00 376 + 377 + 378 +(% style="color:#037691" %)**Battery Info**: 379 + 380 +Check the battery voltage. 381 + 382 +Ex1: 0x0B45 = 2885mV 383 + 384 +Ex2: 0x0B49 = 2889mV 385 + 386 + 387 +=== 2.3.2 Sensor Data. FPORT~=2 === 388 + 389 + 390 +Sensor Data is uplink via FPORT=2 391 + 392 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %) 393 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)((( 394 +**Size(bytes)** 395 +)))|=(% 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 396 +|(% style="width:99px" %)Value|(% style="width:69px" %)((( 397 +Battery 398 +)))|(% style="width:130px" %)((( 399 +Unix TimeStamp 400 +)))|(% style="width:194px" %)((( 401 +Alarm Flag & MOD& Level of PA8 402 +)))|(% style="width:106px" %)((( 403 +Temperature 404 +)))|(% style="width:97px" %)((( 405 +Humidity 406 +))) 407 + 408 +[[image:image-20230524144456-2.png||height="180" width="1142"]] 409 + 410 + 411 +==== (% style="color:#4472c4" %)**Battery**(%%) ==== 412 + 413 +Sensor Battery Level. 414 + 415 +Ex1: 0x0B45 = 2885mV 416 + 417 +Ex2: 0x0B49 = 2889mV 418 + 419 + 420 +==== (% style="color:#4472c4" %)**Temperature**(%%) ==== 421 + 422 +**Example**: 423 + 350 350 If payload is: 0105H: (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree 351 351 352 352 If payload is: FF3FH : (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees. 353 353 354 - (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)428 +(FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative) 355 355 356 356 431 +==== (% style="color:#4472c4" %)**Humidity**(%%) ==== 357 357 358 -(% style="color:blue" %)**Humidity: ** 359 359 360 -Read:0 295(H)=661(D)Value:661 / 10=66.1, So66.1%434 +Read:0x(0197)=412 Value: 412 / 10=41.2, So 41.2% 361 361 362 362 363 -(% style="color: blue" %)**TimeStamp:**437 +==== (% style="color:#4472c4" %)**Alarm Flag & MOD & Level of PA8**(%%) ==== 364 364 365 -Unit TimeStamp Example: 64d49439(H) = 1691653177(D) 366 366 367 - Put the decimalvalueinto this link(https:~/~/www.epochconverter.com/) to get the time.440 +**Example:** 368 368 442 +If payload & 0x01 = 0x01 **~-~->** This is an Alarm Message.It means that the temperature and humidity exceed the alarm value or trigger an interrupt. 369 369 370 -= ==2.2.3ThingsBoardPayload(Type=3)===444 +If payload & 0x01 = 0x00 **~-~->** This is a normal uplink message, no alarm. 371 371 372 - Type3payloadspecialdesignforThingsBoard,itwillalsoconfigure other default server to ThingsBoard.446 +If payload & 0x80>>7 = 0x01 **~-~->** The PA8 is low level. 373 373 448 +If payload & 0x80>>7 =0x00 **~-~->** The PA8 is high level. 374 374 375 - (%style="color:#4472C4"%)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24}**450 +If payload >> 2 = 0x00 **~-~->** means MOD=1, This is a sampling uplink message. 376 376 452 +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. 377 377 378 -=== 2.2.4 ThingSpeak Payload(Type=1) === 379 379 380 - Thispayloadmeets ThingSpeak platform requirement. It includes only four fields. Form 1~~4 are:455 +== 2.4 Payload Decoder file == 381 381 382 -Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform 383 383 458 +In TTN, use can add a custom payload so it shows friendly reading 384 384 385 -As below:460 +In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from: 386 386 387 - (%style="color:#4472C4" %)**field1=27.9&field2=49.9&field3=3.23&field4=28**462 +[[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]] 388 388 389 389 390 -== 2. 3TestUplinkand ChangeUpdateInterval==465 +== 2.5 Datalog Feature == 391 391 392 392 393 - Bydefault,Sensorwill senduplinks(%style="color:blue"%)**every2 hours**(%%)&AT+NOUD=8468 +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. 394 394 395 395 396 - Usercanuse below commands tochangehe(% style="color:blue"%)**uplinkinterval**.471 +=== 2.5.1 Ways to get datalog via LoRaWAN === 397 397 398 -(% style="color:#037691" %)**~ AT+TDC=600 ** (%%) ~/~/ Set Update Interval to 600s 399 399 474 +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. 400 400 401 -User can also push the button for more than 1 seconds to activate an uplink. 476 +* ((( 477 +a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server. 478 +))) 479 +* ((( 480 +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. 481 +))) 402 402 483 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1) 403 403 485 +[[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"]] 404 404 405 405 406 -== 2. 4Multi-Samplingsand One uplink==488 +=== 2.5.2 Unix TimeStamp === 407 407 408 408 409 - To save battery life,S31-NBwillsampletemperature & humidity data every 15 minutesand send one uplinkevery 2 hours.So each uplinkit will include 8 stored data + 1 real-time data.Theyareefinedby:491 +S31x-LB uses Unix TimeStamp format based on 410 410 411 - * (% style="color:#037691" %)**AT+TR=900** (%%) ~/~/The unitis seconds, andthe defaultisto record datance every 900 seconds(15inutes,thenimum canseto180seconds)493 +[[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"]] 412 412 413 - * (%style="color:#037691"%)**AT+NOUD=8**(%%)~/~/Thedeviceuploads8setsof recorded data by default. Upto 32setsof record data can beuploaded.495 +User can get this time from link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] : 414 414 497 +Below is the converter example 415 415 416 - The diagramelowexplainstheelationshipbetweenTR, NOUD, and TDC more clearly:499 +[[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"]] 417 417 418 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png||alt="IMG_256"]] 419 419 502 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25 420 420 421 -== 2.5 Humidity and Temperature alarm function == 422 422 423 - Oneach sampling define by AT+TR ( default 900s or 15minutes), whenthevalueexceedthe range,it will trigger an Alarmand immediatelysends a uplink.505 +=== 2.5.3 Set Device Time === 424 424 425 425 426 -(% style="color:blue" %)** ATCommands:**508 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command. 427 427 428 - (%style="color:#037691"%)**AT+HHUM=min,max**510 +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). 429 429 430 - Example: AT+SHHUM=50,80~/~/Alarmwhenhumiditylowerthan50orhigherthan80.512 +(% 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.** 431 431 432 432 433 - (%style="color:#037691"%)**AT+SHTEMP=min,max**515 +=== 2.5.4 Datalog Uplink payload (FPORT~=3) === 434 434 435 -Example: AT+ SHTEMP=20,30 ~/~/ Alarm when temperature lower than 20 or higher than 30 436 436 518 +The Datalog uplinks will use below payload format. 437 437 438 - (% style="color:red"%)**Notice:**520 +**Retrieval data payload:** 439 439 440 -* To disable Alarm, user can set min and max to same value , such as (% style="color:#037691" %)**AT+SHTEMP=0,0.** 522 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %) 523 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)((( 524 +**Size(bytes)** 525 +)))|=(% 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** 526 +|(% style="width:103px" %)Value|(% style="width:68px" %)((( 527 +ignore 528 +)))|(% style="width:104px" %)((( 529 +((( 530 +Humidity 531 +))) 441 441 442 -* 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.** 533 +((( 534 + 535 +))) 536 +)))|(% style="width:87px" %)((( 537 +Temperature 538 +)))|(% style="width:178px" %)((( 539 +Poll message flag & Alarm Flag& Level of PA8 540 +)))|(% style="width:137px" %)Unix Time Stamp 443 443 542 +**Poll message flag & Alarm Flag & Level of PA8:** 444 444 445 -1. 446 -11. Trggier an uplink by external interrupt 544 +[[image:image-20230524114302-1.png||height="115" width="736"]] 447 447 448 -S31-NB has an external trigger interrupt function. Users can use the PB15 pin to trigger the upload of data packets. 449 449 450 -AT command:547 +**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) 451 451 452 -* AT+INTMOD ~/~/ Set the trigger interrupt mode 453 -* AT+INTMOD=0 ~/~/Disable Interrupt 454 -* AT+INTMOD=1 ~/~/Trigger by rising and falling edge 455 -* AT+INTMOD=2 ~/~/Trigger by falling edge 456 -* AT+INTMOD=3 ~/~/Trigger by rising edge 549 +**Poll Message Flag**: 1: This message is a poll message reply. 457 457 551 +* Poll Message Flag is set to 1. 458 458 553 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands. 554 + 555 +For example, in US915 band, the max payload for different DR is: 556 + 557 +**a) DR0:** max is 11 bytes so one entry of data 558 + 559 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes) 560 + 561 +**c) DR2:** total payload includes 11 entries of data 562 + 563 +**d) DR3: **total payload includes 22 entries of data. 564 + 565 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0 566 + 567 +**Example:** 568 + 569 +If S31x-LB has below data inside Flash: 570 + 571 +[[image:image-20230524114654-2.png]] 572 + 573 + 574 +If user sends below downlink command: 31646D84E1646D856C05 575 + 576 +Where : Start time: 646D84E1 = time 23/5/24 03:30:41 577 + 578 + Stop time: 646D856C= time 23/5/24 03:33:00 579 + 580 + 581 +**S31x-LB will uplink this payload.** 582 + 583 +[[image:image-20230524114826-3.png||height="448" width="1244"]] 584 + 585 +((( 586 +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 587 +))) 588 + 589 +((( 590 +Where the first 11 bytes is for the first entry: 591 +))) 592 + 593 +((( 594 +00 00 02 36 01 10 40 64 6D 84 E1 595 +))) 596 + 597 +((( 598 +**Hum**=0x0236/10=56.6 599 +))) 600 + 601 +((( 602 +**Temp**=0x0110/10=27.2 603 +))) 604 + 605 +((( 606 +**poll message flag & Alarm Flag & Level of PA8**=0x40,means reply data,sampling uplink message,the PA8 is low level. 607 +))) 608 + 609 +((( 610 +**Unix time** is 0x646D84E1=1684899041s=23/5/24 03:30:41 611 +))) 612 + 613 + 614 +(% 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="单击并拖动以调整大小" %)的 615 + 616 +== 2.6 Temperature Alarm Feature == 617 + 618 + 619 +S31x-LB work flow with Alarm feature. 620 + 621 + 622 +[[image:image-20230524110125-3.png||height="768" width="1115"]] 623 + 624 + 625 + 626 +== 2.7 Frequency Plans == 627 + 628 + 629 +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. 630 + 631 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 632 + 633 + 634 +== 2.8 Firmware Change Log == 635 + 636 + 637 +**Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0>>https://www.dropbox.com/sh/fis3g6nmhv0eokg/AAC6BcCZaX4BdqZkduUvZ3jIa?dl=0]] 638 + 639 + 459 459 = 3. Configure S31x-LB = 460 460 461 461 == 3.1 Configure Methods ==