В этом проекте вы построите метеостанцию для измерения температуры и влажности и вывод результатов на ЖК-дисплей.
Нам понадобится
Компоненты
- Плата Arduino
- Макетная плата
- Перемычки
- Потенциометр с сопротивлением 50 кОм
- ЖК-дисплей размером 16x2
- Датчик температуры и влажности
Библиотеки
- LiquidCrystal
- DHT

Принцип работы
Датчик, используемый в этом проекте, — это относительно дешевая модель DHT11, показанная на рис. 13.1, которая измеряет и влажность, и температуру. В этом модуле используется емкостный датчик влажности и резистивный температурный датчик для считывания параметров окружающей среды. Модуль передает результаты замеров плате Arduino в виде электрических импульсов, a Arduino преобразует их в понятные человеку значения и выводит на дисплей. Для достижения наилучших результатов рекомендуется установить датчик снаружи помещения на открытом воздухе. А ЖК-дисплей расположить в помещении либо упаковать в прозрачный непромокаемый чехол или корпус, чтобы защитить от влияния внешних факторов.
Модель датчика DHT11 оборудована тремя контактами, как показано на рис. 13.1. Непосредственно сам датчик на модуле содержит четыре ножки, среди которых контакт 3 не используется.

Сборка
1. Сначала подготовьте ЖК-дисплей в соответствии с инструкциями, приведенными в разделе «Подготовка ЖК-дисплея» в проекте 12. Установите датчик DHT11 на макетную плату. Контакты датчика DHT11 нумеруются от 1 до 3 справа налево, когда лицевая сторона обращена к вам. Подключите ножку 1 к шине питания 5 В, ножку 2 соедините непосредственно с контактом 8 платы Arduino и подключите ножку 3 к шине заземления.

2. Установите ЖК-дисплей на макетную плату и подключите его контакты к Arduino, как показано в следующей таблице и на рис. 13.2. Шины заземления и питания 5 В будут содержать несколько подключений.


3. Установите потенциометр на макетную плату, как показано на рис. 13.3, и подключите его центральный контакт к контакту 3 ЖК-дисплея. Подключите один внешний контакт потенциометра к шине питания 5 В, а другой — к шине заземления.

4. Подключите шины макетной платы к контактам GND и 5V платы Arduino. Убедитесь, что ваша цепь соответствует схеме, показанной на рис. 13.4, и загрузите в память Arduino код скетча, приведенный в разделе «Скетч» далее в этом проекте.

Скетч
В этом скетче используется библиотека 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"); } }
Теги: