عندما تجلس على مقعدك المريح في مكتبك العصري الرائع ، فإن أي شيء يصرف انتباهك عن روتينك المفضل مزعج حقًا. قد يطلق عليه البعض علامة على الكسل ، ولكن في الواقع ، يتعلق الأمر بتحسين سير العمل. توفر لنا أجهزة الكمبيوتر والهواتف الذكية العديد من الفرص للقيام بالكثير دون مغادرة مكاننا. يهتم البرنامج بهذه الطريقة بتحكمنا في العالم المادي من خلال النقر والنقر. في الواقع ، يتطور الرقمنة: ما كان على الناس فعله مع عضلاتهم لعدة قرون في الماضي ، يمكن القيام به إما بأمر صوتي أو برسالة نصية اليوم بفضل العديد من أدوات التحكم عن بعد. ويلعب إنترنت الأشياء دورًا مهمًا في كل هذا لسبب ما.
المقال الأصلي -
Smart Lock: لماذا الكسل هو محرك التقدم IoTدعونا مساعدة أقفال الأبواب تتطور
اتخاذ مثل هذه الإجراءات الدنيوية مثل فتح الباب. لم يخترع أي شيء جديد جذري مع تصميم أساسي للأبواب على مدى آلاف السنين. لا الأشكال المختلفة أو المواد المطبقة يمكنها تغيير الوظيفة الرئيسية لأي باب - للتحكم في كل مدخل وخروج. ما تغير بالفعل فيما يتعلق بوظيفة الباب هو طريقة كيفية إصلاح الأبواب المفتوحة والمغلقة. ابتكر الناس أقفال الأبواب بمختلف التصميمات التي تبدأ من الأعمدة البدائية وحتى الأقفال الإلكترونية عالية التقنية مع أنظمة التعرف على الوجوه. يعتمد تعقيد كل تصميم عصري لقفل الباب على إجراء معين لدخول الغرفة: يجب أن يكون الوصول إلى قبو البنك أكثر صعوبة من الحرم الجامعي.
من الأفكار المنطقية لإنشاء
حل إنترنت الأشياء البسيط لقفل باب المكتب أن توضع في الاعتبار
شركة تطوير إنترنت الأشياء عاجلاً أم آجلاً. عندما يصل عدد الموظفين إلى عشرات ، يمكن لقارئ البطاقات العادي في قفل الباب لعب الحيل على بعض المطورين النسيان الذين اعتادوا على ترك بطاقاتهم الرئيسية في المنزل من وقت لآخر. نظرًا لأن زملائهم تعبوا من مقاطعة عملهم من أجل المساعدة في فتح باب المكتب ، فإن مهمة إنشاء حل إنترنت الأشياء ذات الصلة تتحول إلى دافع حقيقي. ومع ذلك ، يمكن للأشخاص المبدعين دائمًا استغلال أي موقف للتسلية والكشف عن إبداعهم في نفس الوقت. وبالتالي ، تم تحويل إجراء تطوير عادي لإنشاء تطبيق قفل ذكي بواسطة Indeema إلى تحدٍ مضحك يمكن حله من خلال Hackathon آخر.
الجميع مرحب به
واحدة من أكبر مزايا حلول إنترنت الأشياء ، عندما يتم تمثيلها كمهام لـ Hackathons ، هي مجموعة متنوعة من المتخصصين الذين يمكن أن يشاركوا في تطوير تعاوني. على عكس العديد من التحديات الأخرى للبرامج البحتة ، فإن إنترنت الأشياء دائمًا ما يتطلب مواصفات الأجهزة. في بيئة إنترنت الأشياء ، يمكن لمكونات الأجهزة في كثير من الأحيان تعيين نغمة للمشروع بأكمله. هذا هو السبب في أن Smart Lock Hackathon بالكاد يستطيع الاستغناء عن مهندسي الأجهزة. ودعت Indeema المواصفات الأجهزة من مختلف الشركات الصديقة - كلما كان ذلك أفضل. ووصلوا.
بالطبع ، كانت واجهات برمجة التطبيقات ، والخلفية ، وموقع الويب ، وبرامج محددة يمكن أن تخدم الأجهزة المحددة جميعها مسؤولة عن المبرمجين الذين شكلوا الأغلبية في هاكاثون. بالإضافة إلى ذلك ، تمت دعوة المصممين لإنشاء واجهة جذابة وسهلة الاستخدام. لا يمكن لأي حل لإنترنت الأشياء تجنب الاختبار ، ولهذا السبب شاركت المواصفات واختبارات ضمان الجودة في هذه العملية. علاوة على ذلك ، شارك أعضاء الفريق الآخرون المختلفون مثل مديري المبيعات والمسوقين وحتى المحاسبين في هذا الحدث من أجل تعزيز العصف الذهني لأن توليد أفكار جديدة ينتمي إلى خيال طبيعي إلى حد ما بدلاً من بعض الكفاءة. بالمناسبة ، Hackathon هي فئة خاصة من اجتماعات المطورين حيث يمكن للجميع تجربة أشياء جديدة وتقديم شيء مختلف دون أي اعتبار لأي خبرة محددة. بمعنى آخر ، تم اختراع Hackathons لتعزيز الإبداع مهما كانت الأشكال التي قد يتخذها.

لماذا الاختراق؟
إن المزيج المتفجر من القهوة والحلويات و "ريد بُل" والقيادة الحقيقية للمسابقة طوال الجلسة التي لا تتوقف على مدار 24 ساعة تجعل أي هاكاثون حدثًا استثنائيًا للمطورين الذين يجب أن يقطع روتينهم بشكل دوري بطريقة جيدة. تساعد المشاعر الإيجابية القوية جنبًا إلى جنب مع الأجواء غير الرسمية للغاية الأشخاص على معالجة العديد من المشكلات من زاوية مختلفة. بالإضافة إلى ذلك ، يمكن لـ Hackathons إزالة المسافة بين الصغار والكبار وكبار المديرين والموظفين ذوي المستوى الأدنى مما يجعل الفريق بأكمله يعمل على مهمة مشتركة دون تبعية عادية. تم ممارسة شيء مماثل عن بعد في العصور القديمة عندما رتب النبلاء حفلات خاصة لخدمهم مرة واحدة في السنة. في مثل هذه الأحداث ، أصبح الخدم مساوٍ لسادتهم الذين دعاهم بأسماء بدون ألقاب.
وغني عن القول أن التحرر النفسي للغاية الذي يحدث في Hackathons يمكن أن يكشف عن بعض القدرات الإبداعية التي تظل مخفية عند تشغيل مهام العمل الدنيوية. إذا كان الأمر كذلك ، فقد يتساءل البعض ، لماذا لا يتم ترتيب Hackathons كلما كان ذلك ممكنًا؟ تكمن الحجة ضدها في علم النفس البشري: لقد اعتدنا على أي شيء يمارس بانتظام. كلا التأثير المثير وتجربة جديدة يمكن تعويضها بسرعة من خلال التكرار. وهذا هو السبب في أننا نستمتع بالعطلات التي تحدث عدة مرات فقط في السنة.
الظروف الأولية والأجهزة
يستخدم قفل الباب الكهرومغناطيسي العادي كحل قياسي في العديد من المباني المكتبية. يتم إغلاقه عادةً ، ولكي تتمكن من فتحه ، يجب عليك استخدام بطاقة RFID من الجانب الخارجي (البطاقة الرئيسية للغاية والتي غالباً ما يتركها المطورون في المنزل) أو زرًا من الجانب الداخلي. يمكن توصيل مرحل بسيط بالزر لجعل القفل مفتوحًا لفترة من الوقت. يجب التحكم في التتابع بدوره بواسطة متحكم دقيق (أو كمبيوتر دقيق) يرسل إشارات ذات صلة. تم اختيار Raspberry Pi ليكون متحكم والذي يجب أن يتحكم في الترحيل بعد التحقق من الطلبات المقدمة من تطبيق العميل. الكيان الأعلى في مثل هذه الخوارزمية العاملة هو تطبيق يعمل مع كل من أنظمة التشغيل iOS و Android. وبالتالي ، فإن مشروع القفل الذكي بالكامل يتضمن حلاً معقدًا IoT- برامج الأجهزة المعقدة والذي يدمج التقنيات المختلفة مثل الواجهة الخلفية للويب ، والعملاء لنظامي iOS و Android ، والجزء المدمج في Linux ، بالإضافة إلى مختلف الأطر ومكتبات Raspberry Pi الخاصة.
كيف يعمل التطبيق

يتكون النظام بأكمله من 3 تطبيقات مطورة حسب الطلب:
- عميل دائرة الرقابة الداخلية
- عميل أندرويد
- الخادم
ونظام مصادقة طرف ثالث - Redmine.
من أجل عدم زيادة تحميل التطبيق بوظائف زائدة عن الحاجة ، تم تطوير 3 شاشات فقط لواجهة المستخدم الخاصة به: الشاشة الرئيسية وشاشة تسجيل الدخول والإعدادات. يجب أن تكون فتاحة الأبواب عن بُعد القائمة على الهاتف الذكي بسيطة ، أليس كذلك؟ التطبيق هو حل خادم عميل يستخدم مصادقة الطرف الثالث من خلال بيانات اعتماد Redmine للشركة ، كضمان لنا الأكثر أهمية. بعد تسجيل الدخول ، يمكن إنشاء مفتاح API فردي لمستخدم Redmine لإرساله إلى خادم. يتحقق الخادم من مفتاح API معين لمعرفة ما إذا كان يمكنه الوصول إلى شركة Redmine أو عدم السماح ، لذلك ، بفتح قفل الباب أم لا. على سبيل المثال ، يعد التطبيق من جانب العميل لنظام iOS تطبيقًا بسيطًا مكتوبًا في Swift حيث تعمل ميزة 3D Touch لتسهيل الوصول. توفر الميزة التي تمنع فتح الباب من حين لآخر عندما يكون المستخدم بعيدًا عن المكتب طاولة منبثقة إضافية حيث يمكن للمستخدم تأكيد نية فتح الباب. لا يختلف إصدار Android للتطبيق عن إصدار iOS فيما يتعلق بوظيفة عامة. وبالتالي ، يوفر حل إنترنت الأشياء النهائي للمستخدمين إمكانية الدخول إلى مكتب ببضع نقرات فقط على هواتفهم الذكية.
التحديات والفروق الدقيقة للتنمية
تم اختيار Python كلغة برمجة لخادم جزء من التطبيق. كان الدافع وراء هذا الاختيار هو العديد من الاعتبارات المتعلقة بكلٍ من فترة ضيقة 24 ساعة من Hackathon ومعالج ARM في النظام الأساسي الهدف المضمن. هذا الأخير هو أدنى إلى حد ما إلى x86 المعالجات من حيث التجميع والنشر. لهذا السبب تم استخدام Python كلغة برمجة عالية المستوى يتم تفسيرها والتي تسمح بتحرير الكود على كل من النظام الأساسي المستهدف ووسيلة مضيفة تم تطبيقها لتشغيل التطبيق على الفور للاختبار. سبب آخر لاستخدام Python هو مكتبتها القياسية التي يمكن تمديدها بسهولة مع وحدات مكتوبة في C للوصول إلى ميزات نظام التشغيل المختلفة جنبا إلى جنب مع خدمة نظام الاتصال. بالإضافة إلى ذلك ، يعمل تطبيق Python كخدمة Linux عندما يوفر نظام التشغيل العديد من التسهيلات مثل تنفيذ أحد التطبيقات عند بدء التشغيل ، وإعادة التشغيل عند تعطل أحد التطبيقات ، وتنفيذ أحد التطبيقات كعملية خلفية إلخ. وبالتالي ، فقد وفرت مزايا Python نشر التطبيق على النظام الأساسي المستهدف دون تجميع أولي لرمز المصدر في تعليمات الجهاز.
هنا مخطط رئيسي لمشروعنا.

بالإضافة إلى ذلك ، تم تطبيق إطار عمل Flask web الصغير لنشر تطبيق Smart Lock نظرًا لأن الإطار له حد أدنى من التبعيات جنبًا إلى جنب مع الحد الأدنى من المتطلبات من مكتبات الطرف الثالث لتشغيل تطبيقات الخادم.
فيما يتعلق ببعض وسائل البرمجة المحددة المستخدمة في المشروع ، تم تطبيق مكتبة RPi.GPIO من أجل توفير التحكم في مخرجات الدبوس على اللوحة المستهدفة Raspberry Pi 3. توفر المكتبة طريقة مباشرة لمعالجة الدبابيس المادية على اللوحة في فقط بضعة أسطر من التعليمات البرمجية.
العودة إلى الكسل
على الرغم من التحيزات العديدة ، فإن الكسل البشري "الطبيعي" ليس سامًا دائمًا عندما يتعلق الأمر بالتقدم التكنولوجي. هل يحتوي تطبيق Smart Lock على كسل في خلفيته؟ إنه أمر مشكوك فيه نظرًا لأن Hackathon الديناميكي فقط أنتج مثل هذا الحل العملي المتمثل في إنترنت الأشياء. ومع ذلك ، فإن تطبيق Smart Lock كنتيجة مباشرة لجلسة التطوير التي تستمر طوال الليل يمكن أن يؤدي إلى أطول فترات دون انقطاع عندما لا يحتاج مطورو Indeema إلى ترك كراسيهم بعد الآن للسماح بزملائهم النسيان. علاوة على ذلك ، هناك أنواع أخرى كثيرة من النشاط البدني غير فتح باب المكتب. شيء واحد مؤكد: كفاءة العمل للمطورين سوف تنمو حتما. وبالتالي ، يوصى بشدة باستخدام كل من Hackathons وحلول تقنيات عمليات القفل الذكية. وبالطبع ، يسعد Indeema دائمًا بمشاركة
كود التطبيق مع كل محترفي إنترنت الأشياء (GitHub) المهتمين .