В этом руководстве мы узнаем, как использовать SunFounder ESP32 вместе с датчиком влажности почвы для измерения уровня влажности в грунте, что может помочь в автоматизации систем полива. Отслеживая уровень влажности, мы можем активировать зуммер, когда влажность падает ниже определённого порога, сигнализируя о том, что растения нуждаются в поливе. Этот проект важен для поддержания здоровья растений и может быть расширен для различных приложений экологического мониторинга (на видео в 00:00).
soil_mositure_module
Мы будем использовать ёмкостный датчик влажности почвы, который работает, измеряя изменение ёмкости между двумя пластинами, зависящее от содержания влаги в окружающей среде. Этот датчик будет выдавать аналоговый сигнал, отражающий уровень влажности, что позволит нам принимать решения на основе показаний. ESP32 будет считывать аналоговый выход и активировать зуммер, если почва слишком сухая.
Объяснение аппаратного обеспечения
Для этого проекта основными компонентами являются микроконтроллер SunFounder ESP32, ёмкостный датчик влажности почвы и зуммер. ESP32 оснащён встроенными Wi-Fi и Bluetooth, что обеспечивает удалённый мониторинг и управление. Датчик влажности почвы состоит из двух пластин, которые измеряют ёмкость, изменяющуюся в зависимости от уровня влажности в почве. Это изменение ёмкости изменяет выходное напряжение, которое ESP32 считывает через свой аналоговый вход. Зуммер предупредит нас, когда уровень влажности упадёт ниже заданного порога.
soil_mositure_module_schematic
Данные из технического описания
Производитель
SunFounder
Номер детали
Датчик влажности почвы
Рабочее напряжение
3,3–5 В
Тип выхода
Аналоговый
Диапазон сигнала
0–3,3 В
Время отклика
Быстрое
Размеры
Прибл. 60 x 20 мм
Примечания / варианты
Датчик ёмкостного типа
Убедитесь, что датчик не полностью погружён в воду, чтобы предотвратить повреждение.
При необходимости используйте подходящие подтягивающие резисторы для стабильных показаний.
Откалибруйте датчик для вашего конкретного типа почвы для точных измерений влажности.
Поддерживайте правильные соединения проводов, чтобы избежать потери сигнала.
Будьте осторожны с источником питания, чтобы избежать ситуаций с перенапряжением.
Инструкции по подключению
ESP32-24-soild-moisture-wiring
Чтобы подключить датчик влажности почвы к ESP32, соедините контакт VCC датчика с контактом 3,3 В на ESP32. Затем подключите контакт GND датчика к контакту GND на ESP32. Аналоговый выходной контакт датчика влажности почвы следует подключить к аналоговому контакту 35 на ESP32. Для зуммера подключите положительный контакт к цифровому контакту 13 на ESP32, а отрицательный контакт — к GND. Убедитесь, что все соединения надёжны, чтобы избежать периодических проблем во время работы.
Примеры кода и пояснения
Ниже приведён краткий фрагмент кода, который инициализирует последовательную связь и считывает значение датчика влажности:
void setup() {
// Инициализация последовательной связи со скоростью 115200 бит в секунду:
Serial.begin(115200);
}
Этот фрагмент настраивает последовательную связь, позволяя нам просматривать показания датчика влажности в мониторе последовательного порта.
Далее у нас есть основной цикл, в котором считывается аналоговое значение с датчика:
void loop() {
// Чтение аналогового значения
int analogValue = analogRead(35);
// Вывод значений
Serial.printf("Analog value = %d\n",analogValue);
delay(300); // задержка между чтениями для чёткого отображения в мониторе последовательного порта
}
В этом цикле код непрерывно считывает аналоговое значение с контакта 35 и выводит его в монитор последовательного порта каждые 300 миллисекунд. Это позволяет нам отслеживать уровень влажности в реальном времени.
Демонстрация / Что ожидать
Когда датчик влажности помещён в сухую почву, аналоговое значение будет выше, что указывает на низкую влажность. И наоборот, когда датчик вставлен во влажную почву, значение значительно упадёт. Если показание упадёт ниже заданного порога (например, 2000), зуммер, подключённый к контакту 13, активируется, сигнализируя о том, что растение нуждается в поливе. Будьте осторожны с плавающими входами и убедитесь, что датчик не подвергается воздействию воды сверх рекомендуемых пределов (на видео в 02:30).
823-ESP32 Tutorial 24/55- Arduino code for soil moisture measurement
Язык: C++
void setup() {
// Инициализируйте последовательную связь на скорости 115200 бит в секунду:
Serial.begin(115200);
}
void loop() {
// Считайте аналоговое значение
int analogValue = analogRead(35);
// Выведите значения на печать.
Serial.printf("Analog value = %d\n",analogValue);
delay(300); // задержка между считываниями для четкого считывания из последовательного монитора
}
Раскрытие: Как партнер Amazon, мы зарабатываем на квалифицированных покупках. Это означает, что мы можем получить небольшую комиссию, если вы нажмете на ссылку и совершите покупку без дополнительных затрат для вас.