# जीपीएस डाटा डिकोड गर्नुहोस् - भर्चुअल IoT हार्डवेयर र रास्पबेरी पाई यस पाठको यस भागमा, तपाईंले रास्पबेरी पाई वा भर्चुअल IoT उपकरणद्वारा जीपीएस सेन्सरबाट पढिएको NMEA सन्देशहरू डिकोड गर्नुहुनेछ, र अक्षांश र देशान्तर निकाल्नुहुनेछ। ## जीपीएस डाटा डिकोड गर्नुहोस् जब कच्चा NMEA डाटा सिरियल पोर्टबाट पढिन्छ, यसलाई खुला स्रोत NMEA पुस्तकालय प्रयोग गरेर डिकोड गर्न सकिन्छ। ### कार्य - जीपीएस डाटा डिकोड गर्नुहोस् उपकरणलाई जीपीएस डाटा डिकोड गर्न प्रोग्राम गर्नुहोस्। 1. यदि `gps-sensor` एप परियोजना खुला छैन भने यसलाई खोल्नुहोस्। 1. `pynmea2` पिप प्याकेज स्थापना गर्नुहोस्। यस प्याकेजमा NMEA सन्देशहरू डिकोड गर्न कोड छ। ```sh pip3 install pynmea2 ``` 1. `app.py` फाइलमा `pynmea2` मोड्युल आयात गर्न निम्न कोड आयातहरूमा थप्नुहोस्: ```python import pynmea2 ``` 1. `print_gps_data` फङ्सनको सामग्रीलाई निम्नसँग प्रतिस्थापन गर्नुहोस्: ```python msg = pynmea2.parse(line) if msg.sentence_type == 'GGA': lat = pynmea2.dm_to_sd(msg.lat) lon = pynmea2.dm_to_sd(msg.lon) if msg.lat_dir == 'S': lat = lat * -1 if msg.lon_dir == 'W': lon = lon * -1 print(f'{lat},{lon} - from {msg.num_sats} satellites') ``` यो कोडले `pynmea2` पुस्तकालय प्रयोग गरेर UART सिरियल पोर्टबाट पढिएको लाइनलाई पार्स गर्नेछ। यदि सन्देशको वाक्य प्रकार `GGA` हो भने, यो एक पोजिसन फिक्स सन्देश हो, र यसलाई प्रशोधन गरिन्छ। सन्देशबाट अक्षांश र देशान्तर मानहरू पढिन्छ र NMEA `(d)ddmm.mmmm` ढाँचाबाट दशमलव डिग्रीमा रूपान्तरण गरिन्छ। `dm_to_sd` फङ्सनले यो रूपान्तरण गर्दछ। त्यसपछि अक्षांशको दिशा जाँच गरिन्छ, र यदि अक्षांश दक्षिण हो भने, मानलाई नकारात्मक संख्यामा रूपान्तरण गरिन्छ। त्यस्तै, यदि देशान्तर पश्चिम हो भने, यसलाई नकारात्मक संख्यामा रूपान्तरण गरिन्छ। अन्ततः स्थानाङ्कहरू कन्सोलमा प्रिन्ट गरिन्छ, स्थान पत्ता लगाउन प्रयोग गरिएका उपग्रहहरूको सङ्ख्यासहित। 1. कोड चलाउनुहोस्। यदि तपाईं भर्चुअल IoT उपकरण प्रयोग गर्दै हुनुहुन्छ भने, CounterFit एप चलिरहेको छ र जीपीएस डाटा पठाइरहेको छ भनेर सुनिश्चित गर्नुहोस्। ```output pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites ``` > 💁 तपाईं यो कोड [code-gps-decode/virtual-device](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/virtual-device) फोल्डरमा वा [code-gps-decode/pi](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/pi) फोल्डरमा पाउन सक्नुहुन्छ। 😀 तपाईंको जीपीएस सेन्सर प्रोग्राम डाटा डिकोडिङसँग सफल भयो! --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार हुने छैनौं।