Вступление
DHT11 — это цифровой датчик температуры и влажности, который часто используется в проектах на базе Arduino. LCD 1602 — это популярный дисплей, который позволяет отображать информацию в формате 16×2 символов. В этой статье мы рассмотрим, как подключить DHT11 к Arduino и вывести данные на дисплей LCD 1602 с интерфейсом I2C. Скетч подходит для всех типов Arduino.
Краткое описание DHT11 и LCD 1602
DHT11 измеряет влажность в диапазоне от 20% до 90% и температуру от 0°C до 50°C. LCD 1602 позволяет отображать до 32 символов, что делает его удобным для вывода данных с различных датчиков.
Схема подключения DHT11 к Arduino и Arduino к LCD 1602
Для подключения DHT11 и LCD 1602 I2C к Arduino вам понадобятся следующие компоненты:
- Arduino (например, Uno)
- Датчик DHT11
- Резистор 10 кОм
- Дисплей LCD 1602 с модулем I2C
- Провода для соединений
№ | DHT11 | Arduino |
---|---|---|
1 | VCC | 5V |
2 | GND | GND |
3 | DATA | D2 |
Установите резистор 10 кОм между выводами VCC и DATA на DHT11.
№ | LCD 1602 | Arduino |
---|---|---|
1 | VCC | 5V |
2 | GND | GND |
3 | SDA | A4 |
4 | SCL | A5 |
Необходимые библиотеки
- DHT-sensor-library: Библиотека для работы с датчиком DHT11.
- Adafruit Unified Sensor: Библиотека для работы с различными датчиками.
- LiquidCrystal I2C: Библиотека для работы с LCD 1602 через интерфейс I2C.
Код взаимодействия DHT11 и Arduino с выводом на LCD 1602
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Adafruit_Sensor.h>
// Определите пин, к которому подключен DHT11
#define DHTPIN 2
// Определите тип используемого DHT датчика
#define DHTTYPE DHT11
// Создайте экземпляр класса DHT
DHT dht(DHTPIN, DHTTYPE);
// Создайте экземпляр класса LiquidCrystal_I2C с адресом 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Инициализируйте последовательный порт для вывода данных
Serial.begin(9600);
Serial.println("DHT11 датчик температуры и влажности и LCD1602");
// Инициализируйте DHT11
dht.begin();
// Инициализируйте LCD1602
lcd.begin();
lcd.backlight();
lcd.print("DHT11 & LCD1602");
delay(2000);
lcd.clear();
}
void loop() {
// Подождите 2 секунды между измерениями
delay(2000);
// Считайте данные с DHT11
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Проверьте, произошла ли ошибка при чтении данных
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Ошибка при чтении данных с DHT11");
lcd.setCursor(0, 0);
lcd.print("Ошибка DHT11");
return;
}
// Вывод данных в Serial Monitor
Serial.print("Влажность: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(temperature);
Serial.println(" *C");
// Вывод данных на LCD1602
lcd.setCursor(0, 0);
lcd.print("Влажность: ");
lcd.print(humidity);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("Темп: ");
lcd.print(temperature);
lcd.print(" C");
}
Заключение
Подключение DHT11 и LCD 1602 к Arduino позволяет создавать простые и функциональные системы мониторинга температуры и влажности. Используя предоставленные схемы подключения и пример кода, вы сможете быстро реализовать свой проект и отобразить данные на дисплее.
FAQ
1. Какие компоненты нужны для подключения DHT11 и LCD 1602 к Arduino?
Вам понадобятся Arduino, датчик DHT11, резистор 10 кОм, дисплей LCD 1602 с модулем I2C и соединительные провода.
2. Какие библиотеки нужны для работы с DHT11 и LCD 1602?
Используйте библиотеки DHT-sensor-library, Adafruit Unified Sensor и LiquidCrystal I2C.
3. Как часто можно считывать данные с DHT11?
Рекомендуется делать замеры каждые 2 секунды для обеспечения точности данных и предотвращения перегрева датчика.
4. Какой адрес используется для модуля I2C дисплея LCD 1602?
Обычно используется адрес 0x27, но он может отличаться в зависимости от конкретного модуля.