В этой статье мы рассмотрим варианты подключения датчика влажности почвы.
Вариант 1. Подключение с постоянным питанием.
Этот способ универсален, но для датчика влажности почвы он не очень подходит, т.к. на щупы датчика постоянно подается малый ток и во влажной среде они окисляются, что со временем может привести к выходу из строя самого датчика. Единственный плюс этого подключения состоит в том, что состояние влажности почвы мы можем наблюдать постоянно.

Перед использованием датчика его необходимо откалибровать с помощью монитор-порта.
#define ANALOG A3
int value = 0;
void setup() {
pinMode(ANALOG, INPUT);
Serial.begin(9600);
}
void loop() {
value = analogRead(ANALOG);
Serial.println(value);
delay(200);
}
Теперь можно приступать к написанию скетча.
#define ANALOG A3
#define LED_PIN1 6
#define LED_PIN2 9
#define VALUE_LIMIT 520
int value = 0;
void setup() {
pinMode(ANALOG, INPUT);
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
}
void loop() {
value = analogRead(ANALOG);
if (value < VALUE_LIMIT) {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, LOW);
}
else
{
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, HIGH);
}
}
В итоге получается, что когда почва сухая загорается красный светодиод, а когда влажная - загорается зеленый, при этом красный затухает.
Вариант 2. Подключение с управляемым питанием.
Подключив датчик к управляющим контактам контроллера, мы можем программно включать питание через определенный промежуток времени. Тем самым мы продлим срок службы щупов датчика и уменьшим скорость окисления.

Зальем следующий скетч:
#define VCC A1
#define GND A2
#define ANALOG A3
#define LED_PIN1 6
#define LED_PIN2 9
#define VALUE_LIMIT 520
int value = 0;
void setup() {
pinMode(VCC, OUTPUT);
pinMode(GND, OUTPUT);
pinMode(ANALOG, INPUT);
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
digitalWrite(VCC, LOW);
digitalWrite(GND, LOW);
}
void loop() {
digitalWrite(VCC, HIGH);
value = analogRead(ANALOG);
if (value < VALUE_LIMIT) {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, LOW);
}
else
{
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, HIGH);
}
delay(10000);
}
В итоге получим, что датчик будет включаться раз в 10 секунд и давать команду на светодиоды, которые будут информировать о состоянии почвы.