विषयसूची:

पथ मैपर: 6 कदम
पथ मैपर: 6 कदम

वीडियो: पथ मैपर: 6 कदम

वीडियो: पथ मैपर: 6 कदम
वीडियो: Navodaya Vidyalaya Class 6 Answer key 2024 | JNVST 2024 Paper solution | नवोदय पेपर सोल्यूशन 2024, नवंबर
Anonim
पथ मैपर
पथ मैपर
पथ मैपर
पथ मैपर
पथ मैपर
पथ मैपर

इस IoT प्रोजेक्ट में, हम Arduino के माध्यम से स्थानीय डेटा को एक एक्सेल शीट में वितरित करने के लिए NEO-6M (GPS मॉड्यूल) को वायर करते हैं जिसे कंप्यूटर पर सहेजा जाएगा। बाद में झांकी पब्लिक के साथ, हम अपने द्वारा लिए गए पथ को मैप करने के लिए इस डेटा का डेटा विज़ुअलाइज़ेशन बनाते हैं। हालांकि यह अत्यधिक सहसंबद्ध डेटा में रीयल टाइम डेटा एकत्र करने और प्रस्तुत करने का एक तरीका है, अर्थात इस प्रक्रिया को अन्य डेटा-संचालित परियोजनाओं पर भी लागू किया जा सकता है।

चरण 1: सामग्री प्राप्त करना

सामग्री प्राप्त करना
सामग्री प्राप्त करना

इस परियोजना के लिए, आपको निम्नलिखित की आवश्यकता होगी:

  • NEO-6M जीपीएस मॉड्यूल
  • Arduino Uno
  • पुरुष/पुरुष जम्पर तार (आपको 4 तारों की आवश्यकता होगी)
  • यूएसबी 2.0 केबल टाइप ए से बी
  • इन कार्यक्रमों के साथ कंप्यूटर: झांकी सार्वजनिक, Arduino IDE (TinyGPS++ के साथ), और प्रसंस्करण

चरण 2: उपकरणों की स्थापना

उपकरणों की स्थापना
उपकरणों की स्थापना
उपकरणों की स्थापना
उपकरणों की स्थापना

Arduino के लिए हमें डेटा दिखाने के लिए एक इंटरफ़ेस देने के लिए हमें पहले Arduino UNO के साथ GPS मॉड्यूल स्थापित करने की आवश्यकता है। NEO-6M से जुड़े चार तारों में से प्रत्येक विशिष्ट पोर्ट से मेल खाता है। यदि आपका NEO-6M वायर के साथ नहीं आता है, तो आपको इसे सीधे जम्पर वायर से वायर करना होगा। उपरोक्त आरेख में, लाल शक्ति (VCC), काला से जमीन (GND), डेटा संचारित करने के लिए पीला (TxD), और डेटा प्राप्त करने के लिए सफेद (RxD) से मेल खाता है। हम इन तारों को पुरुष/पुरुष जम्पर तारों से जोड़ते हैं ताकि हम उन्हें Arduino से जोड़ सकें। ऊपर दिए गए आरेख के बाद, हम ग्राउंड वायर को Arduino पर GND डिजिटल पिन से, TxD वायर को 4 से, RxD वायर को ~ 3 से और VCC वायर को वोल्टेज के लिए 5V से जोड़ते हैं। भविष्य के चरण में, हमें SoftwareSerial में सही संख्याओं के साथ TxD और RxD को परिभाषित करना होगा।

एक बार जब दो डिवाइस एक-दूसरे से जुड़ जाते हैं, तो हमें एक शक्ति स्रोत प्रदान करने की आवश्यकता होती है। USB 2.0 केबल को अपने लैपटॉप से कनेक्ट करें और NEO-6M की लाइट जलनी चाहिए।

चरण 3: डेटा निकालने के लिए Arduino को कोड करना

डेटा निकालने के लिए Arduino को कोड करना
डेटा निकालने के लिए Arduino को कोड करना

अब जब हमारे पास उपग्रहों से जीपीएस डेटा एकत्र करने के लिए उपकरण हैं, तो हम अपने इच्छित जीपीएस डेटा को पार्स करने के लिए कोड लिखेंगे। यह मानते हुए कि आपने एक सिग्नल उठाया है (मेरा जीपीएस मॉड्यूल नीला होगा), NEO-6M डिफ़ॉल्ट रूप से NMEA संदेशों के रूप में सीरियल मॉनिटर पर कच्चे डेटा को प्रिंट करता है, जो $GP जैसा दिखता है और उसके बाद अधिक अक्षर और एक श्रृंखला होती है। संख्याओं का। ऊपर दी गई छवि एक सामान्य विचार देती है कि मूल Arduino कोड डालने के बाद आपके सीरियल मॉनिटर पर क्या दिखाया जाना चाहिए।

मेरे द्वारा संलग्न किए गए कोड की व्याख्या करने के लिए (या यदि आप इसे स्वयं कोड करने का प्रयास करना चाहते हैं), तो आपको पहले SoftwareSerial और TinyGPS++ दोनों पुस्तकालयों को शामिल करना होगा (बाद के लिए, स्केच> शामिल करें>. ZIP लाइब्रेरी जोड़ें)। SoftwareSerial हमें एक सीरियल कनेक्शन की अनुमति देता है; TinyGPS++ हमें लक्षित जानकारी को पढ़ने योग्य रूप में प्रिंट करने का एक आसान टूल देता है। सुनिश्चित करें कि आपने Arduino पर संबंधित पिन के लिए SoftwareSerial ऑब्जेक्ट को इनिशियलाइज़ किया है। सेटअप फ़ंक्शन में, हम बॉड दर के रूप में 9600 का उपयोग करते हैं।

इस निर्देश के प्रयोजन के लिए, हम लूप फ़ंक्शन में केवल सात प्रकार के डेटा प्रिंट करेंगे: अक्षांश (डिग्री), देशांतर (डिग्री), गति (किमी), पाठ्यक्रम (डिग्री), ऊंचाई (किमी), में उपग्रहों की संख्या उपयोग, और hdop. आप इस जानकारी को अर्दुइनियाना लाइब्रेरी में प्रिंट करने के लिए सिंटैक्स की खोज कर सकते हैं। सामान्य रूप Serial.print() है। उदाहरण के लिए देशांतर प्रिंट करने के लिए, हम Serial.print(gps.location.lng(), 6) टाइप करेंगे। 6 दर्शाता है कि हम दशमलव बिंदु के दाईं ओर कितने अंक चाहते हैं।

मेरे कोड में अगले चरण में आसानी से स्वरूपित रेगेक्स के लिए मुद्रित अतिरिक्त वर्ण हैं। यदि आप इस चरण पर रुकना चाहते हैं, तो सीरियल मॉनीटर पर आसानी से देखने के लिए डेटा को अलग तरीके से प्रारूपित करने के लिए स्वतंत्र महसूस करें।

चरण 4: सुनने के लिए प्रसंस्करण का उपयोग

सुनने के लिए प्रसंस्करण का उपयोग करना
सुनने के लिए प्रसंस्करण का उपयोग करना

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

मैंने प्रोसेसिंग कोड प्रदान किया है, लेकिन कोड कैसे काम करता है, इसका एक त्वरित अवलोकन यहां दिया गया है।

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

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

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

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

चरण 5: सार्वजनिक झांकी पर डेटा प्रदर्शित करना

सार्वजनिक झांकी पर डेटा प्रदर्शित करना
सार्वजनिक झांकी पर डेटा प्रदर्शित करना
सार्वजनिक झांकी पर डेटा प्रदर्शित करना
सार्वजनिक झांकी पर डेटा प्रदर्शित करना
सार्वजनिक झांकी पर डेटा प्रदर्शित करना
सार्वजनिक झांकी पर डेटा प्रदर्शित करना

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

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

त्रुटि के लिए अपने डेटा को साफ करने के लिए (जो कि झांकी को खोलने से पहले भी किया जा सकता है), आप कुछ स्थान मंडलियों पर क्लिक करके और विकल्प का चयन करके उन्हें बाहर करना चुन सकते हैं। मेरा GPS मॉड्यूल 100% सटीक नहीं है, क्योंकि मेरे पथ के कुछ हिस्से का पता नहीं चल पाया है, लेकिन सामान्य पथ रिकॉर्ड कर लिया गया है।

चरण 6: विज़ो को परिष्कृत करना

विज़ो को परिष्कृत करना
विज़ो को परिष्कृत करना

अंतिम भाग इस डेटा को अधिक पठनीय बनाना है। यदि आप सड़क का संदर्भ चाहते हैं, तो आप मानचित्र > मानचित्र परत > सड़कें और राजमार्ग पर जा सकते हैं। बेझिझक अन्य मार्क्स के साथ प्रयोग करें। मैंने स्पीड ओवर कलर को यह दिखाने के लिए खींचा कि गति बढ़ने पर रंग की तीव्रता कैसे बढ़ती है। मैंने पाठ्यक्रम के लिए लेबल के बजाय विवरण का भी उपयोग किया क्योंकि लेबल मानचित्र पर संख्याओं को प्रदर्शित करेगा, जबकि मैं केवल यह चाहता था कि जब आप स्थान बिंदुओं पर होवर करें तो जानकारी पॉप अप हो।

अब जब आपने डेटा एकत्र करने और डेटा विज़ुअलाइज़ेशन पर आपके पास जो कुछ है उसे प्रदर्शित करने की पूरी प्रक्रिया का अनुभव कर लिया है, तो आप इसे अन्य परियोजनाओं पर लागू कर सकते हैं!

पिंगडी हुआंग द्वारा, समर 2018

सिफारिश की: