Подключение датчика влажности почвы к ESP32
Аналоговый датчик влажности
Датчик влажности почвы к ESP32 — питание 3,3 В, земля и AO на вход АЦП. Цифровой DO нужен, если порог проще настроить подстроечником, чем кодом.
Схема подключения датчика влажности почвы к ESP32
| Датчик влажности почвы | ESP32 |
|---|---|
| AO | GPIO34 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «Датчик влажности почвы: когда пора поливать».
Выводы Датчик влажности почвы
| Вывод | Назначение |
|---|---|
| AO | аналоговый выход: ниже напряжение — влажнее |
| DO | цифровой выход компаратора, порог задаёт подстроечник |
| VCC | питание модуля |
| GND | общий провод |
Код для ESP32
// Датчик влажности почвы: из сырых отсчётов — в проценты.
//
// У модуля с компаратором LM393 напряжение на AO тем ниже, чем влажнее
// почва. Два числа ниже — это замеры вашего экземпляра: в сухом воздухе
// и в стакане с водой. У каждого датчика они свои, поэтому их снимают
// сами, а не берут из примера.
const int SOIL = 34;
const int LED = 2;
const int RAW_DRY = 4095; // в воздухе
const int RAW_WET = 0; // в воде
const int WATER_BELOW = 30; // ниже этого процента пора поливать
void setup() {
Serial.begin(115200);
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.printf("сырое значение: %d, влажность: %d %%%s\n",
raw, percent, percent < WATER_BELOW ? " — пора поливать" : "");
delay(500);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Используйте выводы АЦП1 (GPIO32–39): АЦП2 не работает при включённом Wi‑Fi, а умные теплицы почти всегда на Wi‑Fi.
- Питание щупа можно брать с GPIO: ток модуля небольшой, а включать его только на замер продлевает жизнь электродам.
В железе
Электроды резистивного щупа разрушаются от постоянного тока: дорожки покрываются коррозией за недели. Питайте модуль с цифрового вывода и включайте его только на время замера. Погружать щуп можно только до границы дорожек: плата с электроникой должна оставаться сухой. Ёмкостные датчики (с пометкой capacitive) не корродируют, но обычно имеют только аналоговый выход.
Частые ошибки при подключении к ESP32
- AO на выводе АЦП2 в проекте с Wi‑Fi:
analogRead()возвращает нули. - Питание модуля от 5 В: напряжение на AO может превысить 3,3 В — предел входа ESP32.
- Постоянное питание щупа: электроды окисляются, показания уплывают, через месяцы датчик перестаёт работать.
- Забыли, что шкала обратная: «большое число» — это сухо, а не мокро.
- Замеры не откалиброваны: числа из чужого примера дают проценты, не имеющие отношения к вашему датчику.
- Щуп погружён выше границы дорожек: вода попадает на плату и компаратор.
Ещё по теме
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223MQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230