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

IDC2018IOT: غرفة الاجتماعات Snitcher: 6 خطوات
IDC2018IOT: غرفة الاجتماعات Snitcher: 6 خطوات

فيديو: IDC2018IOT: غرفة الاجتماعات Snitcher: 6 خطوات

فيديو: IDC2018IOT: غرفة الاجتماعات Snitcher: 6 خطوات
فيديو: ✨The King's Avatar S2 (Quan Zhi Gao Shou) Full Version [MULTI SUB] 2024, شهر نوفمبر
Anonim
IDC2018IOT: غرفة الاجتماعات Snitcher
IDC2018IOT: غرفة الاجتماعات Snitcher

المشكلة

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

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

تتكرر المشكلة لأن جدول الناس يميل إلى أن يكون ديناميكيًا.

قد يحجز المرء غرفة معتقدًا أنه قد يحتاج إليها ولن يرغب في تفويت الوقت.

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

كيف نحلها؟

باستخدام تقنية إنترنت الأشياء - فحص الصوت والحركة في غرفة اجتماعات معينة ، نتحقق ، كل فترة زمنية معينة ، مما إذا كانت الغرفة محجوزة ومشغولة بالفعل أم لا:

1. إذا لم يتم حجزه ، فلا تفعل شيئًا.

2. إذا تم حجزه ، فتحقق مما إذا كان هناك أي حركة أو صوت تم اكتشافه ؛

إذا كان هناك شيء ، فلا تفعل شيئًا.

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

* هنا ، قمنا بدمج مشروعنا مع تقويم Google من أجل تعميمه قدر الإمكان.

الخطوة 1: الأجهزة والبروتوكولات المطلوبة

الأجهزة والبروتوكولات المطلوبة
الأجهزة والبروتوكولات المطلوبة

1. استخدمنا NOSEMCU حتى نتمكن من تحديث الأشياء ديناميكيًا باستخدام اتصال WIFI.

2. جهاز استشعار الميكروفون الذي "يقرأ" الضوضاء في الغرفة.

3. جهاز استشعار PIR الذي سيتحقق من وجود أي حركة.

لاستخدام البرامج والخادم ، إلى جانب الكود في Arduino ، استخدمنا Google Script و Zapier لدعم نظامنا عبر الإنترنت. يمكنك رؤية التدفق في الصورة المضافة (و PDF).

استخدمنا Zapier لربط التطبيقات وأتمتة سير العمل لدينا (مثل IFTTT) واستخدمنا Google Script لمساعدتنا على التواصل مع تقويم Google. يقوم البرنامج النصي الذي كتبناه بإنتاج البريد الإلكتروني لمنشئ الحدث حتى نتمكن من إرساله برمي Zapier والتحقق مما إذا كان المستخدم قد طلب الاحتفاظ بالغرفة (عن طريق حفظ بعض المعلومات في Google Sheets) قبل حذف الحدث.

الخطوة 2: قم بتوصيل الميكروفون ومستشعر PIR

قم بتوصيل الميكروفون ومستشعر PIR
قم بتوصيل الميكروفون ومستشعر PIR
قم بتوصيل الميكروفون ومستشعر PIR
قم بتوصيل الميكروفون ومستشعر PIR

أردنا التحقق من متوسط القيم التي ينشرها الميكروفون على NODEMCU عندما يتحدث الناس (من الواضح أن كل غرفة بها ضوضاء خلفية مختلفة). أجرينا بعض الاختبارات وأدركنا أن متوسط مستوى الضوضاء هو أن الغرفة التي عملنا فيها أعلى من 50.

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

اتصالاتنا:

ميكروفون - كما في الصورة مستشعر PIR: GND> GND ، OUT> D7 ، VCC> VN (5V)

الخطوة 3: قم بإنشاء سير العمل في Zapier

قم بإنشاء سير العمل في Zapier
قم بإنشاء سير العمل في Zapier
قم بإنشاء سير العمل في Zapier
قم بإنشاء سير العمل في Zapier
قم بإنشاء سير العمل في Zapier
قم بإنشاء سير العمل في Zapier

من أجل معرفة ما إذا كانت الغرفة فارغة بالفعل أو لا تزال قيد الاستخدام (والمستخدمون في فترة راحة على سبيل المثال) ، نود إنشاء تدفق يؤكد ذلك ، مباشرة بعد قيام NodeMCU بإطلاق Webhook إلى Zapier الذي يخطر أن الغرفة فارغة:

(1) TRIGGER - يمسك CATCH HOOKZapier بخطاف الويب (الذي سيتم إرساله بواسطة NODEMCU)

(2) الإجراء - يرسل GETZapier خطاف ويب آخر للحصول على بيانات الحدث ؛> يستدعي (يعمل) GoogleScript - GetCurrentEmailEventID (شرح في الخطوة التالية) ، للحصول على بيانات الحدث الحالي - اسم الحدث ومعرف الحدث والبريد الإلكتروني للمستخدم.

(3) مرشح - تابع فقط إذا

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

(4) الإجراء - يرسل GMAILZapier بريدًا إلكترونيًا ، عبر Gmail ، إلى المستخدم الذي حجز الغرفة (حصل على هذه المعلومات في الخطوة 2)

(5) الإجراء - التأخير FOR السماح للمستخدم بالرد على البريد الإلكتروني. - إذا نقر المستخدم على الرابط: اتصل (تشغيل) GoogleScript - ApproveCurrentEvent (ومن ثم تتم إزالة الغرفة من قائمة "الغرف المطلوب حذفها" ، و الغرفة لا تزال مشغولة.)

(6) الإجراء - احصل بعد 5 دقائق ، يستدعي Zapier (يعمل) GoogleScript - DeleteCurrentEvent- إذا لم ينقر المستخدم على الرابط

للتحقق مما إذا كان معرف الغرفة موجودًا في قائمة "الغرف المطلوب حذفها"

إنه يزيل فقط الحدث.

الخطوة 4: Google Scripts

نصوص جوجل
نصوص جوجل
نصوص جوجل
نصوص جوجل
نصوص جوجل
نصوص جوجل

عندما قمنا بدمج النظام بأكمله ، كان GoogleScripts هو الخيار التافه لـ IDE ، وبالتالي ، استخدمنا مكتبات Google ذات الصلة. سوف تتغير وفقًا لمنصة حجز الغرف.

(1) GetCurrentEmailEventID

يتم تشغيله من خلال مكالمة Webhook.

استخدام إزاحة معينة للتخلص من الإلغاء المفقود المحتمل ، والحصول على بيانات الحدث الحالي.

(2) ApproveCurrentEvent

يعمل بنقرة المستخدم.

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

(3) DeleteCurrentEvent

يتم تشغيله من خلال مكالمة Webhook.

يبحث عن معرف الحدث ذي الصلة في القائمة (ورقة Google) ويحذف هذا الحدث من التقويم.

الخطوة 5: قم بتوصيل التدفق بكود Arduino

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

الخطوة السادسة: المراجعة والاستنتاجات والتوسع في المستقبل

Image
Image

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

على سبيل المثال ، إذا كانت الغرفة محجوزة لبعض المجموعات غير الموجودة حاليًا (تلك في فترة راحة ، على سبيل المثال) ، ولكنها لا تزال بحاجة إليها ، فسوف تكتشف NODEMCU أن الغرفة مجانية> مشكلة.

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

إذا لم يرد المستخدم في وقت معين (قمنا بتعيينه ليكون 5 دقائق ، ولكن يمكن تغييره بسهولة) ، نحذف الحدث من التقويم (ونوفر الغرفة).

بهذه الطريقة ، نجحنا في النهاية في التعامل مع جميع السيناريوهات الممكنة وإنشاء نظام عمل.

قيود نظامنا:

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

2. يقتصر حجم الغرفة على نصف قطر / نطاق المستشعر.

3. سيتعين علينا الاعتماد على استجابة المستخدم.

4. تم إنشاء نظامنا باستخدام العديد من الأنظمة الأساسية (تقويم Google و Gmail و Zapier وما إلى ذلك) وسيتعين عليه استخدام خدماتهم لأداء المهام.

5. توسيع نطاق هذه الخدمة للغرف المتعددة (بدلاً من تكرار النظام بأكمله) سيتطلب معالجة إضافية بمعرف الغرفة.

6. النظام آلي فقط ولا يوجد خيار يدوي لإلغاء حجز غرفة.

التطورات المستقبلية:

سنعمل بالتأكيد على توسيع نطاق النظام بطريقتين:

1. القدرة على العمل مع أي منصات تقويم أخرى (بحيث يمكن لأي شركة مساحات عمل مشتركة استخدامها).

2. القدرة على التعامل مع غرف وأرضيات ومواقع متعددة.

نعتقد أن هذا النوع من المقياس سيستغرق 2-3 أشهر للتعميم والاختبار وإضافة ميزة غرف متعددة (طوابق وما إلى ذلك).

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

موصى به: