Ничего не найдено :(
    В гостях у Самоделкина! » ИИ » Самоделки от ИИ » Умная система полива растений на Arduino с датчиком влажности почвы

    Умная система полива растений на Arduino с датчиком влажности почвы

    Этот скетч автоматически включает полив, когда почва становится слишком сухой, и выводит информацию на LCD дисплей и в Serial Monitor.


    Необходимые компоненты:

    • Плата Arduino (Uno, Nano и др.)

    • Датчик влажности почвы (например, FC-28)

    • Релейный модуль (для управления насосом)

    • LCD дисплей 1602 (I2C)

    • Водяной насос 5-12V

    • Источник питания для насоса (если насос не 5V)

    • Резистор 10 кОм (опционально для датчика)

    • Провода


    Скетч

    #include <LiquidCrystal_I2C.h>
    
    // Настройка LCD (адрес I2C, размер дисплея)
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    // Пины
    #define SOIL_MOISTURE_SENSOR A0  // Датчик влажности почвы
    #define RELAY_PIN 7              // Управление реле
    #define PUMP_ON_TIME 3000        // Время работы насоса (мс)
    
    // Пороговые значения влажности (калибруйте под свои условия)
    const int DRY_SOIL = 600;  // Значение для сухой почвы
    const int WET_SOIL = 300;  // Значение для влажной почвы
    
    void setup() {
      Serial.begin(9600);
      pinMode(RELAY_PIN, OUTPUT);
      digitalWrite(RELAY_PIN, HIGH);  // Выключаем реле изначально
      
      lcd.init();
      lcd.backlight();
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Soil Moisture:");
    }
    
    void loop() {
      int moistureValue = analogRead(SOIL_MOISTURE_SENSOR);
      int moisturePercent = map(moistureValue, DRY_SOIL, WET_SOIL, 0, 100);
      moisturePercent = constrain(moisturePercent, 0, 100);
    
      // Вывод на LCD
      lcd.setCursor(0, 1);
      lcd.print("Value: ");
      lcd.print(moistureValue);
      lcd.print(" (");
      lcd.print(moisturePercent);
      lcd.print("%)   ");
    
      // Вывод в Serial Monitor
      Serial.print("Moisture: ");
      Serial.print(moistureValue);
      Serial.print(" (");
      Serial.print(moisturePercent);
      Serial.println("%)");
    
      // Управление поливом
      if (moisturePercent < 30) {  // Если почва сухая
        lcd.setCursor(13, 1);
        lcd.print("WET!");
        digitalWrite(RELAY_PIN, LOW);  // Включаем насос
        delay(PUMP_ON_TIME);           // Работа насоса
        digitalWrite(RELAY_PIN, HIGH); // Выключаем насос
        delay(1000);                  // Пауза перед следующим измерением
      } else {
        lcd.setCursor(13, 1);
        lcd.print("OK  ");
      }
    
      delay(2000);  // Интервал между измерениями
    }

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

    • Датчик влажности измеряет уровень влажности почвы (0-1023).

    • Преобразование значений:

      • map() преобразует сырое значение в проценты

      • constrain() ограничивает диапазон 0-100%

    • Управление насосом:

      • Если влажность <30%, включается реле и насос на 3 секунды

    • Визуализация:

      • LCD показывает сырое значение и проценты

      • Serial Monitor дублирует данные для отладки



    Подключение компонентов


    Датчик влажности FC-28:

    • VCC → 5V

    • GND → GND

    • AOUT → A0 (аналоговый вход)

    Релейный модуль:

    • VCC → 5V

    • GND → GND

    • IN → 7 (цифровой пин)

    LCD 1602 (I2C):

    • Стандартное подключение (SDA→A4, SCL→A5)

    Насос:

    • Подключается через реле к отдельному источнику питания



    Калибровка системы

    • Запустите скетч и посмотрите значения:

      • Полностью сухая почва - запомните значение (DRY_SOIL)

      • Политая почва - запомните значение (WET_SOIL)

    • Подстройте пороги в коде:

    const int DRY_SOIL = 600;  // Ваше значение
    const int WET_SOIL = 300;  // Ваше значение


    Улучшения

    • Добавьте кнопку для ручного запуска полива

    • Реализуйте WiFi-мониторинг через ESP8266

    • Добавьте датчик уровня воды в резервуаре

    • Используйте MOSFET вместо реле для тихой работы

    Этот скетч идеален для автоматизации полива комнатных растений или небольших теплиц!

    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
    Подборки: Полив Датчик

    Термометр на Arduino с датчиком DS18B20 и LCD 1602

    Умный уличный фонарь на Arduino с датчиком освещенности и ИК-датчиком движения

    0
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)

    Добавить комментарий

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии