همه ما با کلمه "اتوماسیون" آشنا هستیم، جایی که تعامل انسانی حداقل است و همه چیز را می توان به طور خودکار یا از راه دور کنترل کرد. اتوماسیون خانگی مفهومی بسیار پرطرفدار و پرمخاطب در زمینه الکترونیک است و ما نیز تمام تلاش خود را می کنیم تا این مفهوم به عنوان پروژه های الکترونیکی به راحتی قابل درک و مدیریت باشد. ما قبلاً چندین نوع پروژه اتوماسیون خانگی را با یک ویدیو و کد فعال توسعه دادهایم ، لطفاً بررسی کنید:
- اتوماسیون خانگی مبتنی بر DTMF
- اتوماسیون خانگی مبتنی بر GSM با استفاده از آردوینو
- اتوماسیون خانگی کنترل شده توسط کامپیوتر با استفاده از آردوینو
- اتوماسیون خانگی کنترل شده با بلوتوث با استفاده از 8051
- اتوماسیون خانگی با کنترل از راه دور IR با استفاده از آردوینو
و در این پروژه قصد داریم پروژه بعدی اتوماسیون خانگی خود را با استفاده از متلب و آردوینو بسازیم که سیستم اتوماسیون خانگی مبتنی بر رابط کاربری گرافیکی با استفاده از آردوینو و متلب است.
اجزاء:
- آردوینو UNO
- کابل یو اس بی
- ULN2003
- رله 5 ولت
- لامپ با نگهدارنده
- سیم های اتصال
- لپ تاپ
- منبع تغذیه
- PVT
توضیح کار:
در این پروژه از متلب با آردوینو برای کنترل لوازم خانگی از طریق رابط کاربری گرافیکی در کامپیوتر استفاده می کنیم . در اینجا ما از ارتباط سیمی برای ارسال داده ها از کامپیوتر (MATLAB) به آردوینو استفاده کرده ایم. در بخش کامپیوتر از رابط کاربری گرافیکی در متلب برای ایجاد چند دکمه برای کنترل لوازم خانگی استفاده کرده ایم. برای برقراری ارتباط بین آردوینو و متلب، ابتدا باید « پشتیبانی متلب و سیمولینک برای آردوینو » یا « بسته آردوینو IO » را نصب کنیم. برای انجام این کار مراحل زیر را دنبال کنید یا ویدیوی زیر را بررسی کنید:
- بسته Arduino IO را از اینجا دانلود کنید . قبل از دانلود باید ثبت نام کنید.
- سپس فایل adioe.pde را با استفاده از Arduino IDE در آردوینو رایت/آپلود کنید. این فایل adioe.pde را می توانید در بسته Arduino IO پیدا کنید - ArduinoIO\pde\adioe\adioe.pde
- سپس نرم افزار متلب را باز کرده و از پوشه Arduino IO عبور کرده و فایل install_arduino.m را باز کرده و در Matlab اجرا کنید. در پنجره دستور MATLAB پیامی مبنی بر اضافه شدن پوشههای آردوینو به مسیر مشاهده خواهید کرد، یعنی مسیر متلب به پوشههای آردوینو بهروزرسانی میشود.
اینگونه است که ما آردوینو را می سازیم، با MATLAB ارتباط برقرار می کنیم. روش فوق برای «MATLAB R2013b یا نسخههای قبلی» مناسب است، اگر از نسخه بالاتر متلب (مانند R2015b یا R2016a) استفاده میکنید، میتوانید مستقیماً روی تب Add-ons در متلب کلیک کنید و سپس روی «دریافت بستههای پشتیبانی سختافزار» کلیک کنید. از جایی که می توانید بسته های آردوینو را برای متلب نصب کنید.
پس از نصب فایل ها، اکنون می توانید یک رابط کاربری گرافیکی برای پروژه اتوماسیون خانگی ایجاد کنید. اساساً در رابط کاربری گرافیکی، ما در حال ایجاد دکمههای فشاری برای کنترل لوازم خانگی از طریق رایانه هستیم. دکمه ها را می توان با رفتن به "رابط کاربری گرافیکی" در منوی "جدید" در متلب ایجاد کرد. علاوه بر این میتوانیم نام و رنگ این دکمهها را تنظیم کنیم، ما 8 دکمه ایجاد کردهایم که در آنها شش تا روشن و خاموش، سه لوازم خانگی و دو دکمه برای روشن و خاموش کردن همه وسایل به طور همزمان.
اکنون پس از ایجاد دکمهها، وقتی روی دکمه Run در آن پنجره رابط کاربری گرافیکی کلیک میکنید، از شما میخواهد که این فایل رابط کاربری گرافیکی (با پسوند fig.) را که به نام « فایل fig» نیز شناخته میشود، ذخیره کنید . به محض اینکه فایل را ذخیره کردید، بهطور خودکار یک فایل کد (با پسوند .m) ایجاد میکند که با نام « فایل M» نیز شناخته میشود (نمایش تصویر زیر را ببینید)، جایی که میتوانید کد را قرار دهید (در قسمت کد زیر آورده شده است). شما می توانید فایل GUI و فایل کد این پروژه را از اینجا دانلود کنید: Home_Automation_system.fig و Home_Automation_system.m (راست کلیک کرده و گزینه Save link as…) را انتخاب کنید، یا می توانید خودتان آنها را همانطور که توضیح دادیم ایجاد کنید.
توضیح برنامه نویسی:
وقتی هر دکمه ای را از پنجره رابط کاربری گرافیکی فشار می دهیم، دستوراتی را به آردوینو می فرستد و سپس آردوینو آن عملیات را انجام می دهد. پس از نصب بسته پشتیبانی آردوینو MATLAB IO، میتوانیم با استفاده از همان توابع آردوینو، با کمی تغییرات، از طریق MATLAB به آردوینو دسترسی پیدا کنیم:
برای ساخت پین HIGH در آردوینو، کد را به صورت DigitalWrite می نویسیم (پین، HIGH)
در متلب ما از این تابع با کمک یک شی یا متغیری مانند:
a.digitalWrite (پین، HIGH);
و همینطور غیره
قبل از انجام این کار باید متغیر را به صورت زیر مقداردهی اولیه کنیم:
a = آردوینو ('COM1'); // COM1 را با توجه به پورت خود تغییر دهید