Умная вентиляция теплицы для фермы: шаблон на ESP32 + привод форточки

Админ·15 апреля 2026 г.·5 мин чтения

Даем фермерский шаблон автоматической вентиляции теплицы на ESP32: упрощенный набор деталей, рабочая логика, код и калибровка под ваши условия. Если будут вопросы по реализации — поможем внедрить.

Умная вентиляция теплицы для фермы: шаблон на ESP32 + привод форточки

В теплице нет «средней температуры по больнице». Утром нормально, в обед уже перегрев, вечером сырость и конденсат. Если форточки открываются вручную, вы платите за это урожаем и лишними рисками по болезням. Для фермы это не «мелочь», а реальный операционный убыток.

В этой статье даём рабочий шаблон, по которому вы соберёте свою автоматику вентиляции: ESP32 + датчик + привод форточки. Это не «магическая коробка», а понятный каркас, который можно подстроить под любую теплицу — от небольшого блока до фермерской секции. Если будут вопросы по реализации под ваши условия, мы поможем разобрать конфигурацию и логику.

Что вы получаете из материала

  • Готовую логику управления форточкой (пороги, гистерезис, аварийный режим)
  • Базовую схему подключения без «лишней электроники»
  • Рабочий код-шаблон для ESP32, который можно сразу запускать и донастраивать
  • Порядок калибровки привода, чтобы не ломать механику

Важно: список комплектующих ниже — упрощённый стартовый. Это не догма. Выбирайте детали под вашу механику, питание, длину тяг, влажность в теплице и режим эксплуатации.

Комплект (упрощённый): от чего стартовать

  • Контроллер: ESP32 DevKit
  • Датчик климата: DHT22 или SHT31
  • Привод форточки: MG996R (если створка лёгкая/средняя) или линейный актуатор 12 В (если створка тяжёлая)
  • Питание: БП 12 В + DC-DC 12→5 В
  • Механика: тяга, кронштейн, ограничители хода
  • Защита: гермобокс IP65, нормальная клеммная разводка

Диапазон бюджета обычно 3 000–7 000 ₽ в зависимости от привода и качества механики. Экономить на механике и питании — плохая идея: именно там потом простои.

Как работает шаблон управления

  1. Контроллер каждые 10 секунд читает температуру и влажность
  2. Считает целевой процент открытия форточки
  3. Плавно переводит привод в нужное положение
  4. При перегреве включает максимум проветривания
  5. В ночном окне закрывает форточку по расписанию (или по температуре)

Ключевая вещь — гистерезис. Без него форточка будет «дёргаться» туда-сюда вблизи порога и убивать ресурс привода.

Базовые пороги для старта (шаблон)

  • до 23 °C — 0% (закрыто)
  • 23–30 °C — плавное открытие 20–80%
  • выше 30 °C — 90–100%
  • аварийный порог 35 °C — всегда 100%

Это не универсальные значения. Для огурца, томата, рассады и разных фаз вегетации пороги отличаются. Начните с этих чисел как с черновика и поправьте под свой технологический регламент.

Схема подключения (минимально рабочая)

БП 12V (+) -> LM2596 IN+
БП 12V (-) -> LM2596 IN-

LM2596 OUT+ (5V) -> ESP32 VIN
LM2596 OUT- (GND) -> ESP32 GND

LM2596 OUT+ (5V) -> Servo VCC
LM2596 OUT- (GND) -> Servo GND
ESP32 GPIO18 -> Servo SIGNAL

ESP32 3V3 -> DHT22 VCC
ESP32 GND -> DHT22 GND
ESP32 GPIO4 -> DHT22 DATA

Общая земля обязательна. И не запитывайте силовой привод от пина платы ESP32 — только от отдельного стабильного источника.

Код-шаблон (ESP32)

#include <Arduino.h>
#include <DHT.h>
#include <ESP32Servo.h>

#define DHTPIN 4
#define DHTTYPE DHT22
#define SERVO_PIN 18

const int SERVO_CLOSED = 20;
const int SERVO_OPEN = 120;

const float T_MIN_OPEN = 23.0;
const float T_FULL_OPEN = 30.0;
const float HYST = 1.0;

DHT dht(DHTPIN, DHTTYPE);
Servo ventServo;

int currentPercent = -1;
float lastTargetTemp = -1000;

int tempToPercent(float t) {
  if (t <= T_MIN_OPEN) return 0;
  if (t >= T_FULL_OPEN) return 100;
  float k = (t - T_MIN_OPEN) / (T_FULL_OPEN - T_MIN_OPEN);
  return (int)(k * 100.0f + 0.5f);
}

int percentToAngle(int p) {
  p = constrain(p, 0, 100);
  return SERVO_CLOSED + (SERVO_OPEN - SERVO_CLOSED) * p / 100;
}

void setVentPercentSmooth(int targetPercent) {
  targetPercent = constrain(targetPercent, 0, 100);
  if (currentPercent < 0) currentPercent = targetPercent;

  int step = (targetPercent > currentPercent) ? 2 : -2;
  while (currentPercent != targetPercent) {
    currentPercent += step;
    if ((step > 0 && currentPercent > targetPercent) ||
        (step < 0 && currentPercent < targetPercent)) {
      currentPercent = targetPercent;
    }
    ventServo.write(percentToAngle(currentPercent));
    delay(40);
  }
}

void setup() {
  Serial.begin(115200);
  dht.begin();

  ESP32PWM::allocateTimer(0);
  ESP32PWM::allocateTimer(1);
  ventServo.setPeriodHertz(50);
  ventServo.attach(SERVO_PIN, 500, 2400);

  setVentPercentSmooth(0);
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();

  if (isnan(t) || isnan(h)) {
    delay(5000);
    return;
  }

  int target = tempToPercent(t);

  if (abs(t - lastTargetTemp) < HYST && currentPercent >= 0) {
    target = currentPercent;
  }

  if (t >= 35.0) target = 100;

  setVentPercentSmooth(target);
  lastTargetTemp = t;

  Serial.printf("T=%.1f H=%.1f target=%d%% angle=%d\n", t, h, target, percentToAngle(target));
  delay(10000);
}

Этот код — именно шаблон. Под вашу механику и культуру вы меняете: углы, пороги, шаг движения, интервал опроса, правила ночного режима.

Калибровка под фермерский сценарий

  1. Сначала гоняете привод без тяги и проверяете крайние углы
  2. Ставите тягу, уменьшаете крайние точки до безопасных
  3. Прогоняете 30–50 циклов «открыть/закрыть»
  4. Проверяете работу в пиковую жару и вечером
  5. Только потом закрепляете финальные настройки в коде

Если привод греется, трещит или держит створку «в упоре» — механика настроена неправильно. Снимайте нагрузку и уменьшайте ход.

Типовые ошибки, из-за которых система «не взлетает»

  • Слабый привод для тяжёлой форточки
  • Плохое питание (просадки по напряжению)
  • Отсутствие гистерезиса
  • Датчик поставили в «тёплую точку» рядом с электроникой
  • Нет ручного режима/override для аварийных ситуаций

Кому подходит этот подход

В первую очередь — фермерам и небольшим хозяйствам, которым нужна предсказуемая вентиляция без дорогой промышленной автоматики на старте. Для дачников материал тоже применим, но статья написана под эксплуатацию в фермерском режиме: надёжность, повторяемость, обслуживание и масштабирование.

Поддержка внедрения

Ещё раз: здесь не «рецепт на все случаи», а шаблон, по которому вы собираете решение под себя. Если упрётесь в механику форточки, подбор привода, пороги или логику — напишите нам, поможем донастроить под вашу теплицу и культуру.

💬 Комментарии

Чтобы оставить комментарий, войдите или зарегистрируйтесь

Загрузка комментариев...

Похожие статьи