متوسط⏱ 15 دقیقه مطالعه

سنسور DHT11/DHT22 یکی از پرکاربردترین سنسورهای دما و رطوبت در پروژه‌های آموزشی و IoT است. این سنسور با یک پروتکل دیجیتالِ زمان‌بندی‌شدهٔ اختصاصی روی یک سیم داده کار می‌کند، اما میکروپایتون یک کتابخانهٔ آماده برای آن دارد که همه‌چیز را ساده می‌کند.

نصب و استفاده از ماژول dht

ماژول dht در اکثر نسخه‌های فریمور ESP32 به‌صورت پیش‌فرض موجود است. اگر نبود، می‌توانید آن را از طریق ابزار mip یا upip نصب کنید.

PYTHON
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 باعث می‌شود برنامهٔ شما در صورت بروز خطای موقتی متوقف نشود.

ایستگاه هواشناسی با سنسور DHT22 باز کردن در Wokwi ↗

این یک شبیه‌سازی واقعی و قابل اجراست؛ روی دکمه پخش (▶) در Wokwi بزنید تا کد روی برد مجازی ESP32 اجرا شود.

🛠️ کارگاه عملی

کارگاه عملی: مقادیر دما و رطوبت را در دو متغیر جداگانه ذخیره کنید و اگر دما از ۳۰ درجه بیشتر شد، پیام هشدار «گرم است!» چاپ کنید.

❓ چرا در کد بالا از try/except استفاده شده است؟
طراحی و توسعه: امین شیخ نجدیglcd.ir