سنسور DHT11/DHT22 یکی از پرکاربردترین سنسورهای دما و رطوبت در پروژههای آموزشی و IoT است. این سنسور با یک پروتکل دیجیتالِ زمانبندیشدهٔ اختصاصی روی یک سیم داده کار میکند، اما میکروپایتون یک کتابخانهٔ آماده برای آن دارد که همهچیز را ساده میکند.
نصب و استفاده از ماژول dht
ماژول dht در اکثر نسخههای فریمور ESP32 بهصورت پیشفرض موجود است. اگر نبود، میتوانید آن را از طریق ابزار mip یا upip نصب کنید.
import dht
from machine import Pin
from time import sleep
sensor = dht.DHT22(Pin(15))
while True:
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print("دما: {}°C رطوبت: {}%".format(temp, hum))
except OSError as e:
print("خطا در خواندن سنسور:", e)
sleep(2)
سنسور DHT حداکثر هر ۲ ثانیه یکبار قابل خواندن است. خواندن سریعتر از این باعث بروز خطا میشود.
مدیریت خطا با try/except
ارتباط با سنسورهای فیزیکی همیشه ممکن است با خطا (نویز، اتصال شل، تایماوت) مواجه شود. استفاده از try/except برای گرفتن OSError باعث میشود برنامهٔ شما در صورت بروز خطای موقتی متوقف نشود.
کارگاه عملی: مقادیر دما و رطوبت را در دو متغیر جداگانه ذخیره کنید و اگر دما از ۳۰ درجه بیشتر شد، پیام هشدار «گرم است!» چاپ کنید.