Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Xiaoling on 2025/04/25 08:58
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 11 added, 0 removed)
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 -a l! ~-~- Get SDI-12sensor Identification258 +[[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! : StartNon-ConcurrentMeasurement284 +==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ==== 290 290 291 -aMC!: Start Non-Concurrent Measurement – Request CRC 292 292 293 -aM 1!-aM9!:AdditionalMeasurements287 +**aM! **: Start Non-Concurrent Measurement 294 294 295 -aMC 1!-aMC9!:AdditionalMeasurements– Request CRC289 +**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! :StartConcurrentMeasurement– RequestCRC320 +==== **aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! ** ==== 325 325 326 -aC1!- aC9!: Start Additional Concurrent Measurements 327 327 328 -aC C1!-aCC9!: StartAdditionalConcurrent Measurements – Request CRC323 +**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 -a R0!-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: don’t 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,41 @@ 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. 420 420 425 + 421 421 427 +=== 2.3.3 Convert ASCII to String === 428 + 429 + 430 +This command is used to convert between ASCII and String format. 431 + 422 422 AT+CONVFORM ( Max length: 80 bytes) 423 423 424 -Example: 425 425 426 - 1)AT+CONVFORM=0,string Convert String fromString to ASCII435 +**Example:** 427 427 428 - [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]437 +1) AT+CONVFORM=0, string Convert String from String to ASCII 429 429 439 +[[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]]442 +2) AT+CONVFORM=1, ASCII Convert ASCII to String. 434 434 444 +[[image:1675214856590-846.png]] 435 435 436 436 437 -1. 438 -11. 439 -111. Define periodically SDI-12 commands and uplink. 440 440 448 + 449 + 450 + 451 +=== 2.3.4 Define periodically SDI-12 commands and uplink. === 452 + 453 + 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! 463 +**var1**: SDI-12 command , for example: 0RC0! 451 451 452 -var2: Wait timeout for return. (unit: second) 465 +**var2**: Wait timeout for return. (unit: second) 453 453 454 -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!//. 455 455 456 -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. 457 457 458 -0 471 +**0 ** No validation check; 459 459 460 -1 Check if return chars are printable char(0x20 ~~ 0x7E); 473 +**1** Check if return chars are printable char(0x20 ~~ 0x7E); 461 461 462 -2 Check if there is return from SDI-12 sensor 475 +**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); 477 +**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,14 +469,15 @@ 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 -|((( 485 +(% border="1" style="background-color:#f7faff; width:436px" %) 486 +|(% style="width:433px" %)((( 473 473 AT+DATACUTx=a,b,c 474 474 475 -a: length for the return of AT+COMMAND 489 +**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. 491 +**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. 493 +**c**: define the position for valid value. 480 480 ))) 481 481 482 482 For example, if return from AT+COMMAND1 is “013METER TER12 112T12-00024895” ,. Below AT+DATACUT1 will get different result to combine payload:
- 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
- image-20230201091257-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.3 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