يعرض مشروع ساعة ويزلي موقع أفراد الأسرة





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



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

, . . , , – - . , . , , . «», «», «», « », «», «», «»; , «12», « ». «», , , «».



«, !» – , . , «» « », «» , , .


استغرق الأمر بعض العمل البحثي لتحويل الساعات السحرية إلى ساعات حقيقية. لدي الكثير من الخبرة في البرمجة ، لكنني بدأت مؤخرًا فقط في كتابة التعليمات البرمجية التي تحرك شيئًا ما في العالم المادي. في عام 2018 ، بدأت تشغيل نادي الروبوتات FRC المحلي الخاص بنا من FIRST ، وتعرفت على عالم المحركات وأجهزة التشفير.





مخطط انسيابي لتحديث البيانات على ساعة Weasley:

المستخدمون على الهواتف الذكية لديهم تطبيق Life360 قيد التشغيل ->

يتتبع التطبيق موقع المستخدمين وسرعتهم ->

HA يتتبع المستخدمين ويحسب حالة الساعة. يرسل التحديثات عبر بروتوكول MQTT إلى Raspberry Pi ->

يتم تشغيل عملية weasleyclockd خاصة على Raspberry Pi ، والتي تراقب دفق MQTT وتتحكم في أجهزة الساعة ->

لا يمكن تمييز أي تكامل متقدم بما فيه الكفاية لإنترنت الأشياء عن السحر.




لقد قسمت المشروع بالساعة إلى عدة مشاريع فرعية يمكن العمل بها بالفعل ، وبدأت بتتبع الموقع. في البداية ، استخدمت تطبيق "Find My Phone" من Apple ، لأن جميع أفراد عائلتي المباشرين يستخدمون أجهزة iPhone. ولكن بعد ذلك انتقلت إلى Life360 ، لأن واجهة برمجة التطبيقات الخاصة بهم اتضح أنها أكثر سهولة في الاستخدام للأطراف الثالثة ، وسمحت لي بإضافة أقارب زوجتي الذين يعيشون معنا ويستخدمون هواتف Android. حتى قبل البدء في البناء والبرمجة ، كان علي إقناعهم جميعًا بتثبيت Life360 واستخدامه. لحسن الحظ ، وافق الجميع. فعلت زوجتي ذلك لأسباب أمنية ، ولم تعرف أبدًا عن خطتي السرية لعمل مفاجأة معقدة لعيد الميلاد.



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



لقلب الأسهم ، قررت استخدام الرافعات المؤازرة مع إمكانية المنعطفات المتعددة. اشتريت من Adafruit ولحمت لوحة توسعة Raspberry Pi Servo HAT ذات 16 قناة وبدأت في وضع النماذج الأولية. وفي تلك اللحظة ، كنت غارقة في الإثارة حيث أدركت أن كل شيء سينجح.



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





لوحة مساعد المنزل



بعد أن كتبت القواعد الخاصة بـ Home Assistant ، حصلت على لوحة تحكم ، حيث تم إدراج جميع حالات ساعة Weasley. الآن أنا فقط بحاجة إلى استخدام هذه البيانات لتحريك عقارب الساعة.



Home Assistant هو مشروع أتمتة منزلي مفتوح المصدر يركز على التخزين المحلي والإدارة. هذا على عكس معظم أنظمة أتمتة إنترنت الأشياء التي تتطلب اتصالاً بالإنترنت وتخزين بياناتك في السحابة.



بالنظر إلى أن حالات الساعة قد تم حسابها بالفعل على Home Assistant نفسه ، وأن وحدات التحكم Raspberry Pi وأجهزة التحكم المؤازرة تقف على مدار الساعة ، كنت بحاجة إلى معرفة كيفية نقل البيانات من Home Assistant إلى ساعة Weasley. اخترت بروتوكول MQTTمشهور لاستخدام إنترنت الأشياء ومدعوم جيدًا في Home Assistant. أضفت الأتمتة إلى Home Assistant لإرسال رسائل MQTT كلما تغيرت حالة الساعة. على جانب المستمع ، كتبت برنامج Python daemon ، weasleyclockd ، يستمع إلى دفق حدث MQTT ويحرك الأسهم وفقًا لذلك.



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



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



في المشروع ، يشغل رسم الاتصال الهاتفي جزءًا مهمًا. لقد وجدت ملصق ساعة Weasley جميل من Minalima . رسم هذا المؤلف العديد من الرسوم الرسمية لأفلام هاري بوتر.



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



توجهت أنا وزوجتي إلى Whidbey Island وتجولنا في متجر Good Cheer Thrift Store في لانجلي. باعوا ساعة جد ، كان حجمها ، للوهلة الأولى ، مناسبًا لكل من الآلية والمينا. ومع ذلك ، لم أكن مستعدًا على الإطلاق لشرائها. لم يكن معي أبعاد المينا والحركة. وكانت معي زوجتي ، التي كانت هذه المفاجأة مقصودة لها. لذلك تذكرت للتو هذه اللحظة ، وقررت أنني بالتأكيد بحاجة لشراء مثل هذه الساعة



في المنزل ، مسلحة بجميع القياسات ، وبدأت في تمشيط موقع eBay بحثًا عن ساعة جد. لم تكن هذه مهمة سهلة. كانت ساعات العمل باهظة الثمن. لا أحد يريد أن يرسلهم. بمجرد أن وجدت بعض الساعات المناسبة ، اتضح أنه تم بيعها بواسطة بيك آب ذاتيًا من فلوريدا.



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



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





تحركات الأسرة خلال النهار





المسافة من المنزل



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





الساعة المنجزة





ضعه في المطبخ



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



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



يبدو أن المشروع قد اكتمل ، لكني أريد إجراء بعض التحسينات الإضافية. أخطط لتجميع ساعة بستة أو سبع عقارب وأتمتة ضرب الساعة.



لإعادة صياغة آرثر كلارك: "أي تكامل متقدم بما فيه الكفاية لإنترنت الأشياء لا يمكن تمييزه عن السحر."



في الجيل الثاني من ساعات Weasley ، أود تغيير ما يلي:



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


روابط لسجل التطوير الخاص بي والصور والبرامج:






All Articles