Changes for page LSPH01 -- LoRaWAN Soil pH Sensor User Manual
Last modified by Xiaoling on 2025/04/25 14:08
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Bei - Content
-
... ... @@ -5,6 +5,10 @@ 5 5 6 6 7 7 8 + 9 + 10 + 11 + 8 8 **Table of Contents:** 9 9 10 10 {{toc/}} ... ... @@ -20,11 +20,11 @@ 20 20 21 21 22 22 ((( 23 -The Dragino LSPH01 is a (% style="color: #4f81bd" %)**LoRaWAN Soil pH Sensor**(%%) for IoT of Agriculture. It is designed to measure the soil PH and soil temperature, so to send to the platform to analyze the soil acid or alkali level. The probe is IP68 waterproof.27 +The Dragino LSPH01 is a (% style="color:blue" %)**LoRaWAN Soil pH Sensor**(%%) for IoT of Agriculture. It is designed to measure the (% style="color:blue" %)**soil PH and soil temperature**(%%), so to send to the platform to analyze the soil acid or alkali level. The probe is IP68 waterproof. 24 24 ))) 25 25 26 26 ((( 27 -LSPH01 probe is made by Solid AgCl reference electrode and Pure metal pH sensitive electrode. It can detect soil's**(% style="color:#4f81bd" %)pH (%%)**with high accuracy and stable value. The LSPH01 probe can be buried into soil for long time use.31 +LSPH01 probe is made by Solid AgCl reference electrode and Pure metal pH sensitive electrode. It can detect (% style="color:blue" %)**soil's pH **(%%)with high accuracy and stable value. The LSPH01 probe can be buried into soil for long time use. 28 28 ))) 29 29 30 30 ((( ... ... @@ -32,7 +32,7 @@ 32 32 ))) 33 33 34 34 ((( 35 -LSPH01 is powered by (% style="color: #4f81bd" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years.39 +LSPH01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years. 36 36 ))) 37 37 38 38 ((( ... ... @@ -43,7 +43,6 @@ 43 43 [[image:1654592435432-887.png]] 44 44 45 45 46 - 47 47 == 1.2 Features == 48 48 49 49 ... ... @@ -196,11 +196,11 @@ 196 196 Normal uplink payload: 197 197 ))) 198 198 199 -(% border="1" cellspacing=" 5" style="background-color:#f2f2f2; width:470px" %)200 -|=(% style="width: 60px;background-color:# D9E2F3;color:#0070C0" %)(((202 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %) 203 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 201 201 **Size(bytes)** 202 -)))|=(% style="width: 30px;background-color:# D9E2F3;color:#0070C0" %)**2**|=(% style="width: 70px;background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 50px;background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 70px;background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 50px;background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 80px;background-color:#D9E2F3;color:#0070C0" %)**1**203 -|(% style="width:62.5px" %) **Value**|(% style="width:62.5px" %)[[BAT>>||anchor="H2.3.1BatteryInfo"]]|(% style="width:62.5px" %)(((205 +)))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1** 206 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="H2.3.1BatteryInfo"]]|(% style="width:62.5px" %)((( 204 204 [[Temperature (Optional)>>||anchor="H2.3.2DS18B20Temperaturesensor"]] 205 205 )))|[[Soil pH>>||anchor="H2.3.3SoilpH"]]|[[Soil Temperature>>||anchor="H2.3.4SoilTemperature"]]|((( 206 206 [[Digital Interrupt (Optional)>>||anchor="H2.3.5InterruptPin"]] ... ... @@ -282,8 +282,8 @@ 282 282 ))) 283 283 284 284 285 -(% border="1" cellspacing=" 5" style="background-color:#f2f2f2; width:496px" %)286 -|=(% style="width: 160px;background-color:# D9E2F3;color:#0070C0" %)**Message Type Code**|=(% style="width: 163px;background-color:#D9E2F3;color:#0070C0" %)**Description**|=(% style="width: 173px;background-color:#D9E2F3;color:#0070C0" %)**Payload**288 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:496px" %) 289 +|=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Message Type Code**|=(% style="width: 163px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 173px;background-color:#4F81BD;color:white" %)**Payload** 287 287 |(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)[[Normal Uplink Payload>>||anchor="H2.3200BUplinkPayload"]] 288 288 |(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)[[Configure Info Payload>>||anchor="H3.4GetFirmwareVersionInfo"]] 289 289 |(% style="width:160px" %)0x03|(% style="width:163px" %)Reply Calibration Info|(% style="width:173px" %)[[Calibration Payload>>||anchor="H2.7Calibration"]] ... ... @@ -379,10 +379,8 @@ 379 379 380 380 381 381 ((( 382 -((( 383 383 If the LSPH01 has more than 7 days not use or just clean the pH probe. User should put the probe inside pure water for more than 24 hours for activation. If no put in water, user need to put inside soil for more than 24 hours to ensure the measurement accuracy. 384 384 ))) 385 -))) 386 386 387 387 388 388 === 2.6.2 Measurement === ... ... @@ -389,13 +389,11 @@ 389 389 390 390 391 391 ((( 392 -(% style="color: #4f81bd" %)**Measurement the soil surface:**393 +(% style="color:blue" %)**Measurement the soil surface:** 393 393 ))) 394 394 395 395 ((( 396 396 [[image:1654592946732-634.png]] 397 - 398 - 399 399 ))) 400 400 401 401 ((( ... ... @@ -419,7 +419,7 @@ 419 419 ))) 420 420 421 421 ((( 422 -(% style="color: #4f81bd" %)**Measurement inside soil:**421 +(% style="color:blue" %)**Measurement inside soil:** 423 423 ))) 424 424 425 425 ((( ... ... @@ -434,24 +434,28 @@ 434 434 === 2.6.3 Maintain Probe === 435 435 436 436 437 - 1.(((438 -pH probe electrode is fragile and no strong. User must avoid strong force or hitting it. 436 +((( 437 +~1. pH probe electrode is fragile and no strong. User must avoid strong force or hitting it. 439 439 ))) 440 -1. ((( 441 -After long time use (3~~ 6 months). The probe electrode needs to be clean; user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks like new, user can use pure water to wash it. 439 + 440 +((( 441 +2. After long time use (3~~ 6 months). The probe electrode needs to be clean; user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks like new, user can use pure water to wash it. 442 442 ))) 443 -1. ((( 444 -Probe reference electrode is also no strong, need to avoid strong force or hitting. 443 + 444 +((( 445 +3. Probe reference electrode is also no strong, need to avoid strong force or hitting. 445 445 ))) 446 -1. ((( 447 -User should keep reference electrode wet while not use. 447 + 448 +((( 449 +4. User should keep reference electrode wet while not use. 448 448 ))) 449 -1. ((( 450 -Avoid the probes to touch oily matter. Which will cause issue in accuracy. 451 + 452 +((( 453 +5. Avoid the probes to touch oily matter. Which will cause issue in accuracy. 451 451 ))) 452 -1. ((( 453 -The probe is IP68 can be put in water. 454 454 456 +((( 457 +6. The probe is IP68 can be put in water. 455 455 456 456 457 457 ))) ... ... @@ -459,24 +459,70 @@ 459 459 == 2.7 Calibration == 460 460 461 461 465 +(% style="color:blue" %)**Step1 :**(%%)** Clean probe** 466 + 467 +user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks new, users can clean it to remove hydrochloric acid or other liquids from the surface. 468 + 469 +(% style="color:blue" %)**Step2 :**(%%)** Immerse the sensor in ph buffer solution to make the sensor values stable** 470 + 462 462 ((( 463 463 User can do calibration for the probe. It is limited to use below pH buffer solution to calibrate: 4.00, 6.86, 9.18. When calibration, user need to clean the electrode and put the probe in the pH buffer solution to wait the value stable ( a new clean electrode might need max 24 hours to be stable). 473 + 474 +(% style="color:red" %)**Note:Only one ph buffer with one of the ph values needs to be calibrated during calibration. Wait for the sensor measurement value to be stable, it does not need to be the same as the ph marked by the ph buffer** 475 + 476 + 477 +(% style="color:blue" %)**Step3 :**(%%)** The numerically stable sensors were calibrated using commands** 464 464 ))) 465 465 466 466 ((( 467 -After stable, user can use below command to calibrate. 481 + User can use below command to calibrate. 482 + 483 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:520px" %) 484 +|(% style="background-color:#4f81bd; color:white; width:120px" %)**pH buffer solution**|(% style="background-color:#4f81bd; color:white; width:150px" %)**AT Command to calibrate**|(% style="background-color:#4f81bd; color:white; width:150px" %)**Downlink Command**|(% style="background-color:#4f81bd; color:white; width:100px" %)**Read Cal Value** 485 +|(% style="width:149px" %)4.00|(% style="width:197px" %)AT+PHCAL=4|(% style="width:206px" %)((( 486 +0x13 04 487 +Reply with Calibrate payload 488 +)))|(% style="width:136px" %)((( 489 +AT+PHCAL=? 490 +Example 41,61,91 468 468 ))) 492 +|(% style="width:149px" %)6.86|(% style="width:197px" %)AT+PHCAL=6|(% style="width:206px" %)((( 493 +0x13 06 494 +Reply with Calibrate payload 495 +)))|(% style="width:136px" %)AT+PHCAL=? 496 +|(% style="width:149px" %)9.18|(% style="width:197px" %)AT+PHCAL=9|(% style="width:206px" %)((( 497 +0x13 09 498 +Reply with Calibrate payload 499 +)))|(% style="width:136px" %)AT+PHCAL=? 500 +|(% style="width:149px" %)Factory Default|(% style="width:197px" %)AT+PHCAL=15|(% style="width:206px" %)((( 501 +0x13 15 502 +Reply with Calibrate payload 503 +)))|(% style="width:136px" %)((( 504 +AT+PHCAL=? 505 +Example 151 506 +))) 507 +))) 469 469 470 - [[image:image-20220607171149-4.png]]509 +To use the AT COMMAND, refer to this link: 471 471 511 +* AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]. 472 472 513 +* AT Command via UART Connection : See [[UART Connection>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]]. 514 + 515 +To use Downlink, take TTN as an example, please refer to this link: 516 + 517 +* LoRaWAN Downlink. Instruction for different platforms: See [[IoT LoRaWAN Server>>url:http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 518 + 519 +When the command is successfully used, the node sends a uplink. 520 +This is the payload for uplink 521 + 473 473 (% style="color:#037691" %)**Calibration Payload** 474 474 475 -(% border="1" cellspacing=" 5" style="background-color:#ffffcc;color:green;width:500px" %)476 -|=(% style="width: 60px;" %)((( 477 -**Size 478 -)))|=(% style="width: 100px;" %)**1**|=(% style="width: 100px;" %)**1**|=(% style="width: 100px;" %)**1**|=(% style="width: 50px;" %)**7**|=(% style="width: 90px;" %)**1** 479 -| **Value**|(((524 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %) 525 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 526 +**Size(bytes)** 527 +)))|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**1** 528 +|Value|((( 480 480 PH4 Calibrate value 481 481 )))|PH6.86 Calibrate value|((( 482 482 PH9.18 Calibrate value ... ... @@ -487,12 +487,20 @@ 487 487 488 488 User can also send 0x14 downlink command to poll the current calibration payload. 489 489 490 -[[image:image-20220607171416-7.jpeg]] 539 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:480px" %) 540 +|=(% style="width: 183px; background-color:#4F81BD;color:white" %)**Downlink Control Type**|=(% style="width: 55px; background-color:#4F81BD;color:white" %)FPort|=(% style="width: 93px; background-color:#4F81BD;color:white" %)**Type Code**|=(% style="width: 146px; background-color:#4F81BD;color:white" %)**Downlink payload size(bytes)** 541 +|(% style="width:183px" %)Get Calibration Version Info|(% style="width:55px" %)Any|(% style="width:93px" %)14|(% style="width:146px" %)2 491 491 492 - 493 493 * Reply to the confirmation package: 14 01 544 + 494 494 * Reply to non-confirmed packet: 14 00 495 495 547 +(% style="color:blue" %)**Step4:**(%%)**After the calibration is completed, its measurement results in this ph buffer solution should be consistent with the numerical value of the command used in the calibration.** 548 + 549 +Examples: 550 +After using the command AT+PH=9 in 9.18ph buffer 551 +The readout returned by the sensor in 9.18ph buffer should be pH=9 552 + 496 496 == 2.8 Frequency Plans == 497 497 498 498 ... ... @@ -577,6 +577,7 @@ 577 577 ))) 578 578 579 579 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band 637 + 580 580 * Use the Join successful sub-band if the server doesn't include sub-band info in the OTAA Join Accept message ( TTN v2 doesn't include) 581 581 582 582 === 2.8.3 CN470-510 (CN470) === ... ... @@ -687,6 +687,7 @@ 687 687 ))) 688 688 689 689 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band 748 + 690 690 * Use the Join successful sub-band if the server doesn't include sub-band info in the OTAA Join Accept message ( TTN v2 doesn't include) 691 691 692 692 === 2.8.5 AS920-923 & AS923-925 (AS923) === ... ... @@ -816,9 +816,6 @@ 816 816 922.5 - SF7BW125 to SF12BW125 817 817 ))) 818 818 819 -((( 820 - 821 -))) 822 822 823 823 ((( 824 824 (% style="color:blue" %)**Uplink: (OTAA mode, channel added by JoinAccept message)** ... ... @@ -852,9 +852,6 @@ 852 852 923.3 - SF7BW125 to SF12BW125 853 853 ))) 854 854 855 -((( 856 - 857 -))) 858 858 859 859 ((( 860 860 (% style="color:blue" %)**Downlink:** ... ... @@ -888,9 +888,6 @@ 888 888 865.9850 - SF7BW125 to SF12BW125 889 889 ))) 890 890 891 -((( 892 - 893 -))) 894 894 895 895 ((( 896 896 (% style="color:blue" %)**Downlink:** ... ... @@ -911,6 +911,7 @@ 911 911 The LSPH01 has an internal LED which is to show the status of different state. 912 912 913 913 * The sensor is detected when the device is turned on, and it will flash 4 times quickly when it is detected. 964 + 914 914 * Blink once when device transmit a packet. 915 915 916 916 == 2.10 Firmware Change Log == ... ... @@ -958,9 +958,6 @@ 958 958 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>path:/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]] 959 959 ))) 960 960 961 -((( 962 - 963 -))) 964 964 965 965 * ((( 966 966 (% style="color:#4f81bd" %)** Commands special design for LSPH01** ... ... @@ -978,9 +978,18 @@ 978 978 979 979 (% style="color:#037691" %)**AT Command: AT+TDC** 980 980 981 -[[image:image-20220607171554-8.png]] 1029 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) 1030 +|=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response** 1031 +|(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( 1032 +30000 1033 +OK 1034 +the interval is 30000ms = 30s 1035 +))) 1036 +|(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|((( 1037 +OK 1038 +Set transmit interval to 60000ms = 60 seconds 1039 +))) 982 982 983 - 984 984 ((( 985 985 (% style="color:#037691" %)**Downlink Command: 0x01** 986 986 ))) ... ... @@ -1010,9 +1010,21 @@ 1010 1010 1011 1011 (% style="color:#037691" %)**AT Command: AT+INTMOD** 1012 1012 1013 -[[image:image-20220610105907-1.png]] 1070 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) 1071 +|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response** 1072 +|(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)((( 1073 +0 1074 +OK 1075 +the mode is 0 =No interruption 1076 +))) 1077 +|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)((( 1078 +Set Transmit Interval 1079 +0. (Disable Interrupt), 1080 +~1. (Trigger by rising and falling edge) 1081 +2. (Trigger by falling edge) 1082 +3. (Trigger by rising edge) 1083 +)))|(% style="width:157px" %)OK 1014 1014 1015 - 1016 1016 ((( 1017 1017 (% style="color:#037691" %)**Downlink Command: 0x06** 1018 1018 ))) ... ... @@ -1030,14 +1030,11 @@ 1030 1030 ))) 1031 1031 * ((( 1032 1032 Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 1033 -))) 1034 1034 1035 - (((1103 + 1036 1036 1037 1037 ))) 1038 1038 1039 - 1040 - 1041 1041 == 3.3 Calibrate Sensor == 1042 1042 1043 1043 ... ... @@ -1051,9 +1051,12 @@ 1051 1051 1052 1052 (% style="color:#037691" %)**Downlink Command: 0x26** 1053 1053 1054 -[[image:image-20220607171917-10.png]] 1120 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %) 1121 +|(% style="background-color:#4f81bd; color:white; width:193px" %)**Downlink Control Type**|(% style="background-color:#4f81bd; color:white; width:57px" %)**FPort**|(% style="background-color:#4f81bd; color:white; width:91px" %)**Type Code**|(% style="background-color:#4f81bd; color:white; width:159px" %)**Downlink payload size(bytes)** 1122 +|(% style="width:193px" %)Get Firmware Version Info|(% style="width:57px" %)Any|(% style="width:91px" %)26|(% style="width:149px" %)2 1055 1055 1056 1056 * Reply to the confirmation package: 26 01 1125 + 1057 1057 * Reply to non-confirmed packet: 26 00 1058 1058 1059 1059 Device will send an uplink after got this downlink command. With below payload: ... ... @@ -1060,11 +1060,9 @@ 1060 1060 1061 1061 Configures info payload: 1062 1062 1063 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 1064 -|=((( 1065 -**Size(bytes)** 1066 -)))|=**1**|=**1**|=**1**|=**1**|=**1**|=**5**|=**1** 1067 -|**Value**|Software Type|((( 1132 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) 1133 +|(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**1** 1134 +|Value|Software Type|((( 1068 1068 Frequency 1069 1069 Band 1070 1070 )))|Sub-band|((( ... ... @@ -1077,7 +1077,6 @@ 1077 1077 1078 1078 (% style="color:#037691" %)**Software Type**(%%): Always 0x03 for LSPH01 1079 1079 1080 - 1081 1081 (% style="color:#037691" %)**Frequency Band**: 1082 1082 1083 1083 *0x01: EU868 ... ... @@ -1103,10 +1103,8 @@ 1103 1103 1104 1104 (% style="color:#037691" %)**Sub-Band**(%%): value 0x00 ~~ 0x08 1105 1105 1106 - 1107 1107 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 1108 1108 1109 - 1110 1110 (% style="color:#037691" %)**Sensor Type**: 1111 1111 1112 1112 0x01: LSE01