فهرست مطالب:

پروژه خانه هوشمند EF230: 7 مرحله
پروژه خانه هوشمند EF230: 7 مرحله

تصویری: پروژه خانه هوشمند EF230: 7 مرحله

تصویری: پروژه خانه هوشمند EF230: 7 مرحله
تصویری: معرفی پروژه هوشمندسازی مسکونی- تهرانپارس- خانه هوشمند کوباکو 2024, جولای
Anonim
پروژه خانه هوشمند EF230
پروژه خانه هوشمند EF230

قطعات و مواد مورد نیاز:

  • 1 آردوینو 1000 MKR
  • 3 تخته نان
  • 2 مینی فتوسل
  • 1 ترانزیستور NPN
  • 1 سوئیچ مینی پاور
  • 1 LED - RGB (4 شاخه)
  • 1 عدد LED (رنگ دلخواه)
  • 1 دیود 1N4148
  • 1 مقاومت 10 کیلو اهم
  • 5 100 مقاومت اهم
  • 1 سنسور دما TMP36
  • 1 DAGU 48: 1 نسبت Gearmotor
  • 25 سیم جامپر
  • کابل USB
  • برنامه متلب
  • راهنمای آزمایش SIK برای برد Arduino 101/Genuino 101 - پیوند راهنمای آزمایش SIK

این پروژه جزئیات طراحی مفهومی یک سیستم خانه هوشمند را ارائه می دهد که از داده ها برای کمک به صاحبان خانه برای بهینه سازی مصرف انرژی و امنیت آنها استفاده می کند. این دستگاه شامل یک سنسور نور برای روشن کردن چراغ های بیرونی در شب ، یک سنسور نور برای امنیت و یک سنسور دما و یک فن برای کنترل دمای داخلی است.

مرحله 1: LED حساس به نور

  • تنظیم LED حساس به نور نشان دهنده چراغ های بیرونی خانه ای است که در شب روشن می شود.
  • هنگامی که مینی فتوسل مقدار کمتری از نور را حس می کند ، LED روشن می شود.
  • برای یک خانه هوشمند این امر دارای پیامدهای انرژی و امنیت است. با خاموش نگه داشتن چراغ ها در طول روز در مصرف انرژی صرفه جویی می کند و امنیت بیشتری را در شب ایجاد می کند.
  • سیم کشی و تنظیم دقیق این بخش از پروژه را می توانید در آزمایش 7 در راهنمای آزمایش SIK مشاهده کنید.

مرحله 2: مینی سوئیچ قدرت

  • سوئیچ اولین گام در فرایند امنیت خانه هوشمند است.
  • هنگامی که روشن است ، سوئیچ پاسخ را از کاربر می پرسد که آیا می خواهد وارد حالت "خانه" یا "دور" شود.
  • اگر حالت "خانه" انتخاب شود ، امنیت خلع سلاح تلقی می شود ، اما انتخاب حالت "دور" سیستم امنیتی را مسلح می کند.
  • سیم کشی این بخش از پروژه را می توانید در آزمایش 6 در راهنمای آزمایش مشاهده کنید. برای اهداف خانه هوشمند ، LED ها و سیمهای اتصال آنها در آزمایش 6 نیازی به گنجاندن ندارند.

مرحله 3: دومین سلول

فتوسل دوم
فتوسل دوم
  • فتوسل دوم به عنوان سنسور حرکت برای سیستم امنیتی خانه هوشمند عمل می کند.
  • سنسور فقط زمانی استفاده می شود که سیستم در حالت "Away" قرار داده شود ، همانطور که در مرحله قبل توضیح داده شد.
  • اگر فتوسل میزان نور دریافتی خود را کاهش دهد ، این را به عنوان حرکت در داخل خانه تشخیص می دهد.
  • تنظیمات این بخش از پروژه را می توانید در آزمایش 7 در راهنمای آزمایش SIK مشاهده کنید. با این حال ، فقط فتوسل و سیمهای اتصال آن باید در سیم کشی قرار گیرند.

مرحله 4: LED RGB

  • چراغ RGB به همراه سوئیچ قدرت کوچک و دومین سلول برای سیستم امنیتی خانه هوشمند استفاده می شود.
  • سه رنگ مختلف به عنوان شاخص برای ساکن خانه هوشمند استفاده می شود.
  • هنگامی که سیستم در حالت 'Home' قرار می گیرد ، LED آبی می شود. هنگامی که سیستم در حالت 'Away' قرار می گیرد ، LED سبز می شود. وقتی فتوسل مورد استفاده به عنوان سنسور حرکت متوقف می شود ، چراغ قرمز چشمک می زند.
  • سیم کشی LED RGB را می توانید در آزمایش 3 راهنمای آزمایش SIK مشاهده کنید.

مرحله 5: سنسور دما

  • سنسور دما بخش مهمی از صرفه جویی در انرژی در خانه هوشمند است.
  • هنگامی که از خانه هوشمند استفاده می شود ، ساکن می تواند دمای مورد نظر را برای خانه خود وارد کند.
  • سنسور دما این است که چگونه سیستم می داند دمای واقعی از دمای مورد نظر چقدر فاصله دارد.
  • تنظیمات مربوط به سنسور دما را می توانید در آزمایش 9 راهنمای آزمایش SIK مشاهده کنید.

مرحله 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • این موتور به خانه هوشمند اجازه می دهد تا دمای خانه را بر اساس دمای مورد نظر و قرائت سنسور دما تنظیم کند.
  • موتور که به عنوان واحد AC در خانه عمل می کند ، بر اساس میزان دمای واقعی بالاتر از دمای مورد نظر ، با سرعت های مختلف می چرخد. هرچه اختلاف بیشتر باشد ، موتور سریعتر می چرخد.
  • سیم کشی موتور را می توانید در راهنمای آزمایش در آزمایش 11 مشاهده کنید.

مرحله 7: کد

  • کد خانه هوشمند شامل چندین رابط کاربری است که به ساکن اجازه می دهد به راحتی نحوه کارکردن را بفهمد و به راحتی تنظیمات را تغییر دهد.
  • با استفاده از سیستم خانه هوشمند ، در صورت خاموش شدن سنسور حرکت هنگام دور بودن ، ساکن اخطار دریافت می کند.
  • تنها تغییری که باید ایجاد شود ، درج اطلاعات ایمیل فرستنده و آدرس ایمیل گیرنده است.

روشن a؛ روشن s؛ روشن m؛ clc؛ همه را بستن ؛ ٪ متغیرهای آردوینو و سروو را پاک کنید تا بتوان آنها را هربار تعریف مجدد کرد تا کد به طور موثر اجرا شود ("روشن m" برای عملکرد صحیح یکی از حلقه های زمانی ضروری است) a = arduino ()؛ ٪ متغیر arduino را تنظیم کنید

s = سروو (a ، 'D6') ؛ ٪ متغیر سروو را تنظیم کنید

٪ مقداردهی اولیه متغیرهای ایمیل برای ایمیل هشدار دهنده سیستم امنیتی

ایمیل = {'درج آدرس گیرنده'}؛ ٪ آرایه ای از ایمیل ها که باید ایمیل امنیتی به آنها ارسال شود

٪ تنظیمات برگزیده ایمیل برای استفاده از Gmail برای ارسال نامه از

setpref ("اینترنت" ، "E_mail" ، "آدرس ایمیل فرستنده") ؛

setpref ("اینترنت" ، "SMTP_Username" ، "نام کاربری فرستنده") ؛

setpref ("اینترنت" ، "SMTP_Password" ، "رمز فرستنده") ؛

props = java.lang. System.getProperties؛

props.setProperty ('mail.smtp.auth' ، 'true') ؛

props.setProperty ('mail.smtp.socketFactory.class' ، 'javax.net.ssl. SSLSocketFactory') ؛ props.setProperty ('mail.smtp.socketFactory.port' ، '465') ؛

٪ متغیرهای موضوع و متن ایمیل

subj = 'هشدار مزاحم در خانه شما'؛

text = 'سلام ، این سیستم امنیتی خانه هوشمند شماست که به شما اطلاع می دهد حرکت در خارج از خانه شما تشخیص داده شده است. ما اقدامات لازم را انجام داده و با مقامات مربوطه تماس گرفته ایم. ایمن بمان. '؛

در حالی که حقیقت دارد

prompt = {'دمای مطلوب خانه (بین 65F تا 85F) را وارد کنید:'}؛ ٪ برای منوی ورودی کاربر

dlgtitle = 'انتخاب دما'؛ ٪ عنوان برای منوی ورودی کاربر

dims = [1 30]؛ ٪ ابعاد منوی ورودی کاربر

definput = {'72'}؛ input ورودی پیش فرض که هنگام باز شدن منو برای اولین بار نشان داده می شود

tempsel_array = inputdlg (سریع ، dlgtitle ، dims ، definput) ؛ ٪ منوی ورودی پنجره کاربر که شماره وارد شده را در یک آرایه ذخیره می کند

if ~ isempty (tempsel_array)٪ اگر آرایه خالی نباشد

tempsel_char = cell2mat (tempsel_array) ؛ ٪ تبدیل آرایه به یک رشته کاراکتر

tempsel = str2double (tempsel_char) ؛ ٪ رشته کاراکتر را به اعداد تبدیل کنید

thingSpeakWrite (chID، tempsel، 'WriteKey'، writeKey، 'Fields'، 1)؛ ٪ دمای انتخاب شده را در کانال ThingSpeak خود بنویسید

break٪ از حلقه while خارج شوید تا منو چندین بار ظاهر نشود

else٪ اگر کاربر کلیک کند به جای وارد کردن دما ، لغو شود

msg1 = msgbox ('دما انتخاب نشده ، به طور پیش فرض 85F' ، 'هشدار!')؛ ٪ پیام پس از کلیک روی لغو به کاربر نمایش داده می شود

waitfor (msg1)؛ ٪ قبل از ادامه صبر کنید تا جعبه پیام بسته شود

tempsel = 85 ؛ the درجه حرارت را روی آنچه در کادر پیام آمده بود تنظیم کنید

thingSpeakWrite (chID، tempsel، 'WriteKey'، writeKey، 'Fields'، 1)؛ ٪ دمای انتخاب شده را در کانال ThingSpeak خود بنویسید

break٪ از حلقه while خارج شوید تا منو چندین بار ظاهر نشود

پایان

پایان

در حالی که حقیقت دارد

chID = 745517؛ ٪ شناسه کانال ThingSpeak

writeKey = 'G9XOQTP8KOVSCT0N'؛ ٪ برای دسترسی به کانال ThingSpeak

In مقداردهی اولیه سنسورها برای واکشی داده ها

tempread = readVoltage (a ، 'A3') ؛ Read ولتاژ سنسور دما را بخوانید

lightl1 = readVoltage (a ، 'A2') ؛ level سطح نور برای مقاومت در برابر عکس به LED قرمز می رود

lightl2 = readVoltage (a ، 'A5') ؛ level سطح نور برای مقاومت در برابر عکس که به سیستم امنیتی می رود

switchv = readVoltage (a، 'A0')؛ ٪ ارزش برای سوئیچ

data داده های دما را از ولتاژ به درجه فارنهایت تبدیل کنید

tempC = (tempread - 0.5) * 100 ؛ voltage تبدیل ولتاژ به دما در درجه سانتیگراد

tempF = (tempC * 9/5) + 32 ؛ temperature تبدیل دما در درجه سانتیگراد به دما در فارنهایت

٪ شماره های پین را برای LED چند رنگ اولیه کنید

redp = 'D9'؛ Pin پین برای نور قرمز از LED

greenp = 'D10'؛ Pin پین برای نور سبز از LED

bluep = 'D11'؛ Pin پین برای نور آبی از LED

if tempsel <tempF٪ اگر دمای انتخاب شده بیشتر از دمای اتاق باشد

writePosition (s، 1)؛ ٪ سروو شروع به حرکت می کند

مکث (10)٪ سروو به مدت 10 ثانیه به چرخش ادامه می دهد تا نشان دهد که AC پس از مدت زمان مشخص خاموش می شود

writePosition (s، 0)؛ fan فن را به منظور ادامه کد بدون روشن بودن فن خاموش کنید

tempsel = 150 ؛ ٪ تغییر دما برای خروج از حلقه پس از خاموش شدن فن ، دوباره فقط به منظور ادامه کد

پایان

اگر lightl1 <= 3٪ اگر اولین مقاومت در برابر نور سطح کم را تشخیص دهد

writeDigitalPin (a، 'A1'، 1)؛ LED LED قرمز را که نشان دهنده چراغ های بیرون است روشن کنید

else٪ اگر سطح نور دوباره بالا باشد

writeDigitalPin (a، 'A1'، 0)؛ ٪ وقتی سطح نور دوباره به اندازه کافی بالا می رود LED قرمز را خاموش کنید

پایان

اگر switchv> 3٪ اگر سوئیچ روشن است

A = وجود دارد ('m' ، 'var') ؛ ٪ وجود متغیر "m" را بررسی کنید ، این حلقه برای مقداردهی اولیه راه اندازی می شود و اجازه می دهد تا هنگام انتخاب یک آیتم منو شکسته شود (به همین دلیل است که باید m را در ابتدای کد انجام دهید)

در حالی که A == 0٪ حلقه اجرا می شود تا متغیر 'm' وجود داشته باشد

menutext = 'دوست دارید وارد کدام حالت امنیتی شوید؟'؛ ٪ متن برای منوی پنجره امنیتی

انتخاب = {'خانه "،" دور "}؛ ٪ انتخابها برای منوی پنجره امنیتی

m = منو (منوتکست ، انتخاب ها) ؛ ٪ منوی پنجره برای حالت های سیستم امنیتی

break٪ اطمینان می دهد که حلقه while خراب است بنابراین منو چند بار ظاهر نمی شود

پایان

اگر m == 1٪ اگر حالت "Home" انتخاب شده باشد

writeDigitalPin (a، bluep، 1)؛ light فقط چراغ آبی را در LED تغییر رنگ روشن کنید

writeDigitalPin (a، redp، 0)؛

writeDigitalPin (a، greenp، 0)؛

elseif m == 2٪ اگر حالت 'Away' انتخاب شده باشد

writeDigitalPin (a، bluep، 0)؛

writeDigitalPin (a، redp، 0)؛

writeDigitalPin (a، greenp، 1)؛ ٪ فقط چراغ سبز را در LED تغییر رنگ روشن کنید

اگر lightl2 <= 3٪ اگر سطح نور در مقاومت نوری دوم کم است ، نشان دهنده حرکت تشخیص داده شده توسط سیستم امنیتی است

sendmail (ایمیل ، subj ، متن) ؛ Send ارسال یک ایمیل با ویژگی های ایمیل از پیش تعریف شده writeDigitalPin (a، greenp، 0)؛ ٪ رنگ قرمز فلاش 2 بار روشن و خاموش می شود

writeDigitalPin (a، redp، 1)؛

مکث (0.3)

writeDigitalPin (a، redp، 0)؛

مکث (0.3)

writeDigitalPin (a، redp، 1)؛

مکث (0.3)

writeDigitalPin (a، redp، 0)؛

مکث (0.3)

writeDigitalPin (a، redp، 1)؛ after پس از چشمک زدن ، با رنگ قرمز کامل کنید تا حرکت نشان داده شود تا زمانی که سطح نور به بالا برود

msg2 = msgbox ('مزاحم توسط سیستم امنیتی شناسایی شد ، یک ایمیل برای اطلاع صاحبان خانه ارسال شده است.'، 'WARNING!')؛ ٪ پیام برای اطلاع کاربر از حرکت و اطلاع از ایمیل ارسال شده waitfor (msg2)٪ قبل از ادامه صبر کنید تا جعبه پیام بسته شود

دیگری

writeDigitalPin (a، greenp، 1)؛ Once هنگامی که سطح نور دوباره بالا رفت دوباره سبز می شود

پایان

پایان

elseif switchv <3.3٪ اگر سوئیچ خاموش باشد

writeDigitalPin (a، bluep، 0)؛ ٪ LED را به طور کامل خاموش کنید تا نشان دهد سیستم امنیتی خاموش است

writeDigitalPin (a، redp، 0)؛

writeDigitalPin (a، greenp، 0)؛

پایان

پایان

توصیه شده: