جدول المحتويات:
- الخطوة 1: ضوء LED حساس
- الخطوة 2: مفتاح الطاقة الصغير
- الخطوة 3: الخلية الكهروضوئية الثانية
- الخطوة 4: RGB LED
- الخطوة 5: مستشعر درجة الحرارة
- الخطوة 6: DAGU Gearmotor
- الخطوة 7: الكود
فيديو: مشروع المنزل الذكي EF230: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
الأجزاء والمواد المطلوبة:
- 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
- يسمح المحرك للمنزل الذكي بتنظيم درجة الحرارة في المنزل بناءً على درجة الحرارة المطلوبة وقراءات مستشعر درجة الحرارة.
- يعمل المحرك كوحدة تكييف في المنزل ، وسوف يدور بسرعات مختلفة بناءً على مقدار ارتفاع درجة الحرارة الفعلية عن درجة الحرارة المرغوبة. كلما زاد الفارق ، كان يدور المحرك بشكل أسرع.
- يمكن العثور على أسلاك المحرك في دليل التجربة تحت التجربة 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) ؛
نهاية
نهاية
موصى به:
المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)
Smart Home من Raspberry Pi: هناك بالفعل العديد من المنتجات التي تجعل شقتك أكثر ذكاءً ، ولكن معظمها حلول مملوكة. ولكن لماذا تحتاج إلى اتصال بالإنترنت لتبديل الضوء بهاتفك الذكي؟ كان هذا أحد الأسباب التي دفعتني إلى بناء Smar الخاص بي
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: 5 خطوات
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: أدر باب المرآب العادي بذكاء باستخدام مشروع DIY هذا. سأوضح لك كيفية بنائه والتحكم فيه باستخدام Home Assistant (عبر MQTT) ولديه القدرة على فتح باب الجراج الخاص بك وإغلاقه عن بُعد. سأستخدم لوحة ESP8266 تسمى Wemos
نظام المنزل الذكي Alexa باستخدام وحدة الترحيل NodeMCU: 10 خطوات
نظام المنزل الذكي Alexa باستخدام وحدة NodeMCU Relay: في مشروع IoT هذا ، صنعت نظام Alexa Smart Home Automation باستخدام NodeMCU ESP8266 & amp؛ وحدة الترحيل. يمكنك التحكم بسهولة في الإضاءة والمروحة والأجهزة المنزلية الأخرى باستخدام الأمر الصوتي. لتوصيل مكبر الصوت الذكي Echo Dot بـ
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino - أفكار أتمتة المنزل: 15 خطوة (بالصور)
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino | أفكار أتمتة المنزل: في مشروع أتمتة المنزل هذا ، سنصمم وحدة ترحيل منزلية ذكية يمكنها التحكم في 5 أجهزة منزلية. يمكن التحكم في وحدة الترحيل هذه من الهاتف المحمول أو الهاتف الذكي أو جهاز التحكم عن بعد بالأشعة تحت الحمراء أو جهاز التحكم عن بعد في التلفزيون أو المفتاح اليدوي. يمكن لهذا التتابع الذكي أيضًا أن يستشعر r
مشروع "Ready Maker" - التحكم في مشروع Lego Power Functions: 9 خطوات
"Ready Maker" - التحكم في مشروع "Lego Power Functions": تعلم كيفية التحكم في وظائف Lego & quot؛ Power & quot؛ المكونات مع لوحة Arduino وبناء مشروعك في & quot؛ Ready Maker & quot؛ محرر (لا يوجد كود مطلوب) للتحكم عن بعد في نموذجك