
Интернет-магазин «Неглупый Дом»
KY-015 одновременно измеряет температуру и влажность воздуха — если хотя бы один параметр выходит за допустимый диапазон, включается реле проветривания и звуковой сигнал.
KY-015 — это готовый модуль на базе датчика DHT11, который измеряет сразу два параметра одним цифровым сигналом по одному проводу: температуру воздуха и относительную влажность. Для теплицы оба параметра критичны: слишком высокая температура может сжечь растения в солнечный день, а слишком высокая влажность — спровоцировать грибковые заболевания.
Плата проверяет оба значения на каждом цикле измерения. Как только хотя бы один параметр превышает заданный порог, включается реле, управляющее вентилятором или форточкой проветривания — то есть система сначала пытается решить проблему естественным способом. Звуковая сирена включается только при более серьёзном превышении (на 3 градуса выше порога температуры) — это сигнал, что одной вентиляции уже недостаточно и нужно вмешательство человека.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <DHT.h>
#define DHTPIN 2 // пин датчика KY-015
#define DHTTYPE DHT11 // KY-015 использует чип DHT11
DHT dht(DHTPIN, DHTTYPE);
const int relayPin = 7; // реле вентиляции
const int buzzerPin = 8; // сирена
const float maxTemp = 32.0; // порог температуры для проветривания, °C
const float maxHumidity = 85.0; // порог влажности для проветривания, %
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(relayPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
// DHT11 иногда не успевает ответить вовремя (не чаще раза в секунду) — пропускаем цикл
Serial.println("Ошибка чтения датчика, пропускаем измерение");
delay(3000);
return;
}
bool alarm = (t > maxTemp || h > maxHumidity);
digitalWrite(relayPin, alarm ? HIGH : LOW);
digitalWrite(buzzerPin, (t > maxTemp + 3) ? HIGH : LOW); // сирена только при сильном перегреве
Serial.print("Температура: "); Serial.print(t);
Serial.print(" C, Влажность: "); Serial.print(h);
Serial.println(" %");
delay(3000); // DHT11 обновляет показания не чаще раза в секунду, 3 сек — с запасом
}
KY-015 совместим с библиотекой DHT (тип DHT11). Сирена включается с запасом в 3 градуса сверх порога проветривания — сначала пробуем решить проблему вентиляцией, и только потом тревога.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 197 ₽ 177 ₽ (экономия 20 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.