DHT22 и ESP32 C3 измерване на температура и влажност с MicroPython

DHT22 и ESP32 C3 измерване на температура и влажност с MicroPython

Въведение

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
DHT22-pinout

Библиотека за 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

Translate »