![DHT22 и ESP32 C3 измерване на температура и влажност с MicroPython](http://ardudevelop.eu/wp-content/uploads/2024/10/Screenshot-2024-10-28-222747.png)
Въведение
DHT22 е популярен сензор за измерване на температура и влажност, често използван в IoT проекти и проекти за домашна автоматизация. С помощта на ESP32 C3 super mini и MicroPython можем лесно да четем стойностите на температурата и влажността от този сензор. В тази статия ще разгледаме как да използваме вградената в MicroPython библиотека за DHT, ще демонстрираме примерен код за четене на данни и ще обясним работата му стъпка по стъпка.
Свързвне на компонентите
За да свържете DHT22 сензор към ESP32 C3, се използват три основни връзки: един пин за захранване (VCC), един за земя (GND) и един за данни (DATA). DATA пинът трябва да бъде свързан към цифров вход на ESP32 C3 (в нашия случай пин 0), който да чете измерените стойности на температурата и влажността.
При свързването е важно да се добави “pull-up” резистор (обикновено 4.7 кОм) между VCC (3.3V) и DATA пина. Този резистор гарантира, че когато DHT22 не изпраща данни, линията остава в стабилно високо състояние. Той поддържа стабилността на сигнала и предотвратява евентуални грешки в комуникацията между ESP32 и DHT сензора, като намалява риска от смущения на линията за данни.
За свързването ще ви е необходимо да се запознаете с ESP32 платформата, както и неговата диаграма на пиновете (pinout). В нашия случай сме използвали платформата ESP32 C3 Super Mini, като може да прочетете повече за нея в нашето ревю за нея. Ако искате да използвате друго ESP32, разгледайте другите ни ревюта за тях:
Също така ще се нуждаете и от пин диаграмата на DHT22. Нея може да видите на изображението отдолу.
![DHT22-pinout](http://ardudevelop.eu/wp-content/uploads/2024/10/DHT22-pinout.png)
Библиотека за DHT в MicroPython
MicroPython разполага с вградена библиотека за DHT сензори, която улеснява интеграцията на DHT22 и други подобни сензори (като DHT11). Тази библиотека предлага функции за инициализация на сензора и методи за изчитане на данни от него. Тя се грижи за комуникацията с DHT сензора, като автоматично извършва измерванията и връща стойности на температурата и влажността.
Код за четене на данни от DHT22 с ESP32 C3 и MicroPython
import dht
from machine import Pin
from time import sleep
dht_inicialize = dht.DHT22(Pin(0))
while True:
dht_inicialize.measure()
temp = dht_inicialize.temperature()
hum = dht_inicialize.humidity()
print("Температура = ", round(temp , 1), "*C")
print("Влажност = ", round(hum , 1), "%")
sleep(1)
Обяснение на кода
Импортиране на библиотеките:
import dht
from machine import Pin
from time import sleep
Тук зареждаме необходимите модули: dht
за работа с DHT22, Pin
от модула machine
за управление на пиновете на ESP32 C3 и sleep
от модула time
за паузи между измерванията.
Инициализация на DHT22:
dht_inicialize = dht.DHT22(Pin(0))
Този ред създава обект за DHT22 сензора и го свързва към пин номер 0 на ESP32 C3. Тази настройка позволява на MicroPython да комуникира директно със сензора.
Основен цикъл за изчитане на данни:
while True:
Този цикъл ще се изпълнява постоянно, като при всяко изпълнение ще чете нови стойности на температурата и влажността от DHT22.
Измерване и четене на температура и влажност:
dht_inicialize.measure()
temp = dht_inicialize.temperature()
hum = dht_inicialize.humidity()
Методът measure()
стартира измерването от DHT22 сензора. След това с методите temperature()
и humidity()
се извличат стойностите на температурата и влажността, които се съхраняват в променливите temp
и hum
.
Форматиране и отпечатване на стойностите:
print("Температура = ", round(temp, 1), "*C")
print("Влажност = ", round(hum, 1), "%")
Чрез print()
командата стойностите на температурата и влажността се отпечатват в конзолата. round()
функцията закръгля стойностите до първия знак след десетичната запетая за по-прегледен изход.
Паузиране на цикъла:
sleep(1)
Тази пауза от 1 секунда между всяко измерване предпазва сензора от претоварване и дава възможност за редовно обновяване на данните.
Заключение
В тази статия разгледахме как да използваме DHT22 за измерване на температура и влажност с ESP32 C3 и MicroPython. Този код е чудесна отправна точка за IoT проекти, където се изисква мониторинг на климатични условия. Благодарение на лесната интеграция с MicroPython, DHT22 може бързо да бъде настроен за запис на данни или за създаване на алармени системи на базата на стойностите на околната температура и влажност.
Имформацията е взета от: www.docs.micropython.org