Теперь когда мы можем понаблюдать за температурой и влажностью в "Мониторе порта".Теперь мы сделаем индикатор превышения порога температуры.С помощью все тех же компонентов и уже установленных библиотек с прошлых уроков.

Соберем схему ниже:

 



Запрограммируем следующим кодом:

#include "DHT.h"// Подключаем библиотеки
#define DHTPIN 12 // это пин для датчика
#define DHTTYPE DHT11 // тип датчика

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);// настраиваем порт
Serial.println("elemic_test!"); // выводим небольшой текст в начале
pinMode(5, OUTPUT);// Подключаем светодиод
dht.begin();// начинаем работать
}
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("Failed sensor!");// выводим если датчик не работает
return;
}
float hif = dht.computeHeatIndex(f, h);//вычисляем
float hic = dht.computeHeatIndex(t, h, false);// вычисляем

Serial.print("Humidity: ");// вывод показаний
Serial.print(h);// вывод показаний
Serial.print(" %\t");// вывод показаний
Serial.print("Temperature: ");// вывод показаний
Serial.print(t);// вывод показаний
Serial.print(" *C ");// вывод показаний
Serial.print(f);// вывод показаний
Serial.print(" *F\t");// вывод показаний
Serial.print("Heat index: ");// вывод показаний
Serial.print(hic);// вывод показаний
Serial.print(" *C ");// вывод показаний
Serial.print(hif);// вывод показаний
Serial.println(" *F");// вывод показаний
if(hic<28) digitalWrite(5, HIGH); // при сигнале до 28.Включаем светодиод
else digitalWrite(5, LOW); // если от 28.То,выключаем светодиод
}

Если вы захотите изменять температуру срабатывания просто поменяйте в коде в строке:if(hic<28) digitalWrite(5, HIGH); , меняем 28 на любое число, которое вам нужно.

Удачи в обучении.

@Элемик