Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Mengting Qiu on 2025/07/03 15:42
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 4 removed)
Details
- Page properties
-
- Content
-
... ... @@ -3,7 +3,6 @@ 3 3 4 4 **Table of Contents:** 5 5 6 -{{toc/}} 7 7 8 8 9 9 ... ... @@ -17,23 +17,22 @@ 17 17 18 18 19 19 20 - 21 21 = 1. Introduction = 22 22 23 23 == 1.1 What is SDI-12 to LoRaWAN Converter == 24 24 25 25 26 -The Dragino (% style="color:blue" %)**SDI-12-LB**(%%)is a(% style="color:blue" %)**SDI-12 to LoRaWAN Converter **(%%)designed for Smart Agriculture solution.24 +The Dragino **SDI-12-LB** is a **SDI-12 to LoRaWAN Converter **designed for Smart Agriculture solution. 27 27 28 28 SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous [[serial communications>>url:https://en.wikipedia.org/wiki/Serial_communication]] protocol for intelligent sensors that monitor environment data. SDI-12 protocol is widely used in Agriculture sensor and Weather Station sensors. 29 29 30 -SDI-12-LB has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol. 28 +**SDI-12-LB** has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol. 31 31 32 -The LoRa wireless technology used in SDI-12-LB allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. 30 +The LoRa wireless technology used in **SDI-12-LB** allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. 33 33 34 -SDI-12-LB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years.32 +**SDI-12-LB** is powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use up to 5 years. 35 35 36 -Each SDI-12-LB is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. 34 +Each **SDI-12-LB** is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. 37 37 38 38 39 39 [[image:image-20230201084414-1.png||height="464" width="1108"]] ... ... @@ -41,6 +41,8 @@ 41 41 42 42 43 43 42 + 43 + 44 44 == 1.2 Features == 45 45 46 46 ... ... @@ -59,18 +59,18 @@ 59 59 == 1.3 Specification == 60 60 61 61 62 - (% style="color:#037691" %)**Micro Controller:**62 +**Micro Controller:** 63 63 64 64 * MCU: 48Mhz ARM 65 65 * Flash: 256KB 66 66 * RAM: 64KB 67 67 68 - (% style="color:#037691" %)**Common DC Characteristics:**68 +**Common DC Characteristics:** 69 69 70 70 * Supply Voltage: 2.5v ~~ 3.6v 71 71 * Operating Temperature: -40 ~~ 85°C 72 72 73 - (% style="color:#037691" %)**LoRa Spec:**73 +**LoRa Spec:** 74 74 75 75 * Frequency Range, Band 1 (HF): 862 ~~ 1020 Mhz 76 76 * Max +22 dBm constant RF output vs. ... ... @@ -77,19 +77,19 @@ 77 77 * RX sensitivity: down to -139 dBm. 78 78 * Excellent blocking immunity 79 79 80 - (% style="color:#037691" %)**Current Input Measuring :**80 +**Current Input Measuring :** 81 81 82 82 * Range: 0 ~~ 20mA 83 83 * Accuracy: 0.02mA 84 84 * Resolution: 0.001mA 85 85 86 - (% style="color:#037691" %)**Voltage Input Measuring:**86 +**Voltage Input Measuring:** 87 87 88 88 * Range: 0 ~~ 30v 89 89 * Accuracy: 0.02v 90 90 * Resolution: 0.001v 91 91 92 - (% style="color:#037691" %)**Battery:**92 +**Battery:** 93 93 94 94 * Li/SOCI2 un-chargeable battery 95 95 * Capacity: 8500mAh ... ... @@ -97,7 +97,7 @@ 97 97 * Max continuously current: 130mA 98 98 * Max boost current: 2A, 1 second 99 99 100 - (% style="color:#037691" %)**Power Consumption**100 +**Power Consumption** 101 101 102 102 * Sleep Mode: 5uA @ 3.3v 103 103 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm ... ... @@ -112,9 +112,9 @@ 112 112 == 1.5 Sleep mode and working mode == 113 113 114 114 115 - (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.115 +**Deep Sleep Mode: **Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life. 116 116 117 - (% style="color:blue" %)**Working Mode: **(%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.117 +**Working Mode: **In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode. 118 118 119 119 120 120 == 1.6 Button & LEDs == ... ... @@ -160,6 +160,9 @@ 160 160 == 1.9 Mechanical == 161 161 162 162 163 + 164 + 165 + 163 163 [[image:image-20230201090139-2.png]] 164 164 165 165 [[image:image-20230201090139-3.png]] ... ... @@ -172,7 +172,7 @@ 172 172 == 2.1 How it works == 173 173 174 174 175 -The SDI-12-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%)mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and 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.178 +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. 176 176 177 177 178 178 == 2.2 Quick guide to connect to LoRaWAN server (OTAA) == ... ... @@ -187,7 +187,7 @@ 187 187 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. 188 188 189 189 190 - (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from SDI-12-LB.193 +**Step 1**: Create a device in TTN with the OTAA keys from SDI-12-LB. 191 191 192 192 Each SDI-12-LB is shipped with a sticker with the default device EUI as below: 193 193 ... ... @@ -201,35 +201,35 @@ 201 201 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: 202 202 203 203 204 - (% style="color:blue" %)**Register the device**207 +**Register the device** 205 205 206 206 [[image:1675213652444-622.png]] 207 207 208 208 209 - (% style="color:blue" %)**Add APP EUI and DEV EUI**212 +**Add APP EUI and DEV EUI** 210 210 211 211 212 212 [[image:1675213661769-223.png]] 213 213 214 214 215 - (% style="color:blue" %)**Add APP EUI in the application**218 +**Add APP EUI in the application** 216 216 217 217 218 218 [[image:1675213675852-577.png]] 219 219 220 220 221 - (% style="color:blue" %)**Add APP KEY**224 +**Add APP KEY** 222 222 223 223 [[image:1675213686734-883.png]] 224 224 225 225 226 - (% style="color:blue" %)**Step 2**(%%): Activate on SDI-12-LB229 +**Step 2**: Activate on SDI-12-LB 227 227 228 228 229 229 Press the button for 5 seconds to activate the SDI-12-LB. 230 230 231 231 232 - (% 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.235 +**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. 233 233 234 234 235 235 [[image:1675213704414-644.png]] ... ... @@ -258,15 +258,15 @@ 258 258 [[image:image-20230201091027-7.png||height="261" width="1179"]] 259 259 260 260 261 -==== (% style="color:blue" %)**al! ~-~- Get SDI-12 sensor Identification**(%%)====264 +==== **al! ~-~- Get SDI-12 sensor Identification** ==== 262 262 263 263 264 264 * AT Command: AT+ADDRI=aa 265 265 * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa 266 266 267 - (% style="color:#037691" %)**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) 268 268 269 - (% style="color:blue" %)**Example :272 +**Example : **AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30) 270 270 271 271 272 272 The following is the display information on the serial port and the server. ... ... @@ -278,31 +278,30 @@ 278 278 [[image:image-20230201091257-9.png||height="225" width="1242"]] 279 279 280 280 281 -==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%)====284 +==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ==== 282 282 283 283 284 - (% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement287 +**aM! **: Start Non-Concurrent Measurement 285 285 286 - (% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC289 +**aMC! **: Start Non-Concurrent Measurement – Request CRC 287 287 288 - (% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements291 +**aM1!- aM9! **: Additional Measurements 289 289 290 - (% style="color:red" %)**aMC1!- aMC9!**(%%): Additional Measurements – Request CRC293 +**aMC1!- aMC9!** : Additional Measurements – Request CRC 291 291 292 292 293 293 * AT Command : AT+ADDRM=0,1,0,1 294 - 295 295 * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01 296 296 297 297 Downlink:AA 01 aa bb cc dd 298 298 299 - (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.301 +**aa**: SDI-12 sensor address. 300 300 301 - (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC303 +**bb**: 0: no CRC, 1: request CRC 302 302 303 - (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement305 +**cc**: 1-9: Additional Measurement, 0: no additional measurement 304 304 305 - (% style="color:#037691" %)**dd**(%%): delay (in second) to send(% style="color:#037691" %)**aD0!**(%%)to get return.307 +**dd**: delay (in second) to send **aD0!** to get return. 306 306 307 307 308 308 The following is the display information on the serial port and the server. ... ... @@ -315,16 +315,16 @@ 315 315 316 316 317 317 318 -==== (% style="color:blue" %)**aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! **(%%)====320 +==== **aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! ** ==== 319 319 320 320 321 - (% style="color:red" %)**aC!**(%%): Start Concurrent Measurement323 +**aC!** : Start Concurrent Measurement 322 322 323 - (% style="color:red" %)**aCC!**(%%): Start Concurrent Measurement – Request CRC325 +**aCC!** : Start Concurrent Measurement – Request CRC 324 324 325 - (% style="color:red" %)**aC1!- aC9!**(%%): Start Additional Concurrent Measurements327 +**aC1!- aC9!** : Start Additional Concurrent Measurements 326 326 327 - (% style="color:red" %)**aCC1!- aCC9!**(%%): Start Additional Concurrent Measurements – Request CRC329 +**aCC1!- aCC9!** : Start Additional Concurrent Measurements – Request CRC 328 328 329 329 330 330 * AT Command : AT+ADDRC=0,1,0,1 ... ... @@ -333,13 +333,13 @@ 333 333 334 334 Downlink: AA 02 aa bb cc dd 335 335 336 - (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.338 +**aa**: SDI-12 sensor address. 337 337 338 - (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC340 +**bb**: 0: no CRC, 1: request CRC 339 339 340 - (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement342 +**cc**: 1-9: Additional Measurement, 0: no additional measurement 341 341 342 - (% style="color:#037691" %)**dd**(%%): delay (in second) to send(% style="color:#037691" %)**aD0!**(%%)to get return.344 +**dd**: delay (in second) to send **aD0!** to get return. 343 343 344 344 345 345 The following is the display information on the serial port and the server. ... ... @@ -351,11 +351,11 @@ 351 351 [[image:image-20230201091954-13.png||height="203" width="1117"]] 352 352 353 353 356 +(% style="display:none" %) (%%) 354 354 358 +==== **aR0!- aR9!, aRC0!- aRC9!** ==== 355 355 356 -==== (% style="color:blue" %)**aR0!- aR9!, aRC0!- aRC9!**(%%) ==== 357 357 358 - 359 359 Start Continuous Measurement 360 360 361 361 Start Continuous Measurement – Request CRC ... ... @@ -366,13 +366,13 @@ 366 366 367 367 Downlink: AA 03 aa bb cc dd 368 368 369 - (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.371 +**aa**: SDI-12 sensor address. 370 370 371 - (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC373 +**bb**: 0: no CRC, 1: request CRC 372 372 373 - (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement375 +**cc**: 1-9: Additional Measurement, 0: no additional measurement 374 374 375 - (% style="color:#037691" %)**dd**(%%): delay (in second) to send(% style="color:#037691" %)**aD0!**(%%)to get return.377 +**dd**: delay (in second) to send **aD0!** to get return. 376 376 377 377 378 378 The following is the display information on the serial port and the server. ... ... @@ -385,7 +385,7 @@ 385 385 [[image:image-20230201092208-15.png||height="214" width="1140"]] 386 386 387 387 388 -=== 2.3.2 Advance SDI-12 Debug command === 390 +=== 2.3.2 Advance SDI-12 Debug command === 389 389 390 390 391 391 This command can be used to debug all SDI-12 command. ... ... @@ -393,20 +393,20 @@ 393 393 394 394 LoRaWAN Downlink: A8 aa xx xx xx xx bb cc 395 395 396 - (% style="color:#037691" %)**aa **(%%): total SDI-12 command length398 +**aa **: total SDI-12 command length 397 397 398 - (% style="color:#037691" %)**xx **(%%): SDI-12 command400 +**xx **: SDI-12 command 399 399 400 - (% style="color:#037691" %)**bb **(%%): Delay to wait for return402 +**bb **: Delay to wait for return 401 401 402 - (% style="color:#037691" %)**cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100404 +**cc **: 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100 403 403 404 404 405 - (% style="color:blue" %)**Example: **(%%)AT+CFGDEV =0RC0!,1407 +**Example: **AT+CFGDEV =0RC0!,1 406 406 407 - (% style="color:#037691" %)**0RC0! **(%%): SDI-12 Command,409 +**0RC0! **: SDI-12 Command, 408 408 409 - (% style="color:#037691" %)**1 **(%%): Delay 1 second. ( 0: 810 mini-second)411 +**1 **: Delay 1 second. ( 0: 810 mini-second) 410 410 411 411 Equal Downlink: 0xA8 05 30 52 43 30 21 01 01 412 412 ... ... @@ -417,9 +417,11 @@ 417 417 [[image:image-20230201092355-16.png]] 418 418 419 419 420 -[[image:image-20230201092355-17.png||height="426" width="1135"]] 422 +[[image:image-20230201092355-17.png||height="426" width="1135"]] 421 421 422 422 425 + 426 + 423 423 === 2.3.3 Convert ASCII to String === 424 424 425 425 ... ... @@ -428,7 +428,7 @@ 428 428 AT+CONVFORM ( Max length: 80 bytes) 429 429 430 430 431 - (% style="color:blue" %)**Example:**435 +**Example:** 432 432 433 433 1) AT+CONVFORM=0, string Convert String from String to ASCII 434 434 ... ... @@ -440,6 +440,10 @@ 440 440 [[image:1675214856590-846.png]] 441 441 442 442 447 + 448 + 449 + 450 + 443 443 === 2.3.4 Define periodically SDI-12 commands and uplink. === 444 444 445 445 ... ... @@ -448,31 +448,31 @@ 448 448 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. 449 449 450 450 451 -* (% style="color:blue" %)**AT Command:**459 +* ** AT Command:** 452 452 453 - (% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.**461 +**AT+COMMANDx=var1,var2,var3,var4.** 454 454 455 - (% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0!463 +**var1**: SDI-12 command , for example: 0RC0! 456 456 457 - (% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second)465 +**var2**: Wait timeout for return. (unit: second) 458 458 459 - (% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//.467 +**var3**: Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//. 460 460 461 - (% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries.469 +**var4**: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries. 462 462 463 - (% style="color:red" %)**0 **(%%)No validation check;471 +**0 ** No validation check; 464 464 465 - (% style="color:red" %)**1**(%%)Check if return chars are printable char(0x20 ~~ 0x7E);473 +**1** Check if return chars are printable char(0x20 ~~ 0x7E); 466 466 467 - (% style="color:#red" %)**2**(%%)Check if there is return from SDI-12 sensor475 +**2** Check if there is return from SDI-12 sensor 468 468 469 - (% style="color:red" %)**3**(%%)Check if return pass CRC check ( SDI-12 command var1 must include CRC request);477 +**3** Check if return pass CRC check ( SDI-12 command var1 must include CRC request); 470 470 471 471 472 -Each AT+COMMANDx is followed by a (% style="color:blue" %)**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.480 +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. 473 473 474 474 475 - (% style="color:blue" %)**AT+DATACUTx**(%%): This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.483 +**AT+DATACUTx** : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes. 476 476 477 477 (% border="1" style="background-color:#f7faff; width:436px" %) 478 478 |(% style="width:433px" %)((( ... ... @@ -480,7 +480,7 @@ 480 480 481 481 **a**: length for the return of AT+COMMAND 482 482 483 -**b**: 491 +**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections. 484 484 485 485 **c**: define the position for valid value. 486 486 ))) ... ... @@ -494,49 +494,50 @@ 494 494 |(% 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 495 495 |(% 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 496 496 497 -* (% style="color:blue" %)** Downlink Payload:**505 +* ** Downlink Payload:** 498 498 499 - (% style="color:blue" %)**0xAF**(%%)downlink command can be used to set AT+COMMANDx or AT+DATACUTx.507 +**0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 500 500 501 501 502 - (% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**510 +**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.** 503 503 504 504 505 -Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)**513 +Format: ** AF MM NN LL XX XX XX XX YY** 506 506 507 507 Where: 508 508 509 -* (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,510 -* (% style="color:#037691" %)**NN **(%%): 1: set the AT+DATACUT value ; 2: set the AT+DATACUT value.511 -* (% style="color:#037691" %)**LL **(%%): The length of AT+COMMAND or AT+DATACUT command512 -* (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command513 -* (% style="color:#037691" %)**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.517 +* **MM **: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 518 +* **NN **: 1: set the AT+DATACUT value ; 2: set the AT+DATACUT value. 519 +* **LL **: The length of AT+COMMAND or AT+DATACUT command 520 +* **XX XX XX XX **: AT+COMMAND or AT+DATACUT command 521 +* **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. 514 514 515 -(% style="color:blue" %)**Example:** 516 516 524 +**Example:** 525 + 517 517 [[image:image-20230201094129-18.png]] 518 518 519 519 520 - (% style="color:blue" %)**Clear SDI12 Command**529 +**Clear SDI12 Command** 521 521 522 522 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 523 523 524 524 525 -* (% style="color:#037691" %)**AT Command:**534 +* ** AT Command:** 526 526 527 - (% style="color:#4f81bd" %)**AT+CMDEAR=mm,nn**(%%)mm: start position of erase ,nn: stop position of erase536 +**~ AT+CMDEAR=mm,nn** mm: start position of erase ,nn: stop position of erase 528 528 529 529 530 530 Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 531 531 532 532 533 -* (% style="color:#037691" %)** Downlink Payload:**542 +* ** Downlink Payload:** 534 534 535 - (% style="color:#4f81bd" %)**0x09 aa bb**(%%)same as AT+CMDEAR=aa,bb544 +**~ 0x09 aa bb** same as AT+CMDEAR=aa,bb 536 536 537 537 538 538 539 - (% style="color:blue" %)**command combination**548 +**command combination** 540 540 541 541 Below shows a screen shot how the results combines together to a uplink payload. 542 542 ... ... @@ -545,24 +545,23 @@ 545 545 546 546 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. 547 547 548 - (% style="color:blue" %)**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.557 +**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. 549 549 550 550 551 - (% style="color:#4f81bd" %)**For example: ** as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result.560 +**For example: ** as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result. 552 552 553 553 554 554 [[image:1675215782925-448.png]] 555 555 556 556 557 -If AT+ALLDATAMOD=1, (% style="color:#4f81bd" %)**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.566 +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 558 559 559 560 560 561 - (% style="color:blue" %)**Compose Uplink**570 +**Compose Uplink** 562 562 572 +**AT+DATAUP=0** 563 563 564 -(% style="color:#4f81bd" %)**AT+DATAUP=0** 565 - 566 566 Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK. 567 567 568 568 Final Payload is Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx ... ... @@ -573,7 +573,7 @@ 573 573 [[image:1675215828102-844.png]] 574 574 575 575 576 - (% style="color:#4f81bd" %)**AT+DATAUP=1**584 +**AT+DATAUP=1** 577 577 578 578 Compose the uplink payload with value returns in sequence and send with Multiply UPLINKs. 579 579 ... ... @@ -590,7 +590,7 @@ 590 590 [[image:1675215848113-696.png]] 591 591 592 592 593 - (% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**601 +**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:** 594 594 595 595 * For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 596 596 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). ... ... @@ -597,9 +597,9 @@ 597 597 * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). 598 598 * For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 599 599 600 - (% style="color:red" %)**When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**608 +**~ When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;** 601 601 602 - (% style="color:red" %)**When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.**610 +**~ 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 604 605 605 == 2.4 Uplink Payload == ... ... @@ -613,13 +613,14 @@ 613 613 The application server should parse the correct value based on FPORT settings. 614 614 615 615 616 - ===2.4.1 Device Payload, FPORT~=5===624 +2.4.1 Device Payload, FPORT=5 617 617 618 - 619 619 Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server. 620 620 628 + 621 621 Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink. 622 622 631 + 623 623 (% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %) 624 624 |(% colspan="6" style="width:434px" %)**Device Status (FPORT=5)** 625 625 |(% 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** ... ... @@ -629,13 +629,12 @@ 629 629 630 630 [[image:1675215946738-635.png]] 631 631 641 +**Sensor Model**: For SDI-12-LB, this value is 0x17 632 632 633 - (% style="color:#037691" %)**SensorModel**(%%):For SDI-12-LB,this valueis0x17643 +**Firmware Version**: 0x0100, Means: v1.0.0 version 634 634 635 - (% style="color:#037691" %)**FirmwareVersion**(%%):0x0100, Means:v1.0.0 version645 +**Frequency Band**: 636 636 637 -(% style="color:#037691" %)**Frequency Band**: 638 - 639 639 *0x01: EU868 640 640 641 641 *0x02: US915 ... ... @@ -665,7 +665,7 @@ 665 665 *0x0e: MA869 666 666 667 667 668 - (% style="color:#037691" %)**Sub-Band**:676 +**Sub-Band**: 669 669 670 670 AU915 and US915:value 0x00 ~~ 0x08 671 671 ... ... @@ -674,7 +674,7 @@ 674 674 Other Bands: Always 0x00 675 675 676 676 677 - (% style="color:#037691" %)**Battery Info**:685 +**Battery Info**: 678 678 679 679 Check the battery voltage. 680 680 ... ... @@ -683,9 +683,10 @@ 683 683 Ex2: 0x0B49 = 2889mV 684 684 685 685 686 -=== 2.4.2 Uplink Payload, FPORT~=2 === 694 +1. 695 +11. 696 +111. Uplink Payload, FPORT=2 687 687 688 - 689 689 There are different cases for uplink. See below 690 690 691 691 * SDI-12 Debug Command return: FPORT=100 ... ... @@ -692,24 +692,30 @@ 692 692 693 693 * Periodically Uplink: FPORT=2 694 694 695 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %) 696 -|(% style="width:93px" %)((( 697 -**Size(bytes)** 698 -)))|(% style="width:83px" %)**2**|(% style="width:70px" %)**1**|(% style="width:234px" %)**Length depends on the return from the commands** 699 -|(% style="width:93px" %)**Value**|(% style="width:83px" %)((( 704 +|((( 705 +**Size** 706 + 707 +**(bytes)** 708 +)))|**2**|**1**|**Length depends on the return from the commands** 709 +|**Value**|((( 700 700 Battery(mV) 711 + 701 701 & 713 + 702 702 Interrupt_Flag 703 -)))|(% style="width:70px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:234px" %)((( 704 -If the valid payload is too long and exceed the maximum support. 715 +)))|[[PAYLOAD_VER>>path:#Probe_Model]]|((( 716 +If the valid payload is too long and exceed the maximum support 717 + 705 705 Payload length in server,server will show payload not provided in the LoRaWAN server. 706 706 ))) 707 707 708 -[[image: 1675216282284-923.png]]721 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png]] 709 709 710 710 711 -=== 2.4.3 Battery Info === 712 712 725 +1. 726 +11. 727 +111. Battery Info 713 713 714 714 Check the battery voltage for SDI-12-LB. 715 715 ... ... @@ -718,12 +718,14 @@ 718 718 Ex2: 0x0B49 = 2889mV 719 719 720 720 721 -=== 2.4.4 Interrupt Pin === 736 +1. 737 +11. 738 +111. Interrupt Pin 722 722 740 +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]]. 723 723 724 -This data field shows if this packet is generated by (% style="color:#037691" %)**Interrupt Pin**(%%) or not. [[Click here>>||anchor="H3.2SetInterruptMode"]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.7PinMapping"]]. 725 725 726 - **Example:**743 +Example: 727 727 728 728 Ex1: 0x0B45:0x0B&0x80= 0x00 Normal uplink packet. 729 729 ... ... @@ -730,58 +730,239 @@ 730 730 Ex2: 0x8B49:0x8B&0x80= 0x80 Interrupt Uplink Packet. 731 731 732 732 733 -=== 2.4.5 Payload version === 750 +1. 751 +11. 752 +111. Payload version 734 734 735 735 736 736 737 -=== 2.4.6 Decode payload in The Things Network === 738 738 739 739 758 +1. 759 +11. 760 +111. Decode payload in The Things Network 761 + 740 740 While using TTN network, you can add the payload format to decode the payload. 741 741 742 -[[image: 1675216779406-595.png]]764 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]] 743 743 744 744 745 745 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. 746 746 747 -SDI-12-LB TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]] 748 748 770 +下面的解码生成超链接放进去. 749 749 750 - == 2.5 UplinkInterval==772 +function Decoder(bytes, port) { 751 751 774 + if(port==5) 752 752 753 - TheSDI-12-LBby default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link:776 + { 754 754 755 - [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval]]]]778 + var freq_band; 756 756 780 + var sub_band; 757 757 782 + var sensor; 758 758 759 759 760 - ==2.6FrequencyPlans==785 + if(bytes[0]==0x17) 761 761 787 + sensor= "SDI12-LB"; 762 762 763 -The SDI-12-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. 764 764 765 - [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]790 + var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f); 766 766 767 767 793 + if(bytes[3]==0x01) 768 768 769 - ==2.7FirmwareChange Log==795 + freq_band="EU868"; 770 770 797 + else if(bytes[3]==0x02) 771 771 799 + freq_band="US915"; 800 + 801 + else if(bytes[3]==0x03) 802 + 803 + freq_band="IN865"; 804 + 805 + else if(bytes[3]==0x04) 806 + 807 + freq_band="AU915"; 808 + 809 + else if(bytes[3]==0x05) 810 + 811 + freq_band="KZ865"; 812 + 813 + else if(bytes[3]==0x06) 814 + 815 + freq_band="RU864"; 816 + 817 + else if(bytes[3]==0x07) 818 + 819 + freq_band="AS923"; 820 + 821 + else if(bytes[3]==0x08) 822 + 823 + freq_band="AS923_1"; 824 + 825 + else if(bytes[3]==0x09) 826 + 827 + freq_band="AS923_2"; 828 + 829 + else if(bytes[3]==0x0A) 830 + 831 + freq_band="AS923_3"; 832 + 833 + else if(bytes[3]==0x0F) 834 + 835 + freq_band="AS923_4"; 836 + 837 + else if(bytes[3]==0x0B) 838 + 839 + freq_band="CN470"; 840 + 841 + else if(bytes[3]==0x0C) 842 + 843 + freq_band="EU433"; 844 + 845 + else if(bytes[3]==0x0D) 846 + 847 + freq_band="KR920"; 848 + 849 + else if(bytes[3]==0x0E) 850 + 851 + freq_band="MA869"; 852 + 853 + 854 + if(bytes[4]==0xff) 855 + 856 + sub_band="NULL"; 857 + 858 + else 859 + 860 + sub_band=bytes[4]; 861 + 862 + 863 + var bat= (bytes[5]<<8 | bytes[6])/1000; 864 + 865 + 866 + return { 867 + 868 + SENSOR_MODEL:sensor, 869 + 870 + FIRMWARE_VERSION:firm_ver, 871 + 872 + FREQUENCY_BAND:freq_band, 873 + 874 + SUB_BAND:sub_band, 875 + 876 + BAT:bat, 877 + 878 + } 879 + 880 + } 881 + 882 + else if(port==100) 883 + 884 + { 885 + 886 + var datas_sum={}; 887 + 888 + for(var j=0;j<bytes.length;j++) 889 + 890 + { 891 + 892 + var datas= String.fromCharCode(bytes[j]); 893 + 894 + if(j=='0') 895 + 896 + datas_sum.datas_sum=datas; 897 + 898 + else 899 + 900 + datas_sum.datas_sum+=datas; 901 + 902 + } 903 + 904 + 905 + return datas_sum; 906 + 907 + } 908 + 909 + else 910 + 911 + { 912 + 913 + var decode={}; 914 + 915 + decode.EXTI_Trigger= (bytes[0] & 0x80)? "TRUE":"FALSE"; 916 + 917 + decode.BatV= ((bytes[0]<<8 | bytes[1])&0x7FFF)/1000; 918 + 919 + decode.Payver= bytes[2]; 920 + 921 + for(var i=3;i<bytes.length;i++) 922 + 923 + { 924 + 925 + var data= String.fromCharCode(bytes[i]); 926 + 927 + if(i=='3') 928 + 929 + decode.data_sum=data; 930 + 931 + else 932 + 933 + decode.data_sum+=data; 934 + 935 + } 936 + 937 + return decode; 938 + 939 + } 940 + 941 + 942 +} 943 + 944 + 945 +1. 946 +11. Uplink Interval 947 + 948 +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: 949 + 950 +[[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval]] 951 + 952 + 953 + 954 +1. 955 +11. Frequency Plans 956 + 957 +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. 958 + 959 + 960 +[[https:~~/~~/wiki.dragino.com/index.php?title=End_Device_Frequency_Band>>url:https://wiki.dragino.com/index.php?title=End_Device_Frequency_Band]] 961 + 962 + 963 + 964 +1. 965 +11. Firmware Change Log 966 + 772 772 **Firmware download link:** 773 773 774 774 [[https:~~/~~/www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0>>url:https://www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0]] 775 775 776 776 777 -= 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink = 778 778 973 +1. Configure SDI-12-LB via AT Command or LoRaWAN Downlink 779 779 780 780 Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink. 781 781 782 782 * AT Command Connection: See [[FAQ>>path:#AT_COMMAND]]. 783 -* LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.978 +* LoRaWAN Downlink instruction for different platforms: 784 784 980 +[[http:~~/~~/wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server>>url:http://wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server]] 981 + 982 + 785 785 There are two kinds of commands to configure SDI-12-LB, they are: 786 786 787 787 * **General Commands**. ... ... @@ -793,7 +793,7 @@ 793 793 794 794 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: 795 795 796 -[[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/]]994 +[[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_Downlink_Command>>url:http://wiki.dragino.com/index.php?title=End_Device_Downlink_Command]] 797 797 798 798 799 799 * **Commands special design for SDI-12-LB** ... ... @@ -801,223 +801,247 @@ 801 801 These commands only valid for SDI-12-LB, as below: 802 802 803 803 804 -== 3.1 Set Transmit Interval Time == 805 805 1003 +1. 1004 +11. Set Transmit Interval Time 806 806 807 807 Feature: Change LoRaWAN End Node Transmit Interval. 808 808 809 - (% style="color:blue" %)**AT Command: AT+TDC**1008 +**AT Command: AT+TDC** 810 810 811 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %) 812 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 137px;" %)**Function**|=**Response** 813 -|(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( 1010 +|**Command Example**|**Function**|**Response** 1011 +|AT+TDC=?|Show current transmit Interval|((( 814 814 30000 1013 + 815 815 OK 1015 + 816 816 the interval is 30000ms = 30s 817 817 ))) 818 -| (% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((1018 +|AT+TDC=60000|Set Transmit Interval|((( 819 819 OK 1020 + 820 820 Set transmit interval to 60000ms = 60 seconds 821 821 ))) 822 822 823 - (% style="color:blue" %)**Downlink Command: 0x01**1024 +**Downlink Command: 0x01** 824 824 825 - 826 826 Format: Command Code (0x01) followed by 3 bytes time value. 827 827 828 -If the downlink payload=0100003C, it means set the END Node 's Transmit Interval to 0x00003C=60(S), while type code is 01.1028 +If the downlink payload=0100003C, it means set the END Node’s Transmit Interval to 0x00003C=60(S), while type code is 01. 829 829 830 -* Example 1: Downlink Payload: 0100001E 831 -* Example 2: Downlink Payload: 0100003C 1030 +* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 1031 +* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 832 832 833 -== 3.2 Set Interrupt Mode == 1033 +1. 1034 +11. Set Interrupt Mode 834 834 835 - 836 836 Feature, Set Interrupt mode for GPIO_EXIT. 837 837 838 - (% style="color:blue" %)**AT Command: AT+INTMOD**1038 +**AT Command: AT+INTMOD** 839 839 840 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %) 841 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 187px;" %)**Function**|=(% style="width: 165px;" %)**Response** 842 -|(% style="width:156px" %)AT+INTMOD=?|(% style="width:187px" %)Show current interrupt mode|(% style="width:165px" %)((( 1040 +|**Command Example**|**Function**|**Response** 1041 +|AT+INTMOD=?|Show current interrupt mode|((( 843 843 0 1043 + 844 844 OK 1045 + 845 845 the mode is 0 = No interruption 846 846 ))) 847 -| (% style="width:156px" %)AT+INTMOD=2|(% style="width:187px" %)(((1048 +|AT+INTMOD=2|((( 848 848 Set Transmit Interval 849 -~1. (Disable Interrupt), 850 -2. (Trigger by rising and falling edge) 851 -3. (Trigger by falling edge) 852 -4. (Trigger by rising edge) 853 -)))|(% style="width:165px" %)OK 854 854 855 -(% style="color:blue" %)**Downlink Command: 0x06** 1051 +1. (Disable Interrupt), 1052 +1. (Trigger by rising and falling edge), 1053 +1. (Trigger by falling edge) 1054 +1. (Trigger by rising edge) 1055 +)))|OK 856 856 1057 +**Downlink Command: 0x06** 1058 + 857 857 Format: Command Code (0x06) followed by 3 bytes. 858 858 859 859 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. 860 860 861 -* Example 1: Downlink Payload: 06000000 862 -* Example 2: Downlink Payload: 06000003 1063 +* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 1064 +* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 863 863 864 -== 3.3 Set the output time == 1066 +1. 1067 +11. Set the output time 865 865 866 - 867 867 Feature, Control the output 3V3 , 5V or 12V. 868 868 869 - (% style="color:blue" %)**AT Command: AT+3V3T**1071 +**AT Command: AT+3V3T** 870 870 871 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:474px" %) 872 -|=(% style="width: 154px;" %)**Command Example**|=(% style="width: 201px;" %)**Function**|=(% style="width: 116px;" %)**Response** 873 -|(% style="width:154px" %)AT+3V3T=?|(% style="width:201px" %)Show 3V3 open time.|(% style="width:116px" %)((( 1073 +|**Command Example**|**Function**|**Response** 1074 +|AT+3V3T=?|Show 3V3 open time.|((( 874 874 0 1076 + 875 875 OK 876 876 ))) 877 -| (% style="width:154px" %)AT+3V3T=0|(% style="width:201px" %)Normally open 3V3 power supply.|(% style="width:116px" %)(((1079 +|AT+3V3T=0|Normally open 3V3 power supply.|((( 878 878 OK 1081 + 879 879 default setting 880 880 ))) 881 -| (% style="width:154px" %)AT+3V3T=1000|(% style="width:201px" %)Close after a delay of 1000 milliseconds.|(% style="width:116px" %)(((1084 +|AT+3V3T=1000|Close after a delay of 1000 milliseconds.|((( 882 882 OK 1086 + 1087 + 883 883 ))) 884 -| (% style="width:154px" %)AT+3V3T=65535|(% style="width:201px" %)Normally closed 3V3 power supply.|(% style="width:116px" %)(((1089 +|AT+3V3T=65535|Normally closed 3V3 power supply.|((( 885 885 OK 1091 + 1092 + 886 886 ))) 887 887 888 - (% style="color:blue" %)**AT Command: AT+5VT**1095 +**AT Command: AT+5VT** 889 889 890 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:470px" %) 891 -|=(% style="width: 155px;" %)**Command Example**|=(% style="width: 196px;" %)**Function**|=(% style="width: 114px;" %)**Response** 892 -|(% style="width:155px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:114px" %)((( 1097 +|**Command Example**|**Function**|**Response** 1098 +|AT+5VT=?|Show 5V open time.|((( 893 893 0 1100 + 894 894 OK 895 895 ))) 896 -| (% style="width:155px" %)AT+5VT=0|(% style="width:196px" %)Normally closed 5V power supply.|(% style="width:114px" %)(((1103 +|AT+5VT=0|Normally closed 5V power supply.|((( 897 897 OK 1105 + 898 898 default setting 899 899 ))) 900 -| (% style="width:155px" %)AT+5VT=1000|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:114px" %)(((1108 +|AT+5VT=1000|Close after a delay of 1000 milliseconds.|((( 901 901 OK 1110 + 1111 + 902 902 ))) 903 -| (% style="width:155px" %)AT+5VT=65535|(% style="width:196px" %)Normally open 5V power supply.|(% style="width:114px" %)(((1113 +|AT+5VT=65535|Normally open 5V power supply.|((( 904 904 OK 1115 + 1116 + 905 905 ))) 906 906 907 - (% style="color:blue" %)**AT Command: AT+12VT**1119 +**AT Command: AT+12VT** 908 908 909 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:443px" %) 910 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 199px;" %)**Function**|=(% style="width: 83px;" %)**Response** 911 -|(% style="width:156px" %)AT+12VT=?|(% style="width:199px" %)Show 12V open time.|(% style="width:83px" %)((( 1121 +|**Command Example**|**Function**|**Response** 1122 +|AT+12VT=?|Show 12V open time.|((( 912 912 0 1124 + 913 913 OK 914 914 ))) 915 -| (% style="width:156px" %)AT+12VT=0|(% style="width:199px" %)Normally closed 12V power supply.|(% style="width:83px" %)OK916 -| (% style="width:156px" %)AT+12VT=500|(% style="width:199px" %)Close after a delay of 500 milliseconds.|(% style="width:83px" %)(((1127 +|AT+12VT=0|Normally closed 12V power supply.|OK 1128 +|AT+12VT=500|Close after a delay of 500 milliseconds.|((( 917 917 OK 1130 + 1131 + 918 918 ))) 919 919 920 - (% style="color:blue" %)**Downlink Command: 0x07**1134 +**Downlink Command: 0x07** 921 921 922 922 Format: Command Code (0x07) followed by 3 bytes. 923 923 924 924 The first byte is which power, the second and third bytes are the time to turn on. 925 925 926 -* Example 1: Downlink Payload: 070101F4 **~-~-->**927 -* Example 2: Downlink Payload: 0701FFFF **~-~-->**AT+3V3T=65535928 -* Example 3: Downlink Payload: 070203E8 **~-~-->**AT+5VT=1000929 -* Example 4: Downlink Payload: 07020000 **~-~-->**AT+5VT=0930 -* Example 5: Downlink Payload: 070301F4 **~-~-->**AT+12VT=500931 -* Example 6: Downlink Payload: 07030000 **~-~-->**AT+12VT=01140 +* Example 1: Downlink Payload: 070101F4 -> AT+3V3T=500 1141 +* Example 2: Downlink Payload: 0701FFFF -> AT+3V3T=65535 1142 +* Example 3: Downlink Payload: 070203E8 -> AT+5VT=1000 1143 +* Example 4: Downlink Payload: 07020000 -> AT+5VT=0 1144 +* Example 5: Downlink Payload: 070301F4 -> AT+12VT=500 1145 +* Example 6: Downlink Payload: 07030000 -> AT+12VT=0 932 932 933 -== 3.4 Set the all data mode == 1147 +1. 1148 +11. Set the all data mode 934 934 935 - 936 936 Feature, Set the all data mode. 937 937 938 - (% style="color:blue" %)**AT Command: AT+ALLDATAMOD**1152 +**AT Command: AT+ALLDATAMOD** 939 939 940 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %) 941 -|=**Command Example**|=**Function**|=**Response** 1154 +|**Command Example**|**Function**|**Response** 942 942 |AT+ALLDATAMOD=?|Show current all data mode|((( 943 943 0 1157 + 1158 + 944 944 OK 945 945 ))) 946 946 |AT+ALLDATAMOD=1|Set all data mode is 1.|OK 947 947 948 - (% style="color:blue" %)**Downlink Command: 0xAB**1163 +**Downlink Command: 0xAB** 949 949 950 950 Format: Command Code (0xAB) followed by 1 bytes. 951 951 952 -* Example 1: Downlink Payload: AB 00 953 -* Example 2: Downlink Payload: AB 01 1167 +* Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0 1168 +* Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1 954 954 955 -== 3.5 Set the splicing payload for uplink == 1170 +1. 1171 +11. Set the splicing payload for uplink 956 956 957 - 958 958 Feature, splicing payload for uplink. 959 959 960 - (% style="color:blue" %)**AT Command: AT+DATAUP**1175 +**AT Command: AT+DATAUP** 961 961 962 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %) 963 -|=(% style="width: 154px;" %)**Command Example**|=(% style="width: 266px;" %)**Function**|=**Response** 964 -|(% style="width:154px" %)AT+DATAUP =?|(% style="width:266px" %)Show current splicing payload for uplink mode|((( 1177 +|**Command Example**|**Function**|**Response** 1178 +|AT+DATAUP =?|Show current splicing payload for uplink mode|((( 965 965 0 1180 + 1181 + 966 966 OK 967 967 ))) 968 -| (% style="width:154px" %)AT+DATAUP =0|(% style="width:266px" %)(((1184 +|AT+DATAUP =0|((( 969 969 Set splicing payload for uplink mode is 0. 1186 + 1187 + 970 970 )))|((( 971 971 OK 1190 + 1191 + 972 972 ))) 973 -|(% style="width:154px" %)AT+DATAUP =1|(% style="width:266px" %)Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK 974 -|(% style="width:154px" %)AT+DATAUP =1,20000|(% style="width:266px" %)((( 975 -Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds. 1193 +|AT+DATAUP =1|Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK 1194 +|AT+DATAUP =1,20000|((( 1195 +Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds. 1196 + 1197 + 976 976 )))|OK 977 977 978 - (% style="color:blue" %)**Downlink Command: 0xAD**1200 +**Downlink Command: 0xAD** 979 979 980 980 Format: Command Code (0xAD) followed by 1 bytes or 5 bytes. 981 981 982 -* Example 1: Downlink Payload: AD 00 983 -* Example 2: Downlink Payload: AD 01 984 -* Example 3: Downlink Payload: AD 01 00 00 14 1204 +* Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0 1205 +* Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1 1206 +* Example 3: Downlink Payload: AD 01 00 00 14~/~/ AT+DATAUP =1,20000 985 985 986 986 This means that the interval is set to 0x000014=20S 987 987 988 988 989 -== 3.6 Set the payload version == 1211 +1. 1212 +11. Set the payload version 990 990 991 991 Feature, Set the payload version. 992 992 993 - (% style="color:blue" %)**AT Command: AT+PAYVER**1216 +**AT Command: AT+PAYVER** 994 994 995 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %) 996 -|=(% style="width: 158px;" %)**Command Example**|=(% style="width: 192px;" %)**Function**|=**Response** 997 -|(% style="width:158px" %)AT+PAYVER=?|(% style="width:192px" %)Show current payload version|((( 1218 +|**Command Example**|**Function**|**Response** 1219 +|AT+PAYVER=?|Show current payload version|((( 998 998 1 1221 + 1222 + 999 999 OK 1000 1000 ))) 1001 -| (% style="width:158px" %)AT+PAYVER=5|(% style="width:192px" %)Set payload version is 5.|OK1225 +|AT+PAYVER=5|Set payload version is 5.|OK 1002 1002 1003 - (% style="color:blue" %)**Downlink Command: 0xAE**1227 +**Downlink Command: 0xAE** 1004 1004 1005 1005 Format: Command Code (0xAE) followed by 1 bytes. 1006 1006 1007 -* Example 1: Downlink Payload: AE 01 1008 -* Example 2: Downlink Payload: AE 05 1231 +* Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1 1232 +* Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5 1009 1009 1010 -= 4. Battery & how to replace = 1234 +1. Battery & how to replace 1235 +11. Battery Type 1011 1011 1012 - == 4.1 Battery Type==1237 +SDI-12-LB is equipped with a [[8500mAH ER26500 Li-SOCI2 battery>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]. The battery is un-rechargeable battery with low discharge rate targeting for 8~~10 years use. This type of battery is commonly used in IoT target for long-term running, such as water meter. 1013 1013 1014 1014 1015 -SDI-12-LB is equipped with a [[8500mAH ER26500 Li-SOCI2 battery>>https://www.dropbox.com/sh/w9l2oa3ytpculph/AAAPtt-apH4lYfCj-2Y6lHvQa?dl=0]]. The battery is un-rechargeable battery with low discharge rate targeting for 8~~10 years use. This type of battery is commonly used in IoT target for long-term running, such as water meter. 1016 - 1017 - 1018 1018 The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance. 1019 1019 1020 -[[image: 1675234124233-857.png]]1242 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]] 1021 1021 1022 1022 1023 1023 Minimum Working Voltage for the SDI-12-LB: ... ... @@ -1025,25 +1025,31 @@ 1025 1025 SDI-12-LB: 2.45v ~~ 3.6v 1026 1026 1027 1027 1028 -== 4.2 Replace Battery == 1250 +1. 1251 +11. Replace Battery 1029 1029 1030 - 1031 1031 Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery. 1032 1032 1033 1033 And make sure the positive and negative pins match. 1034 1034 1035 1035 1036 -== 4.3 Power Consumption Analyze == 1037 1037 1259 +1. 1260 +11. Power Consumption Analyze 1038 1038 1039 1039 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. 1040 1040 1264 + 1041 1041 Instruction to use as below: 1042 1042 1043 -(% style="color:blue" %)**Step 1:**(%%) Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: [[https:~~/~~/www.dropbox.com/sh/zwex6i331j5oeq2/AACIMf9f_v2qsJ39CuMQ5Py_a?dl=0>>https://www.dropbox.com/sh/zwex6i331j5oeq2/AACIMf9f_v2qsJ39CuMQ5Py_a?dl=0]] 1044 1044 1045 - (% style="color:blue" %)**Step2:**(%%)Openand choose1268 +Step 1: Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: 1046 1046 1270 +[[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]] 1271 + 1272 + 1273 +Step 2: Open it and choose 1274 + 1047 1047 * Product Model 1048 1048 * Uplink Interval 1049 1049 * Working Mode ... ... @@ -1050,103 +1050,76 @@ 1050 1050 1051 1051 And the Life expectation in difference case will be shown on the right. 1052 1052 1281 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png]] 1053 1053 1054 -[[image:1675234155374-163.png]] 1055 1055 1056 - 1057 1057 The battery related documents as below: 1058 1058 1059 -* [[Battery Dimension>>http s://www.dropbox.com/s/ox5g9njwjle7aw3/LSN50-Battery-Dimension.pdf?dl=0]],1060 -* [[Lithium-Thionyl Chloride Battery datasheet, Tech Spec>>http s://www.dropbox.com/sh/d4oyfnp8o94180o/AABQewCNSh5GPeQH86UxRgQQa?dl=0]]1061 -* [[Lithium-ion Battery-Capacitor datasheet>>http s://www.dropbox.com/s/791gjes2lcbfi1p/SPC_1520_datasheet.jpg?dl=0]], [[Tech Spec>>https://www.dropbox.com/s/4pkepr9qqqvtzf2/SPC1520%20Technical%20Specification20171123.pdf?dl=0]]1286 +* [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/&file=LSN50-Battery-Dimension.pdf]], 1287 +* [[Lithium-Thionyl Chloride Battery>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet-EN.pdf]] datasheet, [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet_PM-ER18505-S-02-LF_EN.pdf]] 1288 +* [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC_1520_datasheet.jpg]], [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC1520%20Technical%20Specification20171123.pdf]] 1062 1062 1290 +|((( 1291 +JST-XH-2P connector 1292 +))) 1063 1063 1064 -[[image:i mage-20230201145019-19.png]]1294 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png]] 1065 1065 1066 1066 1067 -=== 4.3.1 Battery Note === 1068 1068 1298 +1. 1299 +11. 1300 +111. Battery Note 1069 1069 1070 1070 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. 1071 1071 1072 1072 1073 -=== 4.3.2 Replace the battery === 1305 +1. 1306 +11. 1307 +111. Replace the battery 1074 1074 1309 +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. 1075 1075 1076 -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. 1077 1077 1078 -The default battery pack of SDI-12-LB includes a ER26500 plus super capacitor. If user can 't find this pack locally, they can find ER26500 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes)1312 +The default battery pack of SDI-12-LB includes a ER26500 plus super capacitor. If user can’t find this pack locally, they can find ER26500 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes) 1079 1079 1080 1080 1081 1081 1082 -= 5. Remote Configure device = 1083 1083 1084 -== 5.1 Connect via BLE == 1085 1085 1086 1086 1087 -Please see this instruction for how to configure via BLE: [[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/]] 1319 +1. Remote Configure device 1320 +11. Connect via BLE 1088 1088 1322 +Please see this instruction for how to configure via BLE: 1089 1089 1090 - == 5.2ATCommand Set==1324 +[[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/]] 1091 1091 1092 1092 1327 +1. 1328 +11. AT Command Set 1093 1093 1094 - = 6. OTA firmware update=1330 +1. OTA firmware update 1095 1095 1096 - 1097 1097 Please see this link for how to do OTA firmware update. 1098 1098 1099 1099 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]] 1100 1100 1101 1101 1102 -= 7. FAQ = 1103 1103 1104 -== 7.1 How to use AT Command to access device? == 1105 1105 1106 1106 1107 -See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] 1108 1108 1109 1109 1110 -== 7.2 How to update firmware via UART port? == 1111 1111 1112 1112 1113 -See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] 1114 1114 1115 1115 1116 - == 7.3How to change the LoRa FrequencyBands/Region? ==1346 +1. Order Info 1117 1117 1118 - 1119 -You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]]. 1120 -When downloading the images, choose the required image file for download. 1121 - 1122 - 1123 -= 8. Order Info = 1124 - 1125 - 1126 -Part Number: SDI-12-LB-XXX 1127 -XXX: The default frequency band 1128 - 1129 -AS923: LoRaWAN AS923 band 1130 -AU915: LoRaWAN AU915 band 1131 -EU433: LoRaWAN EU433 band 1132 -EU868: LoRaWAN EU868 band 1133 -KR920: LoRaWAN KR920 band 1134 -US915: LoRaWAN US915 band 1135 -IN865: LoRaWAN IN865 band 1136 -CN470: LoRaWAN CN470 band 1137 - 1138 - 1139 - 1140 - 1141 - 1142 - 1143 - 1144 -= 9. Packing Info = 1145 - 1146 - 1147 1147 **Package Includes**: 1148 1148 1149 -* SDI-12-LB SDI-12 to LoRaWAN Converter x 11350 +* SDI-12-LB SDI-12 to LoRaWAN Converter 1150 1150 1151 1151 **Dimension and weight**: 1152 1152 ... ... @@ -1155,11 +1155,13 @@ 1155 1155 * Package Size / pcs : cm 1156 1156 * Weight / pcs : g 1157 1157 1158 -= 10. Support = 1159 1159 1160 1160 1361 +1. Support 1362 + 1161 1161 * 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. 1364 +* Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to 1162 1162 1163 - * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to[[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]]1366 +[[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]] 1164 1164 1165 1165
- 1675216779406-595.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -59.2 KB - Content
- 1675234124233-857.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -75.8 KB - Content
- 1675234155374-163.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -138.2 KB - Content
- image-20230201145019-19.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -82.2 KB - Content