ESP32 मॉड्यूल का उपयोग करके स्मार्ट होम ऑटोमेशन सिस्टम कैसे बनाएं?

इस आधुनिक युग में, होम ऑटोमेशन की अवधारणा बड़ी तेजी से बढ़ रही है। लगभग हर जगह स्मार्ट सिस्टम लगाए जा रहे हैं। स्मार्ट होम सिस्टम एक अवधारणा है जिसमें सभी बिजली के उपकरणों या उपकरणों को एकल रिमोट कंट्रोल का उपयोग करके नियंत्रित किया जाता है। इन प्रणालियों में, अधिकांश समय, रिमोट कंट्रोल एक मोबाइल एप्लिकेशन है। चूंकि लोगों के बीच एंड्रॉइड मोबाइल सबसे आम है, इसलिए इन सभी उपकरणों को नियंत्रित करने के लिए एक एंड्रॉइड एप्लिकेशन सबसे अच्छा विकल्प है।



घर स्वचालन

इसलिए इस परियोजना में, हम घर के कुछ विद्युत उपकरणों को रिले मॉड्यूल से जोड़ने जा रहे हैं और इसे ESP32 माइक्रोकंट्रोलर के माध्यम से नियंत्रित करते हैं। हम एक फायरबेस रियलटाइम डेटाबेस बनाएंगे और इसे एंड्रॉइड ऐप से कनेक्ट करेंगे। यह एंड्रॉइड ऐप डेटा को क्लाउड पर भेज देगा और फिर इसे इलेक्ट्रिकल उपकरण को चालू या बंद करने के लिए माइक्रोकंट्रोलर को भेजा जाएगा। सबसे अच्छी बात यह है कि आप दुनिया में कहीं से भी अपने उपकरणों की अदला-बदली पर पूर्ण नियंत्रण रख सकते हैं। Android एप्लिकेशन को संचालित करने के लिए आपको बस इंटरनेट कनेक्शन की आवश्यकता है।



वाईफाई के माध्यम से घरेलू उपकरणों को कैसे नियंत्रित करें?

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



चरण 1: घटकों को एकत्रित करना

किसी भी परियोजना को शुरू करने के लिए सबसे अच्छा तरीका है घटकों की एक सूची बनाना और इन घटकों के एक संक्षिप्त अध्ययन से गुजरना क्योंकि कोई भी केवल एक लापता घटक के कारण किसी परियोजना के बीच में चिपकना नहीं चाहेगा। इस परियोजना में हम जिन घटकों का उपयोग करने जा रहे हैं, उनकी एक सूची नीचे दी गई है:



  • ESP32
  • ब्रेड बोर्ड
  • तारों को जोड़ना

चरण 2: घटकों का अध्ययन

अब जैसा कि हम इस परियोजना के सार को जानते हैं, आइए हम एक कदम आगे बढ़ते हैं और उन मुख्य घटकों के काम का एक संक्षिप्त अध्ययन करते हैं जो हम उपयोग करने जा रहे हैं।

ESP32 एक कम-शक्ति और कम लागत वाला माइक्रोकंट्रोलर बोर्ड है जिसमें एक अंतर्निहित वाईफाई और एक दोहरे मोड ब्लूटूथ मॉड्यूल है। यह माइक्रोकंट्रोलर बोर्ड द्वारा बनाया और विकसित किया गया है एस्प्रेसिफ सिस्टम । इस बोर्ड में बिल्ट-इन पावर एम्पलीफायरों, कम अच्छे प्राप्त एम्पलीफायरों, फिल्टर और एंटीना स्विच हैं। यह एक एंड्रॉइड डेटा केबल द्वारा संचालित है और आउटपुट पर 3.3V तक प्रदान कर सकता है। ESP32 टीसीपी / आईपी, पूर्ण 802.11 b / g / n / e / I WLAN मैक सम्मेलन, और वाई-फाई डायरेक्ट विशेष रूप से निष्पादित करता है। इसका मतलब है कि ESP 32 स्टेशन (क्लाइंट) मोड में उपयोग किए जाने पर वाईफाई राउटर के एक बड़े हिस्से को संबोधित कर सकता है। इसी तरह, यह पूर्ण 802.11 b / g / n / e / I के साथ एक एक्सेस प्वाइंट बना सकता है। ESP32 सबसे हाल ही में BLE ब्लूटूथ 4.2 को कम नहीं करता है, यह इसके अलावा महान ब्लूटूथ को टक्कर देता है। इसका तात्पर्य है कि यह पुराने और नए ब्लूटूथ टेलीफोन / टेबल को संबोधित कर सकता है। यदि आपके पास ESP32 मॉड्यूल नहीं है, तो आप ESP8266 या एक नोड MCU का भी उपयोग कर सकते हैं। इन बोर्डों का उपयोग उसी कार्य को करने के लिए किया जा सकता है यदि वे वाईफाई से जुड़े हैं।

ESP32



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

रिले मॉड्यूल सर्किट को असेंबल करना

चरण 3: आरेख ब्लॉक करें

खंड आरेख

उपरोक्त ब्लॉक आरेख में, इस परियोजना के प्रवाह को दिखाया गया है। रिले घर के बिजली के उपकरणों या उपकरणों से जुड़े होते हैं। एक मोबाइल एप्लिकेशन एक भेज देगा पर या बंद डेटाबेस को कमांड। यह क्लाउड WiFi के माध्यम से ESP32 माइक्रोकंट्रोलर बोर्ड से जुड़ा है। इलेक्ट्रॉनिक डिवाइस को चालू करने के लिए, हम डेटाबेस में '1' भेजेंगे और इसे बंद करने के लिए हम डेटाबेस में '0' भेजेंगे। यह आदेश तब माइक्रोकंट्रोलर द्वारा प्राप्त किया जाएगा क्योंकि यह डेटाबेस से भी जुड़ा हुआ है। इस 0 या 1 के आधार पर, माइक्रोकंट्रोलर रिले मॉड्यूल को चालू या बंद कर देगा, जिसके परिणामस्वरूप अंततः बिजली के उपकरणों को स्विच किया जाएगा।

तो यहाँ, इस लेख में, मैं आपको पूरी प्रक्रिया दिखाने के लिए दो रिले मॉड्यूल का उपयोग करूंगा। लेकिन आप बड़ी संख्या में बिजली के घरेलू उपकरणों को नियंत्रित करना चाहते हैं, तो आप अपने कार्यक्रम में रिले की संख्या बढ़ा सकते हैं और कोड का एक ही हिस्सा जोड़ सकते हैं।

चरण 4: अवयवों को असेंबल करना

अब जैसा कि हमारे पास इस परियोजना में हम क्या करना चाहते हैं, इसकी स्पष्ट दृष्टि है, हमें कोई और समय बर्बाद नहीं करना चाहिए और घटकों को इकट्ठा करना शुरू करना चाहिए।

  1. ब्रेडबोर्ड लें और उसमें ईएसपी 32 माइक्रोकंट्रोलर को ठीक करें। अब दो रिले मॉड्यूल लें और समानांतर में ईएसपी 32 माइक्रोकंट्रोलर बोर्ड के विन और ग्राउंड को वीसीसी और मॉड्यूल के ग्राउंड को कनेक्ट करें। कनेक्ट करें में पिन ईएसपी 32 बोर्ड के पिन 34 और पिन 35 के रिले मॉड्यूल। आप देखेंगे कि अब रिले चालू हैं।
  2. घरेलू उपकरणों को रिले मॉड्यूल से कनेक्ट करें। सुनिश्चित करें कि आपके कनेक्शन चरण 2 में दिए गए कनेक्शन से मेल खाते हैं।

अब जैसे कि हमने अपने सिस्टम के हार्डवेयर पार्ट को कनेक्ट किया। हम एक एंड्रॉइड एप्लिकेशन विकसित करेंगे जो फायरबेस डेटाबेस से जुड़ा होगा। हम इस लेख के भाग 2 में डेटाबेस और Android आवेदन करेंगे।

चरण 5: ईएसपी 32 के साथ शुरुआत करना

यदि आपने पहले Arduino IDE पर काम नहीं किया है, तो चिंता न करें क्योंकि Arduino IDE को सेट करने के लिए चरण दर चरण नीचे दिखाया गया है।

  1. से Arduino IDE का नवीनतम संस्करण डाउनलोड करें Arduino।
  2. अपने Arduino बोर्ड को पीसी से कनेक्ट करें और कंट्रोल पैनल खोलें। पर क्लिक करें हार्डवेयर और ध्वनि। अब खोलो डिवाइस और प्रिंटर और उस पोर्ट को ढूंढें जिससे आपका बोर्ड जुड़ा हुआ है। मेरे मामले में यह है COM14 लेकिन यह अलग-अलग कंप्यूटरों में अलग है।

    पोर्ट ढूँढना

  3. File पर क्लिक करें और फिर Preferences पर क्लिक करें। निम्नलिखित लिंक को कॉपी करें अतिरिक्त बोर्ड प्रबंधक का URL ' https://dl.espressif.com/dl/package_esp32_index.json '

    पसंद

  4. अब, Arduino IDE के साथ ESP32 का उपयोग करने के लिए, हमें विशेष पुस्तकालयों को आयात करने की आवश्यकता है जो हमें ESP32 पर कोड को जलाने और इसका उपयोग करने की अनुमति देगा। ये दोनों लाइब्रेरी नीचे दिए गए लिंक से जुड़ी हुई हैं। पुस्तकालय, गोटो को शामिल करने के लिए स्केच> लाइब्रेरी शामिल करें> ज़िप लाइब्रेरी जोड़ें । एक बॉक्स दिखाई देगा। अपने कंप्यूटर पर ज़िप फ़ोल्डर ढूंढें और फ़ोल्डर्स शामिल करने के लिए ठीक क्लिक करें।

    लाइब्रेरी शामिल करें

  5. अब गोटो स्केच> लाइब्रेरी शामिल करें> लाइब्रेरी प्रबंधित करें।

    पुस्तकालयों का प्रबंधन करें

  6. एक मेनू खुल जाएगा। सर्च बार में टाइप करें अरुडिनो जेन्सन। एक सूची दिखाई देगी। इंस्टॉल बेनोइट ब्लांचन द्वारा Arduino JSON।

    अरुडिनो जेन्सन

  7. अब on पर क्लिक करें उपकरण। एक ड्रॉपडाउन मेनू दिखाई देगा। बोर्ड को सेट करें ईएसपी देव मॉड्यूल।

    बोर्ड की स्थापना

  8. टूल मेनू पर फिर से क्लिक करें और उस पोर्ट को सेट करें जिसे आपने पहले कंट्रोल पैनल में देखा था।

    पोर्ट की स्थापना

  9. अब नीचे दिए गए लिंक में संलग्न कोड अपलोड करें और ESP32 माइक्रोकंट्रोलर पर कोड को जलाने के लिए अपलोड बटन पर क्लिक करें।

    डालना

इसलिए अब जब आप कोड अपलोड करेंगे, तो एक त्रुटि हो सकती है। यह सबसे आम त्रुटि है जो तब हो सकती है यदि आप Arduino IDE और Arduino JSON के नए संस्करण का उपयोग कर रहे हैं। निम्नलिखित त्रुटियां हैं जो आप स्क्रीन पर देख सकते हैं।

C:  Users  Pro  Documents  Arduino  पुस्तकालयों  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, C से शामिल फ़ाइल में: C: के उपयोगकर्ता / Pro  Desktop  smartHome  code  code.ino: 2: C: :  Users  Pro  Documents  Arduino  पुस्तकालयों  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: एरर: StaticJsonBuffer ArduinoJson 5 से एक वर्ग है। कृपया देखें arduinojson.org/upgrad अपने प्रोग्राम को अपग्रेड करने का तरीका जानने के लिए। संस्करण 6 StaticJsonBuffer jsonBuffer; ^ C:  Users  Pro  Documents  Arduino  पुस्तकालयों  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, C से शामिल किए गए: C से  Users  Pro  Desktop  smartHome  code  code.ino: 2: 2। C:  Users  Pro  Documents  Arduino  पुस्तकालयों  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: त्रुटि: StaticJsonBuffer ArduinoJson 5. से एक वर्ग है। कृपया देखें arduinojson.org/upgrad ArduinoJson संस्करण 6 रिटर्न StaticJsonBuffer ()। ParseObject (_data); ^ 'WiFi.h' के लिए एकाधिक लाइब्रेरी का उपयोग किया गया: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  हार्डवेयर  esp32  1.0.2  पुस्तकालयों  WiFi का उपयोग नहीं किया गया: C: प्रोग्राम फ़ाइलें ( x86)  Arduino  पुस्तकालयों  WiFi फ़ोल्डर में संस्करण 1.0 में लाइब्रेरी वाईफाई का उपयोग करना: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  हार्डवेयर  esp32  1.0.2  पुस्तकालयों / वाईफाई का उपयोग पुस्तकालय IOXhop_FirebaseESP32-master फ़ोल्डर में: C:  Users  Pro  Documents  Arduino  पुस्तकालयों  IOXhop_FirebaseESP32-master (विरासत) का उपयोग कर रहा है पुस्तकालय HTTP 1.2 संस्करण में फ़ोल्डर में 1.2: C:  Users  Pro  App ata  Local  Arduino15  पैकेज  esp32  हार्डवेयर  हार्डवेयर  esp32  1.0.2  पुस्तकालयों  HTTPClient पुस्तकालय WiFiClientSecure का संस्करण 1.0 में फ़ोल्डर में उपयोग कर रहा है: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  हार्डवेयर  esp32 / 1.0.2  पुस्तकालयों  WiFiClientSecure लाइब्रेरी ArduinoJson का उपयोग करते हुए। संस्करण 6.12.0 फ़ोल्डर में: C:  Users  Pro  Documents  Arduino  पुस्तकालयों  ArduinoJson निकास स्थिति 1 बोर्ड ESP32 देव मॉड्यूल के लिए संकलन में त्रुटि।

चिंता करने की कोई बात नहीं है क्योंकि हम कुछ सरल चरणों का पालन करके इन त्रुटियों को समाप्त कर सकते हैं। ये त्रुटियां उत्पन्न हो रही हैं क्योंकि Arduino JSON के नए संस्करण की जगह एक और वर्ग है StaticJsonBuffer। यह JSON 5 का वर्ग है। इसलिए हम अपनी Arduino JE के Arduino JSON के संस्करण को डाउनग्रेड करके बस इस त्रुटि को समाप्त कर सकते हैं। बस करने के लिए जाओ स्केच> लाइब्रेरी शामिल करें> लाइब्रेरी प्रबंधित करें। निम्न को खोजें बेनोइट ब्लांचन द्वारा Arduino JSON जो आपने पहले स्थापित किया है। पहले इसे अनइंस्टॉल करें और फिर इसके संस्करण पर सेट करें 5.13.5। अब जैसा कि हमने Arduino JSON का एक पुराना संस्करण सेट किया है, इसे फिर से इंस्टॉल करें और कोड को फिर से जोड़ें। इस बार, आपका कोड सफलतापूर्वक संकलित होगा।

कोड डाउनलोड करने के लिए, क्लिक यहाँ।

चरण 6: कोड को समझना

इस परियोजना का कोड बहुत सरल है और अच्छी तरह से टिप्पणी की गई है। लेकिन फिर भी, कोड को संक्षेप में नीचे समझाया गया है।

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

#include // में स्थानीय Wifi कनेक्शन से जुड़ने के लिए लाइब्रेरी शामिल है #include // Firebase databse से कनेक्ट करने के लिए लाइब्रेरी शामिल करें #define FIREBASE_HOST 'coma-patient.firebaseio.com' - अपने फ़ायरबाइक प्रोजेक्ट का लिंक शामिल करें #define FIREBASE_AUTH 'URBDLMBD '// अपने फायरबेस प्रोजेक्ट के प्रमाणीकरण को शामिल करें #define WIFI_SSID' abcd '// अपने घर या कार्यालय के वाईफाई कनेक्शन का नाम #define WIFI_PASSWORD' abcd '// अपने घर या कार्यालय के वाईफाई कनेक्शन का पासवर्ड int r1 = 34; // पिन रिले को जोड़ने के लिए 1 int r2 = 35; // पिन रिले 2 इंट टेम्प से कनेक्ट करने के लिए; // डेटा ले जाने के लिए varabe

2। व्यर्थ व्यवस्था() एक ऐसा कार्य है जिसमें हम INPUT या OUTPUT पिन को इनिशियलाइज़ करते हैं। यह फ़ंक्शन उपयोग करके बॉड दर भी निर्धारित करता है Serial.begin () आदेश। बॉड रेट माइक्रोकंट्रोलर की संचार गति है। ESP32 को स्थानीय वाईफाई कनेक्शन से जोड़ने के लिए कोड की कुछ पंक्तियाँ यहां जोड़ी गई हैं। बोर्ड स्थानीय वाईफाई कनेक्शन से कनेक्ट करने का प्रयास करेगा और 'कनेक्शन' प्रिंट करेगा। सीरियल मॉनीटर में। कनेक्शन स्थापित होने पर यह 'कनेक्टेड' प्रिंट करेगा। इसलिए इसे मॉनिटर करने के लिए, धारावाहिक मॉनिटर को खोलना और वहां इसकी स्थिति की जांच करना बेहतर है।

शून्य सेटअप () {Serial.begin (115200); // बॉड दर की स्थापना // वाईफाई से कनेक्ट करें। WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ( 'जोड़ने'); जबकि (WiFi.status ()! = WL_CONNECTED) {Serial.print ('।'); देरी (500); } Serial.println (); सीरियल.प्रिंट ('कनेक्टेड:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3। शून्य लूप () एक फ़ंक्शन है जो एक लूप में बार-बार चलता है। इस लूप में, हम एक कोड लिखते हैं जो माइक्रोकंट्रोलर बोर्ड को बताता है कि क्या कार्य करना है और कैसे। हमने इसके विरुद्ध डेटा प्राप्त किया है रोशनी तथा एसी डेटाबेस से और दो अस्थायी चर में संग्रहीत। फिर डेटाबेस से प्राप्त 0 या 1 के अनुसार दो उपकरणों को स्विच करने के लिए चार शर्तें लागू की जाती हैं।

शून्य लूप () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // प्रकाश temp2 = Serial.println (Firebase.getFloat ('AC')) के स्वाटचिंग के लिए मान प्राप्त करें; // फैन देरी (1000) के स्विचिंग के लिए वाएउ प्राप्त करें; if (temp1 == 1 && temp2 == 1) {// प्रकाश और पंखे को चालू करने के लिए digitalWrite (r1, HIGH); digitalWrite (r2, उच्च); } if (temp1 == 0 && temp2 == 1) {// पंखा चालू करने के लिए और लाइट डिजिटलवर्ट बंद करें (r1, LOW); digitalWrite (r2, उच्च); } अगर (temp1 == 1 && temp2 == 0) {// पंखा बंद करने के लिए और लाइट डिजिटलवेट (आर 1, हाई) चालू करें; digitalWrite (r2, कम); } if (temp1 == 0 && temp2 == 0) {// पंखा बंद करने के लिए और लाइट डिजिटलवर्ट बंद करें (r1, LOW); digitalWrite (r2, कम); }}

यह भाग एक था 'ESP32 का उपयोग करके स्मार्ट होम सिस्टम कैसे बनाएं?' आप अधिक रिले मॉड्यूल जोड़ सकते हैं यदि आप कुछ और घरेलू उपकरणों को नियंत्रित करना चाहते हैं, तो केवल एक चीज जो आपको करने की आवश्यकता है वह है फायरबेस से डेटा को पढ़ना और स्विचिंग के लिए कुछ और शर्तें जोड़ना। अगले लेख में, मैं समझाऊंगा कि एंड्रॉइड एप्लिकेशन और फायरबेस डेटाबेस कैसे विकसित किया जाए। मैं एंड्रॉइड ऐप को फायरबेस से कनेक्ट करने और इसे डेटा भेजने के लिए चरण प्रक्रिया द्वारा चरण समझाऊंगा।

अगले ट्यूटोरियल में जाने के लिए यहाँ क्लिक करें