🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

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

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

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

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()) { while (1) delay(1000); }
}

void loop() {
  float temp = htu.readTemperature();
  float hum = htu.readHumidity();
  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: Электронные модули.

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

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

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

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

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

Корзина

Поиск


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