Проект сенсора температуры и влажности Arduino DHT11
January 7, 2025
Проект сенсора температуры и влажности Arduino DHT11
Линия датчиков DHT (DHT11/22) является одной из наиболее часто используемых в многих электронных проектах, начиная от домашних метеорологических станций до систем автоматизации заводов,из-за его простоты и компактности в качестве датчика температуры/влажностиХотя более точный и дорогой DHT22 может быть заменен (с некоторыми изменениями в коде), в этом проекте будет использоваться сенсорный модуль DHT11.Датчик DHT11, который будет использоваться в этом проекте, не является самостоятельной версией 4-конечного датчика, а скорее, трехконечный модуль, который имеет встроенный конденсатор и вытягивающий резистор, тем самым исключая необходимость в дополнительных компонентах при создании этой схемы.модуль датчика DHT11 может быть напрямую подключен к цифровому пин, который обрабатывает и подает серийные данные от датчика в микроконтроллер, чтобы мы читали.
В этомПроект DIY PCBA, данные о температуре и влажности от датчика DHT11 будут отображаться на 0,96 "128×64 OLED (органический светоизлучающий диод) дисплей, чтобы мы могли четко читать.Преимущество использования дисплея i2c OLED по сравнению с другими типами дисплеев заключается в том, что для него требуется только 4-проводное соединение с платой Arduino и с широким спектром библиотекПримечательным признаком OLED-дисплея является его четкость, четкость и визуальное качество текстов, фигур и изображений, которые он может отображать.
В целом, это довольно простой проект схемы, который подходит для абсолютно новичков, так как он требует только несколько компонентов и некоторые базовые навыки кодирования.,Этот проект определенно может быть улучшен и модернизирован, чтобы добавить больше функций, таких как беспроводная связь (RF, LoRa,ПКБ Bluetooth, Wi-Fi и т. д.), данные RTC (часы в реальном времени), дополнительные данные датчиков (высота, атмосферное давление, концентрация газов и т. д.) и многие другие функции.Вам нужно будет купить компоненты.:
Arduino Nano (работают другие совместимые с Arduino платы)
Кабель USB (совместим с платой Arduino)
Хлебная доска
Мужчины-мужчины (7)
0.96′′ 128×64 i2c OLED дисплей
Модуль датчика DHT11
Проводка
Для этого проекта FS Technology использует Arduino Nano, что требует использования breadboard.Однако, если вместо этого используется Arduino Uno, кабели-прыги могут быть подключены непосредственно к булавкам платы, что устраняет необходимость в хлебной доске.проводка для модуля датчика DHT11 и OLED-дисплея к плате Arduino остается неизменнойКроме того, схема проводки для цепи датчика температуры и влажности DHT11 приведена ниже.
Модуль датчика DHT11: подключите сигнал (S) датчика к D2, положительный (+) к +5v и отрицательный (-) к GND.
OLED: подключайте SDA (серийные данные) к A4, SCL/SCK (серийные часы) к A5, VDD/VCC (вольт питания) к +5v и GND к GND.
Теперь вы можете подключить свою плату Arduino через USB-кабель к компьютеру.
Код проекта
#включать
#включать
#включать
#определитьscreen_width (ширина экрана)128
#определитьвысота экрана64
#определитьOLED_RESET4
Adafruit_SSD1306отображение(ширина экрана, высота экрана);
#включать∆DHT.h ∆
#определитьDHTPIN2
#определитьDHTTYPEDHT11
DHTДт(DHTPIN, DHTTYPE);
недействительнынастройка(){
Дт.начать();
отображение.начать(SSD1306_SWITCHCAPVCC, 0x3С);
отображение.ClearDisplay();
}
недействительныцикл(){
отображение.ClearDisplay();
отображение.setTextSize(1);
отображение.setTextColor(SSD1306_WHITE);
отображение.setКурсор(0,15);
отображение.печать(Температура:);
отображение.setКурсор(80,15);
отображение.печать(Дт.ЧитатьТемпература());
отображение.setКурсор(110,15);
отображение.печать(️ C ️);
отображение.setКурсор(0,35);
отображение.печать(Уровень влажности:);
отображение.setКурсор(80,35);
отображение.печать(Дт.ЧитатьВлажность());
отображение.setКурсор(110,35);
отображение.печать(%);
отображение.отображение();
задержка(2000);
О коде
Одним из преимуществ работы с дисплеем i2c OLED является невероятное количество поддержки, которая доступна в Интернете, в виде библиотек с открытым исходным кодом,что может значительно помочь в программировании дисплея из Arduino IDEВ этом проекте, the Adafruit SSD1306 and GFX libraries are the main two libraries that are utilized to interface the OLED display with the Arduino and since all the setup information is already configured in the library files, основные команды используются в IDE, упрощая использование дисплея.Вы можете столкнуться с компиляционными ошибками, поэтому убедитесь, что у вас есть последние версии библиотеки, установленные в Arduino IDE.
Код начинается с определения библиотек, необходимых для настройки OLED-дисплея: Wire, Adafruit SSD1306 и Adafruit GFX.
Во втором блоке определены несколько параметров, относящихся к OLED-дисплею, включая ширину и высоту экрана (128 x 64 пикселя) и пин резета OLED (A4).
Далее определяются библиотеки, необходимые для интерфейса датчика DHT11 с Arduino, в частности библиотека ∆DHT.Цифровой пин, который DHT датчик подключен к на доске Arduino (цифровой пин 2 D2) дополнительно определяется рядом с конкретной модели DHT датчика мы используем, датчик DHT11.
Теперь, вводится раздел пустоты, одна из двух основных функций в каждом коде Arduino.начать ((()) а также OLED дисплей и перед тем, как приступить к разделу пустого цикла, дисплей OLED очищается от любых предыдущих визуальных эффектов (display.clearDisplay()).
С точки зрения секции пустой петли, основная часть кода, которая непрерывно повторяется (в петле) до тех пор, пока есть питание к плате Arduino,в основном состоит из специальных функций OLED, которые сначала устанавливают размер текста, цвет текста и курсор (где мы хотим, чтобы текст печатался на OLED).который в основном является информацией о температуре (в градусах Цельсия) и влажности (%) которая считывается датчиком DHT11. Только с помощью этих простых команд, которые были произведены из библиотек, определенных, мы можем легко распечатать любую информацию на дисплее.
С функцией задержки в самом конце кода, он настроен на обновление OLED дисплея каждые 2000 миллисекунд с последними данными, считанными с датчика.Вы можете изменить это время в зависимости от того, как часто вы хотите получать обновленную информацию непосредственно от датчика.
Резюмируйте
С фундаментальным пониманием этого проекта и основных принципов, которые участвуют в соединении датчика с OLED-дисплеем,Есть, конечно, множество способов, которыми этот проект может быть модернизирован и улучшен.Чаще всего подобные установки могут быть интегрированы в гораздо более крупный проект метеорологической станции, возможно, добавляя больше датчиков, больший дисплей, беспроводные возможности, чехол и т.д.Как показал этот проект, просто ознакомившись с некоторыми библиотеками Arduino, которые доступны для использования, тогда становится относительно легко настроить свою собственную метеостанцию.Будущий проект может включать беспроводную передачу таких данных о погоде с одной платы микроконтроллера на другую для мониторинга удаленной среды или централизованного управления автономной системойТем не менее, подобные проекты отлично подходят для знакомства с электронной электроникой для начинающих и могут также быть ориентированы на более опытных.Производитель PCBAкоторые могут захотеть исследовать другие аспекты электроники.