Контроль за температурой и влажностью в классе и автоматическое проветривание. При нормальной температуре и влажности на устройстве горит зеленый светодиод. При превышении контролируемых параметров зеленый светодиод гаснет, загорается красный светодиод и сервопривод открывает створки системы пассивного проветривания. При восстановлении параметров створки системы вентиляции закрываются.
Для измерения температуры и влажности используется датчик 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 "); //Вывод показателей на экран }