جدول المحتويات:

مشروع المنزل الذكي EF230: 7 خطوات
مشروع المنزل الذكي EF230: 7 خطوات

فيديو: مشروع المنزل الذكي EF230: 7 خطوات

فيديو: مشروع المنزل الذكي EF230: 7 خطوات
فيديو: small smart home (graduation project), منزل ذكي صغير تحكم بالهاتف (مشروع تخرج) 2024, يوليو
Anonim
مشروع المنزل الذكي EF230
مشروع المنزل الذكي EF230

الأجزاء والمواد المطلوبة:

  • 1 اردوينو MKR 1000
  • 3 ألواح توصيل
  • عدد 2 خلايا ضوئية صغيرة
  • 1 NPN الترانزستورات
  • 1 مفتاح طاقة صغير
  • 1 LED - RGB (4 شق)
  • 1 LED (لون من اختيارك)
  • 1 ديود 1N4148
  • 1 10 كيلو أوم مقاومات
  • 5100 أوم المقاوم
  • 1 مستشعر درجة الحرارة TMP36
  • 1 DAGU 48: 1 نسبة محرك تروس
  • 25 أسلاك توصيل
  • سلك USB
  • برنامج ماتلاب
  • دليل تجربة SIK للوحة Arduino 101 / Genuino 101 - رابط دليل تجربة SIK

يوضح هذا المشروع تفاصيل التصميم المفاهيمي لنظام المنزل الذكي الذي يستخدم البيانات لمساعدة مالكي المنازل على تحسين استخدامهم للطاقة وأمانهم. يشتمل على مستشعر إضاءة لتشغيل الأضواء الخارجية ليلاً ، ومستشعر إضاءة للأمان ، ومستشعر درجة حرارة ومروحة للتحكم في درجة الحرارة في الأماكن المغلقة.

الخطوة 1: ضوء LED حساس

  • يهدف إعداد LED الحساس للضوء إلى تمثيل الأضواء الخارجية في المنزل في الليل.
  • عندما تستشعر الخلية الكهروضوئية المصغرة كمية مخفضة من الضوء ، يضيء مصباح LED.
  • بالنسبة للمنزل الذكي ، فإن هذا له آثار على الطاقة والأمن. سيوفر الطاقة من خلال ترك الأنوار مطفأة أثناء النهار وسيوفر مزيدًا من الأمان في الليل.
  • يمكن العثور على الأسلاك والإعداد الدقيق لهذا الجزء من المشروع في التجربة 7 في دليل تجربة SIK.

الخطوة 2: مفتاح الطاقة الصغير

  • المفتاح هو الخطوة الأولى في عملية الأمان للمنزل الذكي.
  • عند تشغيله ، سيبدأ المفتاح في الرد يسأل المستخدم عما إذا كان يرغب في الدخول إلى وضع "الصفحة الرئيسية" أو وضع "بالخارج".
  • إذا تم تحديد الوضع "Home" ، فسيتم اعتبار الأمان غير مفعّل ، ولكن تحديد وضع "Away" سيؤدي إلى تسليح نظام الأمان.
  • يمكن العثور على الأسلاك لهذا الجزء من المشروع تحت التجربة 6 في دليل التجربة. لأغراض المنزل الذكي ، لا يلزم تضمين مصابيح LED وأسلاك التوصيل الخاصة بها الموجودة في التجربة 6.

الخطوة 3: الخلية الكهروضوئية الثانية

الخلية الكهروضوئية الثانية
الخلية الكهروضوئية الثانية
  • تعمل الخلية الكهروضوئية الثانية كمستشعر حركة لنظام الأمان في المنزل الذكي.
  • يتم استخدام المستشعر فقط عند وضع النظام في وضع "Away" كما هو موضح في الخطوة السابقة.
  • إذا واجهت الخلية الكهروضوئية انخفاضًا في كمية الضوء التي تتلقاها ، فإنها تتعرف على ذلك كحركة داخل المنزل.
  • يمكن العثور على الإعداد لهذا الجزء من المشروع تحت التجربة 7 في دليل تجربة SIK. ومع ذلك ، يجب تضمين الخلية الكهروضوئية وأسلاك التوصيل فقط في الأسلاك.

الخطوة 4: RGB LED

  • يتم استخدام RGB LED بالاقتران مع مفتاح الطاقة المصغر والثانية الكهروضوئية لنظام الأمان في المنزل الذكي.
  • يتم استخدام الألوان الثلاثة المختلفة كمؤشرات لمقيم المنزل الذكي.
  • عندما يتم وضع النظام في وضع "الصفحة الرئيسية" ، يتحول مؤشر LED إلى اللون الأزرق. عندما يتم وضع النظام في وضع "بالخارج" ، يتحول لون مؤشر LED إلى اللون الأخضر. عند تعطل الخلية الكهروضوئية المستخدمة كمستشعر للحركة ، يومض الضوء باللون الأحمر.
  • يمكن العثور على الأسلاك الخاصة بـ RGB LED في التجربة 3 من دليل تجربة SIK.

الخطوة 5: مستشعر درجة الحرارة

  • يعتبر مستشعر درجة الحرارة جزءًا رئيسيًا من الحفاظ على الطاقة في المنزل الذكي.
  • يمكن للمقيم إدخال درجة الحرارة المطلوبة لمنزله عندما يكون المنزل الذكي قيد الاستخدام.
  • مستشعر درجة الحرارة هو كيف يعرف النظام مدى درجة الحرارة الفعلية عن درجة الحرارة المطلوبة.
  • يمكن العثور على إعداد مستشعر درجة الحرارة في التجربة 9 من دليل تجربة SIK.

الخطوة 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • يسمح المحرك للمنزل الذكي بتنظيم درجة الحرارة في المنزل بناءً على درجة الحرارة المطلوبة وقراءات مستشعر درجة الحرارة.
  • يعمل المحرك كوحدة تكييف في المنزل ، وسوف يدور بسرعات مختلفة بناءً على مقدار ارتفاع درجة الحرارة الفعلية عن درجة الحرارة المرغوبة. كلما زاد الفارق ، كان يدور المحرك بشكل أسرع.
  • يمكن العثور على أسلاك المحرك في دليل التجربة تحت التجربة 11.

الخطوة 7: الكود

  • يشتمل رمز المنزل الذكي على واجهات مستخدم متعددة تتيح للمقيم فهم كيفية عمله بسهولة وتغيير الإعدادات بسهولة.
  • مع نظام المنزل الذكي ، سيتلقى المقيم تنبيهًا عبر البريد الإلكتروني إذا تم تشغيل مستشعر الحركة أثناء تواجده بعيدًا.
  • التغيير الوحيد الذي يجب إجراؤه هو إدخال معلومات البريد الإلكتروني للمرسل وعنوان البريد الإلكتروني الخاص بالمستلم.

مسح أ ؛ ق واضح ؛ م واضح clc. أغلق الكل ٪ مسح متغيرات arduino و servo بحيث يمكن إعادة تعريفها في كل مرة حتى يتم تشغيل الكود بشكل فعال ("clear m" ضروري لإحدى حلقات while بشكل صحيح) a = arduino () ؛ ٪ تعيين متغير اردوينو

s = مؤازرة (a، 'D6') ؛ ٪ تعيين متغير المؤازرة

٪ تهيئة متغيرات البريد الإلكتروني للبريد الإلكتروني لتحذير نظام الأمان

البريد الإلكتروني = {'أدخل عنوان المستلم'} ؛ ٪ مجموعة من رسائل البريد الإلكتروني التي سيتم إرسال البريد الإلكتروني الأمني إليها

تعد٪ إعدادات تفضيل البريد الإلكتروني ضرورية لاستخدام Gmail لإرسال البريد منه

setpref ("الإنترنت" ، "البريد الإلكتروني" ، "عنوان البريد الإلكتروني للمرسل") ؛

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 = 'مرحبًا ، هذا هو نظام أمان المنزل الذكي الذي يخبرك بأنه تم اكتشاف حركة خارج منزلك. لقد اتخذنا الإجراءات اللازمة واتصلنا بالسلطات نيابة عنك. ابق آمنًا. '؛

احيانا صحيح

موجه = {'أدخل درجة حرارة المنزل المطلوبة (بين 65 فهرنهايت و 85 فهرنهايت):'}؛ موجه٪ لقائمة إدخال المستخدم

dlgtitle = "تحديد درجة الحرارة" ؛ ٪ عنوان لقائمة إدخال المستخدم

يعتم = [30 1] ؛ أبعاد قائمة إدخال المستخدم

التعريف = {'72'} ؛ ٪ المدخلات الافتراضية التي تظهر عند فتح القائمة لأول مرة

tempsel_array = inputdlg (موجه ، dlgtitle ، يعتم ، تعريف) ؛ قائمة إدخال المستخدم المنبثقة٪ والتي ستحفظ الرقم الذي تم إدخاله في مصفوفة

إذا كانت فارغة ~ (tempsel_array)٪ إذا كانت المصفوفة غير فارغة

tempsel_char = cell2mat (tempsel_array) ؛ ٪ تحويل المصفوفة إلى سلسلة أحرف

tempsel = str2double (tempsel_char) ؛ ٪ تحويل سلسلة الأحرف إلى أرقام

thingSpeakWrite (chID، tempsel، 'WriteKey'، writeKey، 'Fields'، 1)؛ ٪ اكتب درجة الحرارة المحددة لقناة ThingSpeak الخاصة بك

كسر٪ Break من حلقة while حتى لا تنبثق القائمة عدة مرات

آخر٪ إذا نقر المستخدم على إلغاء بدلاً من إدخال درجة حرارة

msg1 = msgbox ("لم يتم تحديد درجة حرارة ، الإعداد الافتراضي إلى 85 درجة فهرنهايت" ، "تحذير!") ؛ يتم عرض٪ رسالة للمستخدم بعد النقر فوق "إلغاء الأمر"

waitfor (msg1) ؛ ٪ انتظر حتى يتم إغلاق مربع الرسالة قبل المتابعة

tempsel = 85 ؛ ٪ اضبط درجة الحرارة على ما تم ذكره في مربع الرسالة

thingSpeakWrite (chID، tempsel، 'WriteKey'، writeKey، 'Fields'، 1)؛ ٪ اكتب درجة الحرارة المحددة لقناة ThingSpeak الخاصة بك

كسر٪ Break من حلقة while حتى لا تنبثق القائمة عدة مرات

نهاية

نهاية

احيانا صحيح

chID = 745517 ؛ ٪ معرّف قناة ThingSpeak

writeKey = 'G9XOQTP8KOVSCT0N' ؛ ٪ مفتاح للوصول إلى قناة ThingSpeak

٪ تهيئة أجهزة الاستشعار لجلب البيانات

تم النشر = readVoltage (a ، 'A3') ؛ ٪ اقرأ جهد مستشعر درجة الحرارة

lightl1 = readVoltage (أ ، 'A2') ؛ ٪ مستوى الضوء للمقاوم الضوئي يذهب إلى مؤشر LED الأحمر

lightl2 = readVoltage (a ، 'A5') ، النسبة المئوية لمستوى الضوء للمقاوم الضوئي الذي ينتقل إلى نظام الأمان

switchv = readVoltage (a، 'A0') ؛ ٪ قيمة للتبديل

٪ تحويل بيانات درجة الحرارة من الفولتية إلى درجات فهرنهايت

درجة الحرارة = (منتشر - 0.5) * 100 ؛ ٪ تحويل الجهد إلى درجة حرارة مئوية

tempF = (tempC * 9/5) + 32 ؛ ٪ تحويل درجة الحرارة من الدرجة المئوية إلى درجة الحرارة بالفهرنهايت

٪ قم بتهيئة أرقام الدبوس الخاصة بمصباح LED متعدد الألوان

redp = 'D9' ؛ ٪ دبوس للضوء الأحمر من LED

جرينب = 'D10' ؛ ٪ دبوس للضوء الأخضر من LED

مخطط = 'D11' ؛ ٪ دبوس للضوء الأزرق من LED

إذا كانت درجة الحرارة <درجة الحرارة٪ إذا كانت درجة الحرارة المحددة أكبر من درجة حرارة الغرفة

الكتابة الوظيفة (الوظائف ، 1) ؛ سيبدأ٪ المؤازرة في التحرك

الإيقاف المؤقت (10)٪ سيستمر السيرفو في الدوران لمدة 10 ثوانٍ للإشارة إلى أن التيار المتردد سيتوقف بعد فترة زمنية محددة

الكتابة الوظيفة (الوظائف ، 0) ؛ قم بإيقاف تشغيل المروحة لغرض استمرار الكود بدون تشغيل المروحة

tempsel = 150 ؛ ٪ قم بتغيير قيمة درجة الحرارة للخروج من الحلقة بعد إيقاف تشغيل المروحة ، مرة أخرى فقط لغرض استمرار الكود

نهاية

إذا كان lightl1 <= 3٪ إذا اكتشف المقاوم الضوئي الأول مستوى إضاءة منخفض

writeDigitalPin (a، 'A1'، 1) ؛ ٪ قم بتشغيل مؤشر LED الأحمر الذي يمثل الأضواء الخارجية

آخر٪ إذا كان مستوى الضوء مرتفعًا مرة أخرى

writeDigitalPin (a، 'A1'، 0) ؛ ٪ قم بإيقاف تشغيل مؤشر LED الأحمر عندما يكون مستوى الضوء مرتفعًا بدرجة كافية مرة أخرى

نهاية

إذا كان التبديل> 3٪ إذا تم تشغيل المفتاح

A = موجود ('m'، 'var') ؛ ٪ تحقق من وجود متغير 'm' ، سيؤدي هذا إلى تهيئة حلقة while والسماح بفصلها عند تحديد عنصر قائمة (لهذا السبب يجب إجراء clear m في بداية الكود)

بينما A == 0٪ Loop سيتم تنفيذها حتى وجود المتغير 'm'

menutext = 'ما هو وضع الأمان الذي ترغب في الدخول إليه؟' ؛ ٪ نص لقائمة الأمان المنبثقة

الاختيارات = {'المنزل'، 'بالخارج'} ؛ خيارات قائمة الأمان المنبثقة

م = القائمة (نص القوائم ، الاختيارات) ؛ القائمة المنبثقة٪ لأوضاع نظام الأمان

break٪ يضمن أن الحلقة while مكسورة حتى لا تظهر القائمة عدة مرات

نهاية

إذا كانت m == 1٪ إذا تم تحديد وضع "الصفحة الرئيسية"

writeDigitalPin (أ ، مخطط ، 1) ؛ ٪ قم بتشغيل الضوء الأزرق فقط في مصباح LED المتغير اللون

writeDigitalPin (a ، redp ، 0) ؛

writeDigitalPin (أ ، جرينب ، 0) ؛

elseif m == 2٪ إذا تم تحديد وضع "Away"

writeDigitalPin (أ ، مخطط ، 0) ؛

writeDigitalPin (a ، redp ، 0) ؛

writeDigitalPin (أ ، جرينب ، 1) ؛ ٪ قم بتشغيل الضوء الأخضر فقط في مصباح LED المتغير اللون

إذا كان lightl2 <= 3٪ إذا كان مستوى الضوء في المقاوم الضوئي الثاني منخفضًا ، يمثل الحركة التي اكتشفها نظام الأمان

Sendmail (رسائل البريد الإلكتروني ، subj ، النص) ؛ ٪ إرسال بريد إلكتروني بخصائص البريد الإلكتروني المحددة مسبقًا writeDigitalPin (a ، greenp ، 0) ؛ ٪ وميض اللون الأحمر وإيقاف تشغيله مرتين

writeDigitalPin (a ، redp ، 1) ؛

وقفة (0.3)

writeDigitalPin (a ، redp ، 0) ؛

وقفة (0.3)

writeDigitalPin (a ، redp ، 1) ؛

وقفة (0.3)

writeDigitalPin (أ ، أحمر ، 0) ؛

وقفة (0.3)

writeDigitalPin (a ، redp ، 1) ؛ ٪ قم بإنهاء باللون الأحمر الثابت بعد الوميض لإظهار وجود حركة حتى يرتفع مستوى الضوء مرة أخرى

msg2 = msgbox ('تم اكتشاف دخيل بواسطة نظام الأمان ، تم إرسال بريد إلكتروني إلى أصحاب المنازل لإبلاغهم.'، 'تحذير!')؛ ٪ مربع رسالة لإعلام المستخدم بالحركة ولإبلاغه بالبريد الإلكتروني المرسل waitfor (msg2)٪ انتظر حتى يتم إغلاق مربع الرسالة قبل المتابعة

آخر

writeDigitalPin (أ ، جرينب ، 1) ؛ ٪ بمجرد أن يرتفع مستوى الضوء مرة أخرى سوف يعود إلى اللون الأخضر

نهاية

نهاية

elseif switchv <3.3٪ إذا تم إيقاف تشغيل المفتاح

writeDigitalPin (أ ، مخطط ، 0) ؛ قم بإيقاف تشغيل مؤشر LED تمامًا لإظهار إيقاف تشغيل نظام الأمان

writeDigitalPin (a ، redp ، 0) ؛

writeDigitalPin (أ ، جرينب ، 0) ؛

نهاية

نهاية

موصى به: