آردوینوپروژه آردوینو

نمایش دما و رطوبت با استفاده از حسگر DHT22 و نمایشگر ۲*۱۶

در این قسمت از سری پروژه های آردوینو قصد داریم تا چگونگی کار با سنسور دما و رطوبت را آموزش دهیم. در این پروژه از سنسور DHT22 استفاده شده است که نسبت به سنسور های هم نوع خود از دقت بالایی بر خوردار است. همچنین برای مشاهده راحت تر و در دسترس تر خروجی از یک LCD 2*16 استفاده شده است که میتوانید خروجی را بدون اتصال به کامپیوتر و با همراه داشتن یک منبع تغذیه ۵V DC بررسی کنید. همچنین لیست قطعات مورد نیاز پروژه در بخش بعدی آمده است ک میتوانید آن ها را از وبسایت فروشگاهی داتوس روبو خرید کنید.

گام اول: قطعات مورد نیاز

برد آردوینو R3 UNO
 ویاUNO CH340
۱ عدد
کابل پرینتر USB  typeB۱ عدد
ماژول DHT22 دما و رطوبت۱ عدددما و رطوبت
نمایشگر۲*۱۶۱ عدد
برد برد۱ عدد
سیم برد برد۱ عدد 
مقاومت متغیر ۱۰ کیلو اهم۱ عدد دما و رطوبت
مقاومت ۱  کیلو اهم۱ عدد  
تک سوییچ ۴ پایه ۱ عدددما و رطوبت

گام دوم: مدار را ببندید

نکته۱: بهتر است رنگ سیم هایی که استفاده می کنید با رنگ سیم های داخل نقشه هم رنگ باشد.
نکته۲: از سیم های افشان استفاده نکنید.

دما و رطوبت

گام سوم: کد ها را آپلود کنید

همانطور که مشاهده میکنید کد های پروژه در زیر قرار گرفته است و فقط کافیست آنها را کپی کرده و در نرم افزار آردوینو Paste کنید. چنانچه با نحوه آپلود کردن کد روی برد آشنایی ندارید میتوانید قسمت دوم از آموزش آردوینو را دنبال کنید.
نکته: قبل از آپلود کد حتما باید کتابخانه سنسور DHT را به کتاب خانه های خود اضافه کنید. برای این کار در انتهای کد کتاب خانه را دانلود کنید، فایل را از حالت فشرده خارج کنید و فولدر dht را در مسیر نصب برنامه برنامه آدروینو در پوشه libraries قرار دهید. سپس نرم افزار خود را بسته و دوباره باز کنید، همانطور که مشاهده میکنید کتاب خانه DHT به کتاب خانه های شما اظافه شده است.

//_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_www.datosrobo.com
#include <LiquidCrystal.h>
#include "DHT.h" // تعریف کتابخانه ها
 
#define DHTPIN 8   // تعریف پایه ورودی ماژول
 

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //تعریف پایه های LCD
 
#define DHTTYPE DHT22       //معرفی نوع سنسور
DHT dht(DHTPIN, DHTTYPE);   
//ساختن آرایه برای نمایش
char temperature[] = "Temp = 00.0 C";
char humidity[]    = "RH   = 00.0 %";

void setup() {
//معرفی سطر ها و ستون های LCD
  lcd.begin(16, 2);
  dht.begin();
  lcd.setCursor(0,0);
  lcd.print("  datosrobo.com");
  delay(3000);
  lcd.clear();
}
 
void loop() {
  delay(500);       //تاخیر زمانی بین خواندن ها
  
  int RH = dht.readHumidity() * 10;//خواندن رطوبت
 
  int Temp = dht.readTemperature() * 10;//خواندن دما بر حسب درجه سانتی گراد
  
  if (isnan(RH) || isnan(Temp)) {
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.print("Error");
    return;
  }
 
  if(Temp < 0){
    temperature[6] = '-';
    Temp = abs(Temp);
  }
  else
    temperature[6] = ' ';
  temperature[7]   = (Temp / 100) % 10  + 48;
  temperature[8]   = (Temp / 10)  % 10  + 48;
  temperature[10]  =  Temp % 10 + 48;
  temperature[11]  = 223;    
  if(RH >= ۱۰۰۰)
    humidity[6]    = '1';
  else
    humidity[6]    = ' ';
  humidity[7]      = (RH / 100) % 10 + 48;
  humidity[8]      = (RH / 10) % 10 + 48;
  humidity[10]     =  RH % 10 + 48;
  lcd.setCursor(0, 0);
  lcd.print(temperature);
  lcd.setCursor(0, 1);
  lcd.print(humidity);
}

این پروژه نیز به پایان رسید، در صورت بروز هرگونه مشکل می توانید در قسمت نظر ها آن را با ما در میان بگذارید، همچنین خوشحال می شویم از دیگر مطالب سایت نیز دیدن کنید.

نمایش بیشتر

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا