🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🌧️ Проект: отключение полива по дождю

Датчик дождя и модуль реле

Датчик дождя показывает, идёт ли на улице дождь прямо сейчас — Arduino блокирует включение насоса полива, пока капли есть на пластине датчика, экономя воду и не переливая грядки.

Как это работает

Датчик дождя — это плата с дорожками проводящего материала на поверхности. Когда на неё попадают капли воды, сопротивление между дорожками падает (вода проводит электричество лучше воздуха), и это изменение можно считать как аналоговое напряжение через `analogRead()`. Чем больше воды на пластине — тем ниже сопротивление и тем ниже итоговое значение на аналоговом входе.

Логика проекта простая, но полезная: обычный таймер полива включает насос по расписанию независимо от погоды, что приводит к перерасходу воды и переливу грядок в дождливые дни. Этот проект добавляет "умную" проверку перед каждым запланированным поливом — если пластина датчика мокрая (идёт или недавно прошёл дождь), полив пропускается, экономя воду и защищая растения от переувлажнения.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите датчик дождя: аналоговый выход (обычно подписан AO) → A0, VCC → 5V, GND → GND.
  2. Подключите модуль реле KY-019 (насос): сигнал → D7, VCC → 5V, GND → GND.
  3. Насос подключайте к контактам реле через его собственный источник питания — реле Arduino не питает насос напрямую.
  4. Расположите сенсорную пластину датчика на открытом месте, где на неё реально будут попадать капли дождя, но без застоя воды (под небольшим углом, чтобы вода стекала).
  5. Откалибруйте порог `rainThreshold` под свой экземпляр датчика — капните воды на пластину и посмотрите реальные показания через монитор порта, у разных плат разброс значений может быть существенным.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int rainPin = A0;   // аналоговый выход датчика дождя
const int relayPin = 7;   // реле насоса полива
const int rainThreshold = 500; // ниже этого значения считаем, что идёт дождь

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

void loop() {
  int value = analogRead(rainPin);
  bool isRaining = (value < rainThreshold);

  Serial.print("Показание датчика: ");
  Serial.print(value);
  Serial.println(isRaining ? " (идёт дождь, полив пропущен)" : " (сухо)");

  if (!isRaining) {
    digitalWrite(relayPin, HIGH);
    delay(5000); // длительность полива
    digitalWrite(relayPin, LOW);
  }

  delay(3600000UL); // проверка раз в час
}

Значение `rainThreshold` калибруется под конкретный экземпляр датчика — капните воды на пластину и посмотрите показания через Serial-монитор. Полив запускается только если дождя нет.

Частые проблемы

Как улучшить проект

Товары по теме


Датчик дождя для Arduino
Датчик дождя для Arduino

83 руб.

Ещё модули для Arduino: Электронные модули.

← 🌿 контроль климата теплицы на датчике темпер…💧 сигнализация влажности с выводом на LCD160… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 181 ₽ 163 ₽ (экономия 18 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA