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

مستشعر باب يعمل بالبطارية مع تكامل أتمتة المنزل ، WiFi و ESP-NOW: 5 خطوات (بالصور)
مستشعر باب يعمل بالبطارية مع تكامل أتمتة المنزل ، WiFi و ESP-NOW: 5 خطوات (بالصور)

فيديو: مستشعر باب يعمل بالبطارية مع تكامل أتمتة المنزل ، WiFi و ESP-NOW: 5 خطوات (بالصور)

فيديو: مستشعر باب يعمل بالبطارية مع تكامل أتمتة المنزل ، WiFi و ESP-NOW: 5 خطوات (بالصور)
فيديو: مستشعر ذكي للنوافذ والأبواب يعمل بالواى فاي اطلب يصلك لباب بيتك لاى مكان بالمملكةوالدفع بعد الاستلام 2024, يونيو
Anonim
Image
Image

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

أهدافي:

  • جهاز استشعار يكتشف ويبلغ عن فتح الباب بسرعة (أقل من 5 ثوانٍ)
  • جهاز استشعار يكشف عن إغلاق الباب
  • مستشعر يعمل بالبطارية ويعمل بالبطارية لبضعة أشهر

الأجهزة والبرامج مستوحاة من

  • لوحة انطلاق كيفن دارا (TPL5111 و TPS73733).
  • هذا الفيديو

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

لقد أجريت العديد من التحسينات أثناء التطوير في الأجهزة والبرامج ، ويمكن رؤيتها في الصور.

اللوازم

اشتريت المكونات الإلكترونية من Aliexpress ، الأجزاء الرئيسية:

  • بطارية LiPo
  • TPS73733 LDO
  • TPL5111
  • تبديل ريد
  • موسفيت ف: IRLML6401TRPBF
  • مغناطيس
  • لوحة محول ثنائي الفينيل متعدد الكلور لمكونات SMD وأخرى.

الخطوة 1: الأجهزة - الدائرة

الأجهزة - الدائرة
الأجهزة - الدائرة
الأجهزة - الدائرة
الأجهزة - الدائرة
الأجهزة - الدائرة
الأجهزة - الدائرة

انظر المخططات المرفقة للدائرة. لقد قمت بلحام أجزاء SMD على لوحة محول PCB ولحمت جميع المكونات بلوحة أداء مزدوجة الجوانب. لقد قمت بتوصيل ESP-01 عبر رؤوس أنثوية ، لذا يمكنني إزالته لبرمجته عبر المحول الموضح في الخطوة 3 من هذا Instructable.

تعمل الدائرة على النحو التالي:

  • عند فتح الباب ، يتلقى TPL5111 لقطة في دبوس DELAY / M_DRV ويمكّن TPS73733 LDO الذي يشغل ESP-01. بالنسبة لهذه العملية ، يجب سحب EN / ONE_SHOT للأسفل ، راجع ورقة بيانات TPL5111.
  • بعد تشغيل البرنامج (انظر الخطوة البرنامج) ، يرسل ESP-01 إشارة تم إلى TPL5111 والتي تقوم بعد ذلك بتعطيل TPS73733 مما يؤدي إلى حالة طاقة منخفضة جدًا لـ TPL5111 و TPS73733.

أستخدم مفاتيح القصب مع توصيلات NO و NC. لقد قمت بتوصيل سلك NC ، حيث يجب أن يغلق مفتاح القصب الدائرة عند إزالة المغناطيس (الباب مفتوحًا) ويفتح عندما يكون المغناطيس قريبًا (الباب مغلقًا).

بالنسبة لمستشعر الباب الخلفي ، أضفت بعض المكثفات والمقاومات عندما اكتشفت بعض حالات عدم الاستقرار ، ولكن سبب عدم الاستقرار هو البرنامج (esp_now_init) كما اكتشفت لاحقًا.

الخطوة 2: الأجهزة - الضميمة

الأجهزة - الضميمة
الأجهزة - الضميمة
الأجهزة - الضميمة
الأجهزة - الضميمة
الأجهزة - الضميمة
الأجهزة - الضميمة

لقد صممت العلبة في Autodesk Fusion360 ، مستوحاة من هذا الفيديو من "الرجل بلكنة سويسرية".

ملفات المحكمة الخاصة بلبنان من الأجزاء الثلاثة:

  • علبة
  • جفن العين
  • حامل المغناطيس

تم نشرها على صفحة Thingiverse الخاصة بي.

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

برمجة
برمجة

البرنامج موجود في جيثب الخاص بي.

يظهر تدفق البرنامج في الصورة. انظر إلى Instructable الآخر الخاص بي لشرح كيفية استخدام ESP-NOW.

عند تشغيل الوحدة ، تحاول أولاً إرسال رسالة "فتح" عبر ESP-NOW. إذا لم ينجح ذلك ، فإنه يتحول إلى اتصال WiFi و MQTT.

اكتشفت أنه ، على الأقل في الإعداد الخاص بي ، لم يتم إرسال رسالة "مغلق" بنجاح عبر ESP-NOW ، لذلك قمت بإزالة هذا من البرنامج واستخدمت فقط WiFi و MQTT.

خلال الوقت الذي يتم فيه فتح الباب والوحدة في انتظار إغلاق الباب ، فإنها تستخدم هذا الوقت للاتصال بشبكة WiFi و MQTT ، لذلك عند إغلاق الباب ، يتعين عليها فقط إرسال الجهد المقاس ورسالة مغلق ثم يذهب مباشرة للنوم.

يتحقق البرنامج مما إذا كان المتلقي قد استقبل الرسالة المغلقة عن طريق الاستماع إلى رسالة MQTT حول الموضوع الصحيح.

الخطوة 4: أتمتة المنزل والبرقية

أتمتة المنزل والبرقية
أتمتة المنزل والبرقية
أتمتة المنزل والبرقية
أتمتة المنزل والبرقية
أتمتة المنزل والبرقية
أتمتة المنزل والبرقية

تتواصل مستشعرات الباب مع Openhab Home Automation على جهاز Raspberry Pi Zero الخاص بي.

التطبيقات الرئيسية:

  • اقرأ حالة الباب: مفتوح أو مغلق.
  • قم بتنبيهي عبر برقية إذا تم فتح الباب (إذا تم تشغيل المنبه أو تشغيل وظيفة المراقبة).
  • اقرأ آخر مرة تم فيها فتح الباب أو إغلاقه.
  • احسب عدد الفتحات التي يمكن لجهاز استشعار الباب التعامل معها قبل نفاد البطارية.

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

عناصر وقواعد وملفات خريطة الموقع الخاصة بي في Openhab موجودة في Github الخاص بي. في هذه الملفات ، يمكنك أيضًا رؤية مستشعر باب السقيفة ، والذي يستخدم مفتاحًا سلكيًا عاديًا من القصب ومفتاح اتصال صغير (نهاية) من طابعة ثلاثية الأبعاد في فتحة القفل (انظر الصور).

كيفية استخدام إجراء Telegram في Openhab موصوف هنا.

الخطوة 5: التحسينات والتحسينات الإضافية

تحسينات وتحسينات أخرى
تحسينات وتحسينات أخرى
تحسينات وتحسينات أخرى
تحسينات وتحسينات أخرى

في الأشهر الماضية ، أجريت التحسينات التالية.

تعامل مع فتحات الأبواب الطويلة عبر إشارة نبضية ذاتية التحويل

في الصيف ، نترك الباب الخلفي مفتوحًا لبضع ساعات عندما نكون في المنزل. سيؤدي تشغيل ESP-01 مع اتصال WiFi إلى استنزاف البطارية دون داع. لذلك قمت بتضمين مفتاح تشغيل / إيقاف لأتمكن من إيقاف تشغيل الوحدة في هذه المواقف.

ومع ذلك ، فقد أدى ذلك في بعض الأحيان إلى إيقاف تشغيل الوحدة بشكل دائم (عندما نسيت تشغيلها) وبطارية مستنزفة بعد بضع فترات بعد الظهر من باب مفتوح ووحدة تشغيل (عندما نسيت إيقاف تشغيلها).

لذلك أردت أن أكون قادرًا على إيقاف تشغيل الوحدة عبر البرنامج بعد تشغيل الوحدة لفترة محددة مسبقًا (دقيقة واحدة).

ومع ذلك ، عندما أوقفت نبضة "DONE" الخاصة بـ ESP-01 من TPL5111 عندما كان الباب مغلقًا ، اكتشفت أن TPL5111 لم يتم تبديله بواسطة نبضة "DONE" بينما كان دبوس DELAY / M_DRV مرتفعًا. كانت هذه الإشارة العالية على دبوس DELAY / M_DRV ناتجة عن فتح الباب ووصلة NC لمفتاح القصب المتصل بجهد البطارية.

لذلك ، يجب ألا تكون الإشارة إلى دبوس DELAY / M_DRV عالية باستمرار ، ولكن يجب أن تكون نابضة. في ورقة البيانات TPL5111 ، يمكنك أن تجد أنه يجب أن يكون نبضة من> 20 مللي ثانية. لقد صنعت إشارة التبديل الذاتي هذه عبر موسفيت P-channel ، ومكثف ومقاوم 10K و 300 K ، انظر المخطط المضمن.

يعمل على النحو التالي:

  • إذا تم إغلاق جهة اتصال NC الخاصة بمفتاح القصب ، تكون البوابة منخفضة ويتم تشغيل Mosfet ، مما ينتج عنه إشارة عالية على دبوس DELAY / M_DRV الذي ينشط الوحدة.
  • يتم شحن المكثف بسرعة ، مما يؤدي إلى ارتفاع الجهد على البوابة.
  • بعد حوالي 20 مللي ثانية ، يكون الجهد الكهربي على البوابة 97٪ من جهد البطارية (300 ك / (300 ك + 10 ك) وهو مرتفع ويتم إيقاف تشغيل Mosfet ، مما ينتج عنه إشارة منخفضة على دبوس DELAY / M_DRV.
  • عندما يكون دبوس DELAY / M_DRV منخفضًا ، فإن إشارة DONE الخاصة بـ ESP-01 تؤدي إلى إيقاف تشغيل الوحدة.

يتم تنفيذ ذلك في البرنامج ؛ لا تتحقق حلقة while-loop من استمرار فتح الباب فحسب ، بل تتحقق أيضًا من عدم تشغيل الوحدة لفترة طويلة جدًا. إذا تم تشغيله لفترة طويلة جدًا ، فإنه ينشر قيمة NULL (حالة غير محددة للباب). في هذه الحالة لا أعرف ما إذا كان الباب مفتوحًا أم مغلقًا ولا أصل إلى جميع الأهداف المذكورة في المقدمة ، لكن عمر البطارية أكثر أهمية وفي معظم الأوقات نفتح الباب مرة أخرى في وقت لاحق من ذلك اليوم ، مما ينتج عنه حالة إغلاق مؤكدة من الباب.

من المهم استخدام قناة Mosfet P المناسبة لنطاق الجهد المستخدم هنا. يجب تشغيل Mosfet تمامًا عند VGS بحوالي - 3.8 فولت وإيقاف تشغيله تمامًا عند VGS بحوالي -0.2 فولت. لقد جربت العديد من أجهزة Mosfets واكتشفت أن IRLML6401TRPBF يعمل بشكل جيد لتحقيق هذا الهدف بالاقتران مع مقاومات 10K و 300K. مكثف 1 uF يعمل بشكل جيد للحصول على طول نبض يبلغ حوالي 20 مللي ثانية. ينتج عن مكثف أكبر نبضة أطول ، وهذا ليس ضروريًا ، حيث تم تنشيط TPL5111. لقد استخدمت راسم الذبذبات DSO150 الخاص بي للتحقق من الفولتية وطول النبض.

التحسين المخطط له: تحديث OTA

أخطط لدمج تحديث OTA عبر الإجراء التالي ، والذي تم تضمينه جزئيًا بالفعل في البرنامج الحالي

  • عبر Openhab من NodeRed ، أنشر رسالة "تحديث" محتفظ بها "موضوع تحديث".
  • إذا تم تشغيل الوحدة وتوصيلها بخادم MQTT واشتركت في "موضوع التحديث" ، فإنها تتلقى رسالة التحديث.
  • ستمنع رسالة التحديث الوحدة النمطية من إيقاف التشغيل وتبدأ
  • عبر موقع الويب الخاص بـ HTTPUpdateServer ، يمكنك تحديث البرنامج.
  • عبر Openhab من NodeRed أنشر رسالة "فارغة" محتفظ بها "موضوع تحديث".

التحسين المخطط له: إيقاف تشغيل الأجهزة بعد وقت محدد مسبقًا

في المخطط الحالي ، أستخدم المقاوم 200K بين DELAY / M_DRV و GND في TPL5111. يؤدي هذا إلى تشغيل الوحدة النمطية لأكثر من ساعتين (انظر 7.5.3. من ورقة البيانات TPL5111). ومع ذلك ، لا أريد تشغيل الوحدة لفترة طويلة ، لأن البطارية يتم استنزافها بعد ذلك. إذا فشل حل البرنامج (انظر أعلاه) في إيقاف تشغيل الوحدة ، أو إذا كانت رسالة التحديث غير مقصودة تعيّن الوحدة في وضع التحديث ، تظل الوحدة قيد التشغيل لفترة طويلة.

لذلك من الأفضل استخدام مقاوم أصغر بين DELAY / M_DRV و GND من TPL5111 ، لذلك يتم إيقاف تشغيل الوحدة بعد وقت قصير ، على سبيل المثال المقاوم 50K مما ينتج عنه في الوقت المحدد 7 دقائق.

موصى به: