НАЗАД

Подключение датчика влажности и температуры

Используем датчик температуры и влажности EB-Hum&Temp Sensor (Maker Studio), тип датчика DHT 11. DHT 11 имеет три контакта, DHT 12 имеет 4 контакта. В случае DHT 12 третий контакт не используется.
В случае, если нет сигнала (значения) от датчика, возвращается значение NAN.
На рисунке ниже приведена схема подключения датчика влажности и температуры.

Данная схема демонстрирует не только подключение датчика температуры и влажности, но и одновременное подключение ЖКИ, обеспечивающее вывод данных.
Ниже приведена программа считывания показаний сенсора и передача показаний на компьютер через последовательный порт.

#include "DHT.h"
#define DHTPIN 0 //Digital port
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
// настраиваем передачу данных между ПК и Arduino
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin(); //включить датчик DHT
}
void loop()
{
// определяем переменные, в которые записываются значения
float h = dht.readHumidity(); //влажности
float t = dht.readTemperature(); //температуры
if (isnan(t) || isnan(h)) //проверяем на отсутствие сигнала (NAN)
{
Serial.println("Failed to read from DHT");
}
else // Если сигналы есть, то выводим в консоль данные по измерению.
{
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
}

Далее приводится программа считывания показаний сенсора 1 раз в секунду и передача показаний на дисплей ЖКИ.

#define DHTPIN 6
#define DHTTYPE DHT11
#include
#include
#include
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
// первоначальная настройка и запуск LCD и датчика DHT
lcd.begin(16, 4);
dht.begin();
}
void loop()
{
float h = dht.readHumidity(); //определяем переменную и
//считываем в нее значение
float t = dht.readTemperature(); //определяем переменную и
//считываем в нее значение
String hh = String(h); //определяем строковую переменную hh и присваиваем ей значение h
String tt = String(t); //определяем строковую переменную tt и присваиваем ей значение t
lcd.setCursor(0,0);
lcd.print("Humidity: ");
lcd.setCursor(10,0);
lcd.print(hh);
lcd.setCursor(11,0);
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print("Temperature: ");
lcd.setCursor(12,1);
lcd.print(t);
lcd.setCursor(13,1);
lcd.print(" *C");
delay(1000);
}