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

مراقبة المنزل الذكي باستخدام Alexa و Arduino: 9 خطوات (بالصور)
مراقبة المنزل الذكي باستخدام Alexa و Arduino: 9 خطوات (بالصور)

فيديو: مراقبة المنزل الذكي باستخدام Alexa و Arduino: 9 خطوات (بالصور)

فيديو: مراقبة المنزل الذكي باستخدام Alexa و Arduino: 9 خطوات (بالصور)
فيديو: small smart home (graduation project), منزل ذكي صغير تحكم بالهاتف (مشروع تخرج) 2024, شهر نوفمبر
Anonim
Image
Image
جمع المواد
جمع المواد

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

ليس فقط مكان العمل ، يمكن للمستخدمين التعرف على حالة المنزل في أي مكان في العالم طالما لديهم اتصال بالإنترنت و Amazon Alexa.

يتم تنفيذ الوظائف التالية في هذا المشروع:

1) التحكم في الأجهزة المنزلية مثل المروحة والضوء

2) يحكي حالة الأجهزة

3) يحكي حالة الطقس في المنزل (درجة الحرارة والرطوبة)

4) يرسل لقطة من داخل المنزل للمستخدم عبر Gmail عند الحاجة.

5) يرسل إخطارا في حالة -

* دخيل (يرسل أيضًا صورة)

* إطلاق النار

* ضيف (يرسل أيضًا صورة)

الخطوة 1: جمع المواد

جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد

المواد المطلوبة

اردوينو اونو

وحدة واي فاي ESP8266

لينكيت سمارت 7688 ديو

دهت 11

يمرر

مستشعر عقبة الأشعة تحت الحمراء

كاميرا ويب

أمازون إيكو دوت

اللوح والأسلاك الطائر

البرامج والخدمات عبر الإنترنت:

Thingspeak.com

اردوينو IDE

مجموعة مهارات أمازون أليكسا

Amazon Alexa Echosim.io (لاختبار المهارة)

عارية الذراعين

PushingBox

الخطوة 2: برمجة Arduino و ESP8266

برمجة اردوينو و ESP8266
برمجة اردوينو و ESP8266
برمجة اردوينو و ESP8266
برمجة اردوينو و ESP8266

قم بتنزيل Arduino IDE من الموقع الرسمي:

افتح Arduino IDE وانتقل إلى ملف-> التفضيلات-> في نوع عنوان URL لمدير اللوحة الإضافي - https://arduino.esp8266.com/stable/package_esp8266 …

انتقل إلى الأدوات -> اللوحات -> مدير مجلس الإدارة وقم بتثبيت حزمة esp8266 الموجودة أخيرًا.

لبرمجة اردوينو ، ما عليك سوى توصيل كبل USB من اردوينو إلى الكمبيوتر وتحديد Arduino / Genuino UNO في أدوات-> اللوحات. تأكد أيضًا من تحديد منافذ COM للحقوق في الأدوات (يمكن العثور على رقم منفذ COM في إدارة الأجهزة). اكتب البرنامج المطلوب ، وقم بتجميعه وانقر فوق تحميل إذا لم تكن هناك أخطاء.

لبرمجة ESP8266 ، قم بإجراء الاتصال كما هو موضح في الرسم التخطيطي. قم بتوصيل USB من اردوينو بالكمبيوتر. في الأدوات-> اللوحة-> حدد عام ESP8266 وحدد أيضًا منفذ COM الصحيح. اكتب البرنامج المطلوب ، وقم بتجميعه وانقر فوق تحميل إذا لم تكن هناك أخطاء. تأكد من توصيل Arduino RST بـ GND (يعمل اردوينو كمبرمج لـ ESP8266).

في هذا المشروع ، تتم برمجة ESP8266 أولاً ثم يتم إزالة توصيلات الدائرة. ثم يتم إعادة توصيل الدائرة كما هو موضح في الشكل المسمى "اتصالات الدائرة". وبعد ذلك تمت برمجة اردوينو.

الخطوة 3: تكوين موقع Thingspeak.com

تكوين موقع Thingspeak.com
تكوين موقع Thingspeak.com

قم بإنشاء حساب على موقع Thingspeak.com.

نحن نستفيد من القنوات في كلام الأشياء لتخزين معلومات التحكم في الجهاز وتوجيهها إلى arduino / alexa. نقوم أيضًا بتخزين قيم درجة الحرارة والرطوبة في القنوات. إنه مثل موقع تخزين للمعلومات.

تسجيل الدخول إلى الأشياء ، والذهاب إلى قنوات قنواتي وإنشاء قناة جديدة. أعط اسم ووصف لقنواتك. نحتاج في مشروعنا إلى 8 قنوات (يمكنك القيام بالمهمة باستخدام قنوات أقل ولكنها ستكون معقدة بعض الشيء أثناء البرمجة). كما أن الكلام الأشياء له قيود زمنية أثناء تحديث القناة. يجب أن تكون هناك فجوة من 10 إلى 15 ثانية بين التحديث المتتالي لقناة معينة.

فيما يلي ثماني قنوات مع قيمها ومعناها

اسم القناة (value1-meaning، value2-meaning، etc):

1) التحكم في الجهاز (0-lightON ، 1- lightOff ، 2- مروحة ON ، 3- Fan Off)

2) حالة الضوء (0- إطفاء ، 1- إضاءة)

3) حالة المروحة (0- إيقاف تشغيل ، 1- تشغيل المروحة)

4) الرطوبة (قيمة الرطوبة)

5) درجة الحرارة (قيمة درجة الحرارة)

6) إخطار الدخيل (1- تنبيه الدخيل)

7) إخطار الحريق (1- إنذار الحريق)

8) إخطار الضيف (1- تنبيه الضيف)

عند النقر فوق أي قناة ، يمكنك رؤية معرف القناة الخاص بها وكتابة مفاتيح API في علامة التبويب مفاتيح API. معرف القناة مطلوب للحصول على المعلومات / القيمة في القناة. وكتابة مفتاح مطلوب لتخزين قيمة في القناة.

طلب http لتحديث القناة هو:

api.thingspeak.com/update؟api_key=&field1=

يتم استبدالها بمفاتيح الكتابة المقابلة للقناة ويمكن أن تكون (0/1 في حالة التحكم في الجهاز أو قيم درجة الحرارة / الرطوبة)

طلب http لقراءة القيمة من القناة هو:

api.thingspeak.com/channels//field/field1/last.html

يتم استبداله بمعرف القناة المعين للقناة التي نريد القراءة منها.

الخطوة الرابعة: البرنامج

ينقسم البرنامج إلى 3 أجزاء:

أ) برنامج اردوينو: برنامج اردوينو بسيط جدا. يتلقى البيانات من ESP8266 بشكل متسلسل وبناءً على البيانات المستلمة ، يتم التحكم في الأجهزة. يوجد مزيد من المعلومات حول البرنامج في التعليقات في البرنامج نفسه.

ب) برنامج ESP8266: يتضمن برنامج ESP8266 3 أشياء

1) تحديث درجة الحرارة والرطوبة باستخدام طلب

client.print (String ("GET") + "/ update؟ key = & field1 =" + humidity + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n ") ؛ // تحديث الرطوبة

client.print (String ("GET") + "/ update؟ key = & field1 =" + temperature + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n ") ؛ // تحديث درجة الحرارة

يتم استبداله بمفتاح الكتابة المقابل الموجود في قناة Thingspeak للرطوبة ودرجة الحرارة على التوالي. والمضيف هو api.thingspeak.com.

قم بتنزيل مكتبة dht من:

2) القراءة من القنوات المقابلة لسرعة الأشياء والتحكم في الجهاز بناءً على القيم التي تم الحصول عليها: client.print (String ("GET") + "/channels//field/field1/last.html HTTP / 1.1 / r / n" + " المضيف: "+ host +" / r / n "+" الاتصال: إغلاق / r / n / r / n ")؛

حيث يتم استبداله بمعرف القناة المقابل الموجود في Thingspeak.

3) إرسال تنبيه في حالة ارتفاع درجة الحرارة عبر صندوق الدفع

مضيف السلسلة 1 = "api.pushingbox.com" ؛

client.print (String ("GET") + "/ pushingbox؟ devid = HTTP / 1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Connection: close / r / n / r \ن")؛

حيث يتم استبداله بمعرف جهازك في صندوق الدفع.

الخطوة 5: تكوين Linkit Smart 7688 Duo وكاميرا الويب

تكوين Linkit Smart 7688 Duo وكاميرا الويب
تكوين Linkit Smart 7688 Duo وكاميرا الويب
تكوين Linkit Smart 7688 Duo وكاميرا الويب
تكوين Linkit Smart 7688 Duo وكاميرا الويب
تكوين Linkit Smart 7688 Duo وكاميرا الويب
تكوين Linkit Smart 7688 Duo وكاميرا الويب

في هذا المشروع ، يتم استخدام كاميرا الويب و linkit smart 7688 duo لالتقاط الصورة المطلوبة وإرسالها إلى المستخدم. يمكنك أيضًا استخدام وحدة كاميرا اردوينو وتفاعلها مع اردوينو أو استخدام أي كاميرا IP.

اضغط مع الاستمرار على زر wifi على linkit smart 7688 لمدة 20 ثانية لإعادة ضبط اللوحة. ثم بعد إعادة تعيين إعداد wifi ، ستتمكن من رؤية اسم نقطة الوصول الخاصة به في اتصالات الشبكة اللاسلكية. الآن قم بتوصيل الكمبيوتر بتلك الشبكة. بعد توصيله ، افتح المتصفح واكتب 192.168.100.1 في شريط العناوين. ستتمكن من رؤية بوابتها. قم بتعيين كلمة مرور لتسجيل الدخول إلى بوابتها.

بعد تسجيل الدخول ، انتقل إلى علامة تبويب الشبكة وحدد وضع المحطة (نحتاج إليه (linkit smart 7688 duo) للوصول إلى الإنترنت) وقم بتوصيله بشبكة Wifi الخاصة بك واضغط على تكوين وإعادة التشغيل.

بعد إعادة تشغيل اللوحة ، سيتم تعيين عنوان IP محلي لها. تعرف على العنوان باستخدام أي من أدوات IP أو بوابة جهاز التوجيه الخاص بك. في حالتي كان 192.168.1.4 الآن اكتب عنوان IP المحلي في شريط عنوان المتصفح. تأكد من أن الكمبيوتر متصل بنفس الشبكة مثل linkit smart. سيُطلب منك تسجيل الدخول مرة أخرى.

لتمكين الدفق من كاميرا الويب ، يجب عليك تمكين-j.webp

بعد تسجيل الدخول ، انتقل إلى علامة تبويب الخدمة وتحقق من تمكين-j.webp

بعد الإعداد ، يمكنك توصيل كاميرا الويب بمضيف usb ذكي 7688 duo من خلال كابل OTG. الآن لترى Stream ، افتح المتصفح واكتب: في شريط العناوين. في حالتي هو 192.168.1.4:4400

لالتقاط اللقطة ، اكتب الأمر:؟ action = snapshot

هذه الصورة متاحة الآن محليًا ولكننا بحاجة إلى جعلها متاحة لخدمة صندوق الدفع. لتحقيق ذلك نحن بحاجة إلى القيام بإعادة توجيه المنفذ. يمكن إجراء إعادة توجيه المنفذ في بوابة جهاز التوجيه. يختلف معرف العملية باختلاف أجهزة التوجيه. ما عليك سوى google لمعرفة كيفية النقل إلى الأمام لجهاز توجيه معين. يتوفر عادةً ضمن خدمة NAT. بعد إعادة توجيه المنفذ ، يمكن للاستخدام الوصول إلى هذا المنفذ (على سبيل المثال.. 4440) من عنوان IP الخارجي الخاص بك. يمكن العثور على IP الخارجي عن طريق ربط "whats my ip" في google.

تحتاج إلى وضع هذا العنوان

أي.. https://::؟ action = snapshot

في pushingbox (الموضح في الخطوة التالية) بحيث يمكن لـ pushingbox الوصول إلى هذه الصورة وإرفاقها بالبريد وإرسالها إليك عند الحاجة.

يمكنك أيضًا تخزين الصورة في بطاقة sd حيث يأتي Linkit smart 7688 duo أيضًا مع فتحة بطاقة sd لتخزين المعلومات. يمكن العثور على مزيد من المعلومات حول هذا على:

docs.labs.mediatek.com/resource/linkit-sm…

الخطوة 6: تكوين PushingBox

تكوين PushingBox
تكوين PushingBox

يتم استخدام pushingbox لإرسال إشعار حول التنبيهات المختلفة في المشروع إلى gmail.

تسجيل الدخول إلى pushingbox باستخدام حساب جوجل:

انتقل إلى خدماتي إضافة الخدمة. هناك العديد من الخدمات للاختيار من بينها مثل Gmail و twitter وإشعارات الدفع لنظام Android وما إلى ذلك …

حدد Gmail (حيث نحتاج إلى إرسال صورة كمرفق) واملأ التكوين المناسب لاسم gmail ومعرف gmail للمستخدم الذي يجب إرسال التنبيه إليه.

انتقل إلى السيناريوهات الخاصة بي وقم بإنشاء سيناريو جديد. إعطاء اسم للسيناريو (على سبيل المثال: تنبيه) أضف الخدمة التي تم إنشاؤها مسبقًا.

اكتب موضوعًا ونصًا مناسبًا للبريد وأدخل عنوان url لالتقاط لقطة شاشة لكاميرا الويب لإرفاق الصورة. قم بإنشاء سيناريوهات مختلفة لتنبيهات مختلفة.api لتنفيذ سيناريو صندوق الدفع هو:

الخطوة 7: إنشاء مهارات أليكسا باستخدام Backendless

إنشاء مهارة اليكسا باستخدام Backendless
إنشاء مهارة اليكسا باستخدام Backendless
إنشاء مهارة اليكسا باستخدام Backendless
إنشاء مهارة اليكسا باستخدام Backendless
إنشاء مهارة اليكسا باستخدام Backendless
إنشاء مهارة اليكسا باستخدام Backendless

تستخدم الخلفية لإنشاء مهارة اليكسا. إنها برمجة سحب وإفلات بسيطة تُستخدم لإنشاء مهارة أليكسا (أو أي برامج) يمكن الوصول إليها بواسطة واجهة برمجة التطبيقات الخلفية.

إنشاء حساب في backendless:

  • تسجيل الدخول إلى حسابك في حساب backendless. انقر فوق إنشاء التطبيق وقم بتسمية التطبيق الخاص بك
  • انقر فوق رمز Business Logic الموجود في شريط الرموز على اليسار. سترى شاشة خدمات API.
  • انقر فوق رمز "+" لإنشاء خدمة جديدة. تأكد من تحديد CODELESS في النافذة المنبثقة "خدمة جديدة". أدخل "AlexaService" لاسم الخدمة. انقر فوق الزر حفظ:
  • ينشئ Backendless خدمة API وسيطالبك بإنشاء طريقة للخدمة. ستكون هذه هي الطريقة التي ستعالج الطلبات من Alexa. أدخل “handleRequest” لاسم الطريقة. تأكد من تحديد POST لعملية REST ، وقم بإعلان وسيطة باسم "req" واكتب "أي كائن" كما هو موضح:
  • ينشئ Backendless عنصرًا نائبًا للمنطق الذي لا يحتوي على رمز للطريقة. انقر فوق الزر EDIT لبدء التبديل إلى Codeless Logic Designer. في كتلة العنصر النائب للوظيفة التي تم إنشاؤها ، انقر فوق المنطقة التي تقول "doSomething" وقم بتغييرها إلى "sendAlexaResponse". تُستخدم هذه الوظيفة لجعل أليكسا يقول شيئًا يمكن تمريره كحجة. انقر فوق الزر حفظ حتى يتم حفظ الوظيفة.
  • انقر فوق رمز الترس الموجود في المربع الأرجواني بجوار كلمة "الوظيفة" مباشرةً. أضف وسيطتين عن طريق سحب كتل الإدخال كما هو موضح في الصورة أدناه. قم بتعيين أسماء الوسائط كـ "whatToSay" و "waitForResponse". لاحظ أنه أثناء إضافة الوسائط ، يتم ملء منطقة كتل السياق تلقائيًا بالكتل التي تمثل قيم الوسيطات.
  • قم بتعديل منطق الوظيفة بحيث يبدو كما في الصورة. بالنسبة إلى كتل "إنشاء كائنات" ، استخدم رمز الترس لتغيير اسم خصائص الكائن. لا تنس حفظ عملك بالضغط على زر حفظ.
  • الآن بعد أن تم إنشاء الوظيفة المخصصة ، عد إلى طريقة handleRequest لخدمة AlexaService. انقر فوق فئة الوظائف المخصصة في شريط الأدوات على اليسار واسحب كتلة sendAlexaResponse للاتصال بموصل الإرجاع لطريقة الخدمة الخاصة بك
  • يمكن أيضًا العثور على الخطوات المذكورة أعلاه في موقع الويب الخاص بهم:
  • انقر فوق العقدة "إضافة جديد" ضمن الوظائف في قسم المتصفح. في كتلة العنصر النائب للوظيفة التي تم إنشاؤها ، انقر فوق المنطقة التي تقول "doSomething" وقم بتغييرها إلى "getIntentName" لتعديل الكتل بحيث تبدو الوظيفة مثل الصورة المعروضة. سوف تحصل على اسم النية بناءً على نماذج من الكلام. ارجع إلى خدمات api-> معالجة الطلب في قسم المتصفح. يتم إنشاء المتغيرات والمنطق من قسم النظام. قم بإنشاء المتغيرات التالية الموضحة في الصور.
  • بعد ذلك نقوم بتخزين اسم النية لطلب متغير. ثم قارن مع النوايا. على سبيل المثال ، إذا كان الطلب هو "مقدمة" ، فسيتم تعيين متغير الاستجابة على "hi! I can control ……." وقد تمت قراءة هذا الرد بصوت عالٍ من قبل Alexa أخيرًا. تعديل الكتلة كما هو موضح.
  • إذا كان الطلب مقصودًا من LightsOn ، فإننا نقوم بتحديث قناة Thingspeak إلى "0" باستخدام http للحصول على طلب وفي نفس الوقت نقوم بتحديث حالة الجهاز (1/0 اعتمادًا على تشغيل / إيقاف). يتكرر نفس الشيء مع LightsOff و FanOn و FanOff.
  • بالنسبة للطقس ، نقرأ من قناة درجة الحرارة والرطوبة ونخزن النتيجة في متغير الاستجابة. نظرًا لأن القناة تعطي قيمًا فقط ، فإننا نلحق نصوصًا لجعل الاستجابة ذات معنى
  • للحصول على لقطة من غرفة المعيشة ، نقوم بتشغيل سيناريو pushingbox
  • بالنسبة لحالة الجهاز ، نقرأ المعلومات من قناة الحالة الخاصة بالأشياء:
  • للإخطارات والتنبيهات نقرأ من قنوات التنبيه (حريق ، دخيل وضيف):
  • استنادًا إلى القيم التي نحصل عليها من حقل الإعلام ، يتم تخزين رسائل التنبيه المقابلة في متغير response0. إذا لم يكن هناك إشعار ، فلن يتم تخزين رسالة إعلام.
  • بمجرد قراءة الإشعار ، يتم تحديث "0" في قنوات الإعلام حتى لا يقرأ alexa نفس الإخطار مرة أخرى. ثم في النهاية بناءً على الطلب ، يُقرأ متغير response0 / response بصوتٍ عالٍ.

الخطوة 8: تكوين Alexa Skill في Amazon Developer Console:

تكوين مهارة Alexa في Amazon Developer Console
تكوين مهارة Alexa في Amazon Developer Console
تكوين مهارة Alexa في Amazon Developer Console
تكوين مهارة Alexa في Amazon Developer Console
تكوين مهارة Alexa في Amazon Developer Console
تكوين مهارة Alexa في Amazon Developer Console

انتقل إلى وحدة تحكم مطوري أمازون وقم بتسجيل الدخول باستخدام حساب أمازون.

انتقل إلى وحدة تحكم المطور وانقر فوق علامة التبويب ALEXA. انقر فوق مجموعة مهارات اليكسا لتبدأ.

إنشاء نوع مهارة مخصص ، وإعطاء اسم واسم استدعاء للمهارة. يتم إعطاء المقاصد الخاصة وعينات الكلام في الكود.

في علامة تبويب التكوين ، حدد HTTPS كنوع نقطة نهاية الخدمة ، واملأ عنوان URL الافتراضي بعنوان URL لـ API من backendless. حدد الخيار الثاني في الشهادة لنقطة النهاية الافتراضية في شهادة SSL. يمكنك أيضًا اختبار المهارة باستخدام محاكي الاختبار.

بعد اكتمال الاختبار ، يمكنك نشر المهارة بمعلومات النشر المطلوبة.

الخطوة 9: الإعداد النهائي والانتهاء

الإعداد النهائي والانتهاء!
الإعداد النهائي والانتهاء!
الإعداد النهائي والانتهاء!
الإعداد النهائي والانتهاء!

قم بإجراء اتصال الدائرة كما هو موضح.

أحيانًا يتعطل ESP8266 بسبب عدم كفاية التيار. لذلك ، على الرغم من الإشارة إليه في الدائرة ، فمن المستحسن تشغيل ESP8266 من مصدر منفصل 3.3 فولت. إذا كنت تستخدم بنك طاقة ، فتأكد من تقليل الجهد من 5 فولت إلى 3.3 فولت باستخدام منظم جهد 3.3 فولت. قم بتحميل البرنامج على ESP8266 و arduino. لقد أظهرت الاتصال بالمصباح ، ويمكن تمديد نفس الشيء للمروحة أو أي أجهزة. أخيرًا ، استخدم amazon echo أو echosim.io لاختبار مهارتك.

يجب عليك تنشيط المهارة باستخدام اسم الاستدعاء (كما هي حالتي - "myhome"). في بعض الأحيان لن يعمل إذا تم استخدامه بدون اسم استدعاء كما أوضحت عدة مرات في الفيديو الخاص بي

آمل أن تستمتع البرنامج التعليمي!

اشكرك!

موصى به: