راه اندازی سنسور رطوبت و دمای DHT11 توسط میکرو STM32

سنسور دما و رطوبت دیجیتال DHT11 یک سنسور کامپوزیتی است که حاوی یک سیگنال دیجیتال کالیبره شده دما و رطوبت است.

اولیه سازی

همان طور که در شکل بالا مشاهده می کنید ، برای اولیه سازی سنسور ، ما باید خط داده LOW را برای حدود ۱۸ ms بکشیم. پس از این DHT11 برای ۸۰us خط پایین و از ۸۰ را پایین می آورد. پس از انجام این کار ، سنسور اولیه شده و انتقال را شروع می کند.

توجه: شما باید یک مقاومت بالا کش را به خط داده وصل کنید وگرنه DHT11 قادر به بالا کشیدن آن نخواهد بود.

بنابراین برای اولیه سازی سنسور ، مراحل به شرح زیر است:

۱٫) پین (داده) را به عنوان خروجی تنظیم کنید.

۲٫) پین را پایین بکشید و منتظر ۱۸ میلی ثانیه باشید.

۳٫) پین را به عنوان ورودی برای دریافت داده تنظیم کنید.

 

اکنون DHT11 همان طور که در شکل بالا مشاهده می کنید ، پاسخ را ارسال می کند.

برای بررسی پاسخ ، مراحل به شرح زیر است:

۱٫) برای ۴۰ میکرو ثانیه صبر کنید

۲٫) بررسی کنید که پین پایین است ، از انتظار برای ۸۰us. این به طور کامل تاخیر در ۱۲۰us خواهد داشت و پین اکنون باید زیاد باشد.

۳٫) بررسی کنید که پین بالا است یا خیر. اگر چنین باشد ، پاسخ مناسب است.

۴-) حالا صبر کنید تا پین پایین کش شود زیرا همان طور که در شکل زیر می بینید، پین قبل از انتقال هر بیت برای ۵۰ میکرو ثانیه باید پایین باشد.

 

ارسال داده

اکنون DHT11‌ ۴۰ بیت داده ارسال می کند. انتقال هر بیت از سطح ولتاژ کم شروع می شود که ۵۰ میکرو ثانیه طول می کشد ، طول سیگنال با ولتاژ بالا در زیر تصمیم می گیرد که میزان بیت “۱” یا “۰” باشد.

بنابراین اگر طول سطح ولتاژ بالا در حدود ۲۶ تا ۲۸ میکرو ثانیه باشد ، بیت “۰” است.

و اگر طول حدود ۷۰ میکرو ثانیه باشد ، بیت “۱” است.

۴۰ بیت ارسال شده توسط DHT22 به شرح زیر است: DATA = 8 بیت داده RH انتگرالی + ۸ بیت داده RH  دسیمالی + ۸ بیتی داده T انتگرالی + ۸ بیت داده T  دسیمالی + ۸ بیت‌checksum

اگر انتقال داده درست باشد ، checksum  باید آخرین ۸ بیت داده های ” ۸ بیت داده RH انتگرالی + ۸ بیت داده RH  دسیمالی + ۸ بیتی داده T انتگرالی + ۸ بیت داده T  دسیمالی ”  باشد.

خواندن داده ها نیز بسیار ساده است. مراحل به شرح زیر است:

۱٫) صبر کنید تا پین بالا برود (PullUp).

۲٫) ۴۰ میکرو ثانیه منتظر باشید. دلیلش این است که طول بیت “۰” ۲۶-۲۸ میکرو ثانیه است و اگر پین بعد از ۴۰ میکرو ثانیه بالا باشد ، نشان می دهد که بیت “۱” است.

۳٫) مقادیر مربوطه را روی متغیر بنویسید.


دانلود پروژه