14 KiB
GPS डेटा वाचा - रास्पबेरी पाय
या धड्याच्या भागात, तुम्ही तुमच्या रास्पबेरी पायला GPS सेन्सर जोडाल आणि त्यातून मूल्ये वाचाल.
हार्डवेअर
रास्पबेरी पायसाठी GPS सेन्सर आवश्यक आहे.
तुम्ही वापरणार असलेला सेन्सर Grove GPS Air530 सेन्सर आहे. हा सेन्सर अनेक GPS प्रणालींशी जोडला जाऊ शकतो ज्यामुळे जलद आणि अचूक डेटा मिळतो. हा सेन्सर दोन भागांपासून बनलेला आहे - सेन्सरचे मुख्य इलेक्ट्रॉनिक्स आणि एक बाह्य अँटेना जो उपग्रहांकडून रेडिओ लहरी पकडण्यासाठी पातळ वायरद्वारे जोडलेला आहे.
हा UART सेन्सर आहे, त्यामुळे तो UART वर GPS डेटा पाठवतो.
GPS सेन्सर कनेक्ट करा
Grove GPS सेन्सर रास्पबेरी पायशी जोडला जाऊ शकतो.
कार्य - GPS सेन्सर कनेक्ट करा
GPS सेन्सर कनेक्ट करा.
-
Grove केबलचा एक टोक GPS सेन्सरवरील सॉकेटमध्ये घाला. ही केबल फक्त एका दिशेने जाईल.
-
रास्पबेरी पाय बंद असताना, Grove केबलचा दुसरा टोक Grove Base हॅटवरील UART म्हणून चिन्हांकित सॉकेटमध्ये जोडा. हे सॉकेट मधल्या रांगेत आहे, SD कार्ड स्लॉटच्या जवळच्या बाजूला, USB पोर्ट्स आणि ईथरनेट सॉकेटच्या विरुद्ध बाजूला.
-
GPS सेन्सर अशा प्रकारे ठेवा की जोडलेला अँटेना आकाशाकडे दिसत असेल - शक्यतो उघड्या खिडकीजवळ किंवा बाहेर. अँटेना समोर काहीही नसल्यास सिग्नल अधिक स्पष्ट मिळतो.
GPS सेन्सर प्रोग्राम करा
रास्पबेरी पाय आता जोडलेल्या GPS सेन्सरचा वापर करण्यासाठी प्रोग्राम केला जाऊ शकतो.
कार्य - GPS सेन्सर प्रोग्राम करा
डिव्हाइस प्रोग्राम करा.
-
पाय चालू करा आणि बूट होण्याची वाट पाहा.
-
GPS सेन्सरमध्ये 2 LEDs आहेत - एक निळा LED जो डेटा प्रसारित होताना फ्लॅश होतो, आणि एक हिरवा LED जो उपग्रहांकडून डेटा प्राप्त करताना प्रत्येक सेकंदाला फ्लॅश होतो. पाय चालू केल्यावर निळा LED फ्लॅश होत असल्याची खात्री करा. काही मिनिटांनंतर हिरवा LED फ्लॅश होईल - जर तसे झाले नाही तर तुम्हाला अँटेना पुन्हा ठेवल्याची गरज असू शकते.
-
VS Code सुरू करा, थेट पायवर किंवा Remote SSH विस्ताराद्वारे कनेक्ट करा.
⚠️ धडा 1 मध्ये VS Code सेटअप आणि सुरू करण्याच्या सूचना पाहू शकता.
-
नवीन रास्पबेरी पाय आवृत्त्यांमध्ये Bluetooth समर्थित असल्यामुळे, Bluetooth साठी वापरल्या जाणाऱ्या सीरियल पोर्ट आणि Grove UART पोर्टसाठी वापरल्या जाणाऱ्या पोर्टमध्ये संघर्ष होतो. हे ठीक करण्यासाठी खालीलप्रमाणे करा:
-
VS Code टर्मिनलमधून,
nanoवापरून/boot/config.txtफाइल संपादित करा.nanoहा टर्मिनलमधील एक अंतर्गत टेक्स्ट एडिटर आहे. खालील आदेश वापरा:sudo nano /boot/config.txtही फाइल VS Code द्वारे संपादित केली जाऊ शकत नाही कारण तुम्हाला
sudoपरवानगी, म्हणजे उंच परवानगी वापरून संपादित करावी लागेल. VS Code ही परवानगी वापरत नाही. -
कर्सर की वापरून फाइलच्या शेवटी जा. खालील कोड कॉपी करा आणि फाइलच्या शेवटी पेस्ट करा:
dtoverlay=pi3-miniuart-bt dtoverlay=pi3-disable-bt enable_uart=1तुमच्या डिव्हाइससाठी सामान्य कीबोर्ड शॉर्टकट वापरून पेस्ट करू शकता (
Ctrl+vWindows, Linux किंवा Raspberry Pi OS वर,Cmd+vmacOS वर). -
Ctrl+xदाबून फाइल सेव्ह करा आणिnanoमधून बाहेर पडा. तुम्हाला बदल सेव्ह करायचे आहेत का विचारले असताyदाबा, नंतर/boot/config.txtओव्हरराइट करण्यासाठीenterदाबा.जर तुम्ही चूक केली असेल, तर सेव्ह न करता बाहेर पडू शकता आणि नंतर हे चरण पुन्हा करा.
-
nanoवापरून/boot/cmdline.txtफाइल संपादित करा. खालील आदेश वापरा:sudo nano /boot/cmdline.txt -
या फाइलमध्ये अनेक की/व्हॅल्यू जोड्या आहेत ज्या स्पेसने वेगळ्या आहेत.
consoleकीसाठी असलेल्या कोणत्याही की/व्हॅल्यू जोड्या काढा. त्या अशा दिसू शकतात:console=serial0,115200 console=tty1कर्सर की वापरून या एंट्रीजकडे जा, नंतर सामान्य
delकिंवाbackspaceकी वापरून काढा.उदाहरणार्थ, जर तुमची मूळ फाइल अशी दिसत असेल:
console=serial0,115200 console=tty1 root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwaitनवीन आवृत्ती अशी असेल:
root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait -
वरील चरणांचे अनुसरण करून ही फाइल सेव्ह करा आणि
nanoमधून बाहेर पडा. -
तुमचा पाय रीबूट करा, नंतर पाय रीबूट झाल्यावर VS Code मध्ये पुन्हा कनेक्ट करा.
-
-
टर्मिनलमधून,
piयुजरच्या होम डिरेक्टरीमध्येgps-sensorनावाचा नवीन फोल्डर तयार करा. या फोल्डरमध्येapp.pyनावाची फाइल तयार करा. -
हा फोल्डर VS Code मध्ये उघडा.
-
GPS मॉड्यूल UART डेटा सीरियल पोर्टवर पाठवते. Python कोडमधून सीरियल पोर्टशी संवाद साधण्यासाठी
pyserialPip पॅकेज इंस्टॉल करा:pip3 install pyserial -
तुमच्या
app.pyफाइलमध्ये खालील कोड जोडा:import time import serial serial = serial.Serial('/dev/ttyAMA0', 9600, timeout=1) serial.reset_input_buffer() serial.flush() def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1)हा कोड
pyserialPip पॅकेजमधीलserialमॉड्यूल आयात करतो. त्यानंतर/dev/ttyAMA0सीरियल पोर्टशी कनेक्ट करतो - Grove Pi Base Hat त्याच्या UART पोर्टसाठी वापरत असलेल्या सीरियल पोर्टचा हा पत्ता आहे. त्यानंतर या सीरियल कनेक्शनमधील कोणताही विद्यमान डेटा साफ करतो.पुढे,
print_gps_dataनावाची एक फंक्शन परिभाषित केली जाते जी दिलेली ओळ कन्सोलवर प्रिंट करते.त्यानंतर कोड सतत लूप करतो, प्रत्येक लूपमध्ये सीरियल पोर्टमधून जितक्या ओळी वाचता येतील तितक्या वाचतो. प्रत्येक ओळसाठी
print_gps_dataफंक्शन कॉल करतो.सर्व डेटा वाचल्यानंतर, लूप 1 सेकंदासाठी थांबतो आणि पुन्हा प्रयत्न करतो.
-
हा कोड चालवा. तुम्हाला GPS सेन्सरकडून कच्चा आउटपुट दिसेल, काहीतरी असे:
$GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68जर तुम्हाला कोड थांबवून पुन्हा सुरू करताना खालीलपैकी एक त्रुटी मिळाली, तर तुमच्या
whileलूपमध्येtry - exceptब्लॉक जोडा.UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation bytewhile True: try: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data() line = serial.readline().decode('utf-8') # There's a random chance the first byte being read is part way through a character. # Read another full line and continue. except UnicodeDecodeError: line = serial.readline().decode('utf-8') time.sleep(1)
💁 तुम्ही हा कोड code-gps/pi फोल्डरमध्ये शोधू शकता.
😀 तुमचा GPS सेन्सर प्रोग्राम यशस्वी झाला!
अस्वीकरण:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.

