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

التحكم اللاسلكي في اللوح الأمامي للسرير MQTT: 5 خطوات (بالصور)
التحكم اللاسلكي في اللوح الأمامي للسرير MQTT: 5 خطوات (بالصور)

فيديو: التحكم اللاسلكي في اللوح الأمامي للسرير MQTT: 5 خطوات (بالصور)

فيديو: التحكم اللاسلكي في اللوح الأمامي للسرير MQTT: 5 خطوات (بالصور)
فيديو: اختي: كان في واحد عم يلطشني 😱 2024, يوليو
Anonim
التحكم اللاسلكي في اللوح الأمامي للسرير MQTT
التحكم اللاسلكي في اللوح الأمامي للسرير MQTT
التحكم اللاسلكي في اللوح الأمامي للسرير MQTT
التحكم اللاسلكي في اللوح الأمامي للسرير MQTT

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

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

انت تحصل على ما تدفع ثمنه

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

مرة أخرى ، لم يكن أحد مهتمًا ببيع البدائل لنا. ثم ضربني!

انتظر لحظة! ألا أقوم ببناء نظام تحكم آلي للمنزل؟!؟

الخطوة 1: الاكتشاف

اكتشاف
اكتشاف
اكتشاف
اكتشاف

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

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

الخطوة الثانية: التصميم

تصميم
تصميم
تصميم
تصميم
تصميم
تصميم
تصميم
تصميم

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

سيكون السرير هو مصدر الطاقة لوحدة التحكم ومن أجل التعامل مع 12 فولت الموفر ، سنحتاج إلى محول باك متغير. تم ربط واحد غير مكلف للغاية أدناه ويعمل بشكل جميل. يتصل خط 12V و GND بجانب الإدخال للمحول ويتصل الجانب المنظم 5 فولت بـ VCC الخاص بـ NodeMCU ودبوس VCC على وحدة الترحيل. تتصل الأرض (-) على المحول بدبابيس GND الموجودة على كل من وحدة الترحيل و NodeMCU.

يتصل NodeMCU بـ IN1 باستخدام D1 (GPIO5) و IN2 باستخدام D2 (GPIO4). يتصل خط الإشارة العلوي الموجود على السرير بالمحطة اللولبية المفتوحة عادةً للترحيل 1 ويتصل خط الإشارة السفلية بموصل مجموعة التتابع 2 المفتوح عادةً. ستحتاج إلى توصيل السلك 12 فولت المتصل بجانب الإدخال لمحول باك أيضًا بوصلة الكتلة الطرفية الأخرى لكل من المرحل 1 و 2.

القطع

  • 1 - NodeMCU
  • 1 - Duel Relay Module بالعزل الحالي
  • 1 - محول باك الإدخال / الإخراج المتغير
  • 1 - اللوح ثنائي الفينيل متعدد الكلور
  • قياس 22 الأسلاك النحاسية التي تقطعت بهم السبل
  • 2 - مسامير M3x 8

الخطوة 3: الضميمة

نسيج
نسيج

يمكن العثور على العلبة هنا:

لقد صممت حاوية بسيطة مع Tinkercad تسمح لكابل التحكم في السرير بدخول الصندوق بين أقواس تخفيف الضغط داخل الصندوق. توجد فتحات لربطة عنق مضغوطة هنا من شأنها أن تساعد في منع الكبل من الانزلاق ولكن في حالتي ، كان الملاءمة محكمًا للغاية ولم يكن في حاجة إليه. الغطاء مُثبَّت بمسامير 2 M3x 8. أوصي بتحميل الكود واختبار النظام قبل تركيبه في الصندوق.

لقد استخدمت الغراء الساخن لتثبيت الألواح في مكانها ولكن هذا قد لا يكون ضروريًا.

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

يمكن العثور على الكود هنا:

ملاحظة: يستخدم هذا المشروع مكتبة pubsubclient التي يمكن إضافتها في Library Manager في Arduino IDE

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

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

في الكود الخاص بي ، هذه المهلة هي 20 ثانية ويمكن تعديلها في كتلة المتغير العام في الجزء العلوي من الكود.

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

بخلاف ذلك ، ينشر السرير أنه متاح كل 60 ثانية وهذا كل شيء. لا أجراس أو صفارات هنا. نظرًا لأن السرير لا يحتوي على ملاحظات حول الموقف ، لم أتمكن من إرسال أي منها إلى Home Assistant.

الخطوة 5: مثال على التكامل

مثال التكامل
مثال التكامل
مثال التكامل
مثال التكامل

يستخدم الرمز الذي كتبته MQTT للتواصل عبر WiFi وبالتالي يمكنه التواصل مع أي محور أو جهاز أتمتة يستخدم MQTT. أستخدم Home Assistant الذي يحتوي على وسيط MQTT مدمج. يوجد أدناه مثال على تكوين HA الخاص بي.

في HA لدي ملف covers.yaml بالتعريف التالي:

- المنصة: mqtt

الاسم: "Master Bed Headboard" command_topic: "master_bed_control / cmd" available_topic: "master_bed_control / مدى التوفر" qos: 0 retain: false pay_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " غير متصل "متفائل: صحيح

يمنحني هذا إدخالًا واحدًا في واجهة HA الخاصة بي مع زر up / stop / down تم تعيينه مع الإجراء كما هو موضح أعلاه.

بالإضافة إلى ذلك ، قمت بتحديد زرين على لوحة التحكم بجانب السرير (Instructable / Blog Post) لرفع وخفض اللوح الأمامي. يتم تعريف الأزرار الموجودة على لوحة التحكم على أنها مستشعرات MQTT:

- المنصة: mqtt

state_topic: "bedside_cp1 / button5" الاسم: "CP1 زر 5" رمز: mdi: دائرة

- المنصة: mqtt

state_topic: "bedside_cp1 / button6" الاسم: "Bedside CP1 Button 6" icon: mdi: Circle

… و 4 قواعد أتمتة عند الضغط على كل زر وتحريره. عند الضغط عليه ، يتم إرسال الأمر لأعلى أو لأسفل إلى السرير اعتمادًا على الزر الذي تم تنشيطه ، وعند تحرير الزر ، يتم إرسال أمر الإيقاف:

- المعرف: "1548308650383"

الاسم المستعار: MBR Bedside CP Button 5a المشغل: - element_id: sensor.bedside_cp1_button_5 من: النظام الأساسي "Off": الحالة إلى: الحالة "On": الإجراء: - data: element_id: خدمة "cover.master_bed_headboard": cover.open_cover - المعرف: '1548308758911' الاسم المستعار: MBR Bedside CP Button 5b المشغل: - object_id: sensor.bedside_cp1_button_5 من: "On" platform: الحالة إلى: حالة "إيقاف التشغيل": الإجراء: - البيانات: object_id: خدمة "cover.master_bed_headboard": cover. غطاء. البيانات: معرف الكيان: خدمة "cover.master_bed_headboard": cover.stop_cover

موصى به: