Подключение датчика влажности почвы к Arduino

Аналоговый датчик влажности

Датчик влажности почвы к Arduino — питание 5 В, земля и AO на аналоговый вход A0–A5. analogRead() вернёт 0–1023: ближе к 1023 — суше, к нулю — мокрее.

Схема подключения датчика влажности почвы к Arduino

Датчик влажности почвыArduino Uno
AOA0
VCC5V
GNDGND

Схема из примера «Arduino Uno: датчик влажности почвы».

Arduino Uno: датчик влажности почвы

Открыть пример целиком

Выводы Датчик влажности почвы

ВыводНазначение
AOаналоговый выход: ниже напряжение — влажнее
DOцифровой выход компаратора, порог задаёт подстроечник
VCCпитание модуля
GNDобщий провод

Код для Arduino

// Влажность почвы: из отсчётов АЦП - в проценты.
//
// Напряжение на AO тем ниже, чем почва влажнее. Два числа ниже - замеры
// вашего датчика в сухом воздухе и в стакане с водой; у каждого
// экземпляра они свои.

const int SOIL = A0;
const int LED = 8;

const int RAW_DRY = 1023;   // в воздухе
const int RAW_WET = 0;      // в воде
const int WATER_BELOW = 30; // ниже этого процента пора поливать

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
}

void loop() {
  int raw = analogRead(SOIL);
  int percent = map(raw, RAW_DRY, RAW_WET, 0, 100);
  percent = constrain(percent, 0, 100);

  digitalWrite(LED, percent < WATER_BELOW);

  Serial.print("сырое значение: ");
  Serial.print(raw);
  Serial.print(", влажность: ");
  Serial.print(percent);
  Serial.println(percent < WATER_BELOW ? "% — пора поливать" : "%");
  delay(500);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на Arduino

В железе

Электроды резистивного щупа разрушаются от постоянного тока: дорожки покрываются коррозией за недели. Питайте модуль с цифрового вывода и включайте его только на время замера. Погружать щуп можно только до границы дорожек: плата с электроникой должна оставаться сухой. Ёмкостные датчики (с пометкой capacitive) не корродируют, но обычно имеют только аналоговый выход.

Частые ошибки при подключении к Arduino

Другие детали для Arduino