विषयसूची:

NodeMCU (Arduino), Google Firebase और Laravel का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन: 4 चरण (चित्रों के साथ)
NodeMCU (Arduino), Google Firebase और Laravel का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन: 4 चरण (चित्रों के साथ)

वीडियो: NodeMCU (Arduino), Google Firebase और Laravel का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन: 4 चरण (चित्रों के साथ)

वीडियो: NodeMCU (Arduino), Google Firebase और Laravel का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन: 4 चरण (चित्रों के साथ)
वीडियो: Employee Attendance Monitoring System using Face Recognition 2024, नवंबर
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase और Laravel. का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन
NodeMCU (Arduino), Google Firebase और Laravel. का उपयोग करके रीयलटाइम इवेंट नोटिफिकेशन

क्या आप चाहते हैं कि आपकी वेबसाइट पर कोई कार्रवाई होने पर आपको सूचित किया जाए लेकिन ईमेल सही नहीं है? क्या आप हर बार बिक्री करते समय एक ध्वनि या घंटी सुनना चाहते हैं? या घर पर किसी आपात स्थिति के कारण आपको तत्काल ध्यान देने की आवश्यकता है?

यह उपकरण आपको वास्तविक समय में आपकी पसंद की किसी भी चीज़ के बारे में सचेत कर सकता है।

चरण 1: सर्किट को तार दें

सर्किट ऊपर तार
सर्किट ऊपर तार
सर्किट ऊपर तार
सर्किट ऊपर तार

मेरे द्वारा बनाई गई डिवाइस में एक वेबसाइट पर की गई बिक्री के बारे में मुझे सचेत करने के लिए एक बजर के साथ एक NodeMCU बोर्ड होता है। माइक्रोकंट्रोलर को Arduino सॉफ़्टवेयर का उपयोग करके प्रोग्राम किया जाता है और ट्रिगर करने वाला हिस्सा कोई भी वेब, iOS या Android एप्लिकेशन हो सकता है। मैंने दो सरल वेब एप्लिकेशन बनाए हैं, एक लारवेल में और दूसरा सादे HTML और जावास्क्रिप्ट में उदाहरण के लिए।

चूंकि NodeMCU बोर्ड पिन पर लगभग 12mA करंट तक सुरक्षित रूप से काम कर सकता है, बजर एक NPN ट्रांजिस्टर के माध्यम से जुड़ा होता है। मैंने 2N2222 का उपयोग किया है क्योंकि मेरे पास उनमें से कई बिछाए गए हैं, लेकिन मुझे यकीन है कि सिद्धांत किसी भी अन्य NPN ट्रांजिस्टर के साथ समान होगा।

सर्किट को तार करने के लिए, ट्रांजिस्टर के कलेक्टर को बोर्ड पर विन पिन से कनेक्ट करें। बजर 5V पर काम करता है और चूंकि हम USB से डिवाइस को पावर देने वाले हैं, यह पिन हमें बोर्ड पर 3.3V रेगुलेटर से पहले वोल्टेज देगा।

इसके बाद ट्रांजिस्टर के एमिटर पर बजर के सकारात्मक पक्ष को और बजर के नकारात्मक पिन को बोर्ड के किसी भी ग्राउंड पिन से कनेक्ट करें। मैंने पिन 2 का उपयोग किया है, लेकिन आप इसे पिन 9, 25 या 29 पर भी कनेक्ट कर सकते हैं।

ट्रांजिस्टर का आधार पिन D2 से जुड़ा है जो Arduino सॉफ़्टवेयर पर GPIO 4 से संबंधित है। इस सेटअप के साथ, ट्रांजिस्टर प्रत्येक घटना पर बजर को चालू करने वाले स्विच के रूप में प्रभावी ढंग से कार्य करेगा। बजर के बजाय आप एक रिले को उसी तरह से कनेक्ट कर सकते हैं जैसे कि आप किसी भी मुख्य उपकरण जैसे कि लाइट बल्ब, मशीन या सायरन को चलाने में सक्षम हो सकते हैं यदि आप कोई अलार्म डिवाइस बना रहे हैं।

चरण 2: वेब ऐप्स तैयार करें

वेब ऐप्स तैयार करें
वेब ऐप्स तैयार करें
वेब ऐप्स तैयार करें
वेब ऐप्स तैयार करें
वेब ऐप्स तैयार करें
वेब ऐप्स तैयार करें

डिवाइस के ट्रिगरिंग और रीयल टाइम पार्ट के लिए, हम Google के फायरबेस रीयलटाइम डेटाबेस का उपयोग करेंगे। यह Google द्वारा बनाया गया एक अद्भुत NoSQL क्लाउड डेटाबेस है जो उपयोग किए जा रहे प्रत्येक प्लेटफ़ॉर्म के बीच रीयल टाइम डेटा सिंक्रोनाइज़ेशन प्रदान करता है।

पहले अपनी पसंद के नाम से प्रोजेक्ट बनाएं। एक बार बनाने के बाद, "गिनती" नामक एक नोड बनाएं और इसे 0 के मान के साथ आरंभ करें। यह हमारी प्रारंभिक गणना होगी जिसे हम भविष्य में पालन करना चाहते हैं।

लारवेल एप्लिकेशन क्रेइट से "फायरबेस-पीएचपी" पैकेज का उपयोग करता है, और यह नीचे से जुड़ा हुआ है। "संगीतकार को kreait/firebase-php की आवश्यकता है" चलाकर पैकेज स्थापित करें। एक बार इंस्टॉलेशन हो जाने के बाद, हमें कंट्रोलर बनाने की जरूरत है जहां कार्रवाई होगी। मैंने विधि को "अपडेट" नाम दिया है और मैंने इसे POST क्रिया पर मार्गों में जोड़ा है।

फायरबेस इंस्टेंस को पुनः प्राप्त करने के लिए आपको एक जेसन फ़ाइल की आवश्यकता होती है जिसे आपको अपने फायरबेस कंसोल से डाउनलोड करने की आवश्यकता होती है। इस फ़ाइल को अपने Laravel प्रोजेक्ट के रूट में रखें और इसे firebase.json नाम दें। फायरबेस इंस्टेंस को पुनर्प्राप्त करते समय, हमें withCredentials विधि का उपयोग करके इस फ़ाइल को पथ प्रदान करने की आवश्यकता होती है।

फायरबेस इंस्टेंस मिलने के बाद, हमें डेटाबेस और उस नोड का संदर्भ प्राप्त करने की आवश्यकता है जिसे हमने पहले बनाया है। प्रत्येक क्रिया पर, हम नोड का वर्तमान मान प्राप्त करेंगे, इसे एक से बढ़ाएंगे और डेटाबेस में वापस सहेजेंगे। यह हमारी घटनाओं का ट्रैक रखेगा जिनके बारे में हमें सूचित करने की आवश्यकता है।

प्रदान की गई फायरबेस लाइब्रेरी का उपयोग करके इसे सादे HTML और जावास्क्रिप्ट के साथ प्राप्त किया जा सकता है। इसके साथ हमें सबसे पहले फ़ायरबेस कंसोल से उपयुक्त सेटिंग्स के साथ कॉन्फिग ऐरे प्रदान करने और ऐप को इनिशियलाइज़ करने की आवश्यकता है। एक बार इनिशियलाइज़ होने के बाद, हमें उस नोड का संदर्भ मिलता है जहाँ हम ईवेंट काउंट को स्टोर करते हैं और किसी भी मूल्य परिवर्तन को पुनः प्राप्त करने के लिए एक श्रोता को संलग्न करते हैं।

इसके अतिरिक्त, लारवेल उदाहरण के रूप में फॉर्म जमा करने के बजाय, अब हमारे पास एक जावास्क्रिप्ट फ़ंक्शन है जिसे बटन क्लिक पर कॉल किया जा रहा है, गिनती को अपडेट करता है और अद्यतन मूल्य को डेटाबेस में वापस लिखता है।

चरण 3: NodeMCU बोर्ड को प्रोग्राम करें

NodeMCU बोर्ड प्रोग्राम करें
NodeMCU बोर्ड प्रोग्राम करें
NodeMCU बोर्ड प्रोग्राम करें
NodeMCU बोर्ड प्रोग्राम करें
NodeMCU बोर्ड प्रोग्राम करें
NodeMCU बोर्ड प्रोग्राम करें

NodeMCU को प्रोग्राम करने के लिए, मैंने Arduino सॉफ़्टवेयर का उपयोग किया है और बोर्ड को स्थापित करने के बाद मैंने उचित संस्करण और पोर्ट का चयन करना सुनिश्चित किया ताकि मैं सॉफ़्टवेयर अपलोड कर सकूं। मेरा संस्करण 1.0 है इसलिए आगे बढ़ने से पहले अपने बोर्ड से दोबारा जांच लें।

Arduino कोड का पहला भाग, सभी आवश्यक परिभाषाएँ सेट करता है जिन्हें आपको अपने डिवाइस पर समायोजित करने की आवश्यकता होगी। इस तरह की पहली सेटिंग वाईफाई का एसएसआईडी और उसका पासवर्ड है, फिर हमें फायरबेस यूआरएल और फायरबेस डीबी सीक्रेट सेटअप करने की जरूरत है। दुर्भाग्य से, यह डेटाबेस से जुड़ने का अनुशंसित तरीका नहीं है, लेकिन अभी तक यह एकमात्र तरीका है जिससे पुस्तकालय इसका समर्थन करता है। आप इस रहस्य को फायरबेस कंसोल में प्रोजेक्ट सेटिंग्स, सर्विस अकाउंट्स मेनू के तहत पा सकते हैं।

अगली परिभाषा वह पथ है जिसे हम अपडेट और डिवाइस आईडी के लिए जांचेंगे। डिवाइस आईडी की आवश्यकता है, इसलिए यदि हमारे पास एक ही घटना के बारे में सूचित करने के लिए कई उपकरण हैं, तो हमें यह जानना होगा कि किस उपकरण ने हमें घटना के लिए सूचित किया और उसका रिकॉर्ड रखा। आखिरी में हमें उस पिन को सेटअप करना होगा जिस पर हमने बजर कनेक्ट किया है और यह हमारे मामले में डी 2 है।

सेटअप फ़ंक्शन बिल्ट इन एलईडी पिन और डी 2 पिन को आउटपुट के रूप में परिभाषित करता है, यह जानने के लिए सीरियल संचार शुरू करता है कि क्या हो रहा है और निर्दिष्ट वाईफाई नेटवर्क से जुड़ता है। एक बार कनेक्शन स्थापित हो जाने के बाद, यह फायरबेस के साथ संचार शुरू करता है और हमारे द्वारा रिपोर्ट किया गया अंतिम मूल्य प्राप्त करता है। यह तब निर्दिष्ट पथ पर परिवर्तनों को सुनना शुरू करता है।

मुख्य लूप में, ब्लिंक फ़ंक्शन के लिए एक कॉल होती है जो 500 मिलीसेकंड के लिए अंतर्निहित एलईडी को ब्लिंक करती है ताकि हम यह बता सकें कि डिवाइस सक्रिय है। जब एक परिवर्तन का पता चलता है और उपलब्ध डेटा होता है जिसे हम उपलब्ध फ़ंक्शन के साथ पढ़ सकते हैं, नोड का नया मान पढ़ा जा रहा है, अंतर की गणना की जाती है क्योंकि इस बीच कई घटनाएं हो सकती हैं और हर बार एक बीप उत्पन्न होती है अंतर का।

उदाहरण के लिए, यदि अंतिम रिपोर्ट किए गए मान और नए मान के बीच का अंतर 4 है, तो आपको यह बताने के लिए 4 बीप का उत्पादन किया जाएगा कि 4 नई खरीदारी की गई थी। बीप फ़ंक्शन एक निर्धारित अवधि के लिए बजर के माध्यम से एक निर्दिष्ट आवृत्ति को चलाने के लिए अंतर्निहित टोन फ़ंक्शन का उपयोग करता है।

बीप उत्पन्न होने के बाद, निर्दिष्ट डिवाइस के लिए नया मान अपडेट किया जाता है और स्ट्रीमिंग फिर से शुरू हो जाती है। वर्तमान में arduino फायरबेस लाइब्रेरी पर एक खुला मुद्दा है कि जब हम मैन्युअल रूप से किसी मान को सहेजते हैं तो स्ट्रीमिंग स्वचालित रूप से जारी नहीं रहती है इसलिए हमें इसे पुनरारंभ करने की आवश्यकता होती है।

चरण 4: अपने डिवाइस का आनंद लें

अपने डिवाइस का आनंद लें!
अपने डिवाइस का आनंद लें!

मेरे द्वारा उपयोग किया गया पूरा कोड परियोजना के योजनाबद्ध लिंक के साथ नीचे लिंक किए गए मेरे GitHub खाते पर उपलब्ध है।

सोर्स कोड

ढांच के रूप में

कोड को कई अलग-अलग परिदृश्यों और घटनाओं के लिए काम करने के लिए आसानी से अपनाया जा सकता है और मुझे यकीन है कि आपको इसके साथ खेलने में बहुत मज़ा आएगा।

मेरे लिए यह वास्तव में एक मजेदार निर्माण था और मैं इस पर काफी कुछ सीखने में कामयाब रहा और इसके लिए मैं वास्तव में खुश हूं। मुझे उम्मीद है कि यह आपकी परियोजना में आपकी मदद कर सकता है, लेकिन अगर आप खुद को इसके किसी हिस्से में फंसा हुआ पाते हैं या आपको कुछ और स्पष्टीकरण की आवश्यकता है, तो कृपया मुझे टिप्पणियों में बताएं और मैं आपकी मदद करने की पूरी कोशिश करूंगा।

अगर आपको प्रोजेक्ट पसंद आया तो कृपया मेरे YouTube चैनल को सब्सक्राइब करें:

कोड का स्वाद लें

सिफारिश की: