पृथ्वी के चारों ओर कई जीपीएस उपग्रह हैं जो किसी भी स्थान का सटीक स्थान प्रदान करने के लिए उपयोग किए जाते हैं। स्थान निर्देशांक (अक्षांश और देशांतर) के साथ, यह समय, तिथि, ऊंचाई, दिशा ट्रैकिंग कोण आदि जैसे अन्य डेटा भी प्रदान करता है। हमने पहले ही Arduino का उपयोग करते हुए सैटेलाइट से इस जीपीएस डेटा को पढ़ना सीख लिया है। इसलिए हम जीपीएस उपग्रह से 'टाइम एंड डेट' डेटा का उपयोग करके एक जीपीएस घड़ी बनाने जा रहे हैं। जीपीएस अपडेटेड क्लॉक बहुत सटीक है और मिलीसेकंड की सटीकता के साथ वास्तविक समय डेटा प्रदान करता है।
अवयव:
- अरुडिनो उनो
- जीपीएस मॉड्यूल
- 16x2 एलसीडी
- तारों को जोड़ना
- बिजली की आपूर्ति
कार्य स्पष्टीकरण:
GPS मॉड्यूल NMEA प्रारूप में डेटा भेजता है, नीचे स्क्रीनशॉट में GPS डेटा का आउटपुट देखें। NMEA प्रारूप में कई वाक्य होते हैं, जिसमें हमें दिनांक और समय निकालने के लिए एक वाक्य की आवश्यकता होती है। यह वाक्य $ जीपीआरएमसी से शुरू होता है और इसमें निर्देशांक, समय और अन्य उपयोगी जानकारी होती है। यह $ जीपीआरएमसी अनुशंसित न्यूनतम विशिष्ट जीपीएस / ट्रांजिट डेटा के लिए संदर्भित है , और इस स्ट्रिंग की लंबाई लगभग 70 अक्षर है। हमने पहले अक्षांश और देशांतर निर्देशांक खोजने के लिए वाहन ट्रैकिंग सिस्टम में $ GPGGA स्ट्रिंग निकाली है । यहाँ जीपीएस उत्पादन है:
और $ जीपीआरएमसी स्ट्रिंग में मुख्य रूप से वेग, समय, तिथि और स्थिति शामिल है
$ GPRMC, 123519.000, A, 7791.0381, N, 06727.4434, E, 022.4,084.4,230394,003.1, W * 6 A $ GPRMC, HHMMSS.SSS, A, अक्षांश, N, देशांतर, E, गति, कोण, तिथि। एमवी, डब्ल्यू, सीएमडी
पहचानकर्ता |
विवरण |
आरएमसी |
अनुशंसित न्यूनतम सजा सी |
HHMMSS.SSS |
घंटे मिनट सेकंड और मिलीसेकंड प्रारूप में समय। |
ए |
स्थिति // ए = सक्रिय और वी = शून्य |
अक्षांश |
अक्षांश ४ ९ डिग्री। 16.45 मि। उत्तरी |
एन |
दिशा एन = उत्तर, एस = दक्षिण |
देशान्तर |
देशांतर (समन्वय) |
इ |
दिशा ई = पूर्व, डब्ल्यू = पश्चिम |
स्पीड |
समुद्री मील में गति |
कोण |
डिग्री में ट्रैकिंग कोण |
दिनांक |
UTC में दिनांक |
एमवी |
चुंबकीय भिन्नता |
डब्ल्यू |
विविधता की दिशा ई / डब्ल्यू |
CMD (* 6A) |
चेकसम डेटा |
हम स्ट्रिंग में कॉमा को गिनकर $ GPRMC स्ट्रिंग से समय और दिनांक निकाल सकते हैं। Arduino और प्रोग्रामिंग की मदद से, हम $ GPRMC स्ट्रिंग पाते हैं और इसे एक सरणी में संग्रहीत करते हैं, फिर समय (24 घंटे का प्रारूप) एक अल्पविराम के बाद और दिनांक नौ अल्पविराम के बाद पाया जा सकता है। समय और तारीख को तार में और बचाया जाता है।
एक GPS सैटेलाइट कोऑर्डिनेटेड यूनिवर्सल टाइम (UTC) में समय और तारीख प्रदान करता है, इसलिए हमें इसे तदनुसार बदलने की आवश्यकता है। भारतीय समय के अनुसार बदलने के लिए, हमने UTC के समय में 5:30 जोड़ दिए हैं, क्योंकि भारतीय समय UTC / GMT से 5 और आधे घंटे आगे है।
सर्किट आरेख:
Arduino GPS Clock के सर्किट कनेक्शन सरल हैं। Arduino का उपयोग पूरी प्रक्रिया को नियंत्रित करने के लिए किया जाता है, यह GPS मॉड्यूल के माध्यम से उपग्रह से GPS डेटा प्राप्त करता है, $ GPRMC स्ट्रिंग से दिनांक और समय निकालता है और इसे LCD पर दिखाता है।
16x2 एलसीडी के डेटा पिन D4, D5, D6, D7, पिन नंबर से जुड़े हैं। Arduino के 5, 4, 3, 2 और एलसीडी के कमांड पिन RS और EN क्रमशः Arduino के 7 और 6 पिन से जुड़े हैं। GPS रिसीवर मॉड्यूल Tx पिन Arduino के Rx पिन 10 से जुड़ा है। Arduino और GPS का ग्राउंड पिन एक दूसरे के साथ जुड़ा हुआ है। यहां हमने SKG13BL जीपीएस मॉड्यूल का उपयोग किया है, जो 9800 बीपीएस बॉड दर पर काम कर रहा है। Arduino फ़ंक्शन "Serial.begin (9800)" का उपयोग करके 9800 बीपीएस बॉड दर पर भी कॉन्फ़िगर किया गया है ।
प्रोग्रामिंग स्पष्टीकरण:
प्रोग्रामिंग भाग में पहले हम पुस्तकालयों को शामिल करते हैं और एलसीडी और सॉफ्टवेयर धारावाहिक संचार के लिए पिन को परिभाषित करते हैं। डेटा भंडारण के लिए सरणियों के साथ कुछ चर को भी परिभाषित करें। यहां सॉफ्टवेयर सीरियल लाइब्रेरी का उपयोग करके, हमने पिन 10 और 11 पर धारावाहिक संचार की अनुमति दी है, और उन्हें क्रमशः आरएक्स और टीएक्स बना दिया है। डिफ़ॉल्ट रूप से Arduino के पिन 0 और 1 का उपयोग धारावाहिक संचार के लिए किया जाता है, लेकिन SoftwareSerial पुस्तकालय का उपयोग करके, हम Arduino के अन्य डिजिटल पिनों पर धारावाहिक संचार की अनुमति दे सकते हैं
#शामिल
इसके बाद हमने सीरियल फ़ंक्शन और सेटअप फ़ंक्शन में एलसीडी को इनिशियलाइज़ किया और एलसीडी पर एक स्वागत योग्य संदेश दिखाया।
फिर हमने समय और तारीख को प्राप्त स्ट्रिंग के रूप में निकाला है।
जबकि (एक्स
और फिर समय और तिथि को दशमलव में परिवर्तित करें और इसे भारतीय समय में संशोधित करें (UTC +5: 30)
int UTC_hourDec = UTC_hour.toInt (); int UTC_minutDec = UTC_minut.toInt (); int दूसरा = UTC_second.toInt (); int Date = UTC_date.toInt (); int महीना = UTC_month.toInt (); …।…।…।
और फिर अंत में समय और दिनांक एलसीडी पर lcd.print फ़ंक्शन का उपयोग करके दिखाया गया है, नीचे दिए गए पूर्ण कोड की जांच करें।