
DIY автополив на Arduino с датчиком влажности почвы
ArduDragon 20 минут назад DIY автополив на Arduino с датчиком влажности почвы Простой 3 мин 516 Arduino * DIY или Сделай сам Умный дом Туториал ВведениеПриветствую, меня зовут Алексей Морозов. В этой статье я покажу как...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: ArduDragon 20 минут назад DIY автополив на Arduino с датчиком влажности почвы Простой 3 мин 516 Arduino * DIY или Сделай сам Умный дом Туториал ВведениеПриветствую, меня зовут Алексей Морозов. В этой статье я покажу как сделать простой и практичный автополив на arduino. Подбор комплектующихДля этого проекта я подобрал следующие компоненты:Arduino Nano в качестве контроллерамодуль mosfet транзистора для управления помпойпомпа для аквариумовдатчик влажности почвы v2Фото деталейarduino nanoДатчик влажности почвыmosfet модульАквариумная помпаСборкаВот схема подключения:Схема подключенияТеперь по сборке:Есть помпа, и к ней нужно приделать трубку, для этого можно взять трубку от катетера бабочки:Отрезаем крышечкуИ крепим на термоусадку прямо к отводу на помпе.
Фото полной сборкиКодВот полный код полива:// --- НАСТРОЙКИ ОБОРУДОВАНИЯ --- #define SNSR_PIN A0 // Аналоговый пин, к которому подключен датчик влажности почвы #define PUMP_PIN 3 // Цифровой пин, управляющий реле или драйвером насоса // --- НАСТРОЙКИ ЛОГИКИ АВТОМАТИКИ --- #define THRESHOLD_HUMD 50 // Пороговое значение влажности (в процентах). // Если влажность ниже этого значения, насос включается. #define HYSTERESIS 10 // Гистерезис (разница в процентах).
Технические детали
// Нужен, чтобы избежать частого включения/выключения насоса // при колебаниях влажности около порога. // Насос выключится, только когда влажность превысит (THRESHOLD_HUMD + HYSTERESIS). /** * @brief Считывает показания с датчика и преобразует их в проценты влажности.
* @return Влажность почвы в процентах (0 - сухо, 100 - мокро). */ uint8_t get_humd() { // analogRead(SNSR_PIN) возвращает значение от 0 до 1023. // Функция map() преобразует этот диапазон в проценты от 100 до 0.
// Логика инвертирована: чем выше напряжение на датчике (больше воды), тем ниже значение АЦП, // но для удобства восприятия мы переводим это в "процент влажности", где 100 — это максимум. return map(analogRead(SNSR_PIN), 0, 1023, 100, 0); } /** * @brief Управляет состоянием насоса на основе текущей влажности. * @param humd Текущее значение влажности почвы в процентах.
Отраслевые последствия
*/ void turn_pump(uint8_t humd) { // Если влажность почвы упала ниже порога, включаем насос. if (humd < THRESHOLD_HUMD) { digitalWrite(PUMP_PIN, HIGH); } // Если влажность поднялась выше порога с учетом гистерезиса, выключаем насос. // Это условие сработает только когда почва станет достаточно влажной, // чтобы предотвратить "дребезг" (циклическое включение-выключение).
else if (humd > THRESHOLD_HUMD + HYSTERESIS) { digitalWrite(PUMP_PIN, LOW); } } /** * @brief Блок начальной настройки микроконтроллера. Выполняется один раз при включении. */ void setup() { // Инициализация последовательного порта для вывода данных в монитор (Serial Monitor) Serial.
begin(115200); // Настройка пинов: pinMode(SNSR_PIN, INPUT); // Пин датчика как вход pinMode(PUMP_PIN, OUTPUT); // Пин насоса как выход } /** * @brief Основной рабочий цикл. Выполняется бесконечно после завершения setup().
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





