Вывод температуры и влажности с датчика DHT11 на LCD дисплей с помощью Arduino
Приветствуем читателей нашего урока по программированию на Arduino. В данной статье мы разберем подключение и программирование уникального соединения сразу нескольких элементов, и у нас получится интересный проект. Для осуществления нашего проекта требуется база знаний. На прошлых уроках мы смотрели подключение LCD экрана к "Ардуино" и подключение датчика влажности и температуры DHT11 к "Arduino". С помощью этих базовых знаний мы без труда совместим наши знания и получим крутой гибрид. Вам это понравится!
Взглянем на схему подключения нашего соединения.
Схема подключения LCD экрана и датчика влажности и температуры DHT11 к Arduino
Вам представлена схема подключения нашего проекта. Как вы видите нам нужно не мало компонентов для этого соединения, а чтобы приступить к сборке нам нужно их подготовить.
Необходимые компоненты для подключения нашего проекта
- Любая Arduino(в нашем случае прототип Arduino UNO)
- LCD-дисплей на базе HD44780
- Breadboard(макетная плата)
- Соединительные провода
- Датчик DHT11 в любой модернизации (мы используем модернизированный датчик)
- Резистор на 10 кОм (для датчика с четырьмя ножками вывода)
- Ваша внимательность и терпение =)
После того, как вы собрали необходимые комплектующие приступим к подключению.
Подключение LCD экрана и датчика влажности и температуры DHT11 к Arduino
Ну что, пришло время приступить к подключению. Советую делать это внимательно и никуда не торопиться, ведь кто поспешит тот людей насмешит, помните об этом.
После подключения у вас должно получиться примерно такая картинка.
Правильность подключения мы сможем проверить только после программирования нашего микроконтроллера "Ардуино"
Программирование нашего соединения на Arduino
Для того, чтобы микроконтроллер понял наши действия нам необходимо скачать и установить необходимые библиотеки.
Скачать библиотеку для датчика DHT11 можно здесь , а библиотеку для LCD дисплея можно здесь .
После того, как мы скачали нужную библиотеку, ее нужно правильно установить. скачанные файлы нужно переместить по следующему пути :
Диск C Progtam Files Arduino Libraries
Ну что, время пришло познать код программы. Напомню, что подробные объяснения к подключению датчика влажности и температуры и lcd экрана можно посмотреть в предыдущих уроках.
#define
DHTPIN 10
#define
DHTTYPE DHT11
DHT
dht(DHTPIN, DHTTYPE);
#include
"DHT.h"
#include
<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void
setup() {
lcd.begin
(16,2);
dht.begin(
);
}
void
loop() {
int
h = dht.readHumidity();
int
t = dht.readTemperature();
lcd.
setCursor(0, 0);
lcd.
print("Temp: ");
lcd.
print(t);
lcd.
print("C");
lcd.
setCursor(0,1);
lcd.
print("Humidity: ");
lcd.
print(h);;
lcd.
print("%");
delay
(200);
}
Пояснение
Перейдем к объяснению нашего кода, ведь нужно уметь понимать то, что ты делаешь! Первые строки у нас в коде такие:
#define
DHTPIN 10
#define
DHTTYPE DHT11
#define это удобная директива, которая позволяет дать имя константе перед тем как программа будет скомпилирована.
Синтаксис: #define constantName value
Внимание! Символ # перед словом define обязателен.
Следующая строчка :
DHT
dht(DHTPIN, DHTTYPE);
В этой строчке мы создаем и обозначаем объект "dht"
Затем в нашем коде пишутся такие строчки :
#include
"DHT.h"
#include
<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Здесь мы подключаем библиотеку для датчика влажности и температуры и lcd исплея. Также для lcd дисплея обозначаем порты подключения
Следующим в нашем коде идет цикл, который выполняется лишь один раз.
void
setup() {
lcd.begin
(16,2);
dht.begin(
);
}
В этом цикле мы указываем, что на дисплее будет "16" столбцов и "2" строчки. Также в этом цикле мы заставляем датчик DHT11 работать.
Перейдем к еще одному циклу в нашем скетче. Это уже цикл, который будет повторяться до тех пор, пока вы не отключите питание установки.
void
loop() {
int
h = dht.readHumidity();
int
t = dht.readTemperature();
lcd.
setCursor(0, 0);
lcd.
print("Temp: ");
lcd.
print(t);
lcd.
print("C");
lcd.
setCursor(0,1);
lcd.
print("Humidity: ");
lcd.
print(h);;
lcd.
print("%");
delay
(200);
}
В строчках "int h = dht.readHumidity();" и "int t = dht.readTemperature();" мы вводим переменные "h" и "t" , в которые будет считываться значение с датчика DHT11. Это нам понадобится для дальнейших действий.
Далее строчкой "lcd. setCursor(0, 0);" мы ставим курсор нашей программы в ПЕРВУЮ строчку дисплея и в ПЕРВЫЙ столбик. Будте внимательны, счет ведется с нуля, тоесть значение "0" в коде - это первая строчка или группа .
Рассмотрим следующие 3 строчки:
lcd.
print("Temp: ");
lcd.
print(t);
lcd.
print("C");
В строчках lcd. print("Temp: "); , lcd. print(t); и lcd. print("C"); мы указываем то, что будет написанно на самом LCD дисплее. Хотелось бы обратить внимание на то, что мы указали переменную "t", которая отвечает за информацию, выданную с датчика DHT11.
В следующих строчках все аналогично.
setCursor(0,1);
lcd.
print("Humidity: ");
lcd.
print(h);;
lcd.
print("%");
Обратите внимание что в строчке "setCursor(0,1);" мы указываем курсор программы на экране в ПЕРВЫЙ столбик, но во ВТОРУЮ строчку.
Ну а завершающей строкой нашего кода является:
delay
(200);
Смысл этой строки очень прост, мы даем программе время "передохнуть". Delay это время, которое программа будет бездействовать, ждать, ничего не делая. В нашем скетче мы указали 200 мс (значение всегда задается в "мс")
Ну что, мы справились! В конце у нас должно получиться вот так!
Ну вот и все, мы вывели температуру и влажность с датчика dht11 на lcd экран с помощью Arduino ! Согласитесь, это не сложно, но очень интересно и необычно. Если вам понравилось , как мы вам объяснили и показали подключение и программирование этого соединения,то делитесь с друзьями этой статьей.