![Измерване на температура и влажност с DHT11 и Arduino Nano](http://ardudevelop.eu/wp-content/uploads/2024/09/Измерване-на-температура-и-влажност-с-DHT11-и-Arduino-Nano.png)
В тази статия ще демонстрираме как да използваме DHT11 сензор за температура и влажност в комбинация с Arduino Nano. Проектът ще включва четене на данни от сензора и визуализацията им в сериен монитор чрез Arduino IDE.
Необходими компоненти:
- Arduino Nano – микроконтролерът, с който ще работим. Може да разгледате неговите характеристики и неговта пин-диаграма в статията ни: Arduino Nano.
- DHT11 сензор – сензорът за измерване на температура и влажност.
- Резистор 4.7kΩ – за стабилизиране на комуникацията между сензора и Arduino.
- Кабели – за свързване на компонентите.
- Компютър с инсталирана Arduino IDE – за програмиране и наблюдение на резултатите.
Схема на свързване:
![Измерване на температура и влажност с DHT11 и Arduino Nano Схема](http://ardudevelop.eu/wp-content/uploads/2024/09/Измерване-на-температура-и-влажност-с-DHT11-и-Arduino-Nano-Схема-1024x406.png)
- DHT11 има три пина:
- VCC (захранване, свържете към 5V на Arduino)
- GND (земя, свържете към GND на Arduino)
- Data (свържете към дигитален пин D2 на Arduino Nano).
Можете да използвате резистор от 4.7kΩ между VCC и Data пина за по-стабилен сигнал.
Библиотека за DHT11:
За да използваме DHT11 сензора в проекта, първо трябва да инсталираме библиотеката dht.h
, която позволява лесна комуникация със сензора. Тази библиотека може да свалите от тук: DHT_lib. Ако не знаете как да импортирате библиотеката в Arduino IDE може да научите това в статията ни: Arduino IDE бърз преглед.
Код за Arduino Nano и DHT11:
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup() {
Serial.begin(9600); // Инициализиране на серийната комуникация
}
void loop() {
int chk = DHT.read11(DHT11_PIN); // Четене на данни от DHT11 сензора
// Принтиране на температурата
Serial.print("Температура = ");
Serial.print(DHT.temperature, 1); // Отпечатване на температурата с 1 знак след десетичната запетая
Serial.print(" *C");
Serial.print(" || ");
// Принтиране на влажността
Serial.print("Влажност = ");
Serial.print(DHT.humidity, 1); // Отпечатване на влажността с 1 знак след десетичната запетая
Serial.print(" %");
Serial.println(); // Нов ред в серийния монитор
delay(500); // Забавяне от 500ms преди следващото четене
}
Обяснение на кода:
- Импортиране на библиотеката:
#include <dht.h>
Библиотекатаdht.h
съдържа всички необходими функции за работа с DHT11 сензора. - Инициализиране на DHT сензора:
dht DHT;
Създава обект от класаdht
, който ще ни позволи да извикваме методите за четене на температура и влажност. - Дефиниране на пина за DHT11:
#define DHT11_PIN 2
Указва на кой пин на Arduino е свързан сензорът DHT11 – в този случай е използван дигитален пин D2. - Инициализация на серийната комуникация:
Serial.begin(9600);
Тази команда стартира серийния монитор със скорост на предаване от 9600 бода. - Четене на данни от DHT11:
int chk = DHT.read11(DHT11_PIN);
Методътread11()
извършва комуникацията със сензора и връща кода за грешка (ако има). След като данните са прочетени, те се съхраняват в обектаDHT
. - Принтиране на температура и влажност:
Serial.print("Температура = ")
; Serial.print(DHT.temperature, 1); Serial.print(" *C");
Температурата, съхранена вDHT.temperature
, се отпечатва на сериен монитор с една цифра след десетичната запетая. Същото се отнася и за влажността. - Забавяне:
delay(500);
Включваме половинсекундно забавяне между всяко измерване, за да не претоварваме процесора с твърде чести обновявания на данните.
Резултати:
След качването на този код в Arduino Nano и отварянето на серийния монитор, ще започнете да виждате стойности за температура и влажност, обновявани на всеки 500 милисекунди. Примерен изход ще изглежда така:
Температура = 24.0 *C || Влажност = 60.0 %
Температура = 24.1 *C || Влажност = 60.1 %
Температура = 24.0 *C || Влажност = 59.9 %
Видео демонстрация:
Заключение:
С този прост проект научихме как да свържем DHT11 сензора към Arduino Nano и как да изчитаме и визуализираме измерените стойности за температура и влажност. Това е само основата за по-сложни IoT приложения, като например система за мониторинг на околната среда или автоматизация на климатични системи.