#include "DHT.h" // Подключаем библиотеку DHT (DHT sensor library, этот которое само Wokwi использует в своих примерах с данным датчиком)
#define DHTPIN 2 // Пин к которому подключен датчик
#define DHTTYPE DHT22 // Используемый датчик DHT 22 (AM2302), AM2321
#define PIEZO 3 // Пин, к которому подключен пьезоэлемент
DHT dht(DHTPIN, DHTTYPE); // Инициализируем датчик
float sinVal;
int toneVal;
void setup() {
pinMode(2, OUTPUT);
dht.begin();
Serial.begin(9600); // Для отладки через монитор порта
}
void loop() {
delay(500); // Задежка в 0.5 с
float t = dht.readTemperature(); // Считывание температуры в градусах цельсия
if (isnan(t)) // Проверяем, получилось считать данные
{
Serial.println("Read error DHT22"); // Выводим текст ошибки
return;
}
if (t >= 45.0) { // Если при температура равно или больше 45 градусов, то пищалка включается
// Включить звуковой зуммер и генерировать тон (Взял вариант 4)
for (int x = 0; x < 180; x++) {
sinVal = sin(x * (3.1412 / 180));
toneVal = 2000 + int(sinVal * 1000);
tone(PIEZO, toneVal);
delay(10); // Задержка для предотвращения перегрузки
}
Serial.println("Жарко!");
} else if (t <= 0) { // В этой часте оно переключается на другой случай, а именно если температура меньше или равно 0 - то оно генерирует другую мелодию
// Включить звуковой зуммер и генерировать тон (Взял вариант 8)
for (int x = 0; x < 180; x++) {
sinVal = sin(x * (3.1412 / 180));
toneVal = 1546 + int(sinVal * 865);
tone(PIEZO, toneVal);
delay(10); // Задержка для предотвращения перегрузки
}
Serial.println("Холодно!");
} else {
// Выключить звуковой зуммер
noTone(PIEZO);
}
float hic = dht.computeHeatIndex(t, false);// Расчет тепла по целсию
Serial.print("Температура: "); // Выводим текст
Serial.print(t); // Отображаем температуру
Serial.println(" *C "); // Выводим текст
}