Last modified by Mengting Qiu on 2025/07/03 15:42

From version 19.1
edited by Xiaoling
on 2023/02/01 09:12
Change comment: Uploaded new attachment "image-20230201091257-9.png", version {1}
To version 37.2
edited by Xiaoling
on 2023/02/01 10:02
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -170,23 +170,21 @@
170 170  [[image:image-20230201090139-4.png]]
171 171  
172 172  
173 += 2. Configure SDI-12 to connect to LoRaWAN network =
173 173  
175 +== 2.1 How it works ==
174 174  
175 175  
176 -
177 -1. Configure SDI-12 to connect to LoRaWAN network
178 -11. How it works
179 -
180 180  The SDI-12-LB is configured as **LoRaWAN OTAA Class A** mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and activate the SDI-12-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
181 181  
182 182  
183 -1.
184 -11. ​Quick guide to connect to LoRaWAN server (OTAA)
181 +== 2.2 Quick guide to connect to LoRaWAN server (OTAA) ==
185 185  
183 +
186 186  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.
187 187  
188 188  
189 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png]]
187 +[[image:image-20230201090528-5.png||height="465" width="1111"]]
190 190  
191 191  
192 192  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.
... ... @@ -197,7 +197,7 @@
197 197  Each SDI-12-LB is shipped with a sticker with the default device EUI as below:
198 198  
199 199  
200 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]]
198 +[[image:image-20230131134744-2.jpeg]]
201 201  
202 202  
203 203  
... ... @@ -208,24 +208,24 @@
208 208  
209 209  **Register the device**
210 210  
211 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]]
209 +[[image:1675213652444-622.png]]
212 212  
213 213  
214 214  **Add APP EUI and DEV EUI**
215 215  
216 216  
217 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png]]
215 +[[image:1675213661769-223.png]]
218 218  
219 219  
220 220  **Add APP EUI in the application**
221 221  
222 222  
223 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png]]
221 +[[image:1675213675852-577.png]]
224 224  
225 225  
226 226  **Add APP KEY**
227 227  
228 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]
226 +[[image:1675213686734-883.png]]
229 229  
230 230  
231 231  **Step 2**: Activate on SDI-12-LB
... ... @@ -237,97 +237,100 @@
237 237  **Green led** will fast blink 5 times, device will enter **OTA mode** for 3 seconds. And then start to JOIN LoRaWAN network. **Green led** will solidly turn on for 5 seconds after joined in network.
238 238  
239 239  
240 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]
238 +[[image:1675213704414-644.png]]
241 241  
242 242  
241 +== ​2.3 SDI-12 Related Commands ==
243 243  
244 244  
245 -
246 -1.
247 -11. ​SDI-12 Related Commands
248 -
249 249  User need to configure SDI-12-LB to communicate with SDI-12 sensors otherwise the uplink payload will only include a few bytes.
250 250  
251 251  
252 -1.
253 -11.
254 -111. Basic SDI-12 debug command
247 +=== 2.3.1 Basic SDI-12 debug command ===
255 255  
249 +
256 256  User can run some basic SDI-12 command to debug the connection to the SDI-12 sensor. These commands can be sent via AT Command or LoRaWAN downlink command.
257 257  
258 -
259 259  If SDI-12 sensor return value after get these commands, //SDI-12-LB// will uplink the return on FPORT=100, otherwise, if there is no response from SDI-12 sensor. //SDI-12-LB// will uplink NULL (0x 4E 55 4C 4C) to server.
260 260  
261 -
262 262  The following is the display information on the serial port and the server.
263 263  
264 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]
265 265  
266 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]
267 267  
268 -al!  ~-~- Get SDI-12 sensor Identification
258 +[[image:image-20230201091027-6.png]]
269 269  
260 +
261 +[[image:image-20230201091027-7.png||height="261" width="1179"]]
262 +
263 +
264 +==== **al!  ~-~- Get SDI-12 sensor Identification** ====
265 +
266 +
270 270  * AT Command: AT+ADDRI=aa
271 271  * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa
272 272  
273 -Parameter: aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
270 +**Parameter:  **aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
274 274  
275 -Example : AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
272 +**Example :   **AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
276 276  
277 277  
278 -
279 279  The following is the display information on the serial port and the server.
280 280  
281 281  
282 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]
278 +[[image:image-20230201091257-8.png]]
283 283  
284 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]
285 285  
281 +[[image:image-20230201091257-9.png||height="225" width="1242"]]
286 286  
287 -aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!
288 288  
289 -aM!: Start Non-Concurrent Measurement
284 +==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ====
290 290  
291 -aMC!: Start Non-Concurrent Measurement – Request CRC
292 292  
293 -aM1!- aM9!: Additional Measurements
287 +**aM! **: Start Non-Concurrent Measurement
294 294  
295 -aMC1!- aMC9!: Additional Measurements – Request CRC
289 +**aMC! **: Start Non-Concurrent Measurement – Request CRC
296 296  
291 +**aM1!- aM9! **: Additional Measurements
297 297  
293 +**aMC1!- aMC9!** : Additional Measurements – Request CRC
294 +
295 +
298 298  * AT Command : AT+ADDRM=0,1,0,1
299 299  * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01
300 300  
301 301  Downlink:AA 01 aa bb cc dd
302 302  
303 -aa: SDI-12 sensor address.
301 +**aa**: SDI-12 sensor address.
304 304  
305 -bb: 0: no CRC, 1: request CRC
303 +**bb**: 0: no CRC, 1: request CRC
306 306  
307 -cc: 1-9: Additional Measurement, 0: no additional measurement
305 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
308 308  
309 -dd: delay (in second) to send **aD0!** to get return.
307 +**dd**: delay (in second) to send **aD0!** to get return.
310 310  
311 311  
312 312  The following is the display information on the serial port and the server.
313 313  
314 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]
315 315  
316 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]
313 +[[image:image-20230201091630-10.png]]
317 317  
318 318  
316 +[[image:image-20230201091630-11.png||height="247" width="1165"]]
319 319  
320 -aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9!
321 321  
322 -aC!: Start Concurrent Measurement
323 323  
324 -aCC!: Start Concurrent Measurement – Request CRC
320 +==== **aC!, aCC! aC1!- aC9!,  aCC1!- aCC9! ** ====
325 325  
326 -aC1!- aC9!: Start Additional Concurrent Measurements
327 327  
328 -aCC1!- aCC9!: Start Additional Concurrent Measurements – Request CRC
323 +**aC!** : Start Concurrent Measurement
329 329  
325 +**aCC!** : Start Concurrent Measurement – Request CRC
330 330  
327 +**aC1!- aC9!** : Start Additional Concurrent Measurements
328 +
329 +**aCC1!- aCC9!** : Start Additional Concurrent Measurements – Request CRC
330 +
331 +
331 331  * AT Command : AT+ADDRC=0,1,0,1 
332 332  
333 333  * LoRaWAN Downlink(0xAA02): 0xAA 02 30 01 00 01
... ... @@ -334,24 +334,29 @@
334 334  
335 335  Downlink: AA 02 aa bb cc dd
336 336  
337 -aa: SDI-12 sensor address.
338 +**aa**: SDI-12 sensor address.
338 338  
339 -bb: 0: no CRC, 1: request CRC
340 +**bb**: 0: no CRC, 1: request CRC
340 340  
341 -cc: 1-9: Additional Measurement, 0: no additional measurement
342 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
342 342  
343 -dd: delay (in second) to send **aD0!** to get return.
344 +**dd**: delay (in second) to send **aD0!** to get return.
344 344  
345 345  
346 346  The following is the display information on the serial port and the server.
347 347  
348 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]
349 349  
350 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]
350 +[[image:image-20230201091954-12.png]]
351 351  
352 352  
353 -aR0!- aR9!,  aRC0!- aRC9!
353 +[[image:image-20230201091954-13.png||height="203" width="1117"]]
354 354  
355 +
356 +(% style="display:none" %) (%%)
357 +
358 +==== **aR0!- aR9!,  aRC0!- aRC9!** ====
359 +
360 +
355 355  Start Continuous Measurement
356 356  
357 357  Start Continuous Measurement – Request CRC
... ... @@ -362,46 +362,48 @@
362 362  
363 363  Downlink: AA 03 aa bb cc dd
364 364  
365 -aa: SDI-12 sensor address.
371 +**aa**: SDI-12 sensor address.
366 366  
367 -bb: 0: no CRC, 1: request CRC
373 +**bb**: 0: no CRC, 1: request CRC
368 368  
369 -cc: 1-9: Additional Measurement, 0: no additional measurement
375 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
370 370  
371 -dd: delay (in second) to send **aD0!** to get return.
377 +**dd**: delay (in second) to send **aD0!** to get return.
372 372  
373 373  
374 374  The following is the display information on the serial port and the server.
375 375  
376 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
377 377  
378 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
379 379  
380 -1.
381 -11.
382 -111. Advance SDI-12 Debug command
384 +[[image:image-20230201092208-14.png]]
383 383  
386 +
387 +[[image:image-20230201092208-15.png||height="214" width="1140"]]
388 +
389 +
390 +=== 2.3.2 Advance SDI-12 Debug command ===
391 +
392 +
384 384  This command can be used to debug all SDI-12 command.
385 385  
386 386  
387 387  LoRaWAN Downlink: A8 aa xx xx xx xx bb cc
388 388  
389 -(aa: total SDI-12 command length)
398 +**aa **: total SDI-12 command length
390 390  
391 -(xx: SDI-12 command)
400 +**xx **: SDI-12 command
392 392  
393 -(bb: Delay to wait for return)
402 +**bb **: Delay to wait for return
394 394  
395 -(cc: 0: dont uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100)
404 +**cc **: 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100
396 396  
397 397  
398 -Example: AT+CFGDEV =0RC0!,1
407 +**Example: **AT+CFGDEV =0RC0!,1
399 399  
400 -0RC0!: SDI-12 Command,
409 +**0RC0! **: SDI-12 Command,
401 401  
402 -1: Delay 1 second.  ( 0: 810 mini-second)
411 +**1 **: Delay 1 second.  ( 0: 810 mini-second)
403 403  
404 -
405 405  Equal Downlink: 0xA8 05 30 52 43 30 21 01 01
406 406  
407 407  
... ... @@ -408,36 +408,37 @@
408 408  The following is the display information on the serial port and the server.
409 409  
410 410  
411 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]
419 +[[image:image-20230201092355-16.png]]
412 412  
413 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]
414 414  
415 -1.
416 -11.
417 -111. Convert ASCII to String
422 +​​​​​​​[[image:image-20230201092355-17.png||height="426" width="1135"]]
418 418  
419 -This command is used to convert between ASCII and String format.
424 +​​​​​​​
420 420  
426 +=== 2.3.3 Convert ASCII to String ===
421 421  
428 +
429 +This command is used to convert between ASCII and String format.
430 +
422 422  AT+CONVFORM ( Max length: 80 bytes)
423 423  
424 -Example:
425 425  
426 -1)AT+CONVFORM=0,string   Convert String from String to ASCII
434 +**Example:**
427 427  
428 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]
436 +1) AT+CONVFORM=0, string Convert String from String to ASCII
429 429  
438 +[[image:1675214845056-885.png]]
430 430  
431 -2)AT+CONVFORM=1,ASCII   Convert ASCII to String.
432 432  
433 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png]]
441 +2) AT+CONVFORM=1, ASCII Convert ASCII to String.
434 434  
443 +[[image:1675214856590-846.png]]
435 435  
445 +​​​​​​​
436 436  
437 -1.
438 -11.
439 -111. Define periodically SDI-12 commands and uplink.
447 +=== 2.3.4 Define periodically SDI-12 commands and uplink. ===
440 440  
449 +
441 441  AT+COMMANDx & AT+DATACUTx
442 442  
443 443  User can define max 15 SDI-12 Commands (AT+COMMAND1 ~~ AT+COMMANDF). On each uplink period (TDC time, default 20 minutes), SDI-12-LB will send these SDI-12 commands and wait for return from SDI-12 sensors. SDI-12-LB will then combine these returns and uplink via LoRaWAN.
... ... @@ -447,21 +447,21 @@
447 447  
448 448  **AT+COMMANDx=var1,var2,var3,var4.**
449 449  
450 -var1: SDI-12 command , for example: 0RC0!
459 +**var1**: SDI-12 command , for example: 0RC0!
451 451  
452 -var2: Wait timeout for return. (unit: second)
461 +**var2**: Wait timeout for return. (unit: second)
453 453  
454 -var3: Whether to send //addrD0!// to get return after var2 timeout. 0: Dont Send //addrD0!//; 1: Send //addrD0!//.
463 +**var3**: Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//.
455 455  
456 -var4: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries.
465 +**var4**: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries.
457 457  
458 -0  No validation check;
467 +**0 ** No validation check;
459 459  
460 -1  Check if return chars are printable char(0x20 ~~ 0x7E);
469 +**1**  Check if return chars are printable char(0x20 ~~ 0x7E);
461 461  
462 -2  Check if there is return from SDI-12 sensor
471 +**2**  Check if there is return from SDI-12 sensor
463 463  
464 -3  Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
473 +**3**  Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
465 465  
466 466  
467 467  Each AT+COMMANDx is followed by a **AT+DATACUT** command. AT+DATACUT command is used to take the useful string from the SDI-12 sensor so the final payload will have the minimum length to uplink.
... ... @@ -469,23 +469,25 @@
469 469  
470 470  **AT+DATACUTx** : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
471 471  
472 -|(((
473 -AT+DATACUTx=a,b,c
481 +(% border="1" style="background-color:#f7faff; width:436px" %)
482 +|(% style="width:433px" %)(((
483 +**AT+DATACUTx=a,b,c**
474 474  
475 -a: length for the return of AT+COMMAND
485 +**a**:  length for the return of AT+COMMAND
476 476  
477 -b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
487 +**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
478 478  
479 -c: define the position for valid value. 
489 +**c**:  define the position for valid value. 
480 480  )))
481 481  
482 -For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895” ,. Below AT+DATACUT1 will get different result to combine payload:
492 +For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895” , Below AT+DATACUT1 will get different result to combine payload:
483 483  
484 484  
485 -|AT+DATACUT1 value|Final Result to combine Payload
486 -|34,1,1+2+3|0D 00 01 30 31 33
487 -|34,2,1~~8+12~~16|0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32
488 -|34,2,1~~34|0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A
495 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %)
496 +|(% style="width:170px" %)**AT+DATACUT1 value**|(% style="width:338px" %)**Final Result to combine Payload**
497 +|(% style="width:170px" %)34,1,1+2+3|(% style="width:338px" %)0D 00 01 30 31 33
498 +|(% style="width:170px" %)34,2,1~~8+12~~16|(% style="width:338px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32
499 +|(% style="width:170px" %)34,2,1~~34|(% style="width:338px" %)0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A
489 489  
490 490  * ** Downlink Payload:**
491 491  
... ... @@ -499,21 +499,17 @@
499 499  
500 500  Where:
501 501  
502 -* MM: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
503 -* NN:  1: set the AT+DATACUT value ; 2: set the AT+DATACUT value.
504 -* LL:  The length of AT+COMMAND or AT+DATACUT command
505 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command
506 -* YY:  If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 
513 +* **MM **: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
514 +* **NN **:  1: set the AT+DATACUT value ; 2: set the AT+DATACUT value.
515 +* **LL **:  The length of AT+COMMAND or AT+DATACUT command
516 +* **XX XX XX XX **: AT+COMMAND or AT+DATACUT command
517 +* **YY **:  If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 
507 507  
508 -Example:
519 +**Example:**
509 509  
510 -**AF 03 01 07 30 4D 43 21 01 01 01 00**: Same as AT+COMMAND3=**0MC!**,** 1**,** 1**,** 1**
521 +[[image:image-20230201094129-18.png]]
511 511  
512 -**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10**
513 513  
514 -**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10**
515 -
516 -
517 517  **Clear SDI12 Command**
518 518  
519 519  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
... ... @@ -533,23 +533,22 @@
533 533  
534 534  
535 535  
536 -
537 537  **command combination**
538 538  
539 539  Below shows a screen shot how the results combines together to a uplink payload.
540 540  
541 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png]]
547 +[[image:1675215745275-920.png]]
542 542  
543 543  
544 -If user dont want to use DATACUT for some command, he simply want to uplink all returns. AT+ALLDATAMOD can be set to 1.
550 +If user don't want to use DATACUT for some command, he simply want to uplink all returns. AT+ALLDATAMOD can be set to 1.
545 545  
546 -**AT+ALLDATAMOD** will simply get all return and dont do CRC check as result for SDI-12 command. AT+DATACUTx command has higher priority, if AT+DATACUTx has been set, AT+ALLDATAMOD will be ignore for this SDI-12 command.
552 +**AT+ALLDATAMOD** will simply get all return and don't do CRC check as result for SDI-12 command. AT+DATACUTx command has higher priority, if AT+DATACUTx has been set, AT+ALLDATAMOD will be ignore for this SDI-12 command.
547 547  
548 548  
549 -For example: as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result.
555 +**For example: ** as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result.
550 550  
551 551  
552 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png]]
558 +[[image:1675215782925-448.png]]
553 553  
554 554  
555 555  If AT+ALLDATAMOD=1, **FX,X** will be added in the payload, FX specify which command is used and X specify the length of return. for example in above screen, F1 05 means the return is from AT+COMMAND1 and the return is 5 bytes.
... ... @@ -558,6 +558,7 @@
558 558  
559 559  **Compose Uplink**
560 560  
567 +
561 561  **AT+DATAUP=0**
562 562  
563 563  Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK.
... ... @@ -567,7 +567,7 @@
567 567  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
568 568  
569 569  
570 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png]]
577 +[[image:1675215828102-844.png]]
571 571  
572 572  
573 573  **AT+DATAUP=1**
... ... @@ -576,7 +576,7 @@
576 576  
577 577  Final Payload is
578 578  
579 -**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
586 +__**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__
580 580  
581 581  1. Battery Info (2 bytes): Battery voltage
582 582  1. PAYVER (1 byte): Defined by AT+PAYVER
... ... @@ -584,26 +584,24 @@
584 584  1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
585 585  1. DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
586 586  
587 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png]]
594 +[[image:1675215848113-696.png]]
588 588  
589 589  
590 590  **Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
591 591  
592 - ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
599 +* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
600 +* For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
601 +* For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
602 +* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
593 593  
594 - * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
604 +**~ When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
595 595  
596 - * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
606 +**~ When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.**
597 597  
598 - ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
599 599  
600 - *** When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
609 +== ​​​​​​​2.4 Uplink Payload ==
601 601  
602 -**~ When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.**
603 603  
604 -1.
605 -11. Uplink Payload
606 -
607 607  Uplink payloads have two types:
608 608  
609 609  * Distance Value: Use FPORT=2
... ... @@ -612,24 +612,23 @@
612 612  The application server should parse the correct value based on FPORT settings.
613 613  
614 614  
615 -1.
616 -11.
617 -111. Device Payload, FPORT=5
620 +=== 2.4.1 Device Payload, FPORT~=5 ===
618 618  
622 +
619 619  Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server.
620 620  
621 -
622 622  Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink.
623 623  
627 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %)
628 +|(% colspan="6" style="width:434px" %)**Device Status (FPORT=5)**
629 +|(% style="width:102px" %)**Size (bytes)**|(% style="width:67px" %)**1**|(% style="width:80px" %)**2**|(% style="width:89px" %)**1**|(% style="width:52px" %)**1**|(% style="width:44px" %)**2**
630 +|(% style="width:102px" %)**Value**|(% style="width:67px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:89px" %)Frequency Band|(% style="width:52px" %)Sub-band|(% style="width:44px" %)BAT
624 624  
625 -|(% colspan="6" %)**Device Status (FPORT=5)**
626 -|**Size (bytes)**|**1**|**2**|**1**|**1**|**2**
627 -|**Value**|Sensor Model|Firmware Version|Frequency Band|Sub-band|BAT
628 -
629 629  Example parse in TTNv3
630 630  
631 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png]]
634 +[[image:1675215946738-635.png]]
632 632  
636 +
633 633  **Sensor Model**: For SDI-12-LB, this value is 0x17
634 634  
635 635  **Firmware Version**: 0x0100, Means: v1.0.0 version
... ... @@ -683,10 +683,9 @@
683 683  Ex2: 0x0B49 = 2889mV
684 684  
685 685  
686 -1.
687 -11.
688 -111. Uplink Payload, FPORT=2
690 +=== 2.4.2 Uplink Payload, FPORT~=2 ===
689 689  
692 +
690 690  There are different cases for uplink. See below
691 691  
692 692  * SDI-12 Debug Command return: FPORT=100
... ... @@ -693,30 +693,24 @@
693 693  
694 694  * Periodically Uplink: FPORT=2
695 695  
696 -|(((
697 -**Size**
698 -
699 -**(bytes)**
700 -)))|**2**|**1**|**Length depends on the return from the commands**
701 -|**Value**|(((
699 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %)
700 +|(% style="width:93px" %)(((
701 +**Size(bytes)**
702 +)))|(% style="width:83px" %)**2**|(% style="width:70px" %)**1**|(% style="width:234px" %)**Length depends on the return from the commands**
703 +|(% style="width:93px" %)**Value**|(% style="width:83px" %)(((
702 702  Battery(mV)
703 -
704 704  &
705 -
706 706  Interrupt_Flag
707 -)))|[[PAYLOAD_VER>>path:#Probe_Model]]|(((
708 -If the valid payload is too long and exceed the maximum support
709 -
707 +)))|(% style="width:70px" %)[[PAYLOAD_VER>>path:#Probe_Model]]|(% style="width:234px" %)(((
708 +If the valid payload is too long and exceed the maximum support.
710 710  Payload length in server,server will show payload not provided in the LoRaWAN server.
711 711  )))
712 712  
713 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png]]
712 +[[image:1675216282284-923.png]]
714 714  
715 715  
715 +=== 2.4.3 Battery Info ===
716 716  
717 -1.
718 -11.
719 -111. Battery Info
720 720  
721 721  Check the battery voltage for SDI-12-LB.
722 722  
... ... @@ -725,216 +725,37 @@
725 725  Ex2: 0x0B49 = 2889mV
726 726  
727 727  
728 -1.
729 -11.
730 -111. Interrupt Pin
725 +=== 2.4.4 Interrupt Pin ===
731 731  
727 +
732 732  This data field shows if this packet is generated by **Interrupt Pin** or not. [[Click here>>path:#Int_mod]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>path:#pins]].
733 733  
730 +**Example:**
734 734  
735 -Example:
736 -
737 737  Ex1: 0x0B45:0x0B&0x80= 0x00    Normal uplink packet.
738 738  
739 739  Ex2: 0x8B49:0x8B&0x80= 0x80    Interrupt Uplink Packet.
740 740  
741 741  
742 -1.
743 -11.
744 -111. Payload version
737 +=== 2.4.5 Payload version ===
745 745  
746 746  
747 747  
741 +=== 2.4.6 ​Decode payload in The Things Network ===
748 748  
749 749  
750 -1.
751 -11.
752 -111. ​Decode payload in The Things Network
753 -
754 754  While using TTN network, you can add the payload format to decode the payload.
755 755  
756 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]]
746 +[[image:1675216779406-595.png]]
757 757  
758 758  
759 759  There is no fix payload decoder in LoRaWAN server because the SDI-12 sensors returns are different. User need to write the decoder themselves for their case.
760 760  
751 +SDI-12-LB TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
761 761  
762 -下面的解码生成超链接放进去.
763 763  
764 -function Decoder(bytes, port) {
765 765  
766 - if(port==5)
767 -
768 - {
769 -
770 - var freq_band;
771 -
772 - var sub_band;
773 -
774 - var sensor;
775 -
776 -
777 - if(bytes[0]==0x17)
778 -
779 - sensor= "SDI12-LB";
780 -
781 -
782 - var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f);
783 -
784 -
785 - if(bytes[3]==0x01)
786 -
787 - freq_band="EU868";
788 -
789 - else if(bytes[3]==0x02)
790 -
791 - freq_band="US915";
792 -
793 - else if(bytes[3]==0x03)
794 -
795 - freq_band="IN865";
796 -
797 - else if(bytes[3]==0x04)
798 -
799 - freq_band="AU915";
800 -
801 - else if(bytes[3]==0x05)
802 -
803 - freq_band="KZ865";
804 -
805 - else if(bytes[3]==0x06)
806 -
807 - freq_band="RU864";
808 -
809 - else if(bytes[3]==0x07)
810 -
811 - freq_band="AS923";
812 -
813 - else if(bytes[3]==0x08)
814 -
815 - freq_band="AS923_1";
816 -
817 - else if(bytes[3]==0x09)
818 -
819 - freq_band="AS923_2";
820 -
821 - else if(bytes[3]==0x0A)
822 -
823 - freq_band="AS923_3";
824 -
825 - else if(bytes[3]==0x0F)
826 -
827 - freq_band="AS923_4";
828 -
829 - else if(bytes[3]==0x0B)
830 -
831 - freq_band="CN470";
832 -
833 - else if(bytes[3]==0x0C)
834 -
835 - freq_band="EU433";
836 -
837 - else if(bytes[3]==0x0D)
838 -
839 - freq_band="KR920";
840 -
841 - else if(bytes[3]==0x0E)
842 -
843 - freq_band="MA869";
844 -
845 -
846 - if(bytes[4]==0xff)
847 -
848 - sub_band="NULL";
849 -
850 - else
851 -
852 - sub_band=bytes[4];
853 -
854 -
855 - var bat= (bytes[5]<<8 | bytes[6])/1000;
856 -
857 -
858 - return {
859 -
860 - SENSOR_MODEL:sensor,
861 -
862 - FIRMWARE_VERSION:firm_ver,
863 -
864 - FREQUENCY_BAND:freq_band,
865 -
866 - SUB_BAND:sub_band,
867 -
868 - BAT:bat,
869 -
870 - }
871 -
872 - }
873 -
874 - else if(port==100)
875 -
876 - {
877 -
878 - var datas_sum={};
879 -
880 - for(var j=0;j<bytes.length;j++)
881 -
882 - {
883 -
884 - var datas= String.fromCharCode(bytes[j]);
885 -
886 - if(j=='0')
887 -
888 - datas_sum.datas_sum=datas;
889 -
890 - else
891 -
892 - datas_sum.datas_sum+=datas;
893 -
894 - }
895 -
896 -
897 - return datas_sum;
898 -
899 - }
900 -
901 - else
902 -
903 - {
904 -
905 - var decode={};
906 -
907 - decode.EXTI_Trigger= (bytes[0] & 0x80)? "TRUE":"FALSE";  
908 -
909 - decode.BatV= ((bytes[0]<<8 | bytes[1])&0x7FFF)/1000;
910 -
911 - decode.Payver= bytes[2];
912 -
913 - for(var i=3;i<bytes.length;i++)
914 -
915 - {
916 -
917 - var data= String.fromCharCode(bytes[i]);
918 -
919 - if(i=='3')
920 -
921 - decode.data_sum=data;
922 -
923 - else
924 -
925 - decode.data_sum+=data;
926 -
927 - }
928 -
929 - return decode; 
930 -
931 - }
932 -
933 -
934 -}
935 -
936 -
937 -1.
755 +1.
938 938  11. Uplink Interval
939 939  
940 940  The SDI-12-LB by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link:
... ... @@ -943,7 +943,7 @@
943 943  
944 944  
945 945  
946 -1.
764 +1.
947 947  11. Frequency Plans
948 948  
949 949  The SDI12-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.
... ... @@ -953,7 +953,7 @@
953 953  
954 954  
955 955  
956 -1.
774 +1.
957 957  11. Firmware Change Log
958 958  
959 959  **Firmware download link:**
... ... @@ -992,7 +992,7 @@
992 992  
993 993  
994 994  
995 -1.
813 +1.
996 996  11. Set Transmit Interval Time
997 997  
998 998  Feature: Change LoRaWAN End Node Transmit Interval.
... ... @@ -1022,7 +1022,7 @@
1022 1022  * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds
1023 1023  * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds
1024 1024  
1025 -1.
843 +1.
1026 1026  11. Set Interrupt Mode
1027 1027  
1028 1028  Feature, Set Interrupt mode for GPIO_EXIT.
... ... @@ -1055,7 +1055,7 @@
1055 1055  * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode
1056 1056  * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger
1057 1057  
1058 -1.
876 +1.
1059 1059  11. Set the output time
1060 1060  
1061 1061  Feature, Control the output 3V3 , 5V or 12V.
... ... @@ -1136,7 +1136,7 @@
1136 1136  * Example 5: Downlink Payload: 070301F4  -> AT+12VT=500
1137 1137  * Example 6: Downlink Payload: 07030000  -> AT+12VT=0
1138 1138  
1139 -1.
957 +1.
1140 1140  11. Set the all data mode
1141 1141  
1142 1142  Feature, Set the all data mode.
... ... @@ -1159,7 +1159,7 @@
1159 1159  * Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0
1160 1160  * Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1
1161 1161  
1162 -1.
980 +1.
1163 1163  11. Set the splicing payload for uplink
1164 1164  
1165 1165  Feature, splicing payload for uplink.
... ... @@ -1200,7 +1200,7 @@
1200 1200  This means that the interval is set to 0x000014=20S
1201 1201  
1202 1202  
1203 -1.
1021 +1.
1204 1204  11. Set the payload version
1205 1205  
1206 1206  Feature, Set the payload version.
... ... @@ -1239,7 +1239,7 @@
1239 1239  SDI-12-LB:  2.45v ~~ 3.6v
1240 1240  
1241 1241  
1242 -1.
1060 +1.
1243 1243  11. Replace Battery
1244 1244  
1245 1245  Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery.
... ... @@ -1248,7 +1248,7 @@
1248 1248  
1249 1249  
1250 1250  
1251 -1.
1069 +1.
1252 1252  11. Power Consumption Analyze
1253 1253  
1254 1254  Dragino Battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
... ... @@ -1288,14 +1288,14 @@
1288 1288  
1289 1289  
1290 1290  1.
1291 -11.
1109 +11.
1292 1292  111. ​Battery Note
1293 1293  
1294 1294  The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
1295 1295  
1296 1296  
1297 -1.
1298 -11.
1115 +1.
1116 +11.
1299 1299  111. ​Replace the battery
1300 1300  
1301 1301  You can change the battery in the SDI-12-LB.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won’t be voltage drop between battery and main board.
... ... @@ -1316,7 +1316,7 @@
1316 1316  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]
1317 1317  
1318 1318  
1319 -1.
1137 +1.
1320 1320  11. AT Command Set
1321 1321  
1322 1322  1. OTA firmware update
... ... @@ -1349,7 +1349,6 @@
1349 1349  * Weight / pcs : g
1350 1350  
1351 1351  
1352 -
1353 1353  1. ​Support
1354 1354  
1355 1355  * 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.
1675214845056-885.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +20.4 KB
Content
1675214856590-846.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +18.6 KB
Content
1675215745275-920.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +187.6 KB
Content
1675215782925-448.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +142.5 KB
Content
1675215828102-844.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +231.3 KB
Content
1675215848113-696.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +50.5 KB
Content
1675215946738-635.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +38.4 KB
Content
1675216282284-923.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +47.0 KB
Content
1675216779406-595.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +59.2 KB
Content
image-20230201091630-10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +15.1 KB
Content
image-20230201091630-11.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +53.1 KB
Content
image-20230201091954-12.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +13.8 KB
Content
image-20230201091954-13.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.7 KB
Content
image-20230201092208-14.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +14.3 KB
Content
image-20230201092208-15.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +46.6 KB
Content
image-20230201092355-16.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +21.6 KB
Content
image-20230201092355-17.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +80.0 KB
Content
image-20230201094129-18.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +12.8 KB
Content