پروژه راهاندازی سنسور DHT11 با آردوینو و نمایشگر OLED I2C یک تمرین ساده و کاربردی برای یادگیری مبانی الکترونیک و اینترنت اشیا است. این سنسور میتواند دما و رطوبت محیط را بهصورت دیجیتال اندازهگیری کند و دادهها از طریق آردوینو پردازش شده و روی نمایشگر نشان داده میشوند. ترکیب DHT11، آردوینو و OLED در خانههای هوشمند، گلخانهها و پروژههای آموزشی بسیار پرکاربرد است.
برای اجرای این پروژه به قطعاتی شامل یک برد آردوینو Uno یا Nano، سنسور DHT11، نمایشگر OLED 0.96 اینچی SSD1306 (با پروتکل I2C)، یک بردبورد و سیم جامپر، کابل USB و ترجیحاً یک مقاومت ۱۰ کیلواهم برای Pull-Up نیاز دارید. این تجهیزات ساده و ارزان، امکان ساخت یک سیستم مانیتورینگ دما و رطوبت را فراهم میکنند.
نمایشگر OLED از پروتکل ارتباطی I2C استفاده میکند که تنها به دو خط نیاز دارد: SDA (داده) و SCL (کلاک). در آردوینو Uno، پین A4 نقش SDA و پین A5 نقش SCL را ایفا میکنند. این پروتکل به دلیل سادگی، سرعت مناسب و امکان اتصال چندین ماژول مختلف بهطور همزمان، در بسیاری از پروژههای الکترونیکی پرکاربرد است.
پیش از شروع کدنویسی، باید کتابخانههای مورد نیاز در Arduino IDE نصب شوند. این کتابخانهها شامل DHT Sensor Library برای سنسور، Adafruit SSD1306 برای کنترل نمایشگر و Adafruit GFX برای قابلیتهای گرافیکی هستند. نصب این کتابخانهها باعث میشود کدنویسی سادهتر و امکانات بیشتری برای طراحی رابط نمایش فراهم شود.
نحوه اتصال قطعات به این صورت است: پایه VCC سنسور DHT11 به 5V، پایه داده به پین دیجیتال 2 آردوینو و پایه GND به زمین متصل میشود. برای پایداری بهتر، یک مقاومت ۱۰ کیلواهم بین VCC و Data قرار میگیرد. نمایشگر OLED نیز با اتصالات VCC به 3.3 یا 5V، GND به زمین، SDA به A4 و SCL به A5 وصل میشود.
کد پروژه شامل مراحل مقداردهی اولیه سنسور و نمایشگر، خواندن مقادیر دما و رطوبت هر ۲ ثانیه، بررسی خطاها با تابع isnan() و در نهایت نمایش اطلاعات روی Serial Monitor و OLED است. برای زیبایی بیشتر، متنها، کادر و آیکونها روی نمایشگر ترسیم میشوند.
از آنجا که سنسور DHT11 دقت محدودی دارد (دما ±۲ درجه و رطوبت ±۵ درصد)، برای بهبود عملکرد میتوان نتایج را با ابزار دقیق مقایسه و در کد افست مناسب اعمال کرد. همچنین قرار دادن سنسور دور از منابع گرما یا رطوبت مستقیم، به افزایش دقت کمک میکند.
در صورت بروز مشکل، میتوان مواردی چون تغذیه و آدرس I2C نمایشگر، اتصالات سنسور و وجود مقاومت Pull-Up را بررسی کرد. اگر دادهها بهصورت NaN نمایش داده شوند، احتمال خرابی یا سیمکشی اشتباه وجود دارد.
این پروژه قابلیت توسعه نیز دارد. برای نمونه میتوان دادهها را روی کارت SD ذخیره کرد، آنها را با ماژول ESP8266 یا ESP32 به سرور فرستاد، سیستم هشداردهنده (بوزر یا LED) اضافه نمود یا با رله، دستگاههایی مانند فن یا رطوبتساز را کنترل کرد. حتی امکان رسم نمودار تغییرات روی OLED نیز وجود دارد.
خواندن آموزش کامل در وبلاگ ECA.ir
برای اجرای این پروژه به قطعاتی شامل یک برد آردوینو Uno یا Nano، سنسور DHT11، نمایشگر OLED 0.96 اینچی SSD1306 (با پروتکل I2C)، یک بردبورد و سیم جامپر، کابل USB و ترجیحاً یک مقاومت ۱۰ کیلواهم برای Pull-Up نیاز دارید. این تجهیزات ساده و ارزان، امکان ساخت یک سیستم مانیتورینگ دما و رطوبت را فراهم میکنند.

نمایشگر OLED از پروتکل ارتباطی I2C استفاده میکند که تنها به دو خط نیاز دارد: SDA (داده) و SCL (کلاک). در آردوینو Uno، پین A4 نقش SDA و پین A5 نقش SCL را ایفا میکنند. این پروتکل به دلیل سادگی، سرعت مناسب و امکان اتصال چندین ماژول مختلف بهطور همزمان، در بسیاری از پروژههای الکترونیکی پرکاربرد است.
پیش از شروع کدنویسی، باید کتابخانههای مورد نیاز در Arduino IDE نصب شوند. این کتابخانهها شامل DHT Sensor Library برای سنسور، Adafruit SSD1306 برای کنترل نمایشگر و Adafruit GFX برای قابلیتهای گرافیکی هستند. نصب این کتابخانهها باعث میشود کدنویسی سادهتر و امکانات بیشتری برای طراحی رابط نمایش فراهم شود.
نحوه اتصال قطعات به این صورت است: پایه VCC سنسور DHT11 به 5V، پایه داده به پین دیجیتال 2 آردوینو و پایه GND به زمین متصل میشود. برای پایداری بهتر، یک مقاومت ۱۰ کیلواهم بین VCC و Data قرار میگیرد. نمایشگر OLED نیز با اتصالات VCC به 3.3 یا 5V، GND به زمین، SDA به A4 و SCL به A5 وصل میشود.
کد پروژه شامل مراحل مقداردهی اولیه سنسور و نمایشگر، خواندن مقادیر دما و رطوبت هر ۲ ثانیه، بررسی خطاها با تابع isnan() و در نهایت نمایش اطلاعات روی Serial Monitor و OLED است. برای زیبایی بیشتر، متنها، کادر و آیکونها روی نمایشگر ترسیم میشوند.
از آنجا که سنسور DHT11 دقت محدودی دارد (دما ±۲ درجه و رطوبت ±۵ درصد)، برای بهبود عملکرد میتوان نتایج را با ابزار دقیق مقایسه و در کد افست مناسب اعمال کرد. همچنین قرار دادن سنسور دور از منابع گرما یا رطوبت مستقیم، به افزایش دقت کمک میکند.
در صورت بروز مشکل، میتوان مواردی چون تغذیه و آدرس I2C نمایشگر، اتصالات سنسور و وجود مقاومت Pull-Up را بررسی کرد. اگر دادهها بهصورت NaN نمایش داده شوند، احتمال خرابی یا سیمکشی اشتباه وجود دارد.
این پروژه قابلیت توسعه نیز دارد. برای نمونه میتوان دادهها را روی کارت SD ذخیره کرد، آنها را با ماژول ESP8266 یا ESP32 به سرور فرستاد، سیستم هشداردهنده (بوزر یا LED) اضافه نمود یا با رله، دستگاههایی مانند فن یا رطوبتساز را کنترل کرد. حتی امکان رسم نمودار تغییرات روی OLED نیز وجود دارد.
خواندن آموزش کامل در وبلاگ ECA.ir