विषयसूची:
- चरण 1: हार्डवेयर और प्रोटोकॉल की आवश्यकता
- चरण 2: माइक्रोफ़ोन और पीर सेंसर कनेक्ट करें
- चरण 3: Zapier में वर्कफ़्लो बनाएँ
- चरण 4: Google स्क्रिप्ट
- चरण 5: प्रवाह को Arduino कोड से कनेक्ट करें
- चरण 6: समीक्षा, निष्कर्ष और भविष्य की स्केलिंग
वीडियो: IDC2018IOT: मीटिंग रूम स्निचर: 6 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
समस्या
जैसा कि हम जानते हैं, पिछले कुछ वर्षों में को-वर्किंग स्पेस का चलन तेज हो रहा है, साथ ही अत्याधुनिक तकनीक विशिष्ट को-वर्किंग स्पेस की पसंद को परिभाषित करती है जो आपकी आवश्यकताओं के लिए उपयुक्त है।
पेश की जाने वाली मुख्य विशेषताओं में से एक सह-कार्यस्थल सदस्यों के लिए साझा बैठक कक्ष है, जिसे एक (आमतौर पर) सरल कैलेंडर प्लेटफॉर्म द्वारा प्रबंधित किया जाता है।
एक समस्या फिर से उत्पन्न होती है क्योंकि लोगों की समय-सारणी गतिशील होती है।
कोई यह सोचकर एक कमरा बुक कर सकता है कि उसे इसकी आवश्यकता हो सकती है और वह समय स्लॉट को छोड़ना नहीं चाहेगा।
यहां तक कि अगर कोई अंततः उस समय स्लॉट का उपयोग नहीं करेगा, तो वह दूसरों के लिए इसे सूचित करने और रद्द करने के लिए परेशान नहीं होगा, दुर्भाग्य से, यह मानव स्वभाव है।
हम इसे कैसे हल करते हैं?
IoT तकनीक का उपयोग करना - एक निर्दिष्ट बैठक कक्ष में ध्वनि और गति की जाँच करना, हम हर निश्चित समय अंतराल की जाँच कर रहे हैं, कि कोई कमरा बुक किया गया है और वास्तव में कब्जा कर लिया गया है या नहीं:
1. अगर इसे बुक नहीं किया गया है, तो कुछ भी न करें।
2. अगर इसे बुक किया गया है, तो जांच लें कि कहीं कोई हलचल या आवाज तो नहीं है;
अगर है तो कुछ न करें।
अगर कुछ नहीं मिला, तो कमरा बुक करने वाले उपयोगकर्ता को एक चेतावनी संदेश (ईमेल के माध्यम से) भेजें, जो पूछता है कि कमरा अभी भी उपयोग में है या नहीं। जब तक उपयोगकर्ता यह घोषित नहीं करेगा कि वह अभी भी कमरे का उपयोग कर रहा है, कमरे की स्थिति "उपलब्ध" में बदल जाएगी।
* यहां, हमने जितना संभव हो सके इसे सामान्य बनाने के लिए अपने प्रोजेक्ट को Google कैलेंडर के साथ एकीकृत किया है।
चरण 1: हार्डवेयर और प्रोटोकॉल की आवश्यकता
1. हमने NOSEMCU का उपयोग किया ताकि हम वाईफ़ाई कनेक्शन का उपयोग करके चीजों को गतिशील रूप से अपडेट कर सकें।
2. माइक्रोफ़ोन सेंसर जो कमरे में शोर को "पढ़" देगा।
3. पीर सेंसर जो जांच करेगा कि कहीं कोई हलचल तो नहीं है।
सॉफ्टवेयर और सर्वर उपयोग के लिए, Arduino में कोड के अलावा, हमने अपने सिस्टम को ऑनलाइन सपोर्ट करने के लिए Google Script और Zapier का उपयोग किया। आप जोड़े गए चित्र (और पीडीएफ) में प्रवाह देख सकते हैं।
हमने ऐप्स कनेक्ट करने और अपने वर्कफ़्लोज़ (जैसे IFTTT) को स्वचालित करने के लिए Zapier का उपयोग किया और Google कैलेंडर के साथ संवाद करने में हमारी मदद करने के लिए हमने Google स्क्रिप्ट का उपयोग किया। हमने जो स्क्रिप्ट लिखी है, वह इवेंट क्रिएटर के ईमेल का निर्माण कर रही है, ताकि हम इसे थ्रो जैपियर भेज सकें और जांच कर सकें कि क्या उपयोगकर्ता ने ईवेंट को हटाने से पहले (Google पत्रक में कुछ जानकारी सहेजकर) कमरे को होल्ड करने के लिए कहा है।
चरण 2: माइक्रोफ़ोन और पीर सेंसर कनेक्ट करें
जब लोग बात कर रहे हों तो हम NODEMCU में माइक्रोफ़ोन पोस्ट के औसत मानों की जांच करना चाहते थे (स्पष्ट रूप से, हर कमरे में अलग-अलग पृष्ठभूमि शोर थे)। हमने कुछ परीक्षण किया और महसूस किया कि औसत शोर स्तर वह कमरा है जिसमें हमने काम किया है, कहीं 50 से ऊपर है।
पीर सेंसर केवल उच्च या निम्न मान देता है इसलिए हमने केवल संवेदनशीलता के स्तर की जाँच की जो हमारे द्वारा जाँचे गए कमरे के लिए सबसे सटीक है। यह गाइड काफी मददगार था।
हमारे कनेक्शन:
माइक्रोफ़ोन - जैसे चित्र में हैPIR सेंसर: GND> GND, OUT> D7, VCC> VN (5V)
चरण 3: Zapier में वर्कफ़्लो बनाएँ
यह जानने के लिए कि कमरा वास्तव में खाली है या अभी भी उपयोग में है (और उपयोगकर्ता उदाहरण के लिए ब्रेक पर हैं), हम एक ऐसा प्रवाह बनाना चाहते हैं जो इसे आश्वस्त करता है, ठीक उसके बाद NodeMCU जैपियर को एक वेबहुक फायर करता है जो सूचित करता है कि कमरा खाली है:
(१) TRIGGER - CATCH HOOKZapier Webhook को पकड़ता है (जो NODEMCU द्वारा भेजा जाएगा)
(2) क्रिया - GETZapier ईवेंट डेटा प्राप्त करने के लिए एक और वेबहुक भेजता है;> यह वर्तमान ईवेंट डेटा - ईवेंट का नाम, ईवेंट आईडी, उपयोगकर्ता ईमेल प्राप्त करने के लिए एक GoogleScript - GetCurrentEmailEventID (निम्न चरण में स्पष्टीकरण) को कॉल करता है (चलता है)।
(३) फ़िल्टर - केवल तभी जारी रखें जब
अगले चरण पर तभी आगे बढ़ें जब कैलेंडर पर वर्तमान में कोई घटना (कोई घटना) हो रही हो (कमरा व्यस्त है), अन्यथा, कमरा खाली होने पर रुक जाता है।
(4) कार्रवाई - GMAILZapier कमरा बुक करने वाले उपयोगकर्ता को जीमेल के माध्यम से एक ई-मेल भेजता है (यह जानकारी चरण 2 में मिली है)
(५) कार्रवाई - देरी के लिए उपयोगकर्ता को ईमेल का जवाब देने का समय दें।- यदि उपयोगकर्ता लिंक पर क्लिक करता है: कॉल करें (चलाएं) GoogleScript - ApproveCurrentEvent (इसलिए कमरा 'हटाने के लिए कमरे' सूची से हटा दिया गया है, और कमरा अभी भी अधिकृत के रूप में चिह्नित है।)
(६) कार्रवाई - ५ मिनट के बाद, जैपियर कॉल (चलता है) GoogleScript - DeleteCurrentEvent- यदि उपयोगकर्ता लिंक पर क्लिक नहीं करता है
जांचता है कि कमरा आईडी 'हटाने के लिए कमरे' सूची में है या नहीं
यह सिर्फ घटना को हटा देता है।
चरण 4: Google स्क्रिप्ट
जैसा कि हमने पूरे सिस्टम को एकीकृत किया, GoogleScripts एक IDE का तुच्छ विकल्प था, इस प्रकार, हमने प्रासंगिक Google लाइब्रेरी का उपयोग किया। रूम बुकिंग प्लेटफॉर्म के अनुसार बदलेगा।
(1) GetCurrentEmailEventID
वेबहुक कॉल द्वारा चलता है।
संभावित मिस-रद्दीकरण को समाप्त करने के लिए एक निश्चित ऑफ़सेट का उपयोग करना, वर्तमान ईवेंट डेटा प्राप्त करना।
(२) वर्तमान घटना को मंजूरी दें
एक उपयोगकर्ता क्लिक द्वारा चलता है।
उपयोगकर्ता की स्वीकृति के मामले में कि कमरा अभी भी उपयोग में है, ईवेंट आईडी को 'कमरे को हटाने के लिए' से हटा देता है। हमने Google शीट का उपयोग किया है, सूची का कोई अन्य रूप यहां प्रासंगिक हो सकता है।
(३) डिलीट करंटइवेंट
वेबहुक कॉल द्वारा चलता है।
सूची (गूगल शीट) में प्रासंगिक ईवेंट आईडी की खोज करता है और कैलेंडर से उस ईवेंट को हटा देता है।
चरण 5: प्रवाह को Arduino कोड से कनेक्ट करें
संलग्न कोड उन सेंसर से जुड़ता है जिन्हें हमने कुछ कदम पहले ऑनलाइन सिस्टम (हमारे मामले में Google कैलेंडर) से चेक किया था। यह जांचता है कि कमरा व्यस्त है या नहीं और यदि नहीं है, तो यह एक HTTP अनुरोध (एक वेबहुक) भेजता है जो जैपियर पर हटाने की घटना का अनुरोध शुरू करता है।
चरण 6: समीक्षा, निष्कर्ष और भविष्य की स्केलिंग
मीटिंग रूम को खाली करने का निर्णय लेते समय हमें जिस मुख्य चुनौती से निपटना था, वह सभी किनारे के मामलों को कवर करना है। फिर हमें हर संभव मामले को ध्यान में रखते हुए एक स्टेट मशीन बनानी पड़ी, ताकि कोई त्रुटि न हो और कमरा तभी उपलब्ध होगा जब उसे होना चाहिए।
उदाहरण के लिए, यदि कमरा किसी ऐसे समूह के लिए बुक किया गया है जो वर्तमान में नहीं है (उदाहरण के लिए, जो ब्रेक पर है), लेकिन फिर भी उसे इसकी आवश्यकता है, तो NODEMCU यह पता लगाएगा कि कमरा मुफ़्त है > समस्या।
फिर, हमारा समाधान उस उपयोगकर्ता को ईमेल करना था जिसने कमरा बुक किया था (जिसका पता लगाना आसान नहीं था) एक संदेश जो कमरे को पकड़े रहने का विकल्प प्रदान करता है।
यदि उपयोगकर्ता ने किसी निश्चित समय में उत्तर नहीं दिया (हम इसे 5 मिनट के लिए सेट करते हैं, लेकिन इसे आसानी से बदला जा सकता है), तो हम कैलेंडर से ईवेंट को हटा देते हैं (और कमरा खाली कर देते हैं)।
इस तरह, हम अंततः सभी संभावित परिदृश्यों को संभालने और एक कार्य प्रणाली बनाने में सफल रहे।
हमारी प्रणाली सीमाएं:
1. उपयोग किए गए सेंसर बहुत सटीक और संवेदनशील होने चाहिए।
2. कमरे का आकार सेंसर की त्रिज्या/सीमा तक सीमित है।
3. हमें उपयोगकर्ता की प्रतिक्रिया पर निर्भर रहना होगा।
4. हमारा सिस्टम कई प्लेटफॉर्म (Google कैलेंडर, जीमेल, जैपियर आदि) का उपयोग करके बनाया गया है और प्रदर्शन करने के लिए उनकी सेवा का उपयोग करना होगा।
5. इस सेवा को कई कमरों (पूरे सिस्टम के दोहराव के बजाय) के लिए स्केल करने के लिए रूम आईडी के साथ एक अतिरिक्त हैंडलिंग की आवश्यकता होगी।
6. सिस्टम केवल स्वचालित है और कमरे की बुकिंग रद्द करने के लिए कोई मैन्युअल विकल्प नहीं है।
भविष्य में होने वाली घटनाक्रम:
हम निश्चित रूप से सिस्टम को दो तरह से बढ़ाएंगे:
1. किसी भी अन्य कैलेंडर प्लेटफॉर्म के साथ काम करने की क्षमता (ताकि कोई भी को-वर्किंग स्पेस कंपनी इसका इस्तेमाल कर सके)।
2. कई कमरों, फर्शों और साइटों को संभालने की क्षमता।
हम मानते हैं कि इस तरह के पैमाने को सामान्य बनाने, परीक्षण करने और कई कमरों (फर्श आदि) की सुविधा को जोड़ने में 2-3 महीने लगेंगे।
इसके अलावा, असीमित मात्रा में धन और संसाधनों का उपयोग करके हम एक बड़ी रेंज के साथ बेहतर सेंसर का उपयोग करेंगे, साथ ही उन्हें निर्दिष्ट कमरे में अनुकूलित करने के साथ-साथ रेंज, त्रिज्या, सेंसर की मात्रा इत्यादि पर विचार करेंगे। एक कदम जो प्रत्येक सिस्टम को लंबे समय तक स्थापित करेगा, स्पष्टतः।
सिफारिश की:
एलेक्सा और रास्पबेरी पाई के साथ लिविंग रूम को नियंत्रित करें: 12 कदम
एलेक्सा और रास्पबेरी पाई के साथ लिविंग रूम को नियंत्रित करें: एलेक्सा (अमेज़ॅन इको या डॉट) और रास्पबेरी पाई जीपीआईओ के साथ अपने लिविंग रूम टीवी, लाइट्स और फैन को नियंत्रित करें
माइक्रोबिट रूम ऑक्यूपेंसी काउंटर और कंट्रोलर: 4 कदम
माइक्रोबिट रूम ऑक्यूपेंसी काउंटर और कंट्रोलर: महामारी के दौरान, वायरस के संचरण को कम करने का एक तरीका लोगों के बीच शारीरिक दूरी को अधिकतम करना है। कमरों या दुकानों में, यह जानना उपयोगी होगा कि किसी भी समय कितने लोग संलग्न स्थान में हैं। यह परियोजना एक जोड़ी का उपयोग करती है
एस्केप रूम Arduino: 6 कदम (चित्रों के साथ)
एस्केप रूम Arduino: यह प्रोजेक्ट एक एस्केप रूम प्रोटोटाइप बनाने के बारे में है, जिसमें arduino por इलेक्ट्रॉनिक घटकों का उपयोग किया गया है, जो इसके कोडिंग का एक बुनियादी ज्ञान है। इस एस्केप रूम में कवर करने के लिए 5 चरण होंगे: (यह सभी के लिए अलग हो सकता है) 1. प्रेशर सेंसर - LEDएक बार जब आप
हैंड्स फ्री रूम लाइट्स कंट्रोल: 10 कदम
हैंड्स फ्री रूम लाइट्स कंट्रोल: जैसा कि फिल्म "मिशन इम्पॉसिबल" कहते हैं " हताश समय हताश उपायों की मांग करता है " मेरे भाई जो १०वीं कक्षा में हैं, उन्हें स्विच का उपयोग करने के बजाय फोन का उपयोग करके रसोई की रोशनी को नियंत्रित करने का विचार आया और इसका कारण
नेक्स्टियन टचस्क्रीन आउटलुक कैलेंडर मीटिंग रिमाइंडर: 6 कदम
नेक्स्टियन टचस्क्रीन आउटलुक कैलेंडर मीटिंग रिमाइंडर: इस प्रोजेक्ट को शुरू करने का कारण यह था कि कई बार मैं मीटिंग्स से चूक जाता था और मुझे लगता था कि मुझे एक बेहतर रिमाइंडर सिस्टम की जरूरत है। भले ही हम माइक्रोसॉफ्ट आउटलुक कैलेंडर का उपयोग करते हैं लेकिन मैंने अपना अधिकांश समय उसी कंप्यूटर पर लिनक्स/यूनिक्स पर बिताया। साथ काम करते हुए