В этом проекте вы построите метеостанцию для измерения температуры и влажности и вывод результатов на ЖК-дисплей.
Нам понадобится
Компоненты
- Плата Arduino
- Макетная плата
- Перемычки
- Потенциометр с сопротивлением 50 кОм
- ЖК-дисплей размером 16x2
- Датчик температуры и влажности
Библиотеки
- LiquidCrystal
- DHT
Нам понадобитсяПринцип работы
Датчик, используемый в этом проекте, — это относительно дешевая модель DHT11, показанная на рис. 13.1, которая измеряет и влажность, и температуру. В этом модуле используется емкостный датчик влажности и резистивный температурный датчик для считывания параметров окружающей среды. Модуль передает результаты замеров плате Arduino в виде электрических импульсов, a Arduino преобразует их в понятные человеку значения и выводит на дисплей. Для достижения наилучших результатов рекомендуется установить датчик снаружи помещения на открытом воздухе. А ЖК-дисплей расположить в помещении либо упаковать в прозрачный непромокаемый чехол или корпус, чтобы защитить от влияния внешних факторов.
Модель датчика DHT11 оборудована тремя контактами, как показано на рис. 13.1. Непосредственно сам датчик на модуле содержит четыре ножки, среди которых контакт 3 не используется.
Рисунок 13.1: Датчик DHT11 измеряет как температуру, так и влажностьСборка
1. Сначала подготовьте ЖК-дисплей в соответствии с инструкциями, приведенными в разделе «Подготовка ЖК-дисплея» в проекте 12. Установите датчик DHT11 на макетную плату. Контакты датчика DHT11 нумеруются от 1 до 3 справа налево, когда лицевая сторона обращена к вам. Подключите ножку 1 к шине питания 5 В, ножку 2 соедините непосредственно с контактом 8 платы Arduino и подключите ножку 3 к шине заземления.
2. Установите ЖК-дисплей на макетную плату и подключите его контакты к Arduino, как показано в следующей таблице и на рис. 13.2. Шины заземления и питания 5 В будут содержать несколько подключений.
Рисунок 13.2: Подключение ЖК-дисплея к макетной плате
3. Установите потенциометр на макетную плату, как показано на рис. 13.3, и подключите его центральный контакт к контакту 3 ЖК-дисплея. Подключите один внешний контакт потенциометра к шине питания 5 В, а другой — к шине заземления.
Рисунок 13.3: Подключение потенциометра к макетной плате4. Подключите шины макетной платы к контактам GND и 5V платы Arduino. Убедитесь, что ваша цепь соответствует схеме, показанной на рис. 13.4, и загрузите в память Arduino код скетча, приведенный в разделе «Скетч» далее в этом проекте.
Рисунок 13.4: Принципиальная схема цепи метеостанцииСкетч
В этом скетче используется библиотека LiquidCrystal, доступная в составе дистрибутива среды разработки Arduino, и библиотека DHT, которую вам нужно скачать в архиве arduino_geddes.zip (и установить в среде разработки Arduino, как это продемонстрировано в разделе «Библиотеки» в этом уроке). Библиотека DHT позволяет управлять работой датчика, а библиотека LiquidCrystal выводит полученные данные на дисплей.
// Скетч для тестирования различных датчиков влажности/температуры типа DHT
#include <LiquidCrystal.h>
#include "DHT.h" // Вызов библиотеки DHT
#define DHTPIN 8 // Контакт, к которому подключен датчик DHT
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTTYPE DHT11 // Определение типа модуля DHT
DHT dht(DHTPIN, DHTTYPE); // Команда библиотеке DHT.h
void setup() {
dht.begin(); // Включение датчика
lcd.begin(16, 2); // ЖК-дисплей отображает 16 символов в 2 строках
}
void loop() {
float h = dht.readHumidity(); // Значение влажности
float t = dht.readTemperature(); // Значение температуры
t = t * 9 / 5 + 32; // Преобразование значения из Цельсия в Фаренгейты
if (isnan(t) || isnan(h)) { // Проверка работоспособности датчика DHT
lcd.setCursor(0, 0);
lcd.print("Failed to read from DHT"); // Если датчик DHT не работает, выводится это сообщение
} else { // В противном случае на дисплей выводятся результаты замеров
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humidity: ");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print("f");
}
}
Теги: