स्मार्ट शहरों की बढ़ती लोकप्रियता के साथ, हमेशा हर डोमेन के लिए स्मार्ट समाधान की मांग होती है। IoT ने स्मार्ट शहरों की संभावना को इंटरनेट नियंत्रण सुविधा के साथ सक्षम किया है। एक व्यक्ति अपने स्मार्टफोन या किसी भी इंटरनेट से जुड़े उपकरणों का उपयोग करके दुनिया में कहीं से भी अपने घर या कार्यालय में स्थापित उपकरणों को नियंत्रित कर सकता है। स्मार्ट सिटी में कई डोमेन हैं और स्मार्ट पार्किंग स्मार्ट सिटी के लोकप्रिय डोमेन में से एक है।
स्मार्ट पार्किंग उद्योग ने कई नवाचारों को देखा है जैसे स्मार्ट पार्किंग प्रबंधन प्रणाली, स्मार्ट गेट नियंत्रण, स्मार्ट कैमरे जो वाहन के प्रकार, एएनपीआर (स्वचालित नंबर प्लेट मान्यता), स्मार्ट भुगतान प्रणाली, स्मार्ट एंट्री सिस्टम और बहुत कुछ का पता लगा सकते हैं। आज इसी तरह के दृष्टिकोण का पालन किया जाएगा और एक स्मार्ट पार्किंग समाधान बनाया जाएगा जो वाहन की उपस्थिति का पता लगाने और स्वचालित रूप से गेट को खोलने या बंद करने के लिए एक अल्ट्रासोनिक सेंसर का उपयोग करेगा । ESP8266 NodeMCU का उपयोग मुख्य नियंत्रक के रूप में करने के लिए किया जाएगा जो कि इससे जुड़ी सभी परिधियों को नियंत्रित करने के लिए हो।
ESP8266 IoT आधारित अनुप्रयोगों के निर्माण के लिए सबसे लोकप्रिय नियंत्रक है क्योंकि इसमें इंटरनेट से जुड़ने के लिए वाई-फाई का इनबिल्ट सपोर्ट है। हमने पहले इसका उपयोग कई IoT परियोजनाओं के निर्माण में किया था जैसे:
- IOT आधारित सुरक्षा प्रणाली
- होम ऑटोमेशन के लिए स्मार्ट जंक्शन बॉक्स
- IOT आधारित वायु प्रदूषण निगरानी प्रणाली
- ThingSpeak को डेटा भेजें
यहां सभी ईएसपी 8266 आधारित परियोजना की जांच करें।
इस IoT स्मार्ट पार्किंग सिस्टम में, हम वाहन पार्किंग के लिए स्थान की उपलब्धता देखने के लिए वेबसर्वर को डेटा भेजेंगे। यहां हम पार्किंग उपलब्धता डेटा प्राप्त करने के लिए IOT डेटाबेस के रूप में फायरबेस का उपयोग कर रहे हैं। इसके लिए हमें फायरबेस होस्ट पता और प्राधिकरण के लिए गुप्त कुंजी खोजने की आवश्यकता है। यदि आप पहले से ही NodeMCU के साथ फायरबेस का उपयोग करना जानते हैं तो आप आगे बढ़ सकते हैं और आपको पहले होस्ट पता और गुप्त कुंजी प्राप्त करने के लिए ESP8266 NodeMCU के साथ Google Firebase कंसोल का उपयोग करना सीखना चाहिए ।
अवयव आवश्यक
- ESP8266 NodeMCU
- अतिध्वनि संवेदक
- डीसी सर्वो मोटर
- आईआर सेंसर
- 16x2 i2c LCD डिस्प्ले
- जम्परों
सर्किट आरेख
इस IoT आधारित वाहन पार्किंग प्रणाली के लिए सर्किट आरेख नीचे दिया गया है। इसमें दो IR सेंसर, दो सर्वो मोटर्स, एक अल्ट्रासोनिक सेंसर और एक 16x2 एलसीडी शामिल हैं।
यहां ESP8266 पूरी प्रक्रिया को नियंत्रित करेगा और Google Firebase को पार्किंग उपलब्धता की जानकारी भी भेजेगा ताकि इंटरनेट पर दुनिया भर में कहीं से भी इसकी निगरानी की जा सके। कार की उपस्थिति का पता लगाने और गेट को स्वचालित रूप से खोलने या बंद करने के लिए प्रवेश और निकास द्वार पर दो आईआर सेंसर का उपयोग किया जाता है। IR सेंसर का उपयोग IR किरणों को भेजने और प्राप्त करने से किसी भी वस्तु का पता लगाने के लिए किया जाता है, यहाँ IR सेंसर के बारे में अधिक जानें।
दो सर्वो प्रवेश और निकास द्वार के रूप में कार्य करेंगे और वे गेट को खोलने या बंद करने के लिए घूमते हैं। अंत में एक अल्ट्रासोनिक सेंसर का उपयोग यह पता लगाने के लिए किया जाता है कि पार्किंग स्लॉट उपलब्ध है या कब्जा है और तदनुसार ईएसपी 8266 पर डेटा भेजें। प्रोजेक्ट की पूरी कार्यप्रणाली को समझने के लिए इस ट्यूटोरियल के अंत में दिए गए वीडियो को देखें ।
इस तरह यह पूरा स्मार्ट पार्किंग सिस्टम प्रोटोटाइप दिखेगा:
स्मार्ट पार्किंग समाधान के लिए प्रोग्रामिंग ESP8266 NodeMCU
एक कामकाजी वीडियो के साथ पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है, यहां हम प्रोजेक्ट के कामकाज को समझने के लिए पूरा कार्यक्रम बता रहे हैं।
NodeMCU प्रोग्रामिंग के लिए, बस NodeMCU को माइक्रो USB केबल के साथ कंप्यूटर में प्लग करें और Arduino IDE खोलें। I2C प्रदर्शन और सर्वो मोटर के लिए पुस्तकालयों की आवश्यकता होती है। एलसीडी पार्किंग रिक्त स्थान की उपलब्धता को प्रदर्शित करेगा और एंट्री और निकास गेटों को खोलने और बंद करने के लिए सर्वो मोटर्स का उपयोग किया जाएगा। Wire.h पुस्तकालय I2C प्रोटोकॉल में एलसीडी इंटरफेस करने में इस्तेमाल किया जाएगा। ESP8266 NodeMCU में I2C के लिए पिन D1 (SCL) और D2 (SDA) हैं। यहाँ उपयोग किया जाने वाला डेटाबेस फायरबेस होगा इसलिए यहाँ हम उसी के लिए लाइब्रेरी (फ़ायरबेसएड्यूइनो.एच) को भी शामिल कर रहे हैं ।
#शामिल
फिर Google Firebase से प्राप्त फायरबेस क्रेडेंशियल्स को शामिल करें। इनमें होस्ट नाम आपके प्रोजेक्ट का नाम और एक गुप्त कुंजी शामिल होगा। इन मूल्यों को खोजने के लिए फायरबेस पर पिछले ट्यूटोरियल का पालन करें।
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA.zJQVsx3H2LmeBDPGmfTMBHCT"
वाई-फाई क्रेडेंशियल जैसे वाईफाई एसएसआईडी और पासवर्ड शामिल करें।
#define WIFI_SSID "सर्किटडाइगस्ट" #define WIFI_PASSWORD "circuitdigest101"
प्रारंभिक I2C एलसीडी विद डिवाइस एड्रेस (यहां यह 0x27 है) और एलसीडी का प्रकार। प्रवेश और निकास द्वार के लिए सर्वो मोटर्स भी शामिल करें।
लिक्विड क्रिस्टल_ आई 2 सी एलसीडी (0x27, 16, 2); सर्वो myservo; सर्वो myservo1;
I2C एलसीडी के लिए I2C संचार शुरू करें।
वायर.बेगिन (डी 2, डी 1);
एनओडीएमसीयू के डी 5, डी 6 पिन से एंट्री और एग्जिट सर्वो मोटर को कनेक्ट करें।
myservo.attach (D6); myservos.attach (D5);
आउटपुट के रूप में अल्ट्रासोनिक सेंसर का ट्रिगर पिन चुनें और इनपुट के रूप में इको पिन। पार्किंग स्थल की उपलब्धता का पता लगाने के लिए अल्ट्रासोनिक सेंसर का उपयोग किया जाएगा। यदि कार ने अंतरिक्ष पर कब्जा कर लिया है तो यह चमक जाएगी अन्यथा यह चमक नहीं देगा।
पिनमोड (TRIG, OUTPUT); पिनमोड (ECHO, INPUT);
IR सेंसर रीडिंग लेने के लिए NodeMCU के दो पिन D0 और D4 का उपयोग किया जाता है। आईआर सेंसर एंट्री और एक्जिट गेट सेंसर के रूप में कार्य करेगा। यह कार की उपस्थिति का पता लगाएगा।
pinMode (carExited, INPUT); पिनमोड (कारइंटर, INPUT);
वाईफाई से कनेक्ट करें और कनेक्ट होने तक कुछ समय तक प्रतीक्षा करें।
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("कनेक्ट करना"); Serial.print (WIFI_SSID); जबकि (WiFi.status ()! = WL_CONNECTED) {Serial.print ("।"); देरी (500); }
क्रेडेंशियल के रूप में होस्ट और सीक्रेट कुंजी के साथ फायरबेस के साथ कनेक्शन शुरू करें।
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
I2c 16x2 LCD शुरू करें और 0 वें पंक्ति 0 वें कॉलम पर कर्सर स्थिति सेट करें।
lcd.begin (); lcd.setCursor (0, 0);
अल्ट्रासोनिक सेंसर से दूरी लें। इसका उपयोग विशेष स्थान पर वाहन की उपस्थिति का पता लगाने के लिए किया जाएगा। पहले 2 माइक्रोसेकंड पल्स भेजें और फिर प्राप्त पल्स पढ़ें। फिर इसे 'सेमी' में बदलें। यहां अल्ट्रासोनिक सेंसर का उपयोग करके दूरी को मापने के बारे में अधिक जानें।
digitalWrite (TRIG, LOW); देरीमाइक्रोसेकंड (2); digitalWrite (TRIG, HIGH); देरीमाइक्रोसेकंड (10); digitalWrite (TRIG, LOW); अवधि = पल्स इन (ईसीएचओ, हाई); दूरी = (अवधि / 2) / 29.1;
डिजिटली IR सेंसर पिन को एंट्री सेंसर के रूप में पढ़ें और देखें कि क्या यह अधिक है। यदि यह उच्च है, तो प्रवेश संख्या में वृद्धि करें और इसे 16x2 एलसीडी डिस्प्ले पर प्रिंट करें और सीरियल मॉनिटर पर भी।
int carEntry = digitalRead (carEnter); अगर (carEntry == High) { countYes ++; Serial.print ("कार में प्रवेश किया ="); सीरीयल.प्रिंट (काउंटेस); lcd.setCursor (0, 1); lcd.print ("कार एंटर");
एंट्री गेट खोलने के लिए सर्वो मोटर कोण को भी घुमाएं । अपने उपयोग के मामले के अनुसार कोण बदलें।
for (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); देरी (5); } देरी (2000); for (pos = 45; pos <= 140; pos + = 1) { // 1 डिग्री myservos.write (पोज़) के चरणों में ; देरी (5); }
और फायरबेस लाइब्रेरी के पुशस्ट्रिंग फ़ंक्शन का उपयोग करके रीडिंग को फायरबेस पर भेजें ।
Firebase.pushString ("/ पार्किंग स्थिति /", fireAvailable);
Exit IR सेंसर और Exit इमदादी मोटर के लिए ऊपर दिए गए चरणों के समान करें ।
int carExit = digitalRead (carExited); अगर (carExit == High) { countYes--; Serial.print ("कार से बाहर ="); सीरीयल.प्रिंट (काउंटेस); lcd.setCursor (0, 1); lcd.print ("कार से बाहर"); for (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); देरी (5); } देरी (2000); for (pos1 = 45; pos1 <= 140; pos1 + = 1) { // 1 डिग्री myservo.write (pos1) के चरणों में ; देरी (5); } Firebase.pushString ("/ पार्किंग स्थिति /", fireAvailable); lcd.clear (); }
जांचें कि क्या कार पार्किंग स्थल पर आ गई है और यदि यह आ गई है, तो चमक ने संकेत दिया कि स्पॉट भरा हुआ है।
if (दूरी <6) { Serial.println ("अधिकृत"); digitalWrite (एलईडी, हाई); }
एल्स दिखाते हैं कि स्पॉट उपलब्ध है।
अगर (दूरी> 6) { Serial.println ("उपलब्ध"); digitalWrite (एलईडी, कम); }
पार्किंग के अंदर कुल खाली जगह की गणना करें और डेटा को फायरबेस में भेजने के लिए इसे स्ट्रिंग में सहेजें।
खाली = allSpace - countYes; उपलब्ध = स्ट्रिंग ("उपलब्ध =") + स्ट्रिंग (खाली) + स्ट्रिंग ("/") + स्ट्रिंग (ऑलस्पेस); fireAvailable = स्ट्रिंग ("उपलब्ध =") + स्ट्रिंग (खाली) + स्ट्रिंग ("/") + स्ट्रिंग (ऑलस्पेस); इसके अलावा डेटा को i2C एलसीडी पर प्रिंट करें। lcd.setCursor (0, 0); lcd.print (उपलब्ध);
यह है कि नीचे दिए गए स्नैपशॉट में दिखाए गए अनुसार पार्किंग की उपलब्धता को फायरबेस पर ऑनलाइन ट्रैक किया जा सकता है:
यह ESP8266 NodeMCU मॉड्यूल और विभिन्न बाह्य उपकरणों का उपयोग करके पूर्ण स्मार्ट पार्किंग सिस्टम को पूरा करता है । आप अल्ट्रासोनिक और आईआर सेंसर के प्रतिस्थापन में भी अन्य सेंसर का उपयोग कर सकते हैं। स्मार्ट पार्किंग सिस्टम का एक विशाल अनुप्रयोग है और इसे और अधिक स्मार्ट बनाने के लिए विभिन्न उत्पादों को जोड़ा जा सकता है। नीचे टिप्पणी करें यदि आपको कोई संदेह है या अधिक समर्थन के लिए हमारे मंच पर पहुंचें।