چكیده
به بکارگیری امکاناتی که یک خانه را هوشمند نماید، همواره یکی از مواردی بوده است که بشر توجه زیادی به آن داشته و در طول دوره های مختلفِ توسعه ی فناوری، راه حل های متعددی برای این منظور خلق کرده است.
خانه هوشمند به خانه ای گفته می شود که ساکنین آن امکان تنظیم و کنترل تجهیزات الکترونیکی منزل خود را از راه دور و نزدیک داشته باشند .در جهت ایجاد خانه های هوشمند نیاز به طراحی، توسعه و یکپارچه نمودن سیستم های سخت افزاری و نرم افزاری می باشد. یکی از پلتفرم های سخت افزاری که امروزه در طراحی و توسعه خانه های هوشمند نقش به سزایی دارد آردوینو می باشد .این پلتفرم در واقع یک میکروکنترلر تکبردی است که به منظور تولید راحت تر برنامه هایی که با اشیاء یا محیط تعامل داشته باشند طراحی شده است .یکی از موارد پرکاربرد در منازل چند راهی های برق می باشند که در این تحقیق و به کمک پلتفرم آردوینو نسبت به هوشمند سازی آن اقدام نمودیم بطوری که قابلیت کنترل، روشن و خاموش کردن پلاگ ها از طریق فناوری بلوتوث همچنین نرم افزارهای توسعه یافته شده و تعبیه شده در تلفن های هوشمند مجهز به سیستم عامل آندروید اقدام نمودیم.
مقدمه
به بکارگیری امکاناتی که یک خانه را هوشمند نماید، همواره یکی از مواردی بوده است که بشر توجه زیادی به آن داشته و در طول دوره های مختلفِ توسعه ی فناوری، راه حل های متعددی برای این منظور خلق کرده است.
خانه هوشمند به خانه ای گفته می شود که ساکنین آن امکان تنظیم و کنترل تجهیزات الکترونیکی منزل خود را از راه دور و نزدیک داشته باشند .از طرفی موجبات افرایش ایمنی راحتی را برای ساکنان آن فراهم نموده و قادر خواهیم بود منابع ارزشمند انرژی را مدیریت نماییم. هدف از اجرای پروژه های هوشمند سازی منازل را می توان تبدیل فضا به یک فضای متمایز و لوکس، تبدیل ساختمان به یک ساختمان با مصرف بهینه انرژی و یا تبدیل خانه به یک خانه مدرن و امن با مدیریت هوشمند عنوان نمود. در جهت هوشمند سازی منازل و ساختمان ها سیستم های سخت افزاری و نرم افزاری در این راستا طراحی و تولید می گردند تا بسترهای ارتباطی قوی را برای منازل ایجاد تا نسبت به وضعیت های متغیر محیط عکس العمل نشان داده و خود را با آن ها وفق دهند، همچنین به ساکنین ساختمان این اجازه را می دهند که از منابع موجود به صورت موثرتری استفاده نموده و امنیت و آرامش آنها را افزایش دهد. امروزه یکی از وسایل پرکاربرد در منازل پریزها و چند راهی ها می باشند که وظیفه سنتی آنها اتصال وسایل الکتریکی جهت تامین جریان الکتریسیته از منابع انرژی می باشد در این تحقیق سعی گردیده در راستای هوشمند سازی منازل این وسایل را هوشمند نمود. چنین پریزی قادر خواهد بود براحتی تمام تجهیزات برقی مانند لوازم آشپزخانه، آباژورها، لوازم شارژی و سایر لوازم را به کمک تلفن های هوشمند و از راه دور کنترل کرده و برنامه ریزی نماید. همان طور که پیش تر اعلام گردید در جهت ایجاد خانه های هوشمند نیاز به طراحی، توسعه و یکپارچه نمودن سیستم های سخت افزاری و نرم افزاری می باشد .یکی از پلتفرم های سخت افزاری که امروزه در طراحی و توسعه خانه های هوشمند نقش به سزایی دارد آردوینو می باشد .این پلتفرم در واقع یک میکروکنترلر تکبردی است که به منظور تولید راحت تر برنامه هایی که با اشیاء یا محیط تعامل داشته باشند طراحی شده است .سخت افزار آن شامل یک برد سخت افزار متن باز که حول میکروکنترلر ای وی آر اتمل یا یک آرم اتمل طراحی شده است آردوینو در سال 2005 به منظور ایجاد راهی ارزان و ساده برای برنامه نویسی اشیائی تعاملی ایجاد شد. آردوینو به همراه یک محیط یکپارچه توسعه نرم افزار ساده ارائه می شود که در رایانه های عادی قابل اجرا است که اجازه برنامه نویسی به کمک سی یا سی++ را برای آردوینو می دهد. در بخش دوم این تحقیق به معرفی کامل این پلتفرم خواهیم پرداخت در بخش سوم این تحقیق به طراحی و توسعه سخت افزاری یک پریز هوشمند به کمک پلت فرم آردوینو خواهیم پرداخت و در نهایت به معرفی و توسعه نرم افزارهای مورد نیاز اشاره می نماییم و در انتها نتایج به دست آمده را بررسی می نماییم.
2- معرفی معماری کلی سیستم پیشنهادی
در طرح پیشنهادی و با کمک گرفتن از پلتفورم آردوینو همچنین سیستم عامل آندروید سعی در ایجاد یک چند راهی هوشمند با کمترین هزینه می باشیم .در محیط های خانه های هوشمند می توان از راه دور و به کمک برنامه های توسعه یافته به کنترل لوازم منزل پرداخت معماری سیستم پیشنهادی به دو قسمت اصلی تقسیم شده است .بخش سخت افزاری و بخش نرم افزاری در بخش سخت افزاری ما به کمک پلتفرم آردوینو رده اونو همچنین کمک گرفتن از رله در صدد کنترل و فرمان دهی به تعدادی پریز در جهت خاموش و روشن نمودن آن ها بصورت مجزا و از راه دور هستیم در این مسیر ما با کمک گرفتن از تلفن هوشمند مجهز سیستم عامل آندروید و کمک فناوری بلوتوث به این مهم دست خواهیم یافت. قابل توجه است پلت فرم آردوینو قادر به اتصال به انواع سنسورها در جهت کنترل محیط اطراف خود بوده و یکی از بهترین گزینه ها در جهت هوشمند سازی خانه ها می باشد ما به کمک این پلتفرم قادر به توسعه سیستم های مدیریت انرژی، هوشمند سازی سیستم های تهویه مطبوع، افزایش امنیت خانه های هوشمند، سیستم های کنترل فرمان به کمک صدا همچنین کنترل کامل محیط منازل و ساختمان ها در حیطه خانه های هوشمند خواهیم بود در بخش نرم افزاری ما نیازمند توسعه نرم افزارها در دو حیطه می باشیم بخش مربوط به ارسال فرمان از طریق تلفن هوشمند در جهت انتخاب پریز هدف به منظور خاموش یا روشن نمودن پریز و نرم افزار مربوط به به آردوینو که فرمان ها را از تلفن هوشمند و به کمک فناوری بلوتوث دریافت و نسبت به کنترل رله ها بوسیله پردازنده تعبیه شده بر روی پلتفرم آردوینو که از نوع اتمگا می باشد .در ادامه و در جهت درک بیشتر پلتفورم آردوینو برای هوشمند سازی خانه ها به کمک مایکرو کنترل اتمگا به بررسی بلوگ دیاگرام پیش فرض آن خواهیم پرداخت .مایکرو کنترل ها در جهت کسب پارامترهای فیزیکی محیط به کمک سنسورها استفاده می شوند.

شکل شماره 1- بلوک دیاگرام استفاده از پلتفورم آردوینو جهت هوشمند سازی منازل

پلتفورم آردوینو به وسیله پورت های ورودی قادر به اتصال به تعداد زیادی حس گر محیط مانند سنسور دما، سنسور گاز، سنسور دود در جهت جلوگیری از آتش سوزی می باشد به عنوان نمونه ما به کمک این پلتفرم قادر خواهیم بود به وسیله سنسورهای متنوع مقادیر مورد نیاز محیط خود را دریافت و از طریق باسهای تعبیه شده به پردازنده اتمگا تحویل و بر روی مقادیر مذکور به کمک دستورات نرم افزاری محاسبه انجام دهیم و نتیجه آن را به کمک خروجی های پردازنده به یک سری رله جهت کنترل دستگاه های مقصد و یا سایر سیستم ها اعمال نماییم در یک سناریو قادر می باشیم به کمک سنسور دود مقادیر موجود از دود محیط را حس نموده و در صورت  وجود دود در محدوده غیر استاندارد به پایه خروجی متصل به یک رله فرمان دهیم جریان برقرار تا به عنوان نمونه یک سیستم اطفای حریق را فعال نماید. همان طور که در شکل یک مشاهده می نمایید ماژول های توسعه بلوتوث همچنین وای فای نیز قادر به اتصال به پلتفورم آردوینو به عنوان ورودی می باشند ما در این تحقیق در جهت دریافت پارامترهای کنترلی از تلفن هوشمند از ماژول بلوتوث استفاده می نماییم .
3- معرفی پلتفرم آردوینو
در سال 2005 اولین برد آردوینو در یک کلاس درسی بر اساس یک کار تحقیقاتی در انستیتویی واقع در ایورا ایتالیا متولد شد .این برد توسعه نتیجه یک کار تحقیقاتی سخت افزاری می باشد .هدف این پروژه معرفی یک میکروکنترلر و پروگرمر قدرتنمد با کارآیی بالا و نحوه استفاده بسیار ساده در رونده برنامه نویسی، راه اندازی همچنین توسعه المان های الکتریکی بوده است .آردوینو یک پلت فرم محاسباتی فیزیکی منبع باز است که براساس یک برد میکروکنترلر ساده تهیه شده، و نیز یک محیط توسعه برای نوشتن نرم افزار جهت کار با برد می باشد. همان طور که پیش تر اعلام گردید آردوینو می تواند جهت ایجاد اشیای تعاملی، گرفتن ورودی از تعداد زیادی سوییچ و حسگر، و کنترل تنوعی از لامپ ها، موتورها، و سایر خروجی های فیزیکی به کار گرفته شود.
استاندارد کنونی پلتفرم سخت افزاری آردوینو بر اساس میکرو کنترلر اتمگا 323 می باشد. این پلت فورم، پروتوتایپ الکترونیکی منبع باز انعطاف پذیر است که به سادگی چه از لحاظ سخت افزاری و چه از لحاظ نرم افزاری قابل استفاده است.

شکل شماره 2- آردوینو مدل اونو

برد آردوینو یک میکروکنترلر بر پایه ATmega 328 می باشد. این برد 14 پین ورودی و خروجی دیجیتال )که 6 تای آن می تواند به عنوان خروجی PWM استفاده گردد(، 6 ورودی آنالوگ، یک تشدیدگر سرامیکی 16 مگاهرتز، یک پورت یو اس بی، یک ورودی منبع تغذیه، یک header ICSP و یک دکمه ریست دارد برد شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود می باشد.

شکل شماره 3- دیاگرام اتمگا

4- طراحی و ساخت مدار سخت افزاری
در این تحقیق ما از قطعات ذیل برای توسعه پریزهای هوشمند استفاده نمودیم .
– برد آردوینو کلاس اونو
– مدار 4 رله
-ماژول بلوتوث HC-05
– ال ای دی
– پریزهای 11 آمپر
آردوینو همچنین بلعکس ارتباطی TX ماژول بلوتوث به پورت RX اتصال قطعات به این شکل می باشد از پورت ایجاد نمودیم دلیل این کار این می باشد که فرستنده و گیرنده بسته به سناریو نقش خود را عوض می نمایند )جهت ارسال داده ها می باشد( هر دوی این پورت ها هم بر روی TX جهت دریافت اطلاعات و پورت RX پورت ماژول بلوتوث و هم بر روی برد آردوینو تعبیه شده اند و در برد آردوینو جهت ارسال و دریافت داده ها بصورت سریال عمل می نمایند. همچنین خروجی های 4و 7و 3و 9 آردوینو را به پورت های 1و 2و 3و 4 مدار 4 رله خود جهت قطع و وصل کردن رله ها متصل نمودیم .از 2 عدد ال ای دی به منظور نمایش وضعیت روشن و خاموش کردن پلاگها استفاده کرده و آنها را به پورتهای شماره 13 و 12 خروجی آردوینو متصل نمودیم که بسته به نوع ورودی های برنامه این پورت ها را فعال و یا غیر فعال نمودیم. از یک منبع تغذیه 9 ولت به منظور تامین منبع انرژی آردوینو استفاده نمودیم. در مجموع چند راهی هوشمند تحمل 3333 وات انرژی را دارد.

شکل شماره 4- اتصال آردوینو به مدار رله

شکل شماره 5- اتصال آردوینو به ماژول بلوتوث

5- توسعه نرم افزاری بخش تلفن هوشمند به کمک پلتفورم آندرویید
برای توسعه نرم افزارهای خانه های هوشمند تعداد زیادی پلتفرم مانند آی او اس، سیمبیان، آندروید وجود دارد. ما برای توسعه نرم افزار پریز هوشمند خود از پلتفرم آندروید در جهت توسعه نرم افزار تلفن هوشمند استفاده می نماییم. نرم افزارهای جانبی اندرویدی با استفاده از زبان جاوا نوشته می شوند و برای ارتباط با لایه های زیرین سیستم عامل می توانند از کتابخانه های جاوایی اندروید استفاده کنند .بخش رابط کاربری سیستم عامل اندروید با زبان جاوا نوشته شده است و بسیاری از برنامه های اندروید هم با جاوا نوشته شده اند .اما این سیستم عامل، Java Virtual Machine ندارد .برای اجرای برنامه های جاوایی روی این سیستم عامل، کدهای جاوا به کدهای Dalvik. تبدیل می شوند و سپس روی Dalvik vitrual machine اجرا می شوند دالویک یک ماشین مجازی جاوایی است که برای سیستم عامل اندروید بهینه شده است تا هم RAM و هم CPU و هم باتری کمتری مصرف کند (برنامه های جاوایی معمولی هم که روی گوشی های دیگر اجرا می شوند با استفاده از نرم افزارهای شبیه ساز ماشین مجازی جاوا مانند j2ME MIDP Runner روی این سیستم عامل قابل اجرا هستند.
1-5محیط توسعه استفاده شده
محیط توسعه نرم افزار آندروید استودیو انتخاب گردید. اندروید استودیو یک محیط برنامه نویسی برای پلتفرم اندروید است .این برنامه در ۱۶ می 2013 توسط مدیران گوگل در کنفرانس گوگل آی/او معرفی شد .از ماه جوئن 2013 نسخه پیش نمایش این برنامه (به صورت رایگان) برای امتحان در دسترس توسعه دهنده ها قرار گرفت. این محیط بر اساس نرم افزار محبوب جت برینز طراحی شده است، این استودیو بطور اختصاصی برای اندروید طراحی شده است.
-2-5 سناریو نرم افزار
سناریو اصلی که ما در طراحی نرم افزار لحاظ نمودیم به این شکل می باشد که نرم افزار تعبیه شده در بخش تلفن هوشمند از یک رابط کاربری به شکل ذیل تشکیل شده.

شکل شماره 1- رابط کاربری نرم افزار

بر روی رابط کاربری نرم افزار در مجموع 12 دکمه تعبیه گردیده که از این تعداد 3 کلید برای خاموش و روشن کردن پلاگ ها به صورت انفرادی استفاده می گردد همچنین از 2 کلید برای خاموش و روشن کردن کلیه پلاگ ها بصورت همزمان استفاده می گردد ضمنا یک کلید برای مشخص نمودن لیست دستگاه های متصل به نرم افزار همچنین یک کلید تایمر برای خاموش نمودن کلیه پلاگ ها بعد از مدت زمان خاص تعبیه شده است .مکانیزم به این شکل بوده که در زمان فشرده شدن هر دکمه ضمن فراخوانی تابع خاص کدهای خاصی به سمت پریز هوشمند ارسال و پس از دریافت کدها توسط ماژول بلوتوث HC-05 تعبیه شده در جعبه پریز، فرامین به میکرو کنترلر تعبیه شده بر روی پلتفرم آردوینو تحویل و پس از پردازش فرامین دستورات از طریق پایه های میکروکنترلر به رله ها و ال ای دی ها به عنوان خروجی ارسال می گردند.

شکل شماره 7- سناریو

برای نمونه یکی از رویداد های ارسال داده به سمت میکرو کنترلر در ذیل شرح داده می شود:

btn1On.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sendData(“A”);
Toast msg = Toast.makeText(getBaseContext(),
“You have clicked On”, Toast.LENGTH_SHORT);
msg.show();
}
});

رویداد setOnClickListener در صورت فشرده شد دکمه 13 تابع sendData را فراخوانی نموده و کاراکتر A را به ماژول بلوتوث تعبیه شده بر روی سیستم ارسال می نماید .میکرو کنترلر پس از دریافت کاراکتر A و بر اساس کدهای تعبیه شده نسبت به فعال سازی و یا عدم فعال سازی پایه ها اقدام می نماید.
6- توسعه نرم افزاری بخش پردازنده اتمگا برای کنترل پریزها
پلتفرم آردوینو از یک محیط توسعه نرم افزار اختصاصی تشکیل گردیده که کی توان به کمک زبان برنامه نویسی سی و یا سی پلاس پلاس نسبت توسعه نرم افزارها همچنین آپلود برنامه ها بر روی میکروکنترلر تعبیه شده بر روی برد اقدام نمود. همچنین این محیط توسعه از یک سری توابع کتابخانه ای قدرتمند به نام تشکیل aRest گردیده که ما را در توسعه نرم افزار ها یاری می رساند .ضمنا به برنامه های تولید شده در این محیط sketch گویند. در ادامه و برای نمونه بخشی از کدهای توسعه یافته به زبان C که در این تحقیق نوشته شده و در میکروکنترلر درج گردیده شرح داده می شود.

char data = 0 ;
#define RELAY1 4
void setup ()
{
Serial.begin (9600)
pinMode(13, OUTPUT) ;
pinMode(RELAY1, OUTPUT) ;
}
void loop ()
{
if(Serial.available() > 0)
{
———————————//
data = Serial.read(); //Read the incoming data and store it into variable data
—————————————————————–//
if(data == ‘1’) //Checks whether value of data is equal to 0
{
digitalWrite(RELAY1,HIGH);
digitalWrite(13, HIGH);
delay;)533(
}

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