آردوینو آردوینو Arduino Uno

DHT11 سنسور رطوبت و دمای-پکیج سنسورکیت آردوینو

نوشته شده توسط علیرضا قربانی

در ادامه‌ی آموزش‌های سنسورکیتآردوینو در این بخش قصد داریم طریقه‌ی راه‌اندازی سنسور دما و رطوبت DHT11 را از پکیج سنسورکیت آردوینو آموزش دهیم. سنسور‌های سری DHT  یکی از ارزان ترین سنسورهای رطوبت و دما موجود در بازار می‌باشند. این سنسور‌ها بسیار مبتدی و کند می‌باشند از این رو برای استفاده در پروژه‌های صنعتی به هیچ عنوان توصیه نمی‌شود ولی برای کسانی که علاقمند به ثبت دما و محیط خود هستند مناسب است. این گونه سنسور‌ها  از دو قسمت ترمیستور ، برای اندازه‌گیری دما و سنسور رطوبت خازنی ، جهت اندازه‌‌گیری رطوبت تشکیل شده‌اند. درون این سنسور‌ها یک تراشه بسیار ساده جهت تبدیل مقادیر آنالوک بدست آمده از سنسور به مقدیر دیجیتال استفاده شده است  از این رو خروجی این سنسور دیجیتال می‌باشد  و نسبتا خواندن این سیگنال کار ساده‌ای می‌باشد.در ادامه آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 

سخت‌افزار مورد نیاز

آردوینو UNO (  خرید کیت آموزشی آردوینو  ـ کد تخفیف برای این محصول : L2BPLZBQ )

ماژول DHT11 از پکیج سنسور کیت آردوینو 

 

 

ویژگی‌های ماژول رطوبت و دما DHT11

 

  • بسیار مقرون به صرفه
  • ولتاژ کاری ۳ الی ۵ ولت
  • ماکسیمم ۲٫۵ میلی‌آمپر در حالت ارسال داده
  • دقت ۵ درصد در اندازه‌گیری رطوبت بین ۲۰ الی ۸۰ درصد
  • دقت ۰٫۵ سانتی گراد در دمای ۰ الی ۵ درجه سانتی گراد
  • نرخ نمونه برداری ۱ ثانیه

 

اتصال ماژول رطوبت و دما DHT11 به آردوینو

همانطور که قبلا گفته شد  خروجی این ماژول دیجیتال بوده ، پس فقط کافیست آن را به یکی از پین‌های دیحیتال آردوینو خود متصل کنید که ما در این پروژه آن را به پین شماره ۲ دیجیتال متصل کردیم. سایر اتصالات طبق تصویر زیر می‌باشد.

DHT11 arduino sensorkit
DHT11 arduino sensorkit

 

 

 

برنامه نویسی DHT11

برنامه نویسی این ماژول بسیار ساده می‌باشد فقط کافیست که طی زمان‌های خاصی سیگنال وارد شده به پین شماره ۲ را بخوانیم که ما برای سادگی هر چه بیشتر از کتابخانه مخصوص این ماژول استفاده کرده‌ایم. کتابخانه را از این لینک دانلود کنید و سپس طبق آموزش زیر آن را  به کتابخانه‌های موجود در نرم افزار آردوینو اضافه کنید.

 

آموزش نصب کتابخانه در نرم افزار arduino

 

 

حال کدهای زیر را کپی کرده و سپس بر روی آردوینو خود آپلود کنید. سپس وارد سریال مانیتور نرم افزار شوید و نتیجه را مشاهده کنید.

 

 

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۳ دیدگاه

  • سلام عرض ادب ، با عرض تشکر فراااااااوان از سایت عالی شما ، مهندسین این ماژول ، راه اندازی برای برد آردینو لئوناردو نیز همینگونه است؟ یا تفاوت دارد؟
    اگر ممکنه برای راه اندازی با برد آردینو لئوناردو نیز یک توضیح بگید

    • با سلام
      ضمن تشکر از توجه و دقت نظر شما، در خصوص راه اندازی با دیگر بردهای آردوینو، به صورت پیشفرض باید نوع برد را تغییر دهید، همچنین به صورت موردی در کدها هم باید تغییراتی ایجاد شود، از جمله اینکه آدرس‌ دهی پین‌ها تغییر کند. موارد را تست کنید و در هر مرحله که با مشکل مواجه شدید از همین طریق اعلام کنید.

      • تشکر مهندس ، قربان فقط طریقه نصب سخت افزاری این سنسور با ماژول لئوناردو هم همینگونه است ؟ طریقه نصب پین ها رو منظورمه که نصب این سنسور با ماژول های دیگر هم فرقی می کند؟

  • سلام..متاسفانه تمامی اتصالات چک و کد ها در برنامه paste شد این ارور مشاهده میشه ممنون میشم کمک کنین ..هرکاری کردم درست نشد
    Arduino: 1.8.0 (Windows 8.1), Board: “Arduino/Genuino Uno”
    tal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^

    compilation terminated.

    Multiple libraries were found for “DHT.h”
    در مورد کتابخانه adafruit هم تمامی کتابخانه ها دانلود شده..حتی زیپ فایل هم نصب شده
    ممنون

  • با سلام
    من این پروژه رو انجام دادم.ولی توی کنسول ،خروجی رو درست نشون نمیده.
    j⸮⸮⸮<⸮DHTxx test!
    Z⸮*⸮⸮^⸮⸮DHTxx test!
    ⸮⸮^⸮⸮۹⸮⸮⸮DHTxx test!
    ⸮⸮')⸮⸮⸮⸮DHTxx test!

    هم توی برنامه و هم توی کنسول باد ریت ۹۶۰۰ هست

  • با سلام و خسته نباشید ممنون میشم در این مورد راهنماییم کنید
    من میخوام اطلاعات دماو رطوبت را هر چندثانیه اندازه گیری کنم و روی رم اس دی ذخیره کنم برنامشو نوشتم اما کار نمیکنه ممنون میشم راهنماییم کنید
    #include
    #include
    #include “DHT.h”

    #define DHTPIN 8
    #define DHTTYPE DHT22

    long seconds=00;
    long minutes=00;
    long hours=00;

    int CS_pin = 10;

    DHT dht(DHTPIN, DHTTYPE);
    File sd_file;

    void setup() {
    Serial.begin(9600);
    pinMode(CS_pin, OUTPUT);
    dht.begin();
    // SD Card Initialization
    if (SD.begin()) {
    Serial.println(“SD card is initialized. Ready to go”);
    }
    else {
    Serial.println(“Failed”);
    return;
    }

    sd_file = SD.open(“data.txt”, FILE_WRITE);

    if (sd_file) {
    Serial.print(“Time”);
    Serial.print(“,”);
    Serial.print(“Humidity”);
    Serial.print(“,”);
    Serial.print(“Temperature_C”);
    Serial.print(“,”);
    Serial.print(“Temperature_F”);
    Serial.print(“,”);
    Serial.println(“Heat_index”);

    sd_file.print(“Time”);
    sd_file.print(“,”);
    sd_file.print(“Humidity”);
    sd_file.print(“,”);
    sd_file.print(“Temperature_C”);
    sd_file.print(“,”);
    sd_file.print(“Temperature_F”);
    sd_file.print(“,”);
    sd_file.println(“Heat_index”);
    }
    sd_file.close(); //closing the file
    }

    void loop() {
    sd_file = SD.open(“data.txt”, FILE_WRITE);
    if (sd_file) {
    senddata();
    }
    // if the file didn’t open, print an error:
    else {
    Serial.println(“error opening file”);
    }
    delay(1000);
    }

    void senddata() {
    for(long seconds = 00; seconds =58) {
    minutes= minutes + 1;
    }

    if (minutes>59) {
    hours = hours + 1;
    minutes = 0;
    }

    sd_file.flush(); //saving the file

    delay(2000);
    }
    sd_file.close(); //closing the file
    }