5.8 土壌湿度監視システム

5.8.1 土壌湿度センサー

image

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

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ポートを選択し、コードをアップロードします。

5458448

テスト結果:

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

image-20250417145121859

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

couy81

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ポートを選択し、コードをアップロードします。

5458448

テスト結果:

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

flo8

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