در این پروژه به کمک سنسور DHT22 (که تشکیل شده از یک سنسور رطوبت سنج و دماسنج با دقت بالا.) و میکروکنترول ATMEGA8a و مانیتور LCD 16X2 یک دماسنج و رطوبت سنج راه اندازه کرده ایم .
سنسور DHT22 درون خود یک چیپ دارد که اطلاعات را بصورت دیجیتال فقط بر روی یک پایه برای میکروکنترلر ارسال می کنند.این سنسور می تواند دمایی مابین -40 تا 80 درجه سانتی گراد و همچنین رطوبت 0 تا 100 درصد را اندازه بگیرید. به منظور خواندن اطلاعات از این سنسور کتابخانه ای طراحی کرده ایم تا با استفاده از آن در طراحی پروژه های مختلف فقط با فراخوانی کتابخانه ،اطلاعات سنسور را آنالیز کنیم.
قسمت کدویژن
اکنون با استفاده از کد ویزارد یک پروژه جدید با LCD کاراکتری ایجاد کنید.دقت داشته باشید که پایه D.4 میکرو در اختیار سنسور گذاشته خواهد شد.بعد از ذخیره پروژه، فایل کتابخانه (که می توانید از انتهای پست دانلود کنید) را درون پوشه پروژه کپی کنید.
حال در هر قسمت برنامه که خواستید میتوانید با فراخوانی کتابخانه با استفاده از قطعه کد زیر مقدار دما و رطوبت آنالیز شده از سنسور توسط کتابخانه را درون دو متغیر ذخیره کنید.
float temperature,humidity; dht22_read(&temperature,&humidity);
دقت داشته باشید که متغیر هایی که قرار است خروجی تابع در آن قرار بگیرد حتما از نوع اعشاری باشد.
اکنون با استفاه از کد زیر میتوان مقدار رطوبت و دما را بصورت مجزا بر روی یک LCD نمایش داد.
#include <mega8.h> #include <delay.h> #include <stdio.h> #include <alcd.h> #include "DHT22.h" void main(void) { float temperature,humidity; char str[10],temp[10],hum[10]; lcd_init(16); while (1) { if(dht22_read(&temperature,&humidity) == -40) { lcd_putsf("DHT22 ERROR"); } else { ftoa(temperature,1,temp); ftoa(humidity,1,hum); sprintf(str,"Temp=%s,Hum=%s %",temp,hum); lcd_clear(); lcd_gotoxy(0,0); lcd_puts(str); } delay_ms(2000); } }
دیدگاهتان را بنویسید