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

ESP-12 Infra Red Blaster: 7 خطوات
ESP-12 Infra Red Blaster: 7 خطوات

فيديو: ESP-12 Infra Red Blaster: 7 خطوات

فيديو: ESP-12 Infra Red Blaster: 7 خطوات
فيديو: Hand-washing Steps Using the WHO Technique 2024, يوليو
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

جهاز تحكم عن بعد بالأشعة تحت الحمراء باستخدام ESP8266

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

بنيت في صفحة ويب بسيطة أساسا للاختبار.

يتم الاستخدام العادي عبر رسائل POST التي يمكن أن تأتي من صفحات الويب أو من التحكم الصوتي IFTTT / Alexa.

يدعم كاشف تنشيط Amazon Echo / Dot لكتم الصوت / التهدئة بمجرد نطق كلمة التنشيط.

الأوامر إما أوامر مفردة أو تسلسلات. يمكن تخزين التسلسلات على أنها وحدات ماكرو مسماة والتي يمكن استخدامها بعد ذلك كأوامر أو في تسلسلات أخرى.

يمكن الحصول على التاريخ الحديث وقائمة وحدات الماكرو عبر واجهة الويب

يدعم تحميل OTA للبرامج الثابتة الجديدة ويستخدم مكتبة WifiManager لإعداد شبكة wifi الأولية

الخطوة 1: الأجهزة

المعدات
المعدات
المعدات
المعدات

يستخدم المكونات التالية

  • وحدة ESP-12F
  • 3.3V منظم (MP2307 منظم باك صغير)
  • مفاتيح MOSFET (AO3400)
  • باعث الأشعة تحت الحمراء (3 مم)
  • المقاوم المعتمد على الضوء GL2258 (كاشف نشاط Alexa اختياري)
  • المقاومات
  • مكثف فصل (20 فائق التوهج)
  • مقبس أنثى USB (ويفضل أن يكون مناسبًا للحام مع الأكمام
  • شريط مقبس 3 دبوس IC لكاشف Alexa
  • الأجزاء الميكانيكية (يمكن طباعتها ثلاثية الأبعاد)

يمكن تجميعها في صندوق مشروع ESP-12F

  • قم بتوصيل المنظم بموصل USB وإدخاله في الصندوق
  • مكياج سائق الأشعة تحت الحمراء على قطعة صغيرة من لوحة فيرو (3 أسلاك ، + 5V ، 0V بوابة المدخلات)
  • قم بتوصيل برنامج تشغيل IR بـ USB + 5V ، 0V
  • أدخل مقبس IC ذو 3 دبابيس في صندوق المشروع إذا كنت تستخدم كاشف Alexa. قم بتوصيله بـ + 3.3 فولت ، 0 فولت وسلك للإدخال
  • قم بتكوين ESP-12F مع 2.2K من GPIO15 إلى GND ، و EN إلى Vdd ، و 4K7 GPIO13 إلى Vdd ، وإدخال Alexa إلى GPIO13 ، ومحرك الأشعة تحت الحمراء إلى GPIO14 ، و 0 V و Vdd إلى 3.3 فولت
  • قم بتكوين كاشف Alexa ودعم المخزن المؤقت إذا لزم الأمر.

لاحظ أنه قد يكون من الأسهل برمجة ESP-12F أولاً إذا كان لديك نوع من مرفق البرمجة التسلسلية أو مرفق مؤقت مثل هذا للاتصال بالمنافذ التسلسلية.

يمكن إجراء البرمجة اللاحقة باستخدام تحديث OTA المدمج.

الخطوة 2: البرمجيات

يستخدم ir Blaster رسم Arduino المتاح على جيثب

يجب تعديل هذا ليناسب الظروف المحلية ومن ثم تجميعه في بيئة esp8266 Arduino.

المكتبات التالية مطلوبة ، معظمها قياسي أو يمكن إضافتها. تم تضمين الأخيرين في البوابة.

  • واي فاي
  • ESP8266WebServer
  • FS.h
  • خادم DNSS
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • اردوينو
  • BitTx (مضمن في Git)
  • BitMessages (مضمنة في Git)

تشمل العناصر التي سيتم تغييرها في المخطط

  • رمز التفويض للوصول إلى الويب AP_AUTHID
  • كلمة مرور مدير Wfi WM_PASSWORD
  • تحديث كلمة مرور البرنامج الثابت OTA
  • أجهزة / رموز زر جديدة IR (انظر لاحقًا)

بمجرد الانتهاء من ذلك ، يجب أولاً تحميله باستخدام التحميل التسلسلي التقليدي.

عند استخدام SPIFFS ، يجب تحضير الذاكرة عن طريق تثبيت واستخدام أداة تحميل بيانات اردوينو ESP8266 Sketch Data. سيؤدي هذا إلى تحميل مجلد البيانات كمحتوى SPIFFS أولي

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

يمكن إجراء التحديث اللاحق عن طريق تجميع ثنائي تصدير في بيئة Arduino ثم الوصول إلى واجهة OTA على IP / البرامج الثابتة.

الخطوة 3: أضف رموز الجهاز / الأزرار

ملاحظة: تم تغيير هذا القسم من الطريقة السابقة حيث تم تجميع التكوين مسبقًا في الكود. يستخدم الآن الملفات التي تم تحميلها من نظام ملفات SPIFFs. هذا يجعل تحميل تعريفات جديدة أسهل بكثير.

يتم تضمين تعريفات الزر في ملف buttonnames.txt. إنها قائمة عالمية بالأسماء عبر جميع أجهزة التحكم عن بُعد المستخدمة حيث تميل العديد من الأسماء إلى أن تكون شائعة. كما تم توفيره ، يحتوي هذا على تفاصيل عن أجهزة التحكم عن بُعد التي أستخدمها. يمكن إضافة إدخالات جديدة. توجد مساحة لإجمالي 160 اسمًا ولكن يمكن زيادتها عن طريق ضبط الثوابت في bitMessages.h وإعادة التحويل البرمجي. الأسماء المعرفة هنا هي الأسماء التي يجب استخدامها عند إرسال الأوامر.

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

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

تنتمي معظم أجهزة التحكم عن بُعد إلى إحدى فئات البروتوكول الثلاثة (nec و rc5 و rc6). من المحتمل أن يكون nec هو الأكثر شيوعًا وله بنية رأس بسيطة وتوقيت بت. يوجد نوع مختلف من هذا يختلف فقط في توقيت نبضة الرأس. RC5 و RC6 هما بروتوكولات حدّدتها Philips ولكنها مستخدمة أيضًا من قبل بعض الشركات المصنعة الأخرى. إنها أكثر تعقيدًا بعض الشيء ، ولدى rc6 على وجه الخصوص متطلبات توقيت خاصة لإحدى البتات.

لالتقاط رموز جهاز تحكم عن بعد جديد ، أستخدم مستقبل الأشعة تحت الحمراء (TSOP) الذي يشيع استخدامه مع أجهزة الاستقبال البعيدة. يقوم هذا بفك التشفير الأساسي ويعطي ناتجًا على المستوى المنطقي. تأتي عادةً مع مقبس مقاس 3.5 مم مع وصلات + 5 فولت و GND و DATA. لقد ضحيت بواحد ، واختصرت السبق ووضعته في مخزن مؤقت عكسي 3.3 فولت لتغذية دبوس GPIO على Raspberry Pi.

ثم استخدم أداة python rxir.py (في مجلد أدوات git) لالتقاط الرموز. لتسهيل الاستخدام لالتقاط عدد كبير من الأزرار ، تستخدم الأداة ملف تعريف نصي لتحديد الأزرار الموجودة على جهاز التحكم عن بُعد وهي مجرد أسماء الأزرار الموجودة في مجموعة على جهاز التحكم عن بُعد. على سبيل المثال ، قد يكون لدى المرء جهاز تحكم عن بعد جديد من Sony ويقوم الآخر بإعداد 3 ملفات نصية تسمى sonytv-cursor و sonytv-number و sonytv-playcontrols لكل منها أسماء الأزرار ذات الصلة. ستطلب الأداة من الجهاز (sonytv) ، القسم (المؤشر) وأي بروتوكول يجب استخدامه (nec ، nec1 ، rc5 ، rc6). سيطلب بعد ذلك بالتسلسل لكل زر ضغط وكتابة النتائج إلى ملف sonytv-ircodes. يمكن تكرار الأقسام إذا لزم الأمر للتحقق من أن اللقطات جيدة. يمكن تحرير وحدات البت من ملف.ircodes في جداول BitDevices.

الخطوة 4: التحكم في الويب ووحدات الماكرو

عنصر التحكم الأساسي في الويب هو إما الحصول على واحد أو منشور json والذي قد يحتوي على تسلسل.

يحتوي get to / ir على 6 معلمات

  • المصادقة - تحتوي على رمز التفويض
  • الجهاز - اسم الجهاز البعيد
  • المعلمة - اسم الزر
  • بت - عدد بت اختياري
  • كرر - عد تكرار اختياري
  • انتظر - تأخير بالمللي ثانية قبل تنفيذ الأمر التالي.

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

يتكون المنشور إلى / irjson من بنية json مثل

{

"المصادقة": "1234"،

"أوامر": [{"الجهاز": "yamahaAV" ، "المعلمة": "hdmi4" ، "انتظر": "5000" ، "بت": "0" ، "كرر": "1"} ،

}

يمكن أن يكون التسلسل بأي طول وقد تكون الأجهزة مراجع ماكرو.

يمكن استخدام نفس البنية لتحديد وحدات الماكرو. ما عليك سوى تضمين الماكرو: "macroname" ، في المستوى الأعلى ، على سبيل المثال بعد المصادقة. يتم تخزين المحتويات الفعلية في ملف يسمى macroname.txt

يمكن حذف وحدات الماكرو بتعريفها بدون "أوامر".

أوامر الويب الأخرى

  • / الأخيرة (تسرد النشاط الأخير)
  • / check (يظهر الحالة الأساسية)
  • / (يقوم بتحميل نموذج ويب لإرسال الأوامر يدويًا)
  • / تحرير (تحميل نموذج ويب لعرض قائمة الملفات وحذف / تحميل الملفات)
  • / edit؟ file = filename (عرض محتويات ملف معين)
  • / إعادة التحميل (يعيد تحميل أسماء الأزرار وملفات الجهاز. استخدم بعد تغيير أي منها)

الخطوة 5: التحكم الصوتي في Alexa باستخدام IFTTT

إن أبسط طريقة لاستخدام ir Blaster مع Alexa هي استخدام IFTTT كبوابة.

قم أولاً بإعادة توجيه المنفذ المستخدم إلى جهاز التوجيه الخاص بك في جهاز التوجيه الخاص بك بحيث يمكن الوصول إليه من الإنترنت. قد يكون من الجيد استخدام خدمة dns مثل freens لمنح أجهزة التوجيه الخاصة بك اسم IP الخارجي وتسهيل التعامل معها إذا تغير عنوان IP هذا.

قم بإعداد حساب IFTTT وتمكين قناة Maker Webhooks وقناة Alexa. ستحتاج إلى تسجيل الدخول إلى موقع أمازون عند القيام بذلك لتمكين الوصول إلى IFTT.

قم بإنشاء مشغل IF باستخدام قناة IFTTT Alexa ، واختر الإجراء بناءً على عبارة وأدخل العبارة التي تريدها (على سبيل المثال ، رفع مستوى الصوت).

قم بإنشاء الإجراء عن طريق اختيار قناة خطافات الويب الخاصة بـ Maker. أدخل في حقل URL شيئًا مثل

myip: port / irjson؟ simple = {"auth": "1234"، "comm…

سيتم إرسال هذا الإجراء إلى ir blaster حيث سيحاول تنفيذ وحدة تخزين الماكرو. يمكن للمرء أن يكون جهازًا / أزرارًا محددة هنا إذا كان مطلوبًا ولكني أجد أنه من الأفضل تحديد واستخدام وحدات الماكرو لأنه يمكن تغيير تسلسل الإجراء بسهولة بمجرد إعادة تعريف الماكرو.

يلزم وجود برنامج IFTTT منفصل لكل أمر.

الخطوة 6: مهارات صوت أليكسا الأصلية

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

تحتاج إلى التسجيل كمطور Amazon Alexa وتحتاج إلى التسجيل في خدمة lambda لوحدة تحكم Amazon AWS. ستحتاج أيضًا إلى إلقاء نظرة على البرامج التعليمية لفهم العملية قليلاً.

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

يقوم Alexa بعد ذلك بإرسال العبارة إلى برنامج يعمل على خدمة lamda والذي يفسر العبارة ويقوم باستدعاء عنوان URL إلى Ir blaster للقيام بذلك.

لقد قمت بتضمين مخطط نوايا Alexa ووظيفة وحدة التحكم lambda التي أستخدمها في البوابة. سيحتاج عنوان URL إلى تعديل للإشارة إلى عنوان IP المناسب والحصول على التفويض الصحيح. لتبسيط الأمر ، تستدعي وظائف lambda وحدة ماكرو تحتوي على مساحة خالية من الأحرف الصغيرة من العبارة. يحاول أيضًا إزالة الكلمة الرئيسية المشغلة التي يمكن تضمينها في بعض الأحيان. على سبيل المثال سوف يقوم مكبر VOLUME up باستدعاء ماكرو يسمى volumeup إذا كانت كلمة المشغل blaster.

الخطوة 7: تنشيط اليكسا للكاشف

على الرغم من أن التعرف على الصوت Echo / Dot جيد ، إلا أنه قد يتم الخلط في بعض الأحيان إذا كان الصوت يتم تشغيله من التلفاز ما لم تقترب وتتحدث بصوت عالٍ.

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

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

الكاشف المادي هو مقاوم يعتمد على الضوء تدعمه الدائرة. أقوم بتركيب خاصتي على النقطة باستخدام قوس مطبوع ثلاثي الأبعاد

موصى به: