🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🌿 Проект: точный климат-контроль теплицы на HTU21D с реле вентиляции

На сайте уже есть проект климат-контроля теплицы на бюджетном датчике KY-015. Здесь используется HTU21D — датчик с заметно более высокой заводской точностью (см. проект сравнения с LCD1602 на сайте) — в задаче, где точность имеет значение: слишком частое или слишком редкое срабатывание вентиляции из-за погрешности датчика может заметно повлиять на урожай в теплице с чувствительными культурами.

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

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

Как и в термостате на LM75, здесь используется гистерезис — отдельные пороги включения и выключения с разницей в пару единиц, чтобы реле не "дребезжало" частыми переключениями при показаниях, колеблющихся около одной границы.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. HTU21D: SDA → A4, SCL → A5, VCC → 3.3V или 5V (по маркировке конкретной платы), GND → GND.
  2. Модуль реле: сигнальный вход → D2, VCC → 5V, GND → GND.
  3. Вентилятор теплицы подключайте через контакты COM/NO реле строго по инструкции модуля — эта часть схемы может работать с реальным напряжением вентилятора и должна быть собрана аккуратно и изолированно.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <Wire.h>
#include <Adafruit_HTU21DF.h>

Adafruit_HTU21DF htu;
const int RELAY_PIN = 2;

const float HUMIDITY_ON = 75.0;
const float HUMIDITY_OFF = 70.0;
const float TEMP_ON = 30.0;
const float TEMP_OFF = 27.0;

bool ventOn = false;

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);

  if (!htu.begin()) {
    Serial.println("HTU21D не найден!");
    while (1) delay(1000);
  }
}

void loop() {
  float temp = htu.readTemperature();
  float hum = htu.readHumidity();

  Serial.print("T: "); Serial.print(temp);
  Serial.print(" H: "); Serial.println(hum);

  bool shouldVentOn = (hum >= HUMIDITY_ON) || (temp >= TEMP_ON);
  bool shouldVentOff = (hum <= HUMIDITY_OFF) && (temp <= TEMP_OFF);

  if (!ventOn && shouldVentOn) {
    ventOn = true;
    digitalWrite(RELAY_PIN, HIGH);
  } else if (ventOn && shouldVentOff) {
    ventOn = false;
    digitalWrite(RELAY_PIN, LOW);
  }

  delay(5000);
}

Библиотека Adafruit_HTU21DF ставится через Менеджер библиотек Arduino IDE. Границы `HUMIDITY_ON`/`TEMP_ON` в примере ориентировочные — подберите под реальную культуру и сезон в вашей теплице.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 📡 удалённый монитор пульса через ESP8266 на …🚨 охранная сигнализация нескольких дверей че… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 247 ₽ 222 ₽ (экономия 25 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA