/*#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int pir = 7;
int pir_value;
int led_1 = 8;
int led_2 = 9;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(pir, INPUT);
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
pir_value = digitalRead(pir);
if (pir_value == 1) {
digitalWrite(led_1, HIGH);
Serial.println("Є рух");
}
else {
digitalWrite(led_1, LOW);
}
if (h <= 50) {
digitalWrite(led_2, HIGH);
Serial.println("Вологість впала нижче норми");
}
else {
digitalWrite(led_2, LOW);
}
}
*/
#include "DHT.h" //підключаємо бібліотеку для сенсора DHT22
#define DHTPIN 5 // пін до якого приєднано датчик DHT22
#define DHTTYPE DHT22 // визначення типу датчика
DHT dht(DHTPIN, DHTTYPE); // ініціалізація датчика
// робочі змінні
int pir = 7;
int pir_value;
int led_1 = 8;
int led_2 = 9;
int a;
char b;
int led_3 = 3;
void setup() {
Serial.begin(9600); //увімкнути компорт на швидкості 9600 бод
dht.begin(); // запуск датчика
// ініціюємо піни
pinMode(pir, INPUT);
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
}
void loop() {
delay(2000); // затримка 2 с між перевіркою датчиків
float h = dht.readHumidity(); // зчитуємо вологість
float t = dht.readTemperature(); // зчитуємо температуру в цельсіях
float f = dht.readTemperature(false); // не зчитуємо температуру в фаренгейтах
// перевірка на наявність помилок у зчитуванні
if (isnan(h) || isnan(t)) {
Serial.println(F("Помилка зчитування!"));
return;
}
// передаємо дані (вологість, температуру) в компорт
Serial.print(F("Вологість: "));
Serial.print(h);
Serial.print(F("% Температура: "));
Serial.print(t);
Serial.println(F("°C "));
// зчитуємо пір сенсор та задаємо умову
// якщо рух є, то вмикається зелений світлодіод і в компорту виводиться "є рух"
pir_value = digitalRead(pir);
if (pir_value == 1) {
digitalWrite(led_1, HIGH);
Serial.println("Є рух");
}
else {
digitalWrite(led_1, LOW);
}
// задаємо умову: якщо вологість впаде нижче 50, то червоний світлодіод увімкнеться
// також виведуться відповідні написи
if (h <= 50) {
digitalWrite(led_2, HIGH);
Serial.println("Вологість впала нижче норми");
}
else {
digitalWrite(led_2, LOW);
Serial.println("Вологість в нормі");
}
// блок коду, що відповідає за управління жовтим світлодіодом
// якщо ввести "1", світлодіод загориться, якщо "0" погасне
// також виведуться відповідні написи
if (Serial.available() > 0) {
b = Serial.read();
a = b - '0';
}
if (a == 1) {
digitalWrite(led_3, HIGH);
Serial.println("Світлодіод увімкнено");
}
if (a == 0) {
digitalWrite(led_3, LOW);
Serial.println("Світлодіод вимкнено");
}
Serial.println ();
}