5.8 土壌湿度監視システム
5.8.1 土壌湿度センサー

注意:実験中にプラスチックプールから水があふれないようにしてください。他のセンサーに水をこぼすと、ショートやモジュールの故障だけでなく、発熱や爆発の原因となる可能性があります。細心の注意を払ってください!特に小さなお子様は、保護者の方と一緒に操作してください。
Arduino IDEで5.8.1Soil-Humidity-Sensorコードを開きます。
#define SoilHumidityPin 32
void setup() {
Serial.begin(9600);
pinMode(SoilHumidityPin,INPUT);
}
void loop() {
//Define a variable as the value of soil humidity sensor
int ReadValue = analogRead(SoilHumidityPin);
Serial.println(ReadValue);
delay(500);
}
ESP32 Dev ModuleボードとCOMポートを選択し、コードをアップロードします。

テスト結果:
シリアルモニターを開きます。センサーの検出エリアを濡れた指で触れると、現在検出されている湿度値がモニターに表示されます(範囲:0〜4095)。

土壌湿度センサーは、主に体積土壌中の水分量を測定し、土壌水分を監視し、作物の灌漑や森林保護に使用されます。

5.8.2 土壌湿度監視システム
LCD1602を使用して土壌湿度値のリアルタイム値を表示します。値が設定された最小湿度を下回ると、ブザーが鳴り、農家に灌漑を促します。
Arduino IDEで5.8.2Soil-Humidity-Testing-Systemコードを開きます。
#include <LiquidCrystal_I2C.h>
#define BuzzerPin 16
#define SoilHumidityPin 32
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
ledcAttachChannel(BuzzerPin,1000,8,4);
pinMode(SoilHumidityPin,INPUT);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
float shvalue = analogRead(SoilHumidityPin);
lcd.setCursor(0, 0);
lcd.print("SoilHum:");
lcd.setCursor(9, 0);
lcd.print(shvalue);
//When the detected value is lower than the set threshold, the buzzer emits sound
if(200 >= shvalue)
{
ledcWriteTone(BuzzerPin,532);
delay(100);
ledcWriteTone(BuzzerPin,532);
delay(100);
ledcWriteTone(BuzzerPin,659);
delay(100);
ledcWriteTone(BuzzerPin,0); //Stop alarming
}
delay(500);
lcd.clear();
}
ESP32 Dev ModuleボードとCOMポートを選択し、コードをアップロードします。

テスト結果:
LCD1602は土壌湿度値のリアルタイム値を表示します。土壌湿度センサーによって検出された値が200を下回ると、ブザーが鳴って警告します。

注意:実験中にプラスチックプールから水があふれないようにしてください。他のセンサーに水をこぼすと、ショートやモジュールの故障だけでなく、発熱や爆発の原因となる可能性があります。細心の注意を払ってください!特に小さなお子様は、保護者の方と一緒に操作してください。