- आवश्यक घटक:
- जीपीएस मॉड्यूल और इसके कार्य:
- जीपीएस के साथ संवाद करने के लिए रास्पबेरी पाई तैयार करना:
- रास्पबेरी पाई जीपीएस मॉड्यूल के लिए कनेक्शन
- पायथन लिपि से पहले परीक्षण:
Arduino जैसे सबसे अच्छे एम्बेडेड प्लेटफार्मों में से एक ने निर्माताओं और DIYers को जीपीएस मॉड्यूल का उपयोग करके आसानी से स्थान डेटा प्राप्त करने की क्षमता दी है और इस प्रकार उन चीजों का निर्माण किया है जो स्थान पर भरोसा करते हैं। रास्पबेरी पाई द्वारा पैक की गई बिजली की मात्रा के साथ, यह निश्चित रूप से एक ही सस्ते जीपीएस मॉड्यूल के साथ जीपीएस आधारित परियोजनाओं का निर्माण करने के लिए काफी भयानक होगा और यही इस पोस्ट का फोकस है। आज इस परियोजना में हम रास्पबेरी पाई 3 के साथ जीपीएस मॉड्यूल को इंटरफेस करेंगे ।
इस परियोजना का लक्ष्य एक जीपीएस मॉड्यूल से UART के माध्यम से स्थान डेटा (देशांतर और अक्षांश) को इकट्ठा करना और उन्हें 16x2 एलसीडी पर प्रदर्शित करना है, इसलिए यदि आप रास्पबेरी पाई के साथ 16x2 एलसीडी के काम करने के तरीके से परिचित नहीं हैं, तो यह एक और है सीखने का शानदार अवसर।
आवश्यक घटक:
- रसभरी पाई ३
- नियो 6 एम वी 2 जीपीएस मॉड्यूल
- 16 x 2 एलसीडी
- रास्पबेरी पाई के लिए शक्ति का स्रोत
- LAN केबल को अपने पीसी को हेडलेस मोड में कनेक्ट करने के लिए LAN केबल
- ब्रेडबोर्ड और जम्पर केबल
- रिजिस्टर / पोटेंशियोमीटर से एलसीडी
- मेमोरी कार्ड 8 या 16 जीबी रनिंग रस्पियन जेसी
इसके अलावा हमें GPS Daemon (GPSD) लाइब्रेरी, 16x2 LCD Adafruit लाइब्रेरी स्थापित करने की आवश्यकता है, जिसे हम बाद में इस ट्यूटोरियल में स्थापित करते हैं।
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 3 का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले चर्चा की गई है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं।
जीपीएस मॉड्यूल और इसके कार्य:
GPS ग्लोबल पोजिशनिंग सिस्टम के लिए है और इसका उपयोग सटीक UTC समय (यूनिवर्सल टाइम कोऑर्डिनेटेड) के साथ पृथ्वी पर किसी भी स्थान के अक्षांश और देशांतर का पता लगाने के लिए किया जाता है। जीपीएस मॉड्यूल हमारे वाहन ट्रैकिंग सिस्टम प्रोजेक्ट में मुख्य घटक है। यह उपकरण उपग्रह से प्रत्येक और हर सेकंड के लिए समय और तिथि के साथ निर्देशांक प्राप्त करता है।
GPS मॉड्यूल वास्तविक समय में ट्रैकिंग स्थिति से संबंधित डेटा भेजता है, और यह NMEA प्रारूप में कई डेटा भेजता है (नीचे स्क्रीनशॉट देखें)। NMEA प्रारूप में कई वाक्य शामिल हैं, जिसमें हमें केवल एक वाक्य की आवश्यकता है। यह वाक्य $ GPGGA से शुरू होता है और इसमें निर्देशांक, समय और अन्य उपयोगी जानकारी होती है। इस GPGGA को ग्लोबल पोजिशनिंग सिस्टम फिक्स डेटा के लिए संदर्भित किया जाता है । रीडिंग जीपीएस डेटा और इसके तारों के बारे में अधिक जानकारी यहाँ देखें।
हम स्ट्रिंग में अल्पविराम की गणना करके $ GPGGA स्ट्रिंग से समन्वय कर सकते हैं। मान लीजिए कि आप $ GPGGA स्ट्रिंग पाते हैं और इसे एक सरणी में संग्रहीत करते हैं, तो अक्षांश को दो अल्पविराम के बाद और देशांतर को चार अल्पविराम के बाद पाया जा सकता है। अब इन अक्षांशों और देशांतरों को अन्य सरणियों में रखा जा सकता है।
नीचे $ GPGGA स्ट्रिंग है, इसके विवरण के साथ:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M, * 47
$ GPGGA, HHMMSS.SSS, अक्षांश, N, देशांतर, E, FQ, NOS, HDP, ऊंचाई, M, ऊंचाई, M,, चेकसम डेटा
पहचानकर्ता |
विवरण |
$ GPGGA |
ग्लोबल पोजिशनिंग सिस्टम डेटा को ठीक करता है |
HHMMSS.SSS |
घंटे मिनट सेकंड और मिलीसेकंड प्रारूप में समय। |
अक्षांश |
अक्षांश (समन्वय) |
एन |
दिशा एन = उत्तर, एस = दक्षिण |
देशान्तर |
देशांतर (समन्वय) |
इ |
दिशा ई = पूर्व, डब्ल्यू = पश्चिम |
एफक्यू |
गुणवत्ता डेटा को ठीक करें |
ओपन स्कूल |
प्रयुक्त होने वाले उपग्रहों की संख्या |
एचपीडी |
परिशुद्धता के क्षैतिज कमजोर पड़ने |
ऊंचाई |
समुद्र तल से ऊंचाई |
म |
मीटर |
ऊंचाई |
ऊंचाई |
अंततः, |
चेकसम डेटा |
आप हमारी अन्य जीपीएस परियोजनाओं की जांच कर सकते हैं:
- जीपीएस और जीएसएम का उपयोग कर Arduino आधारित वाहन ट्रैकर
- जीपीएस, जीएसएम और एक्सेलेरोमीटर का उपयोग कर Arduino आधारित वाहन दुर्घटना चेतावनी प्रणाली
- Arduino के साथ GPS का उपयोग कैसे करें
- Arduino, ESP8266 और GPS का उपयोग करके Google मानचित्र पर एक वाहन को ट्रैक करें
जीपीएस के साथ संवाद करने के लिए रास्पबेरी पाई तैयार करना:
ठीक है तो कूदने के लिए, इसलिए यह उबाऊ नहीं है, मैं मान लूंगा कि आप पहले से ही रास्पबेरी पाई के बारे में बहुत कुछ जानते हैं, अपने ओएस को स्थापित करने के लिए पर्याप्त है, आईपी पता प्राप्त करें, पोटीन जैसे टर्मिनल सॉफ़्टवेयर से कनेक्ट करें और उपस्थिति के बारे में अन्य चीजें पीआई क्या आपके पास ऊपर बताई गई किसी भी चीज को करने का कोई मुद्दा है, मुझे टिप्पणी अनुभाग के तहत मारो और मुझे मदद करने में खुशी होगी।
इस परियोजना को प्राप्त करने के लिए सबसे पहले हमें अपना रास्पबेरी पाई 3 तैयार करना है, जो कि UART के माध्यम से GPS मॉड्यूल के साथ संचार करने में सक्षम है, मेरा विश्वास करो, इसकी काफी मुश्किल है और इसे सही पाने के लिए काफी प्रयास किया है लेकिन यदि आप अनुसरण करते हैं मेरे गाइड ध्यान से आप इसे एक बार में प्राप्त करेंगे, यह परियोजना का सबसे कठिन हिस्सा है। यहाँ हमने Neo 6m v2 GPS मॉड्यूल का उपयोग किया है ।
में गोता लगाने के लिए, यहाँ कैसे रास्पबेरी पाई 3 UART वर्क्स का थोड़ा विवरण दिया गया है ।
रास्पबेरी पाई में दो बिल्ट-इन UARTs, एक PL011 और एक मिनी UART है। उन्हें अलग-अलग हार्डवेयर ब्लॉकों का उपयोग करके कार्यान्वित किया जाता है, ताकि उनमें थोड़ी अलग विशेषताएं हों। रास्पबेरी पाई 3 पर हालांकि, वायरलेस / ब्लूटूथ मॉड्यूल PLO11 UART से जुड़ा है, जबकि मिनी UART का उपयोग लिनक्स कंसोल ouptut के लिए किया जाता है। आप इसे कैसे देखते हैं इसके आधार पर, मैं PLO11 को इसके कार्यान्वयन स्तर के कारण दो UART के सर्वश्रेष्ठ के रूप में परिभाषित करूंगा। तो इस परियोजना के लिए हम Raspbian Jessie के अपडेटेड वर्जन में उपलब्ध उपरिशायी का उपयोग करके PLO11 UART से ब्लूटूथ मॉड्यूल को निष्क्रिय करेंगे।
चरण 1: रास्पबेरी पाई को अपडेट करना:
हर परियोजना को शुरू करने से पहले मुझे जो पहली चीज पसंद है वह मुझे रास्पबेरी पाई को अपडेट करना है। तो सामान्य करते हैं और नीचे कमांड चलाते हैं;
sudo apt-get update sudo apt-get उन्नयन
फिर सिस्टम को रीबूट करें;
सूद रिबूट
चरण 2: रास्पबेरी पाई में UART की स्थापना:
इसके अंतर्गत हम सबसे पहली चीज करेंगे /boot/config.txt फ़ाइल को संपादित करना । ऐसा करने के लिए, नीचे दिए गए आदेश चलाएँ:
सुंडो नैनो / ब्यूट /config.txt
config.txt फ़ाइल के निचले भाग में, निम्न पंक्तियाँ जोड़ें
dtparam = spi = dtoverlay पर = pi3-disable-bt core_freq = 250 enable_uart = 1 force_turbo = 1
ctrl + x से बाहर निकलें और y दबाएँ और सहेजने के लिए दर्ज करें।
सुनिश्चित करें कि डबल चेकिंग से कोई टाइपोस या त्रुटियां नहीं हैं क्योंकि त्रुटि के कारण यह आपके पाई को बूट करने से रोक सकता है।
इन आदेशों के कारण क्या हैं, Force_turbo UART को अधिकतम कोर आवृत्ति का उपयोग करने में सक्षम बनाता है जिसे हम इस मामले में 250 पर सेट कर रहे हैं। इसका कारण सीरियल डेटा की निरंतरता और अखंडता सुनिश्चित करना है। इस बिंदु पर ध्यान देना महत्वपूर्ण है कि force_turbo = 1 का उपयोग करने से आपके रास्पबेरी पाई की वारंटी शून्य हो जाएगी, लेकिन यह बहुत ही सुरक्षित है।
Dtoverlay = PI3-अक्षम-bt डिस्कनेक्ट से ब्लूटूथ ttyAMA0 , यह हमें पूर्ण UART शक्ति के माध्यम से उपलब्ध का उपयोग तक पहुंच देने का है ttyAMAO बजाय मिनी UART ttyS0।
इस UART सेटअप सेक्शन के अंतर्गत दूसरा चरण बूट / cmdline.txt को संपादित करना है
मेरा सुझाव है कि आप cmdline.txt की एक प्रति बनाएँ और संपादन से पहले पहले सहेज लें ताकि बाद में ज़रूरत पड़ने पर आप इसे वापस कर सकें। यह प्रयोग करके किया जा सकता है;
sudo cp बूट / cmdline.txt बूट / cmdline_backup.txt sudo नैनो /boot.cmdline.txt
सामग्री को इसके साथ बदलें;
dwc_otg.lpm_enable = 0 कंसोल = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 एलिवेटर = समय सीमा fsck.repair = Yes rootwait शांत स्प्लिट plymouth.ignore-serial-consoles
सुरषित और बहार।
ऐसा किए जाने के बाद हमें परिवर्तनों ( सूडो रिबूट ) को प्रभावी करने के लिए फिर से सिस्टम को रिबूट करना होगा ।
चरण 3: रास्पबेरी पाई सीरियल गेटी सेवा को अक्षम करना
अगला कदम है पाई के सीरियल को गेटी सेवा को निष्क्रिय करना, कमांड इसे फिर से रिबूट पर शुरू करने से रोकेगा:
sudo systemctl stop [email protected] सुडोकू systemctl अक्षम सीरियल[email protected]
यदि आवश्यक हो तो इसे फिर से सक्षम करने के लिए निम्न आदेशों का उपयोग किया जा सकता है
sudo systemctl enable [email protected]
सिस्टम को रिबूट करें।
चरण 4: सक्रियता को सक्रिय करना:
हमने ttyS0 को निष्क्रिय कर दिया है, अगली बात हमारे लिए ttyAMAO को सक्षम करना है ।
sudo systemctl enable सीरियल[email protected]
Step5: मिनिकॉम और pynmea2 स्थापित करें:
हम जीपीएस मॉड्यूल से कनेक्ट करने और डेटा की समझ बनाने के लिए मिनिकॉम होंगे। यह भी एक उपकरण है जिसे हम परीक्षण करने के लिए उपयोग करेंगे हमारा जीपीएस मॉड्यूल ठीक काम कर रहा है। मिनिकॉम का एक विकल्प डेमन सॉफ्टवेयर GPSD है।
sudo apt-get install मिनिकॉम
प्राप्त आंकड़ों को आसानी से पार्स करने के लिए, हम pynmea2 लाइब्रेरी का उपयोग करेंगे । इसका उपयोग करके स्थापित किया जा सकता है;
sudo pip इंस्टॉल करें pynmea2
लाइब्रेरी के दस्तावेज यहां देखे जा सकते हैं
चरण 6: एलसीडी लाइब्रेरी स्थापित करना:
इस ट्यूटोरियल के लिए हम AdaFruit लाइब्रेरी का उपयोग करेंगे। पुस्तकालय AdaFruit स्क्रीन के लिए बनाया गया था, लेकिन HD44780 का उपयोग कर डिस्प्ले बोर्ड के लिए भी काम करता है। यदि आपका प्रदर्शन इस पर आधारित है तो इसे बिना मुद्दों के काम करना चाहिए।
मुझे लाइब्रेरी को क्लोन करना और सीधे सीधे इंस्टॉल करना बेहतर लगता है। क्लोन चलाने के लिए;
git clone
क्लोन निर्देशिका में परिवर्तन और इसे स्थापित करें
cd./Adafruit_Python_CharLCD sudo python setup.py स्थापित करें
इस स्तर पर, मैं एक और रिबूट का सुझाव दूंगा ताकि हम घटकों को जोड़ने के लिए तैयार रहें।
रास्पबेरी पाई जीपीएस मॉड्यूल के लिए कनेक्शन
नीचे दिए गए सर्किट आरेख में दिखाए गए जीपीएस मॉड्यूल और एलसीडी को रास्पबेरी पाई से कनेक्ट करें।
पायथन लिपि से पहले परीक्षण:
मुझे लगता है कि पायथन लिपि पर आगे बढ़ने से पहले जीपीएस मॉड्यूल कनेक्शन का परीक्षण करना महत्वपूर्ण है, हम इसके लिए मिनिकॉम को नियुक्त करेंगे। कमांड चलाएँ:
सूडो मिनिकॉम-डी / देव / टिटामए0 -बी 9600
जहां 9600 उस बॉड दर का प्रतिनिधित्व करता है जिस पर जीपीएस मॉड्यूल संचार करता है। इसका उपयोग हम एक बार जीपीएस और आरपीआई के बीच डेटा संचार के बारे में सुनिश्चित करने के लिए कर सकते हैं, इसका समय हमारी पाइथन स्क्रिप्ट लिखने में है।
परीक्षण बिल्ली का उपयोग करके भी किया जा सकता है
सूदो बिल्ली / देव / तृप्तम् ०
विंडो में, आप NMEA वाक्य देख सकते हैं, जिसके बारे में हमने पहले चर्चा की है।
इस रास्पबेरी पाई जीपीएस ट्यूटोरियल के लिए पायथन स्क्रिप्ट कोड अनुभाग में नीचे दी गई है।
सभी के साथ और कहा, पूरे सिस्टम का परीक्षण करने का समय है। यह महत्वपूर्ण है कि आप सुनिश्चित करें कि आपका जीपीएस एक अच्छा फिक्स हो रहा है, इसे बाहर निकालकर, अधिकांश जीपीएस को फिक्स पाने के लिए तीन से 4 उपग्रहों के बीच की आवश्यकता होती है, हालांकि मेरा काम इनडोर था।
सही काम करता है? हाँ…
प्रश्न या टिप्पणी है? उन्हें टिप्पणी अनुभाग में छोड़ें।
प्रदर्शन वीडियो नीचे दिया गया है, जहां हमने जीपीएस और रास्पबेरी पाई का उपयोग करके एलसीडी पर अक्षांश और देशांतर में स्थान दिखाया है।