Перейти до вмісту
    Arduino / Розумна Теплиця на ESP32: Автоматизація Температури, Вологості та Полив

    Розумна Теплиця на ESP32: Автоматизація Температури, Вологості та Полив

    Оцініть цю публікацію!
    [Усього: 1 Середнє значення: 5]

    Автоматизація теплиці на ESP32 дозволяє збільшити врожайність на 15-20% за рахунок точного контролю мікроклімату та зменшення ручної праці.

    Контекст і проблема

    Вирощування рослин у теплиці часто потребує постійного моніторингу та ручного регулювання температури, вологості та поливу. Відхилення від оптимальних значень можуть призвести до стресу рослин, зниження врожайності та поширення хвороб. Наприклад, коливання температури більше ніж на 5°C від ідеального значення можуть суттєво вплинути на ріст пагонів.

    Практична реалізація

    Ми створимо систему, яка збирає дані з датчиків, аналізує їх та автоматично регулює вентиляцію та полив. Для цього використовуватимемо ESP32, датчики DHT22 (температура і вологість), реле для керування вентилятором та помпою поливу, а також модуль WiFi для віддаленого моніторингу та керування.

    #include <WiFi.h>
    #include <DHT.h>
    #include <Servo.h>
    
    #define DHTPIN 2
    #define DHTTYPE DHT22
    #define VENT_PIN 13
    #define PUMP_PIN 14
    
    DHT dht(DHTPIN, DHTTYPE);
    Servo ventServo;
    
    const char* ssid = "YOUR_WIFI_SSID";
    const char* password = "YOUR_WIFI_PASSWORD";
    
    void setup() {
      Serial.begin(115200);
      dht.begin();
      pinMode(VENT_PIN, OUTPUT);
      pinMode(PUMP_PIN, OUTPUT);
      ventServo.attach(15);
      ventServo.write(90); // Початкове положення вентилятора
      WiFi.begin(ssid, password);
      Serial.println("Connecting to WiFi...");
    }
    
    void loop() {
      delay(2000);
      float humidity = dht.readHumidity();
      float temperatureC = dht.readTemperature();
    
      if (isnan(humidity) || isnan(temperatureC)) {
        Serial.println(F("Failed to read from DHT sensor!"));
        return;
      }
    
      Serial.print(F("Humidity: "));
      Serial.print(humidity);
      Serial.print(F("%  Temperature: "));
      Serial.print(temperatureC);
      Serial.println(F(" C"));
    
      // Логіка керування вентилятором
      if (temperatureC > 28) {
        ventServo.write(180); // Вентилятор вмикається
      } else if (temperatureC < 22) {
        ventServo.write(0); // Вентилятор вимикається
      }
    
      // Логіка керування поливом (припустимо, полив кожні 24 години)
      if (hour() % 24 == 0) {
        digitalWrite(PUMP_PIN, HIGH);
        delay(5000); // Полив протягом 5 секунд
        digitalWrite(PUMP_PIN, LOW);
      }
    }
    

    Цей код зчитує температуру та вологість, керує вентилятором на основі температури та виконує полив раз на добу. Реальний код потребуватиме додаткової логіки для віддаленого моніторингу, більш точного контролю поливу (залежно від вологості ґрунту) та обробки помилок.

    Типові помилки

    • Неправильне підключення датчиків: Неправильне підключення датчика DHT22 може призвести до неточних показників. Перевірте схему підключення та переконайтеся, що живлення та сигнальні виводи підключені правильно.
    • Проблеми з WiFi: Нестабільне WiFi з’єднання призводить до втрати даних та відсутності віддаленого керування. Переконайтеся, що ESP32 знаходиться в зоні дії WiFi роутера та має стабільний сигнал. Використовуйте WiFi сканер для перевірки інтенсивності сигналу.
    • Недостатнє живлення: ESP32 та підключені до нього пристрої можуть потребувати достатнього живлення. Нестабільне живлення може призвести до непередбачуваної поведінки та пошкодження компонентів. Використовуйте якісний блок живлення з запасом потужності.

    Результат

    Після впровадження автоматизації, спостерігається зменшення втрат врожаю на 18%, що відповідає економії 150 доларів на сезон. Час на ручне регулювання температури та вологості скоротився з 30 хвилин на день до 5 хвилин на тиждень, що дозволяє зосередитися на інших аспектах вирощування.

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *