Table of Contents

Климат в классе

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

Для измерения температуры и влажности используется датчик DHT11. Диапазон измерения температуры: от 0℃ до 50℃, допуск ± 2℃, диапазон измерения влажности: 20% ~ 95%, допуск ± 5%.

Дальнейшее развитие проекта

Схема

Код

#include "DHT.h"
#include <Servo.h>
 
#define DHTPIN 3 // Пин подключения датчика
 
#define ledRED 13
#define ledGREEN 12
#define servoPin 9
 
DHT dht(DHTPIN, DHT11);
Servo servo;
 
void setup() {
  pinMode(ledRED, OUTPUT);
  pinMode(ledGREEN, OUTPUT);
 
  servo.attach(servoPin); // сервомотор присоединен к пину 9
  servo.write(0); // Выставляем начальное положение 
 
  Serial.begin(9600);
  dht.begin();
}
 
void loop() {
  delay(2000); // измерение параметров каждые 2 секунды
 
  float h = dht.readHumidity(); //Измеряем влажность
  float t = dht.readTemperature(); //Измеряем температуру
 
  if (isnan(h) || isnan(t)) {  // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
    Serial.println("Ошибка считывания");
    return;
  }
 
  if (t > 25) {
    digitalWrite(ledRED, HIGH); // включаем красный светодиод
    digitalWrite(ledGREEN, LOW); // выключаем зеленый светодиод
    servo.write(90); // Поворачиваем серво на 90 градусов
  }
  else {
    digitalWrite(ledGREEN, HIGH); // включаем зеленый светодиод
    digitalWrite(ledRED, LOW); // выключаем красный светодиод
    servo.write(0); // Поворачиваем серво на 0 градусов
  }
 
  Serial.print("Влажность: ");
  Serial.print(h);
  Serial.print(" %\t");
 
  Serial.print("Температура: ");
  Serial.print(t);
  Serial.println(" *C "); //Вывод показателей на экран
}