Soil moisture sensor(YL-69) JP

아두위키 : Arduwiki
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


概要

土壌水分センサー(YL-69)は、土壌の水分含有量を測定するために使用されるセンサーです。農業、園芸、環境モニタリングなど様々な分野で活用され、作物の健康と生産性を維持するために重要な役割を果たします。アルドゥイーノなどのマイクロコントローラーと共に使用することで、リアルタイムで水分値をモニタリングすることができます。

動作原理

YL-69センサーは、2つの電極を使用して土壌の電気伝導度を測定します。土壌の水分含有量が高くなるほど抵抗値が低くなり、それに伴って電気伝導度が増加します。この値はアナログ信号に変換されてマイクロコントローラーに送信されます。

仕様

List 説明
感度調整 PCBに取り付けられた可変抵抗器を回して感度調整が可能
Voltage 3.3V - 5V
Output Mode デジタル出力とアナログ出力の両方をサポート

デジタル出力: しきい値を超えるとLOW、それ以外はHIGHを出力 アナログ出力: 0 〜 1023の間の値を出力

設置の容易さ 固定ボルト穴があり、設置が容易
Size PCB: 3cm x 1.6cm

プローブ部:約2cm x 6cm

電源および出力表示 電源表示灯(赤)およびデジタルスイッチ出力表示灯(緑)
Chip LM393


利用例

1. 土壌水分センサーの出力をシリアルモニタで確認する

この例では、シリアルモニタを通じてセンサーのアナログ出力値を確認します。


1-1. 回路構成

YL-69土壌水分センサーはデジタル出力とアナログ出力を両方サポートしており、VCC、GND、DO、AOの4つのピンで構成されています。アナログ出力が必要な場合は、AOピンをアドゥイーノのA0ピンに接続します。

YL-69 Pin Arduino
VCC 5V
GND GND
AO A0

1-2. Arduino Code

const int sensorPin = A0;

void setup() {
    Serial.begin(9600); // Start serial communication
}

void loop() {
    int sensorValue = analogRead(sensorPin); // Read sensor value
    Serial.print("Soil moisture level : "); 
    Serial.println(sensorValue); // Print sensor value
    delay(1000); // Wait a second
}


1-3. 実行結果


2. 土壌水分センサーの値と給水必要性をLCDに表示する

この例では、土壌水分センサーのアナログ出力値をLCDに表示し、その値に基づいて給水が必要かどうかもLCDに表示します。

LCDについての詳細は、LCD(Liquid Crystal Display)ドキュメントを参照してください。


2-1. 回路構成

YL-69 Pin Arduino LCD Pin Arduino
VCC 5V VCC 5V
GND GND GND GND
AO A0 SCA A4(Uno) / 20(Mega)
SCL A5(Uno) / 21(Mega)


2-2. アルドゥイーノコード

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// I2C LCD initialization: address 0x27, columns 16, rows 2
LiquidCrystal_I2C lcd(0x27, 16, 2);

// YL-69 sensor pin definition
const int sensorPin = A0;

void setup() {
    lcd.init();
    lcd.clear();
    lcd.backlight(); // Turn on backlight
    Serial.begin(9600); // Start serial communication
}

void loop() {
    int sensorValue = analogRead(sensorPin); // Read sensor value
    Serial.print("Soil moisture level: ");
    Serial.println(sensorValue); // Output to serial monitor

    // Display value on LCD
    lcd.clear(); // Clear LCD screen
    lcd.setCursor(0, 0); // Move cursor to the first column of the first row
    lcd.print("water : ");
    lcd.print(sensorValue); // Output sensor value
    lcd.setCursor(0, 1); // Move cursor to the first column of the second row
    if (sensorValue > 500)
      lcd.print("Please Water");
    else
      lcd.print("Enough Water");

     delay(1000); // Wait for 1 second
}


2-3. 実行結果

水がない場合、LCDに「Please Water」が表示されます。


水がある場合、「Enough Water」が表示されます。


3. 土壌水分センサーとLCD、LEDを使用する

この例では、前の例にLEDを追加します。土壌が乾燥しているときはLEDが消え、十分な水があるときはLEDが点灯します。


3-1. 回路構成

3-2. Arduino Code

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// I2C LCD initialization: address 0x27, columns 16, rows 2
LiquidCrystal_I2C lcd(0x27, 16, 2);

// YL-69 sensor pin definition
const int sensorPin = A0;
const int ledPin = 3;

void setup() {
    lcd.init();
    lcd.clear();
    lcd.backlight(); // Turn on backlight
    Serial.begin(9600); // Start serial communication
    pinMode(ledPin, OUTPUT);
}

void loop() {
    int sensorValue = analogRead(sensorPin); // Read sensor value
    Serial.print("Soil moisture level: ");
    Serial.println(sensorValue); // Output to serial monitor

    // Display value on LCD
    lcd.clear(); // Clear LCD screen
    lcd.setCursor(0, 0); // Move cursor to the first column of the first row
    lcd.print("water : ");
    lcd.print(sensorValue); // Output sensor value
    lcd.setCursor(0, 1); // Move cursor to the first column of the second row
    if (sensorValue > 500) {
        lcd.print("Please Water");
        digitalWrtie(ledPin, LOW); // Turn off the LED
    }
    else {
        lcd.print("Enough Water");  
        digitalWrtie(ledPin, HIGH); // Turn on the LED
    }

    delay(1000); // Wait a second
}

3-3. 実行結果

水がない場合、LCDに「Please Water」が表示され、LEDが消えます。


水がある場合、「Enough Water」が表示され、LEDが点灯します。


このセットアップは、ポンプなどの他のコンポーネントを組み込むことで自動給水システムなどに応用できます。