راه اندازی سنسور دما و رطوبت DHT11/DHT22 با آردوینو

  • نویسنده موضوع نویسنده موضوع Ali
  • تاریخ شروع تاریخ شروع

اطلاعات موضوع

درباره موضوع در تاریخ, در دسته آردوینو ایجاد شده و آغاز کننده آن Aliمی باشد و موضوع آن: راه اندازی سنسور دما و رطوبت DHT11\/DHT22 با آردوینو است. این موضوع تا کنون 17 بازدید کننده و, 0 پاسخ داشته و 0 بار پسندیده شده...
نام دسته آردوینو
نام موضوع راه اندازی سنسور دما و رطوبت DHT11\/DHT22 با آردوینو
آغاز کننده موضوع Ali
تاریخ شروع
پاسخ‌ها
0
بازدیدها
17
پسندها
0
آخرین ارسال توسط Ali

Ali

مسئول نظارت بر محتوا
پرسنل مدیریت
ناظم انجمن
Jun 7, 2020
984
1,269
سنسورهای DHT11 و DHT22 از جمله سنسورهای پرکاربرد برای اندازه‌گیری دما و رطوبت محیط هستند که به دلیل سادگی استفاده و قیمت مناسب، در پروژه‌های آردوینو بسیار محبوب شده‌اند. این مقاله به شما کمک می‌کند تا این سنسورها را با آردوینو راه‌اندازی کنید.

معرفی سنسورهای DHT11 و DHT22

این سنسورها از نوع دیجیتال هستند و داده‌های دما و رطوبت را به صورت سریال تک سیمه (One-Wire) ارسال می‌کنند. تفاوت اصلی بین DHT11 و DHT22 در دقت، محدوده اندازه‌گیری و سرعت نمونه‌برداری است:

  • DHT11:
* محدوده دما: 0 تا 50 درجه سانتی‌گراد با دقت ±2 درجه.
* محدوده رطوبت: 20% تا 90% RH با دقت ±5%.
* رزولوشن: 1 درجه سانتی‌گراد و 1% RH.
* سرعت نمونه‌برداری: هر 1 ثانیه یک بار.
* قیمت پایین‌تر.

  • DHT22 (AM2302):
* محدوده دما: -40 تا 80 درجه سانتی‌گراد با دقت ±0.5 درجه.
* محدوده رطوبت: 0% تا 100% RH با دقت ±2-5%.
* رزولوشن: 0.1 درجه سانتی‌گراد و 0.1% RH.
* سرعت نمونه‌برداری: هر 2 ثانیه یک بار.
* قیمت بالاتر و دقت بیشتر.

هر دو سنسور معمولاً در یک ماژول با سه یا چهار پایه عرضه می‌شوند. اگر چهار پایه داشته باشد، پایه سوم (NC) معمولاً استفاده نمی‌شود.

اتصال سخت‌افزاری

برای اتصال سنسور DHT به آردوینو، به یک مقاومت پول‌آپ (Pull-up Resistor) نیاز دارید که معمولاً 4.7 کیلواهم تا 10 کیلواهم است. برخی از ماژول‌های DHT این مقاومت را به صورت داخلی دارند.

پایه‌های سنسور DHT (معمولاً 3 یا 4 پایه):
1. VCC (یا 3V-5V): به 5V آردوینو متصل می‌شود.
2. Data (یا SIG): به یکی از پین‌های دیجیتال آردوینو (مثلاً پین 2) متصل می‌شود. مقاومت پول‌آپ بین این پایه و VCC قرار می‌گیرد.
3. NC (Not Connected): در برخی مدل‌ها وجود دارد و استفاده نمی‌شود.
4. GND: به GND آردوینو متصل می‌شود.

نمودار اتصال (مثال برای DHT11/DHT22 با مقاومت خارجی):

  • DHT VCC --- به آردوینو 5V
  • DHT Data --- به آردوینو Digital Pin 2
  • مقاومت 10KΩ --- بین DHT Data و DHT VCC
  • DHT GND --- به آردوینو GND

نصب کتابخانه (Library Installation)

برای کار با سنسورهای DHT، استفاده از کتابخانه Adafruit DHT Sensor Library توصیه می‌شود.
1. نرم‌افزار Arduino IDE را باز کنید.
2. به مسیر Sketch > Include Library > Manage Libraries... بروید.
3. در پنجره Library Manager، عبارت "DHT sensor" را جستجو کنید.
4. کتابخانه "DHT sensor library by Adafruit" را پیدا کرده و نصب کنید.
5. همچنین، این کتابخانه به کتابخانه "Adafruit Unified Sensor" نیاز دارد. آن را نیز جستجو و نصب کنید.

کد نمونه (Sample Code)

این کد دما و رطوبت را از سنسور DHT می‌خواند و در سریال مانیتور نمایش می‌دهد.

C++:
محتوای بلوک کدها در دسترس شما نیست. برای مشاهده بلوک کدها، وارد انجمن شوید یاثبت نام کنید

توضیح کد:

1. #include "DHT.h": کتابخانه DHT را وارد می‌کند.
2. #define DHTPIN 2: پین دیجیتال آردوینو که سنسور به آن متصل است را تعریف می‌کند.
3. #define DHTTYPE DHT11: نوع سنسور را مشخص می‌کند (می‌توانید آن را به DHT22 تغییر دهید).
4. DHT dht(DHTPIN, DHTTYPE);: یک شیء از کلاس DHT ایجاد می‌کند که با پین و نوع سنسور شما کار می‌کند.
5. setup():
* Serial.begin(9600);: ارتباط سریال را برای نمایش خروجی در سریال مانیتور با سرعت 9600 بیت بر ثانیه آغاز می‌کند.
* dht.begin();: سنسور DHT را راه‌اندازی می‌کند.
6. loop():
* delay(2000);: یک تاخیر 2 ثانیه‌ای ایجاد می‌کند. این تاخیر برای اطمینان از اینکه سنسور زمان کافی برای جمع‌آوری داده‌ها را دارد، ضروری است.
* dht.readHumidity();: رطوبت را می‌خواند.
* dht.readTemperature();: دما را به سانتی‌گراد می‌خواند.
* dht.readTemperature(true);: دما را به فارنهایت می‌خواند (با ارسال true به عنوان پارامتر).
* isnan(h) || isnan(t) || isnan(f): بررسی می‌کند که آیا خواندن داده‌ها با موفقیت انجام شده است یا خیر. isnan به معنای "is not a number" است و نشان‌دهنده خطای خواندن است.
* dht.computeHeatIndex(t, h, false);: شاخص گرما را بر اساس دما و رطوبت محاسبه می‌کند. پارامتر false برای محاسبه در واحد سانتی‌گراد است.
* در نهایت، مقادیر خوانده شده را در سریال مانیتور چاپ می‌کند.

نکات عیب‌یابی:

  • "Failed to read from DHT sensor!":
* اتصالات سیم‌کشی را دوباره بررسی کنید، به خصوص اتصال پایه دیتا و مقاومت پول‌آپ.
* مطمئن شوید که VCC و GND به درستی وصل شده‌اند.
* نوع سنسور (DHTTYPE) را در کد با سنسور واقعی خود مطابقت دهید.
* ممکن است سنسور خراب باشد.
  • مقادیر غیرمنطقی:
* مطمئن شوید که مقاومت پول‌آپ (اگر ماژول شما آن را ندارد) به درستی بین پایه دیتا و VCC وصل شده است.
* تاخیر بین خواندن‌ها را افزایش دهید (مثلاً به 2000 میلی‌ثانیه).
  • کتابخانه نصب نمی‌شود:
* مطمئن شوید که اتصال اینترنت دارید و Arduino IDE به روز است.
* کتابخانه "Adafruit Unified Sensor" را نیز نصب کرده‌اید.

با دنبال کردن این مراحل، می‌توانید به راحتی سنسورهای DHT11 یا DHT22 را با آردوینو خود راه‌اندازی کرده و داده‌های دما و رطوبت را در پروژه‌هایتان استفاده کنید.
 

عقب
بالا