آردوینو آموزش آردوینو خانه هوشمند نمایشگر OLED پروژه های آردوینو

ساخت پروژه تشخیص سطح آب و مایعات با نمایشگر OLED و آردوینو

نوشته شده توسط CiferTech

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

 

 


Water Level Sensor چیست؟!


این سنسور ها دارای خطوط مسی هستند که در ۱۰ خط موجود هستند، که در دوگروه تقسیم می‌شوند و معمولا این خطوط در حالت عادی با یکدیگر اتصالی ندارند تا زمانی که در آب و مایعات غوطه ور شوند که در آن زمان ملاک اندازی گیری سنسور مقاومت بوجود آمده بین این خطوط است. یک LED در صفحه وجود دارد که بافعال شدن ماژول روشن می شود. روشی که سنسور سطح آب کار می کنند بسیار ساده است. مجموعه ای از هادی های موازی در عرض هم  به عنوان یک مقاومت متغیر (مانند یک پتانسیومتر) عمل می کنند که مقاومت آن با توجه به سطح آب متفاوت است. تغییر مقاومت مربوط به فاصله از بالای سنسور تا سطح آب است. مقاومت متناسب با ارتفاع آب معکوس است در واقع هرچه سنسور در آب بیشتری غوطه ور شود، منجر به هدایت بهتر می شود و مقاومت کمتری را در پی خواهد داشت. و هرچه حسگر در آب کمتری غوطه ور شود، منجر به ضعف هدایت و در نتیجه مقاومت بالاتری خواهد شد. سنسور با توجه به این مقاومت ولتاژ خروجی تولید می کند که با اندازه گیری آن می توان سطح آب را تعیین کرد.

این سنسور دارای سه پایه بای راه‌اندازی است، پین signal (سیگنال) یک خروجی آنالوگ است که به یکی از ورودی های آنالوگ آردوینو شما متصل می شود. پین” + ” برق سنسور را تأمین می کند. توصیه می شود سنسور را بین ۳٫۳ ولت و ۵ ولت تغذیه کنید. البته توجه داشته باشید که خروجی آنالوگ بسته به ولتاژ ارائه شده برای سنسور متفاوت خواهد بود. و در آخر پین با علامت ” – ”  اتصال زمینی است.

 


نمایشگر Oled 0.96 SSD1306


معمولا در پروژه های اینترنت اشیا و دیگر پروژه های امبدد از برای نمایش متن و مقادیر مختلف از نمایشگر های Oled استفاده می شود، این ماژول ها بدر انواع مختلق بسته به نوع درایور اندازه یافت می شوند که یکی از پرطرفدار ترین آن ها SSD1306 می باشد، این نوع از Oled ها معمولا در اندازه های ۰٫۹۶ و ۱٫۳ اینچ ساخته می شوند همچنین پروتکل ارتباطی Oled ها I2C می باشد. صفحه نمایش دیود ساطع کننده نور (OLED) که ما در این آموزش استفاده خواهیم کرد مدل SSD1306 است، یک صفحه نمایش تک رنگ، ۰٫۹۶ اینچی با ۱۲۸ × ۶۴ پیکسل همانطور که در شکل زیر نشان داده شده است. نمایشگر OLED نیازی به نور پس زمینه ندارد، که نتیجه آن ایجاد تضاد بسیار خوب در محیط های تاریک است. همچنین پیکسل های آن فقط هنگام روشن بودن انرژی مصرف می کنند، بنابراین صفحه نمایش OLED در مقایسه با سایر نمایشگرها، مصرف برق کمتری دارد.

 


برد آردوینو Arduino


مجموعه بردهای آردوینو از جمله بردهای توسعه پرطرفدار بین مهندسین امبدد هستند که در مدل های مختلفی از جمله Micro ,  proMini , Nano , Uno و همچنین Mega قابل تهیه هستند، هسته مرکزی این برد های محبوب از سری AtMega328 می باشد. آردوینو پلتفرم سخت‌افزاری و نرم‌افزاری متن‌باز است. همان طور که قبل تر اشاره کردیم، پلتفرم آردوینو شامل یک میکروکنترلر تک‌بردی متن‌باز است که قسمت سخت‌افزار آردوینو را تشکیل می‌دهد. علاوه بر این، پلتفرم آردوینو یک نرم‌افزار آردوینو IDE که به منظور برنامه‌نویسی برای بردهای آردوینو طراحی شده‌است و یک بوت لودر نرم‌افزاری که بر روی میکروکنترلر بارگذاری می‌شود را در بر می‌گیرد.

 


روش کار پروژه


در این پروژه با استفاده از سنسور سنجش سطح آب، مقدار نشتی آب را اندازه گیری خواهیم کرد و در نمایشگر میزان مقدار اندازه گیری شده را با اعداد نمایش و در ادامه مقدار بصورت گرافیکی نیز نمایش داده می‌شود. این مقادیر به این صورت بدست می‌آیند که با تغییر میران آب بر روی سنسور Water level میزان مقاومت بین خطوط مسی بر روی pcb این سنسور تغییر خواهد کرد و به این ترتیب خواهیم توانست با اندازه گیری تغییر ولتاژ در خروجی میزان صحیح نشتی آب را متوجه شویم. البته یک مسئله معمول شناخته شده در مورد این سنسورها، طول عمر کوتاه آنها در معرض یک محیط مرطوب است. داشتن ولتاژ بر روی پروب به طور مداوم سرعت خوردگی را به میزان قابل توجهی افزایش می دهد.

 


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


برد آردوینو Arduino

سنسور تشخیص سطح آب

نمایشگر Oled 0.96

سیم برد برد

 


نصب کتابخانه مورد نیاز


ابتدا در نرم افزار Arduino IDE اقدام به نصب کتابخانه مورد نیاز خواهیم‌کرد. مراحل زیر را دنبال کنید:

  1. این مسیر را دنبال کنید Sketch Include Library > Manage Libraries
  2. کلمه Adafruit SSD1306 و “GFX” را جستجو کنید.
  3. کتابخانه ها را نصب کنید.

شماتیک و اتصالات


در این پروژه از پین های A4 , A5 که پین های i2c در برد آردوینو نانو هستند برای راه‌اندازی نمایشگر Oled استفاده کردیم، همچنین از خروجی های پاور برد برای تغذیه نمایشگر استفاده می‌کنیم، در ادامه برای راه‌اندازی سنسور Water Level از پین های تغذیه آردوینو و همچنین برای دریافت و تحلیل مقادیر خروجی از سنسور از یک پین آنالوگ استفاده خواهیم کرد، در این مورد من از پین A0 استفاده کرده‌ام. اتصالات را مطابق جدول و شماتیک زیر برقرار کنید.

اتصالات سنسور آب به آردوینو - دیجی اسپارک

 

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

 

  • شماتیک اتصالات پروژه اندازه‌گیری سطح آب و نمایش در نمایشگر Oled

 


کد و راه‌اندازی تشخیص سطح آب


در این پروژه از نمایشگر Oled ssd1306 استفاده کردیم، برای راه‌اندازی این نمایشگر کتابخانه های متفاوتی و متنوعی وجود دارد که ما از کتابخانه Adafruit استفاده خواهیم کرد که قبل تر روش نصب کتابخانه را برای شما شرح دادم، همچنین در کنار این کتابخانه نیاز به کتابخانه های دیگری نیز داریم از جمله GFX , Wire و SPI که در کل به ما در راه‌اندازی این نمایشگر کمک می کنند اما برای سنسور Water Level نیازی به کتابخانه نداریم و تنها با چند دستور ساده اقدام به راه‌اندازی این سنسور خواهیم کرد.

 

در این بخش اقدام تعریف دو مقدار در کد می کنیم، اول پین مورد نیاز بای اتصال سنسور و در ادامه یک متغیر به نام Value که تمام مقادیر بدست آمده از سمت سنسور در این متغیر ذخیره و در ادامه می توانیم از آن برای نمایش مقادیر استفاده کنیم.

 

در این قسمت مقدار پین معرفی شده برای خواندن مقادیر سنسور را که از قبل مشخص کردیم را با استفاده analogRead بدست می‌آوریم و در متغیر مربوط ذخیره میکنیم. و در ادامه مقادیر را در بخش loop پرینت می کنیم.

 

کد کامل پروژه دستگاه اندازه‌گیری سطح آب و نمایش در نمایشگر Oled.

 


جمع بندی


پس از آپلود کد و برقرای اتصالات، یک پنجره Serial Monitor را باز کنید تا خروجی آردوینو را ببینید، همچنین در لحظه می‌توانید شاهد تغییر مقادیر در نمایشگر Oled نیز باشید. وقتی سنسور چیزی را لمس نمی کند، باید مقدار ۰ را ببینید. برای مشاهده تغییرات در آب، می توانید در یک لیوان آب، به آرامی سنسور را آن قرار دهید و شاهد تغییرات با تغییر سطح آب باشید.برای دریافت دقیق مقادیر از سنسور سطح آب، توصیه می شود ابتدا آن را برای نوع خاصی از آب که قصد دارید آن را کنترل کنید، کالیبره کنید. همانطور که می دانید آب خالص رسانا نیست. در واقع مواد معدنی و ناخالصی های موجود در آب است که آن را رسانا می کند. بنابراین، سنسور شما ممکن است بسته به نوع آبی که استفاده می کنید حساسیت کم و بیش داشته باشد.

 

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

 

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

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

CiferTech

فقط 10 نوع آدم در این دنیا وجود داره، اونی که باینری میفهمه و اونی که باینری نمیفهمه! ^-^

~ اینستاگرام: CiferTech

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

۸ دیدگاه

  • سلام ببخشید این پروژه رو با arduino uno هم میشه انجام داد؟ و اگه میشه کد ها و شماتیک اتصالات به همین شکله یا کلا فرق میکنه بخاطر تفاوت نوع arduino؟؟؟ و شماره پایه ها فرق داره؟

    • سلام؛ خیر مشکلی نیست تنها تفاوت برد های nano و uno برای این پروژه در اندازه آنهاست، مراحل را بر روی آردوینو Uno اجرا کنید، بدون مشکل اجرا خواهد شد.

  • سلام ببخشید من همین پروژه رو میخواستم انجام بدم ولی میخوام مقادیر رو روی گوشی با ماژول وای فای یا بلوتوث نشون بدم. هرچی جستجو کردم چیزی پیدا نکردم. شما تو همین سایت یا سایت های دیگه چیزی مطابق به خواسته من سراغ دارید که لینکش رو بدید؟ ممنون میشم اگه بهم کمک کنید

    • با سلام، بصورت اپلیکیشن، blynk را پیشنهاد میکنم اما ممکن است بدلیل تحریم ها قابل اجرا نباشد. همچنین از آموزش های Thngspeak یا دیگر دشبورد ها نیز می‌توانید استفاده کنید.

  • سلام، خسته نباشی.
    من میخواستم این پروژه رو در node red نمایش بدم، شما آموزشی در این باره دارین؟
    میشه راهنمایی کنین که چجوری میزان اب رو. با این پروژه به نود رد وصل کنم