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,15 +459,26 @@ 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 - Afterstable, user can use below command to calibrate.481 + User can use below command to calibrate. 468 468 469 -(% border="1" cellspacing=" 5" style="background-color:#f2f2f2; width:520px" %)470 -|(% style=" width:120px;background-color:#D9E2F3;color:#0070C0" %)**pH buffer solution**|(% style="width:150px;background-color:#D9E2F3;color:#0070C0" %)**AT Command to calibrate**|(% style="width:150px;background-color:#D9E2F3;color:#0070C0" %)**Downlink Command**|(% style="width:100px;background-color:#D9E2F3;color:#0070C0" %)**Read Cal Value**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** 471 471 |(% style="width:149px" %)4.00|(% style="width:197px" %)AT+PHCAL=4|(% style="width:206px" %)((( 472 472 0x13 04 473 473 Reply with Calibrate payload ... ... @@ -492,16 +492,26 @@ 492 492 ))) 493 493 ))) 494 494 495 - [[image:image-20220607171149-4.png]]509 +To use the AT COMMAND, refer to this link: 496 496 511 +* AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]. 497 497 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 + 498 498 (% style="color:#037691" %)**Calibration Payload** 499 499 500 -(% border="1" cellspacing=" 5" style="background-color:#f2f2f2; width:500px" %)501 -|=(% style="width: 60px;background-color:# D9E2F3;color:#0070C0" %)(((524 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %) 525 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( 502 502 **Size(bytes)** 503 -)))|=(% style="width: 100px;background-color:# D9E2F3;color:#0070C0" %)**1**|=(% style="width: 100px;background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 100px;background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 50px;background-color:#D9E2F3;color:#0070C0" %)**7**|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)**1**504 -| **Value**|(((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|((( 505 505 PH4 Calibrate value 506 506 )))|PH6.86 Calibrate value|((( 507 507 PH9.18 Calibrate value ... ... @@ -512,12 +512,20 @@ 512 512 513 513 User can also send 0x14 downlink command to poll the current calibration payload. 514 514 515 -[[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 516 516 517 - 518 518 * Reply to the confirmation package: 14 01 544 + 519 519 * Reply to non-confirmed packet: 14 00 520 520 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 + 521 521 == 2.8 Frequency Plans == 522 522 523 523 ... ... @@ -602,6 +602,7 @@ 602 602 ))) 603 603 604 604 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band 637 + 605 605 * 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) 606 606 607 607 === 2.8.3 CN470-510 (CN470) === ... ... @@ -712,6 +712,7 @@ 712 712 ))) 713 713 714 714 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band 748 + 715 715 * 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) 716 716 717 717 === 2.8.5 AS920-923 & AS923-925 (AS923) === ... ... @@ -841,9 +841,6 @@ 841 841 922.5 - SF7BW125 to SF12BW125 842 842 ))) 843 843 844 -((( 845 - 846 -))) 847 847 848 848 ((( 849 849 (% style="color:blue" %)**Uplink: (OTAA mode, channel added by JoinAccept message)** ... ... @@ -877,9 +877,6 @@ 877 877 923.3 - SF7BW125 to SF12BW125 878 878 ))) 879 879 880 -((( 881 - 882 -))) 883 883 884 884 ((( 885 885 (% style="color:blue" %)**Downlink:** ... ... @@ -913,9 +913,6 @@ 913 913 865.9850 - SF7BW125 to SF12BW125 914 914 ))) 915 915 916 -((( 917 - 918 -))) 919 919 920 920 ((( 921 921 (% style="color:blue" %)**Downlink:** ... ... @@ -936,6 +936,7 @@ 936 936 The LSPH01 has an internal LED which is to show the status of different state. 937 937 938 938 * The sensor is detected when the device is turned on, and it will flash 4 times quickly when it is detected. 964 + 939 939 * Blink once when device transmit a packet. 940 940 941 941 == 2.10 Firmware Change Log == ... ... @@ -983,9 +983,6 @@ 983 983 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/]] 984 984 ))) 985 985 986 -((( 987 - 988 -))) 989 989 990 990 * ((( 991 991 (% style="color:#4f81bd" %)** Commands special design for LSPH01** ... ... @@ -1003,9 +1003,18 @@ 1003 1003 1004 1004 (% style="color:#037691" %)**AT Command: AT+TDC** 1005 1005 1006 -[[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 +))) 1007 1007 1008 - 1009 1009 ((( 1010 1010 (% style="color:#037691" %)**Downlink Command: 0x01** 1011 1011 ))) ... ... @@ -1035,9 +1035,21 @@ 1035 1035 1036 1036 (% style="color:#037691" %)**AT Command: AT+INTMOD** 1037 1037 1038 -[[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 1039 1039 1040 - 1041 1041 ((( 1042 1042 (% style="color:#037691" %)**Downlink Command: 0x06** 1043 1043 ))) ... ... @@ -1055,14 +1055,11 @@ 1055 1055 ))) 1056 1056 * ((( 1057 1057 Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 1058 -))) 1059 1059 1060 - (((1103 + 1061 1061 1062 1062 ))) 1063 1063 1064 - 1065 - 1066 1066 == 3.3 Calibrate Sensor == 1067 1067 1068 1068 ... ... @@ -1076,9 +1076,12 @@ 1076 1076 1077 1077 (% style="color:#037691" %)**Downlink Command: 0x26** 1078 1078 1079 -[[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 1080 1080 1081 1081 * Reply to the confirmation package: 26 01 1125 + 1082 1082 * Reply to non-confirmed packet: 26 00 1083 1083 1084 1084 Device will send an uplink after got this downlink command. With below payload: ... ... @@ -1085,11 +1085,9 @@ 1085 1085 1086 1086 Configures info payload: 1087 1087 1088 -(% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %) 1089 -|=((( 1090 -**Size(bytes)** 1091 -)))|=**1**|=**1**|=**1**|=**1**|=**1**|=**5**|=**1** 1092 -|**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|((( 1093 1093 Frequency 1094 1094 Band 1095 1095 )))|Sub-band|((( ... ... @@ -1102,7 +1102,6 @@ 1102 1102 1103 1103 (% style="color:#037691" %)**Software Type**(%%): Always 0x03 for LSPH01 1104 1104 1105 - 1106 1106 (% style="color:#037691" %)**Frequency Band**: 1107 1107 1108 1108 *0x01: EU868 ... ... @@ -1128,10 +1128,8 @@ 1128 1128 1129 1129 (% style="color:#037691" %)**Sub-Band**(%%): value 0x00 ~~ 0x08 1130 1130 1131 - 1132 1132 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 1133 1133 1134 - 1135 1135 (% style="color:#037691" %)**Sensor Type**: 1136 1136 1137 1137 0x01: LSE01