В этой инструкции я использую датчик DHT11 в связке с Ардуино Уно, чтобы отобразить текущую температуру и влажность на дисплее размером 16 х 2. Кроме того, я также встроил в девайс три диода, которые отображают показания датчика температуры (холодно, горячо, экстремально).
DHT11 – это цифровые датчики, позволяющие вам получать данные о температуре и влажности. Из-за их низкой цены и небольшого размера, DHT11 идеально подходят для разных самодельных проектов, связанных с электроникой. Некоторые проекты, где используется DHT11, также включают в себя удаленные погодные станции, системы управления домашней обстановкой и системы мониторинга садовых участков.
Спецификация DHT11:
- Диапазон измерения влажности: 20-90% RH
- Точность измерения влажности: ±5% RH
- Диапазон измерения температуры: 0-50 °C
- Точность измерения температуры: ±2% °C
- Рабочее напряжение: от 3 до 5.5V
Далее я пошагово опишу вам, как соединить Ардуино и датчик температуры и влажности и связать это всё с DHT11 и диодами, сопроводив описание фотографиями.
Шаг 1: Вещи, необходимые для проекта
- Макетная плата
- Дисплей LCD 16 X 2
- Провода с джамперами
- Плата Arduino UNO и установленный на компьютере Arduino IDE
- 3 светодиода (разных цветов)
- Небольшая макетная плата (не обязательно)
- Датчик температуры и влажности DHT11
Это всё, что вам нужно для начала сборки датчика влажности воздуха и температуры на Ардуино.
Шаг 2: Настраиваем соединение с Ардуино
Соединение компонентов – самая важная часть проекта. Удостоверьтесь, что всё сделали правильно, иначе вы можете уничтожить датчик. Изображение выше и в шаге 3 отображает соединение на макетной плате в чистом виде. Темно-синие провода отвечают за напряжение 5V, черные – заземление.
- Дисплей содержит 16 пинов, которые отмечены на обратной стороне модуля разными именами. Удостоверьтесь, что соединяете нужные пины.
- Чтобы определить, где какие пины у датчика DHT11, смотрите диаграмму, приложенную выше. Если диаграмма выглядит слишком сложной, то соединяйте устройства по этому списку:
- GND Ардуино к отрицательному контакту печатной платы (все черные провода соединяются здесь)
- 5V Ардуино к положительному контакту платы (все тёмно-синие провода соединяются здесь)
- Положительный пин DHT11 на положительный контакт печатной платы
- Отрицательный пин к отрицательному контакту
- Сигнальный пин DHT11 на налоговый пин A0 Arduino (по нему данные с DHT11передаются на Arduino)
- LCD 1 на отрицательный контакт печатной платы
- LCD 2 на положительный контакт
- LCD на отрицательный контакт печатной платы (если вы соедините его с потенциометром, то сможете управлять яркостью дисплея)
- LCD 4 на цифровой пин 12 Arduino (координаты символов на дисплее)
- LCD 5 на отрицательный контакт печатной платы
- LCD 6 на цифровой пин (ЦП) 11 Arduino (команда инициализации LCD)
- LCD 11 на ЦП 5 Arduino
- LCD 12 на ЦП 4 Arduino
- LCD 13 на ЦП 3 Arduino
- LCD 14 на ЦП 2 Arduino
- LCD на положительный контакт печатной платы
- LCD 16 на отрицательный контакт печатной платы
- Положительный пин холодного/зеленого светодиода на ЦП 7 Arduino (отрицательный пин на отрицательный контакт платы)
- Положительный пин горячего/желтого светодиода на цифровой пин 8 (отрицательный пин на отрицательный контакт платы)
- Положительный пин экстремального/красного светодиода на цифровой пин 9 Arduino (отрицательный пин на отрицательный контакт платы)
Если вы всё соединили правильно, то вы выполнили практически половину проекта, так как следующие шаги будут достаточно простыми.
Шаг 3: Что у вас примерно должно получиться
Я приложил несколько фотографий, чтобы вы смогли увидеть, что у вас в итоге получится. Так как это сложная схема, то я постарался наилучшим образом сделать всё чисто и аккуратно. Надеюсь, что это поможет вам при сборке.
Теперь, перед тем, как приступить к шагу с программированием, нам нужно скачать две библиотеки Ардуино для дисплея и датчика DHT11. Мне потребовалось некоторое время, чтобы найти работающую библиотеку для DHT11, так как большинство из них оказались устаревшими. Библиотека дисплея встроена в IDE Ардуино, но я приложу обе библиотеки.
Если вы не знаете, как установить библиотеки Ардуино внутри IDE, то откройте Arduino IDE Sketch Include Library Add Library и выберите файлы .zip.
ФайлыШаг 4: Скетч (код Ардуино)
Вот код, который вам нужно будет скомпилировать и загрузить на плату Ардуино Уно. Если вы соединили всё правильно и установили две нужные библиотеки, то у вас не должно возникнуть ошибок.
#include #include #include "DHT.h" #define DHTPIN A0 // what pin we're connected to #define DHTTYPE DHT11 // we are using the DHT11 sensor LiquidCrystal lcd(12, 11, 5, 4, 3, 2); DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); for (int DigitalPin = 7; DigitalPin <= 9; DigitalPin++) { pinMode(DigitalPin, OUTPUT); } lcd.begin(16,2); //16 by 2 character display dht.begin(); } void loop() { delay(1000); // Reading temperature or humidity takes about 250 milliseconds! float h = dht.readHumidity(); float t = dht.readTemperature(); // Read temperature as Celsius (the default) lcd.clear(); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(t); //printing temperarture to the LCD display lcd.print("'C"); lcd.setCursor(0,1); lcd.print("Humid: "); lcd.print(h); //printing humidity to the LCD display lcd.print("%"); //the 3-led setup process if (t22) { digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(9, LOW); } else if (t>=35) { digitalWrite(9, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); } }Файлы
Шаг 5: Общее описание настройки
Как только код\скетч скомпилирован и загружен на Ардуино, вы увидите текущую температуру и влажность окружающей обстановки. Датчик обновляется каждую секунду, чтобы сообщать вам актуальные данные. Кроме этого, вы заметите, что в зависимости от окружающей обстановки, всегда горит один из трёх диодов.
Диоды настроены следующим образом:
- Если температура ниже 22℃, то горит холодный светодиод (зеленый)
- Если температура между 22 — 35℃, будет светиться горячий светодиод (желтый)
- Если температура выше 35℃, будет гореть экстремальный светодиод (красный)
Вы можете настроить данные для светодиодов по своему усмотрению.
Я приложил две фотографии с нормальной для нашей местности температурой в 31 ℃ (с горящим желтым светодиодом). Затем я расположил датчик недалеко от кубика льда, чтобы понизить температуру до 22℃ (чтобы загорелся зеленый светодиод).
На приложенном видео вы увидите, как температура меняется с 19 до 24 градусов и соответственно меняется горящий светодиод.
У меня почему-то пишет ошибка.