پیش از این روشهای راه اندازی سنسور دما رطوبت و همچنین نمایشگر OLED در دیجی اسپارک منتشر شده است. اما در این آموزش قصد داریم توسط برد ESP32 و ESP8266 اقدام به راه اندازی سنسور دما رطوبت کنیم. در این پروژه دما رطوبت محیط توسط سنسور DHT22 سنجش شده و سپس روی نمایشگر OLED نمایش داده میشود. به عبارتی توسط oled با برد ESP32 گجت کوچک جهت مانیتور کردن دما رطوبت طراحی میکنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
برد ESP32
تراشه ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوتهای آن بلوتوث داخلیاش است. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC است. این ماژول دارای بهترین کارایی در مصرف انرژی بوده و با کمترین مصرف جریان برق بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیقتر به این برد نگاه کنیم باید بگوییم تراشهای است که پلتفرم NodeMCU در آن پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته میشود.
سنسور دما رطوبت DHT22
برای سنجش دما رطوبت سنسورهای مختلفی طراحی شده است. اما سنسورهای DHT22 یکی از بهترین نوع برای اندازه گیری دما و رطوبت هستند. از دو بخش رطوبت خازنی و یک مقاومت گرمایی تشکیل شده اند، همچنین یک واحد مبدل آنالوگ به دیجیتال در DHT22 وجود دارد، که خروجی دیجیتال تولید میکند که کاربر می توانید از آن در میکروکنترلرها از آن برای خواندن مقادیر استفاده کند.
برخی از ویژگیهای سنسور DHT22
- ولتاژ عملیاتی ۳ تا ۵ ولت
- مناسب برای رطوبت ۰ تا ۱۰۰% همچنین با دقت ۲ تا ۵%
- حداکثر جریان مصرفی ۲٫۵ میلی آمپر
- مناسب برای دمای ۴۰- تا ۱۲۵ درجه سانتی گراد
برد ESP8266
ماژول های ESP32 و ESP8266 ساخت شرکت Espressif Systems از در دسترس ترین تراشه های اینترنت اشیا هستند. و همچنین قیمت پایین تری نسبت به دیگر تراشه های اینترنت اشیا دارند و برای توسعه کد های آن میتوانیم از نرم افزار Arduino استفاده کنیم که دسترسی آسان تری را برای کاربر فراهم میکند.
برخی از ویژگی های ESP8266
- ماژول شبکه و میکروکنترولر ESP8266 یکی از معروفترین و ارزان ترین و دردسترس ترین تراشه های اینترنت اشیا میباشد.
- این ماژول با دارا بودن میکروکنترولر قدرتمند بهمراه ارتباط شبکه WIFI داخلی،
- پشتیبانی کامل فول استک TCP/IP
- و همچنین با ارائه رابط های سخت افزاری کافی گزینه مناسبی برای کاربرد های کوچک و کم مصرف اینترنت اشیا میباشد.
- این میکروکنترولر در سال ۲۰۱۴ به بازار عرضه گردید.
ماژول نمایشگر Oled 1306
معمولا در پروژه های اینترنت اشیا و دیگر پروژه های امبدد از برای نمایش متن و مقادیر مختلف از نمایشگر های Oled استفاده می شود، این ماژول ها بدر انواع مختلق بسته به نوع ذرایور اندازه یافت می شوند که یکی از پرطرفدار ترین آن ها SSD1306 می باشد، این نوع از Oled ها معمولا در اندازه های ۰٫۹۶ و ۱٫۳ اینچ ساخته می شوند همچنین پروتکل ارتباطی Oled ها I2C می باشد.
وسایل مورد نیاز
شماتیک و اتصالات
اگر از برد nodemcu 32 استفاده می کنید طبق شماتیک زیر پیش بروید. برای راه اندازی oled با برد ESP32 به این که پین SDA به GPIO 21 و SDK به GPIO 22 متصل می گردد، همچنین GPIO 14 نیز به سنسور DHT متصل می گردد. توجه داشته باشد از nodemcu 8266 استفاده می کنید اتصالات تفاوتی ندارند بجز اینکه SDA به GPIO4 و SDK به GPIO5 متصل می گردد.
نصب افزونه و کتابخانه مورد نیاز
ابتدا در نرم افزار Arduino IDE اقدام به نصب کتابخانه مرجع سنسور های DHT می کنیم. مراحل زیر را دنبال کنید:
- این مسیر را دنبال کنید Sketch > Include Library > Manage Libraries
- کلمه DHT sensor را جستجو کنید.
- کتابخانه را نصب کنید.
- در ادامه با جستجوی کلمه “ssd1306” اقدام به نصب این کتابخانه کنید.
- سپس کلمه “GFX” را جستجو کنید و آن را نصب کنید.
- در نهایت با جستجوی کلمه “Adafruit Unified Sensor” این کتابخانه را نیز نصب کنید.
نصب افزونه برد ESP32
- ابتدا در نرم افزار Arduino IDE به مسیر File> Preferences بروید.
- لینک زیر را در بخش مشخص شده قرار دهید.
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
- سپس به مسیر Tools > Board > Boards Manager بروید.
- در بخش board manager کلمه ESP32 را سرچ کنید و بر روی install کلیک کنید.
کد پروژه
در ابتدای کد کتابخانه هایی که نصب کرده بودیم را اضافه می کنیم.
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Adafruit_Sensor.h> #include <DHT.h>
در این بخش اگر از Oled با اندازه متفاوتی استفاده می کنید تغییرات را اعمال کنید.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
در این بخش سنسور ذمایی را که استفاده می کنیم را مشخص می کنیم.
//#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301)
کد کامل پروژه
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
جمع بندی
در نهایت پس از آپلود کد و برقرای اتصالات دما و میزان رطوبت به درصد بر روی نمایشگر Oled به نمایش درمی آید، توجه داشته باشد که می توانید از سنسور های دمایی که در کد نام برده شده نیز استفاده کنید مانند DHT11 ولی ما در این پروژه تنها سنسور DHT22 را پوشش داده ایم، و همچنین برای استفاده از Oled با اندازه متفاوت باید اندازه دقیق آن در کد مشخص شود.
- تنظیمات منوی tools در نرم افزار آردوینو نیز مانند تصویر زیر می باشد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
در هنگام اتصال UNO با ماژول OLED 1306 مشکلی ندارم ولی برای اتصال به wemos d1 mini ماژول به درستی کار نمیکنه و فقط نصف صفحه رو نشون میده و همینطور میمونه
آیا راه حلی داره برای حلش؟
این مورد ممکنه به دلیل آدرس i2c و یا کتابخانه مورد استفاده باشد. کد های مرجع را تست کنید و تغییرات مشاهده شده را اعمال کنید.