← До всіх проєктів
Сенсори Початковий

Датчик дощу, який не згниє за місяць: живлення від GPIO лише під час виміру

Дешеві датчики дощу FC-37 і YL-83 роз'їдаються за кілька тижнів, якщо на них постійно подано напругу. Живимо модуль від виводу ESP32 на 10 мс раз на кілька секунд, читаємо AO і DO і отримуємо датчик, що служить роками.

Складність
Початковий
Час
30 min
Категорія
Сенсори
Оновлено

Про проєкт

Датчик дощу — це плата з двома гребінками доріжок і модуль-компаратор LM393. Вода замикає доріжки, опір падає, і напруга на виході змінюється. Проблема в тому, що постійний струм через мокру плату — це електроліз: мідь розчиняється, і через кілька тижнів на вулиці доріжки просто зникають. Рішення просте: подавати живлення лише на мить вимірювання.

Що потрібно

  • ESP32 DevKit
  • Датчик дощу FC-37 / YL-83 (пластина + модуль з AO і DO)
  • Дроти; для вулиці — гермокоробка для модуля

Схема

Модуль ESP32
VCC GPIO26 — живлення від виводу
GND GND
AO GPIO34 (ADC1)
DO GPIO27

Модуль споживає 5–8 мА — вивід ESP32 (до 20 мА) з цим легко впорається. Для датчиків, що беруть більше, використовуйте транзистор або MOSFET.

Виходи

  • AO: суха пластина — майже VCC, що більше води, то нижче. Так можна відрізнити мряку від зливи.
  • DO: LOW, коли мокро (рівень вище порогу, заданого підстроювальним резистором).

Код

// Датчик дощу, який служить роки: живимо його від GPIO лише на час виміру
const int RAIN_POWER = 26;   // VCC модуля
const int RAIN_AO = 34;
const int RAIN_DO = 27;      // LOW = мокро (поріг — підстроювальним резистором)

void setup() {
  Serial.begin(115200);
  pinMode(RAIN_POWER, OUTPUT);
  digitalWrite(RAIN_POWER, LOW);
  pinMode(RAIN_DO, INPUT);
}

void loop() {
  digitalWrite(RAIN_POWER, HIGH);
  delay(10);                         // даємо компаратору встановитися
  int raw = analogRead(RAIN_AO);
  bool wet = digitalRead(RAIN_DO) == LOW;
  digitalWrite(RAIN_POWER, LOW);     // між вимірами струм через пластину не тече
  int water = map(raw, 4095, 0, 0, 100);
  Serial.printf("Вода %3d %%  %s\n", water, wet ? "ДОЩ" : "сухо");
  delay(2000);
}

У симуляторі змінюйте «Воду на пластині». Спробуйте й навпаки: під'єднайте VCC модуля до 3V3 і залиште пластину мокрою — через пів хвилини симулятор нагадає про корозію.

Корисно знати

  • Пластину — на вулицю, модуль — у коробку. Компаратор боїться вологи більше, ніж доріжки. Між ними — кабель довжиною хоч 5 м.
  • Нахил 30–45°. На горизонтальній пластині вода застоюється, і «дощ» триває ще годину після того, як він закінчився.
  • Змінний струм — ще кращий захист: деякі проєкти по черзі міняють полярність двома GPIO. Для більшості задач вистачає й короткого живлення.
  • Та сама схема підходить для датчиків вологості ґрунту з резистивними щупами — у них та сама проблема з корозією.