DIY: अपने घर के लिए एक स्मार्टलॉक बनाना जो केवल आपके स्मार्टफोन के साथ खुलता है

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



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

स्वचालित डोरलॉक



किसी भी समय को बर्बाद किए बिना, आइए महत्वपूर्ण अवधारणाओं का अध्ययन शुरू करें और इस परियोजना पर काम करें।



Android संचालित स्मार्टलॉक कैसे बनाएं?

चरण 1: घटकों को इकट्ठा करना

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



  • ESP32
  • जम्पर तार
  • सर्वो मोटर
  • शिकंजा
  • लॉक
  • छेदन यंत्र

चरण 2: ऐप बनाना

जैसा कि हम एक स्मार्ट लॉक बनाने जा रहे हैं जो एक मोबाइल फोन द्वारा संचालित किया जाएगा, हमें एक एंड्रॉइड ऐप विकसित करना होगा जिसमें एक बटन होगा। उस बटन को दबाकर हम स्मार्ट लॉक को खोल या बंद कर सकेंगे। पहले, हमने कई विकसित किए हैं Android अनुप्रयोग। हमने पहले ही एक एप्लिकेशन विकसित किया है जिसमें केवल एक बटन है। इस बटन का उपयोग डेटाबेस में डेटा भेजने के लिए किया जाता है। यदि database 1 ’को फायरबेस डेटाबेस में धकेल दिया जाता है, तो स्विच लॉक खुल जाएगा और यदि’ 0 ’को उस डेटाबेस में धकेल दिया जाता है, तो लॉक बंद हो जाएगा।

कृपया हमारे नाम का लेख देखें अपने पीसी के लिए एक वायरलेस ऑन / ऑफ स्विच स्विच बनाना स्मार्ट लॉक को संचालित करने के लिए उपयोग किए जाने वाले अपने स्वयं के एंड्रॉइड एप्लिकेशन को विकसित करने के लिए मदद लेना

चरण 3: घटकों को असेंबल करना

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



सर्वो मोटर लें और इसके Vcc और ग्राउंड को क्रमशः ESP बोर्ड के Vcc और ग्राउंड से कनेक्ट करें। अपने इमदादी मोटर के PWM पिन को अपने 34 के पिन से कनेक्ट करें ईएसपी 32 बोर्ड । अब देखें कि इमदादी मोटर पर गियर-प्रकार का नॉब है। इसे घुमाकर लॉक के हैंडल को बाहर निकालें और कुछ चिपकने की मदद से लॉक में गियर मोटर की नॉब को ठीक करें।

अब, ड्रिल मशीन की मदद से, दरवाजे पर कुछ छेद ड्रिल करें जहां आप इस स्मार्ट लॉक को रखना चाहते हैं। सुनिश्चित करें कि आप छेद को इस तरह से ड्रिल करते हैं कि लॉक के छेद दरवाजे में छेद को ओवरलैप करते हैं, जिससे स्क्रू को ठीक करने का रास्ता बनता है।

चरण 4: कार्य करना

जैसा कि अब हम इस परियोजना के पीछे के मुख्य विचार को जानते हैं, आइए समझते हैं कि यह परियोजना कैसे काम करने वाली है।

ESP32 इस परियोजना का दिल है। एक सर्वो मोटर इस बोर्ड से जुड़ा है और इस माइक्रोकंट्रोलर का फायरबेस डेटाबेस से कनेक्शन है। जब एप्लिकेशन को लॉक खोलने के लिए बटन दबाया जाता है, तो is 1 ’को फायरबेस डेटाबेस में धकेल दिया जाता है और जब लॉक को बंद करने के लिए बटन दबाया जाता है, तो’ 0 ’को फायरबेस डेटाबेस में धकेल दिया जाता है। ईएसपी बोर्ड फायरबस डेटाबेस में इस मान को लगातार पढ़ रहा है। जब तक 0 है, ईएसपी 32 सर्वो मोटर को अपनी प्रारंभिक स्थिति में रहने के लिए निर्देशित करेगा। जैसे ही 1 फायरबेस में आता है, ईएसपी बोर्ड इसे पढ़ेगा और सर्वो मोटर को एक घुमाव बनाने के लिए कहेगा जो लॉक खोल देगा।

चरण 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. कोड की शुरुआत में, हम तीन पुस्तकालयों को शामिल करेंगे। पहला ESP बोर्ड पर Wifi को सक्षम करना है, दूसरा ESP को इमदादी मोटर का उपयोग करने के लिए सक्षम करना है और तीसरा ESP बोर्ड को फायरबेस डेटाबेस से जोड़ना है। उसके बाद, हम कोड में फायरबेस होस्ट, प्रमाणीकरण, हमारे स्थानीय इंटरनेट कनेक्शन का नाम और इसका पासवर्ड जोड़ देंगे। ऐसा करने के बाद, सर्वो मोटर का उपयोग करने के लिए एक ऑब्जेक्ट बनाएं।

#include // WiFi का उपयोग करने के लिए लाइब्रेरी शामिल करें #include // में इमदादी मोटर के लिए लाइब्रेरी शामिल करें #include // पुस्तकालय में शामिल करें Firebase से कनेक्ट करने के लिए #define FIREBASE_HOST 'xxxxxxxxxx' // अपने xxxbase होस्ट द्वारा xxxxxxxxxx को बदलें यहाँ #define FIREBASE_AUTH 'xxxxxxx / xxxxxxxxxx को अपने फायरबेस प्रमाणीकरण द्वारा यहाँ बदलें #define WIFI_SSID 'xx कोड, xxxxxxxx' // हमारे XXX कनेक्शन #define WIFI -PASSWORD 'xxxxxxxxxx' // की जगह xxxxxxxxxx को अपने wifi पासवर्ड सर्वो मास्को के नाम से बदलें। // सर्वो मोटर int pos = 0 के लिए ऑब्जेक्ट बनाएं; // चर int राज्य बनाने; // वैरिएबल बनाना

2। व्यर्थ व्यवस्था() एक फ़ंक्शन है जो केवल एक बार एक कार्यक्रम में चलता है जब माइक्रोकंट्रोलर बोर्ड संचालित होता है या सक्षम बटन दबाया जाता है। इस फ़ंक्शन में बॉड दर निर्धारित है। बॉड दर वास्तव में प्रति सेकंड बिट्स में संचार की गति है जिसके माध्यम से माइक्रोकंट्रोलर बाहरी उपकरणों के साथ संचार करता है। सर्वो मोटर ईएसपी बोर्ड के पिन34 से जुड़ा है। इस फ़ंक्शन में स्थानीय इंटरनेट कनेक्शन के लिए माइक्रोकंट्रोलर को जोड़ने के लिए कोड लिखा गया है।

शून्य सेटअप () {Serial.begin (115200); // बॉड दर की स्थापना myservo.attach (34); // ESP32 myservo.write (60) के pin34 के लिए इमदादी मोटर के PWM पिन कनेक्ट करें; देरी (1000); // वाईफाई से कनेक्ट करें। 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 'है, तो सर्वो मोटर की स्थिति 8 डिग्री पर सेट है। यदि परिवर्तनीय स्थिति में मान variable 1 'के बराबर है, तो सर्वो मोटर की स्थिति 55 डिग्री पर सेट की जाएगी।

void लूप () {स्थिति = Serial.println (Firebase.getFloat ('मोटर')); // फायरबेस से डेटा पढ़ें // अगर राज्य '0' है तो डीसी मोटर बंद हो जाएगी अगर (राज्य == '0') {myservo.write (8); // सर्वो मोटर विलंब की स्थिति (1000); // onw के लिए प्रतीक्षा करें दूसरा Serial.println ('डोर लॉक्ड'); } और अगर (राज्य == '1') {myservo.write (55); // सेट की नई स्थिति इमदादी मोटर देरी (1000); // एक सेकंड के लिए प्रतीक्षा करें Serial.println ('डोर अनलॉक्ड'); } // संभाल त्रुटि अगर (Firebase.failed ()) {Serial.print ('सेटिंग / संख्या विफल:'); Serial.println (Firebase.error ()); वापसी; } देरी (1000);