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

Who's at the Door ، نظام الكاميرا المشغّل من Alexa: 3 خطوات
Who's at the Door ، نظام الكاميرا المشغّل من Alexa: 3 خطوات

فيديو: Who's at the Door ، نظام الكاميرا المشغّل من Alexa: 3 خطوات

فيديو: Who's at the Door ، نظام الكاميرا المشغّل من Alexa: 3 خطوات
فيديو: Larnitech Training 201 Software Advanced ENG 2024, يوليو
Anonim
Who's at the Door ، نظام الكاميرا المشغّل من Alexa
Who's at the Door ، نظام الكاميرا المشغّل من Alexa
Who's at the Door ، نظام الكاميرا المشغّل من Alexa
Who's at the Door ، نظام الكاميرا المشغّل من Alexa
Who's at the Door ، نظام الكاميرا المشغّل من Alexa
Who's at the Door ، نظام الكاميرا المشغّل من Alexa

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

القطع:

نظام الترفيه:

تلفزيون مزود بعدة مداخل HDMI (تحتوي معظم أجهزة التلفزيون عليها)

صندوق كابل أو DVR

جهاز التوجيه والاتصال بالإنترنت عبر صندوق الكابل (قد لا تكون هناك حاجة إذا كان لديك شبكة WiFi)

أمازون إيكو ("أليكسا")

Harmony Hub

الكاميرا (الكاميرات)

كاميرا IP عند الباب الأمامي (يفضل نوع Power Over Ethernet -POE)

Raspberry Pi3 في صندوق مشروع (قد يعمل Pi الأصلي) مع كابل HDMI

Arduino Pro Mini 8 ميجا هرتز ، 3.3 فولت

وحدة IR (ستعمل الأنواع الأكثر شيوعًا)

الخطوة 1: الإعداد ، البرمجة الأولية (اختبار)

الإعداد ، البرمجة الأولية (اختبار)
الإعداد ، البرمجة الأولية (اختبار)
الإعداد ، البرمجة الأولية (اختبار)
الإعداد ، البرمجة الأولية (اختبار)
الإعداد ، البرمجة الأولية (اختبار)
الإعداد ، البرمجة الأولية (اختبار)

يعتمد هذا المشروع على Pi3 omxplayer الذي يقوم بفك تشفير الفيديو باستخدام تسريع الأجهزة. يمكن اختبار تشغيل Omxplayer من سطر أوامر في محطة Pi باستخدام تنسيق rtsp: // user @ password @ ipaddress المناسب الذي تتطلبه الكاميرا. يجب توصيل Pi بشبكة Ethernet (على الرغم من أنه يمكن توصيل Pi3 عبر WiFi أيضًا ، ولكن لم يتم اختباره) وأن يكون موجودًا فعليًا في مركز الترفيه حتى يتمكن كابل إخراج HDMI من Pi من الوصول إلى مقبس إدخال TV HDMI. ستتصل وحدة Arduino و IR بـ Pi ، وتقوم بترحيل المعلومات المكتسبة من قراءة مكابس زر التحكم عن بعد في التلفزيون. يمكن لـ Pi القيام بفك التشفير هذا مباشرة من وحدة IR ، لكنني أفضل في برمجة Arduino من برمجة Python ، بالإضافة إلى أنه يوفر موارد المعالج لمهمة Pi الرئيسية لفك تشفير دفق (تدفقات) الفيديو.

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

تتمثل إحدى المشكلات في أن أحجام النوافذ الأربعة المدرجة في البرنامج قد لا تتناسب مع دقة التلفزيون الخاصة بك. ابحث عن الدقة التي تدعمها شاشتك مع ملاحظة دقة الكاميرا التي تتمتع بها الكاميرات. تتمتع معظم كاميرات IP بدقة عالية (1080 بكسل) ودفق منخفض الدقة (640 × 480) ، لذلك إذا كنت تريد فقط فيديو عالي الدقة للباب الأمامي ، فانتقل إلى تنسيق rtsp: // عالي الدقة. استخدم الدفق منخفض الدقة للكاميرات بأربعة أجزاء ، ولن تلاحظ فرقًا كبيرًا مع أحجام الصور الأصغر. يمكنك استخدام أحجام نافذة برنامج bash النصي (test.sh) (في وضع دقة 1080 بكسل ، مع عرض 4 كاميرات بحجم 640 × 480 متساوية الحجم). بخلاف ذلك ، استخدم ورق الرسم البياني لتخطيط وحدات البكسل في التلفزيون ثم ارسم عدد المستطيلات التي تريدها في تلك المنطقة. اكتشف بعد ذلك عدد مقاطع الفيديو بحجم 640 × 480 التي تناسبها دون تغيير كبير في الجانب (يبدو التمدد أفقيًا أفضل من العرض الرأسي). أنا لا أحب الحدود ، لذا لم أحسبها. قم بترقيم المستطيلات من أعلى اليسار إلى أسفل اليمين 1 ، 2 ، 3. ، إلخ. ثم قم بعمل عمود من أرقام النوافذ ، لكل صف من هذه الأرقام اكتب الجزء العلوي الأيسر x و y بكسل والجزء السفلي الأيمن x ، y. ثم يتم استبدال هذه الأرقام في البرنامج النصي للحصول على عرض مخصص ، يمكن أن يكون لديك شاشة 3 × 3 إذا رغبت في ذلك. إذا كنت تريد شاشة عرض واحدة فقط ، فما عليك سوى التعليق على الكاميرات الثلاث الأخرى وجعل حجم النافذة بدقة ملء الشاشة (واستخدم دفق rtsp عالي الدقة) وعنوان البرنامج النصي "test1.sh". قم بعمل العديد من البرامج النصية كما تريد ، سيقوم برنامج btn.py Python باستدعائها حيث يتم تغيير دبابيس GPIO بواسطة Arduino.

تتمثل إحدى المشكلات في الحصول على عرض ثابت (أعلى صورة جيدة ، ولكن خطوط عمودية أقل للصورة) في أن العديد من الكاميرات تتدفق بشكل أفضل باستخدام rtsp عبر tcp (أستخدم كاميرات Hikvision 2 إلى 5 Mp IP). لذلك ، استخدم "--avdict rtsp_transport: tcp" في omxplayer كما هو موضح. أوامر omxplayer المفيدة الأخرى هي وحدة التخزين (--vol -6000 لكتم الصوت) والمخزن المؤقت (--video queue x) حيث x = 1 أو أكثر.

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

الخطوة 2: ضعها معًا

نضعها معا
نضعها معا

يمكنك التحكم يدويًا في صندوق الكابل والتلفزيون للسماح لـ Pi بإظهار كاميرا الباب الأمامي. ومع ذلك ، يتطلب ذلك عددًا قليلاً من الضغط على الأزرار ، بما في ذلك التبديل المناسب لجهاز التحكم عن بعد العالمي من وضع الكبل إلى وضع التلفزيون للسماح بتغيير مصدر إدخال HDMI إلى وحدة فك ترميز الكاميرا Pi (HDMI 2). إذا كنت تريد القدرة على عرض شاشات كاميرا إضافية ، فعليك أيضًا تبديل جهاز التحكم عن بعد العالمي إلى AUX للتحكم في Arduino وبالتالي اختيار كاميرا Pi. لتبسيط هذه العملية ، استخدم Harmony Hub وتطبيق Harmony للهاتف الذكي المرتبط ، وقم بتعليمه التحكم في التلفزيون ومربع الكابل لمشاهدة التلفزيون العادي في نشاط واحد ، ثم قم بإنشاء نشاط آخر للتحكم في شاشة فيديو Pi. يتضمن النشاط تشغيل التلفزيون ، وإدخال التلفزيون إلى HDMI 2 ، والتحكم في أزرار NECx TV الافتراضية (مثل Arduino و Pi) من 0 إلى 5. وهذا يسمح بالتحكم في كل شيء من خلال تطبيق Harmony للهواتف الذكية. لتسهيل الأمور ، اربط تطبيق Amazon Echo Dot (Alexa) بتطبيق Harmony للتحكم الصوتي في التلفزيون أو وظائف مراقبة الباب. يوفر موقع Harmony الإلكتروني تفاصيل حول كيفية تمكين مهارات Alexa الجديدة هذه. مهارات جديدة. بمجرد الارتباط بمهارات Alexa الجديدة ، ستعمل الكلمات الرئيسية مثل "Turn On the TV" أو "Turn on the Door Monitor" على تمكين الإجراءات المناسبة دون الحاجة إلى IR من جهاز التحكم عن بعد العالمي.

يتم توصيل Pi عبر Ethernet بشبكة LAN الخاصة بك وعبر كابل HDMI بالتلفزيون. لقد قمت بتثبيت 3.3 فولت Pro Mini عبر الأسلاك إلى Pi كخيار لإضافة تبديل كاميرا إضافي. يمكن تشغيل Pro Mini من دبوس 3.3 فولت الخاص بـ Pi. تتصل وحدة IR بالدبوس 2 من Arduino ، ويقوم المخطط المرفق بفك تشفير الزر ، اضغط من 0 إلى 5 (في الواقع من 0 إلى 9 ، لكن بعض دبابيس Arduino غير متصلة بعد). تتصل مخرجات Arduino بدبابيس GPIO للإدخال الرقمي في Pi ، حيث تحدد مقاطعة البرنامج النصي bash أي "زر" تم الضغط عليه ، ثم توقف أحد خيارات عرض العرض وتبدأ آخر.

صندوق الكابلات الخاص بي من Spectrum (كابل Time Warner سابقًا) ، وهو طراز Motorola DVR DCX3510. يستخدم بروتوكول GI Cable لـ IR. يستخدم تلفزيون Sony بروتوكول Sony 2. اعتقدت أن أحد هذه الرموز سيكون جيدًا للتحكم في مستقبل Pi IR وكلاهما يعمل ، على الرغم من أنه تبين أنه غير عملي. يتوقع جهاز التحكم عن بُعد أوامر إضافية ، أو يقوم تلقائيًا بتغيير مصدر الإدخال أيضًا عند الضغط على زر من 0 إلى 9. لذلك ، كان علي استخدام رمز مختلف لا يتفاعل مع موالف الكابل أو التلفزيون. لقد وجدت جهاز التحكم عن بعد العالمي الخاص بي يحتوي على رمز مبرمج مسبقًا لجهاز AUX (لا أعرف ما الذي يتحكم فيه) وقررت استخدامه. قالت الرموز المنتجة إنها تستخدم NECx ، رمز 32 بت ، لذلك أدخلت رموز الأزرار هذه في رسم Arduino IR_Rev_Codes_Pi_Monitor. قم بتغيير البرنامج إذا كان لديك نموذج مختلف باستخدام برنامج الاستلام في IRLib2 ولاحظ قيم المُصمم والبروتوكول والقيم السداسية للأزرار التي تم الضغط عليها.

الخطوة الثالثة: الخاتمة

استنتاج
استنتاج
استنتاج
استنتاج
استنتاج
استنتاج

مراقب الباب هو مشروع أتمتة المنزل العملي. كانت تجربتي الأولى في برمجة Pi مع Python. تسمح Python ببرمجة مقاطعة ، وهي ميزة اعتقدت أنها مخصصة للميكروكونترولر. تسمح المقاطعة للبرنامج بالعمل بشكل طبيعي ، وتشغيل omxplayer ، دون التحقق باستمرار مما إذا كان هناك إجراء آخر مطلوب مثل تغيير الشاشة إلى تغذية كاميرا جديدة. ومع ذلك ، في حالة حدوث المقاطعة ، يحدد البرنامج بعد ذلك تغذية الفيديو الجديدة التي يجب عرضها. تم إعداد Arduino لتوفير نبضة لتشغيل مقاطعة Python. إذا حدثت المقاطعة ، فسيقوم البرنامج بالبحث عن إخراج Arduino المعين (المقابل لزر التحكم عن بعد بالأشعة تحت الحمراء المضغوط) تم تنشيطه. أخيرًا ، يقتل البرنامج أي عرض omxplayer حالي ويبدأ عرض omxplayer الجديد.

لقد تعلمت أن Pi لا تقوم بتعيين دبابيس GPIO الخاصة بها للإدخال كما يفعل Arduino افتراضيًا - ليس خطأ من Pi ، ولكن هذه هي طريقة Broadcom BCM2837 من المصنع. أنا أحب المعالج رباعي النواة ، 1.2 جيجاهرتز ، وهو كمبيوتر منخفض الطاقة ومنخفض التكلفة يمكنه عرض فيديو عالي الدقة رائع. يعرض زر الأشعة تحت الحمراء 1 الشاشة الرباعية ، بينما تعرض الأزرار من 2 إلى 5 شاشة كبيرة واحدة لكاميرا عالية الوضوح.

يؤدي الضغط على زر التحكم عن بعد 0 إلى إلغاء عرض الفيديو وإظهار سطر أوامر Pi. إذا كنت ترغب في مشاهدة مقاطع فيديو Youtube أو ما شابه ، فاستخدم لوحة مفاتيح Bluetooth واكتب "startx" واستخدم متصفح Pi للانتقال إلى فيديو Youtube وتشغيله بملء الشاشة بدقة عالية.

موصى به: