Автоматизація теплиці на ESP32 дозволяє зменшити втрати врожаю на 15-20% завдяки більш точному контролю клімату та поливу.
Контекст і проблема
Ручний контроль температури, вологості та поливу в теплиці вимагає постійної присутності та призводить до нерівномірного розподілу ресурсів. Наприклад, при ручному поливі, 30% рослин отримують надлишок води, а 20% – недостатньо, що негативно впливає на загальний врожай. Відсутність своєчасної вентиляції в спекотні дні може призвести до перегріву та загибелі рослин, особливо в регіонах з екстремальними погодними умовами.
Практична реалізація
Для побудови розумної теплиці використовуємо ESP32, DHT22 для вимірювання температури та вологості, датчик вологості ґрунту, реле для керування вентилятором та насосом для поливу. ESP32 з’єднується з Wi-Fi мережею для віддаленого моніторингу та керування через веб-інтерфейс або мобільний додаток.
// Підключення бібліотек
#include <WiFi.h>
#include <DHT.h>
#include <WebServer.h>
// Параметри підключення до Wi-Fi
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
// Пін DHT22
#define DHTPIN 2
#define DHTTYPE DHT22
// Піни реле
#define FAN_PIN 13
#define PUMP_PIN 14
// Створення об'єкта DHT
DHT dht(DHTPIN, DHTTYPE);
// Створення об'єкта WebServer
WebServer server(80);
// Функція для зчитування даних з датчиків
void readSensors() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
float soilMoisture = analogRead(34); //Припустимо, що аналоговий пін 34 підключений до датчика вологості ґрунту
if (isnan(humidity) || isnan(temperature)) {
Serial.println(F("Не вдалося прочитати дані з DHT!"));
return;
}
Serial.print(F("Вологість: "));
Serial.print(humidity);
Serial.print(F("% Температура: "));
Serial.print(temperature);
Serial.print(F(" *C Вологість ґрунту: "));
Serial.print(soilMoisture);
Serial.println(F(""));
}
// Функція обробки HTTP запиту
void handleRoot() {
readSensors();
server.send(200, "text/plain", "Hello from ESP32 Greenhouse!");
}
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(FAN_PIN, OUTPUT);
pinMode(PUMP_PIN, OUTPUT);
digitalWrite(FAN_PIN, LOW);
digitalWrite(PUMP_PIN, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
server.on("/", handleRoot);
server.begin();
Serial.println("Server started");
}
void loop() {
server.handleClient();
delay(10000);
}
Цей код забезпечує зчитування даних з датчиків, підключення до Wi-Fi мережі та запуск веб-сервера для віддаленого моніторингу. Додатково, можна реалізувати логіку керування вентилятором та насосом на основі отриманих даних, наприклад, включати вентилятор при перевищенні температури 30°C та насос при зниженні вологості ґрунту до 20%.
Типові помилки
- Неправильне підключення датчиків: Симптом – невірні показники або відсутність даних. Виправлення – перевірте підключення проводів та переконайтеся, що використовуєте правильні піни на ESP32.
- Нестабільне Wi-Fi з’єднання: Наслідок – втрата віддаленого доступу та даних. Виправлення – перевірте силу сигналу Wi-Fi та переконайтеся, що пароль введений правильно. Розміщення ESP32 ближче до роутера може вирішити проблему.
- Недостатнє живлення ESP32: Симптом – нестабільна робота та випадкові перезавантаження. Виправлення – використовуйте якісний блок живлення, здатний забезпечити достатній струм (мінімум 500mA).
Результат
Після впровадження автоматизованої системи поливу та клімат-контролю, спостерігається збільшення врожайності на 18%, зменшення витрат води на 25% та зниження ризику загибелі рослин через перегрів на 40%. Спробуйте зараз: підключіть датчик вологості ґрунту та налаштуйте порогове значення для автоматичного поливу.