Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Температура влажности Arduino DTH22 с ЖК-дисплеем I2C 16x2

Компоненты и расходные материалы

Arduino UNO
× 1
Датчик температуры DHT22
× 1
Белый на синем ЖК-модуль 16 × 2 с рюкзаком I2C - 5 В
× 1
Беспаечный макет, полный размер
× 1
Батарея 9 В (стандартная)
× 1
Зажим аккумулятора Adafruit 9 В с вилкой 5,5 / 2,1 мм
× 1
Кабель USB-A - Mini-USB
× 1
Провода перемычки "папа / мама"
× 1
Штыревые / штыревые перемычки
× 1

Об этом проекте

В течение двух лет у моего сына (7) было желание завести домашнюю змею. Наконец купил парочку змей с террариумом. Чтобы змеи находились в комфортных условиях, нам необходимо следить за температурой и влажностью.

Поэтому мы купили аналоговый датчик влажности / температуры и обнаружили, что поддерживать оба уровня на хорошем уровне непросто. Поскольку я очень хотел начать проект с моей недавно купленной Arduino Uno, мне показалось хорошей идеей использовать датчик влажности / температуры и позволить Arduino автоматизировать температуру и влажность в террариуме. Поэтому я купил датчик влажности / температуры DTH22 и ЖК-дисплей I2C 16x2 и попробовал.

Это руководство является основой этого проекта. В этом руководстве нет никакой автоматизации. Просто использование DTH22 и ЖК-дисплея I2C.

Я видел другой учебник для этой цели, но в нем использовался ЖК-дисплей без I2C. Если у вас нет I2C, подключенного к ЖК-дисплею, ознакомьтесь с этим руководством от ThothLoki

Требуется оборудование

  • Любой 5V Arduino (в данном случае Arduino Uno R3)
  • Датчик влажности / температуры DTH22
  • ЖК-дисплей 16x2 с установленным на нем разъемом I2C.
  • Макет
  • 6 перемычек типа папа / папа
  • 4 перемычки "папа / мама".

Необходимые библиотеки

  • Adafruit_Sensor
  • DHT
  • NewliquidCrystal

Прежде чем мы начнем

Мне нравится ЖК-дисплей 16x2 с установленным I2C, потому что он избавляет вас от проблем, связанных со всеми контактами, которые могут или не должны быть подключены к Arduino. Вам нужно всего 4 перемычки и все.

Дисплей имеет адрес I2C для приема команд или отправки сообщений. Обратной стороной является то, что вам нужно выяснить, какой адрес он использует, прежде чем продолжить. Я не буду вдаваться в подробности здесь, но на форуме Arduino вы можете прочитать все об этом.

В моем случае наше устройство использует адрес 0x3F , если ваше устройство также использует этот адрес, вам повезло, вы можете просто скопировать наш код.

Подключите макетную плату к Arduino

Датчик DHT22, а также ЖК-дисплей 1602 I2C используют источник питания 5 В. Поэтому я подключил вывод 5V на моем Arduino к красному + ряду на макете, а землю моего Arduino - к синему - на макете. Поскольку я хочу, чтобы цвета синхронизировались, в моей схеме я буду использовать красные кабели для 5 В и синие кабели для заземления. В реальной жизни я не использовал синий вместо земли, но белый ... я полагаю, я слишком много играл с автомобильной электроникой.

Я буду использовать желтый кабель для передачи данных, оранжевый кабель для SDA и серый кабель для SCL. Буква два будет на I2C.

Добавление датчика DHT22

Посмотрим на распиновку. Датчик DHT22 (как и DHT11) имеет четыре контакта. Я кладу датчик DHT22 на макетную плату лицевой стороной наружу. Таким образом, первый вывод (питание 5 В) будет справа (см. Схему).

Я использую небольшой красный соединительный кабель для подключения 5V VCC к 5V (+) ряду на макетной плате. И небольшая синяя перемычка для подключения заземления к ряду заземления (-) на макетной плате. Я взял длинный желтый кабель, чтобы подключить второй контакт, контакт данных, к Arduino. Поскольку это цифровые данные, я подключил их к порту данных 4 на Arduino. В других примерах вы, вероятно, увидите людей, использующих порт 7, оба будут работать. Я использовал порт 4, потому что я ожидал, что буду использовать больше портов данных, и хотел сохранить порт 7 на всякий случай. Вы также увидите это на схеме.

Добавление ЖК-дисплея 16x2 I2C

ЖК-дисплей 16x2 I2C также имеет 4 контакта. Глядя на картинку ниже слева направо:

  • Земля
  • VCC (5 В)
  • ПДД
  • SCL

Подключите первый (левый) контакт к заземляющему (-) ряду на макетной плате. Подключите второй контакт к красному ряду 5 В (+) на макетной плате. Я использую Arduino Uno, поэтому у него есть соединения I2C на A4 (SDA) и A5 (SCL). Итак, я подключил третий контакт к A4, а четвертый контакт - к разъему A5 на Arduino.

Код

Помните, что для экрана у вас может быть другой адрес для подключения. Мой I2C использует адрес 0x3F (см. Раздел «Перед тем, как начать»), поэтому будьте осторожны, мой код настроен для этого адреса.

Помните о необходимых библиотеках (Adafruit_Sensor, DHT, NewliquidCrystal). Загрузите эти библиотеки, разархивируйте их и поместите в директорию библиотек вашего проекта.

Затем загрузите код в свой Arduino и проверьте влажность и температуру вашего террариума (или серверного шкафа, или холодильника, или просто вашей гостиной).

Код

  • hygroThermo.ino
hygroThermo.ino C / C ++
 / * Как использовать датчик DHT-22 с датчиком температуры и влажности Arduino uno Подробнее:http://www.ardumotive.com/how-to-use-dht-22-sensor-en.html Dev:Михалис Василакис // Дата:07.01.2015 // www.ardumotive.com * /// Библиотеки # include  #include  #include  #include  // Константы # определить DHTPIN 4 // к какому выводу мы подключены # определить DHTTYPE DHT22 // DHT 22 (AM2302) DHT dht (DHTPIN, DHTTYPE); //// Инициализировать датчик DHT для нормального Arduino 16 МГц // ВСЕГДА ИСПОЛЬЗУЙТЕ ЭТО С ЖК-дисплеем I2C и адресами 0x3F # define I2C_ADDR 0x3F # define BACKLIGHT_PIN 3 # define En_pin 2 # define Rw_pin 1 # define Rs_pin 0 # define D4_pin 4 # define D5_pin 5 #define D6_pin 6 # define D7_pin 7LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); // Variablesint chk; float hum; // Сохраняет значение влажности float temp; // Сохраняет значение температурыvoid setup () {Serial.begin (9600); dht.begin (); lcd.begin (16,2); lcd.setBacklightPin (BACKLIGHT_PIN, ПОЛОЖИТЕЛЬНЫЙ); lcd.setBacklight (ВЫСОКИЙ);} недействительный цикл () {задержка (2000); // Считываем данные и сохраняем их в переменных hum и temp hum =dht.readHumidity (); temp =dht.readTemperature (); // Вывести значения температуры и влажности на серийный монитор Serial.print ("Humidity:"); Serial.print (гул); Serial.print ("%, температура:"); Serial.print (темп); Serial.println («Цельсия»); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Температура:"); lcd.print (темп); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0,1); lcd.print ("Гуд:"); lcd.print (гул); lcd.print ("%"); задержка (2000); // Задержка 2 секунды} 

Схема

Схема Fritzing schema_UcHE1qRu2t.fzz

Производственный процесс

  1. Связь Arduino I2C с Raspi 2 WIOT
  2. ЖК-панель с Arduino для симулятора полета
  3. Захват капель воды с помощью Arduino
  4. Регистратор данных температуры и влажности
  5. Игра с дисплеем Nextion
  6. Отображение изображения на ЖК-экране TFT с помощью Arduino UNO!
  7. BME280 Температура, влажность и давление на дисплее Nextion
  8. Осциллограф 10 Гц-50 кГц для самостоятельного изготовления на ЖК-дисплее 128x64
  9. u-blox LEA-6H 02 GPS-модуль с Arduino и Python
  10. Простой будильник с DS1302 RTC