Датчик в связке с Ардуино для измерения влажности воздуха и температуры

В этой инструкции я использую датчик DHT11 в связке с Ардуино Уно, чтобы отобразить текущую температуру и влажность на дисплее размером 16 х 2. Кроме того, я также встроил в девайс три диода, которые отображают показания датчика температуры (холодно, горячо, экстремально).

DHT11 – это цифровые датчики, позволяющие вам получать данные о температуре и влажности. Из-за их низкой цены и небольшого размера, DHT11 идеально подходят для разных самодельных проектов, связанных с электроникой. Некоторые проекты, где используется DHT11, также включают в себя удаленные погодные станции, системы управления домашней обстановкой и системы мониторинга садовых участков.

Спецификация DHT11:

  • Диапазон измерения влажности: 20-90% RH
  • Точность измерения влажности: ±5% RH
  • Диапазон измерения температуры: 0-50 °C
  • Точность измерения температуры: ±2% °C
  • Рабочее напряжение: от 3 до 5.5V

Далее я пошагово опишу вам, как соединить Ардуино и датчик температуры и влажности и связать это всё с DHT11 и диодами, сопроводив описание фотографиями.

Шаг 1: Вещи, необходимые для проекта

  1. Макетная плата
  2. Дисплей LCD 16 X 2
  3. Провода с джамперами
  4. Плата Arduino UNO и установленный на компьютере Arduino IDE
  5. 3 светодиода (разных цветов)
  6. Небольшая макетная плата (не обязательно)
  7. Датчик температуры и влажности DHT11

Это всё, что вам нужно для начала сборки датчика влажности воздуха и температуры на Ардуино.


Шаг 2: Настраиваем соединение с Ардуино

Соединение компонентов – самая важная часть проекта. Удостоверьтесь, что всё сделали правильно, иначе вы можете уничтожить датчик. Изображение выше и в шаге 3 отображает соединение на макетной плате в чистом виде. Темно-синие провода отвечают за напряжение 5V, черные – заземление.

  1. Дисплей содержит 16 пинов, которые отмечены на обратной стороне модуля разными именами. Удостоверьтесь, что соединяете нужные пины.
  2. Чтобы определить, где какие пины у датчика 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 градусов и соответственно меняется горящий светодиод.

Игорь Самоделов
Игорь Самоделов

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

1 комментарий
  1. У меня почему-то пишет ошибка.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *