آردوینو Arduino Uno نمایشگر OLED پروژه های آردوینو

ساخت نمایشگر دما رطوبت با DHT22 بخش سوم آموزش ماژول OLED

DHT22-and-OLED-128x64-arduino-uno-tutorial-digispark
نوشته شده توسط پریسا پوربلورچیان

نمایشگرهای OLED به واسطه سبک بودن و ابعاد کوچکشان، بسیار مورد توجه هستند. برای نمایش انواع تصاویر و نوشته‌ها انتخاب مناسبی است. به واسطه کیفیت و DPI بالای این نوع نمایشگر، تصاویر و کاراکترها بسیار زیبا نمایش داده می‌شوند. موارد استفاده از نمایشگر OLED در ربات‌ها و دستگاه‌های اینترنت اشیاء IoT بسیار مورد توجه می‌باشد. در ادامه مجموعه آموزش‌های ماژول OLED با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.

 


۱- ماژول گرافیکی OLED


در بخش اول آموزش کار با ماژول OLED گرافیکی، به بررسی کامل وتوضیحات آن پرداختیم. ماژول OLED گرافیکی دارای رزولوشن بالا ۱۲۸*۳۲ می‌باشد. بسیار سبک، دارای قیمت مناسبی است.  در پروژه‌های آردوینو بسیار پرکاربرد است. ابعاد این ماژول در حدود ۰٫۹۱ اینچ است. از ویژگی‌های این OLED می‌توان به این نکته اشاره کرد که بدون Backlight قابلیت راه اندازی خواهد داشت. تراشه به کار رفته در این OLED، آی سی درایورSSD1306BZ می‌باشد. با کلیک بر روی لینک آموزش بخش اول می‌توانید اطلاعات بیشتری مطالعه نمایید.

 

 


۲- سنسور دما رطوبت DHT22


سنسور دما و رطوبت DHT22 و یا به عبارت دیگر AM2302 یکی از پر طرفدارترین سنسورهای دما رطوبت در پروژه‌های DIY است. ظاهر این سنسور سفید و از ۴ پایه تشکیل شده است. پایه خروجی OUT به پایه دیجیتال میکروکنترلر متصل می‌گردد. ولتاژ مورد نیاز جهت راه اندازی سنسور AM2302 بین ۳٫۳ تا ۵٫۵ ولت DC است. جریان سنسور در حالت کاری حدود ۱٫۵ میلی آمپر است و در حالت STANDBY در حدود ۰٫۰۲ میلی آمپر است. محدوده اندازه گیری دمای سنسور DHT22 بین – ۴۰ تا + ۸۰ درجه سانتی گراد با دقت ۱ درجه سانتی گراد است. همچنین این سنسور توانایی تشخیص رطوبت در محدوده ی ۰ تا ۹۹٫۹ %RH با دقت ۰٫۱% دارد. لینک دانلود کتابخانه DHT در صفحه محصول کالا در قسمت دانلود قرار گرفته شده است. بر روی لینک کلیک کنید.

نمایشگر دما رطوبت با سنسور DHT22 و OLED 128x64 برد آردوینو - دیجی اسپارک

 


۳- کتابخانه دما رطوبت آردوینو


برای راه اندازی این پروژه از یک OLED گرافیکی و سنسور DHT22 به همراه برد آردوینو ARDUINO UNO استفاده شده است. در ادامه به بررسی کتابخانه لازم جهت راه اندازی OLED و کد برنامه خواهیم پرداخت.

 

کتابخانه U8G2LIB

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

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

 

کتابخانه DHT

کتابخانه DHT جهت فراخوانی سنسورهای دما رطوبت مدل DHT به کار برده می‌شود. طبق تعریف توابع کتابخانه DHT، تنها باید نوع DHT مورد استفاده در کد برنامه مشخص گردد. در این پروژه از سنسور دما و رطوبت DHT22 استفاده شده است. پس طبق تعریف کتابخانه باید نوع DHT در کد برنامه مشخص شود. برای این منظور پس از فراخوانی کتابخانه DHT، کد زیر را در برنامه اضافه خواهیم کرد:

#define DHTTYPE DHT22   // مشخص کردن نوع سنسور 

پس از مشخص شدن نوع DHT، پایه متصل شده به سنسور در کد برنامه مشخص می‌گردد:

#define DHTPIN 2     // پایه سیگنال سنسور به پایه ۲ دیجیتال متصل است

نمایشگر دما رطوبت DHT22 و OLED 128x64 برد آردوینو UNO - دیجی اسپارک

 


۴- فراخوانی دما رطوبت DHT22


دو دستور جهت فراخوانی دما رطوبت در کد برنامه فراخوانی شده است. شاید برای شما سوال پیش بیاید چرا از حلقه های DRAW و FIRSTPAGE استفاده شده است. کتابخانه U8G2 بسیار گسترده است و برای بررسی کامل آن باید کاربرد هر یک از توابع را در یک پروژه تست کرد. در این کد از حلقه Draw برای خواندن و نوشتن مقدار دما و رطویت استفاده شده است. همچنین تنظیمات ابعاد نمایش محتوا توسط تابع u8g2 در این حلقه قرار گرفته شده است. حال تابع firstpage و nestpage را فراخوانی می‌کنیم. این دو تابع یک ترفند جهت کم کردن حافظه RAM است که در کتابخانه u8g2 قرار گرفته شده است و با فراخوانی آن تابع Draw با کمترین مصرف حافظه RAM اجرا می‌گردد.

void draw(void) {
  float h = dht.readHumidity();
float t = dht.readTemperature();
  // خواندن دما بر حسب فارنهایت
  float f = dht.readTemperature(true);

  u8g2.setFont(u8g2_font_helvB10_tf);
  u8g2.setCursor(0, 16);
  u8g2.print("Temp & Humidity");
  u8g2.setFont(u8g2_font_helvB18_tf);
  u8g2.setCursor(0, 42);
  u8g2.print("T= "); u8g2.print(t); u8g2.print(" *C");
  u8g2.setCursor(0, 64);
  u8g2.print("H= "); u8g2.print(h); u8g2.print(" %");
}
۸g2.firstPage();
    do {
    draw();
  } while ( u8g2.nextPage() );
  delay(1000);

 

اتصالات

  • پایه SDA ماژول OLED را به پایه A4 آردوینو Arduino اتصال دهید.
  • پایه SCL ماژول OLED را به پایه A5 آردوینو Arduino اتصال دهید.
  • پایه DATA ماژول DHT را به پایه ۲ دیجیتال آردوینو Arduino اتصال دهید.

اتصال ماژول دما رطوبت DHT22 به ماژول OLED و برد آردوینو - دیجی اسپارک

 


۵- کدنویسی نمایشگر دما رطوبت


 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 


وسایل مورد نیاز


سنسوردما رطوبت DHT22

برد آردوینو Arduino UNO

ماژول گرافیکی OLED

برد برد BreadBoard

کابل فلت برد برد

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۳۲ دیدگاه