# GPS ഡാറ്റ ഡീകോഡ് ചെയ്യുക - വെർച്ച്വൽ IoT ഹാർഡ്‌വെയർ এবং റാസ്പ്ബെറി പൈ പാഠത്തിന്റെ ഈ ഭാഗത്തിൽ, റാസ്പ്ബെറി പൈ അല്ലെങ്കിൽ വെർച്ച്വൽ IoT ഉപകരണം നിന്നായി GPS സെൻസറിൽ നിന്നുള്ള NMEA സന്ദേശങ്ങൾ ഡീകോഡ് ചെയ്ത്, നിരപ്പും രേഖാംശവും (latitude and longitude) പുറത്തെടുക്കും. ## GPS ഡാറ്റ ഡീകോഡ് ചെയ്യുക റോ പ NMEA ഡാറ്റ സീരിയൽ പോർട്ടിൽ നിന്നു വായിച്ചതിന് ശേഷം, ഓപ്പൺ സോഴ്‌സ് NMEA ലൈബ്രറി ഉപയോഗിച്ച് അതിനെ ഡീകോഡ് ചെയ്യാം. ### ടാസ്ക് - GPS ഡാറ്റ ഡീകോഡ് ചെയ്യുക GPS ഡാറ്റ ഡീകോഡ് ചെയ്യാനായി ഉപകരണം പ്രോഗ്രാം ചെയ്യുക. 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') ``` ഈ കോഡ് UART സീരിയൽ പോർട്ടിൽ നിന്ന് വായിച്ച ലൈൻ പാഴ്സുചെയ്യാൻ `pynmea2` ലൈബ്രറി ഉപയോഗിക്കും. സന്ദേശത്തിന്റെ സെന്റൻസ് തരം `GGA` ആണെങ്കിൽ, അത് ഒരു സ്ഥാനഫിക്‌സ് സന്ദേശമാണ്, കൂടാതെ ഈ സന്ദേശം പ്രോസസ്സ് ചെയ്യപ്പെടും. സന്ദേശത്തിൽ നിന്നുള്ള നിരപ്പും രേഖാംശവും വായിച്ച്, NMEA的不 ddmm.mmmm രൂപത്തിൽ നിന്നായി ഡെസിമൽ ഡിഗ്രീസായി മാറ്റുന്നു. `dm_to_sd` ഫങ്ക്ഷൻ ഈ പരിവർത്തനം നടത്തുന്നു. latitude ന്റെ ദിശ പരിശോധിച്ച്, ദക്ഷിണമാണെങ്കിൽ മാന്യം (value) നെഗറ്റീവ് ആക്കി മാറ്റുന്നു. longitude മാറ്റിയത്പോലെ, പടിഞ്ഞാറ് ആണെങ്കിൽ നെഗറ്റീവ് ആകും. അവസാനം നിക്ഷിപ്തമാക്കിയ സ്ഥിതി കോർഡിനേറ്റുകൾ കൺസോളിൽ ഡിസ്‌പ്ലേ ചെയ്യും, കൂടാതെ ഭൂമിക്ഷേത്രം കണ്ടെത്താൻ ഉപയോഗിച്ചുളള ഉപഗ്രഹങ്ങളുടെ എണ്ണം കാണിക്കും. 1. കോഡ് റൺ ചെയ്യുക. നിങ്ങൾ വെർച്ച്വൽ IoT ഉപകരണം ഉപയോഗിക്കുന്നുവെങ്കിൽ, CounterFit ആപ്പ് ഓടുകയാണെന്ന് ഉറപ്പാക്കുക, GPS ഡാറ്റ അയയ്‌ക്കപ്പെടുകയാണ്. ```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) ഫോൾഡറിലും കണ്ടെത്താൻ കഴിയും. 😀 ഡാറ്റ ഡീകോഡിങ്ങോടുള്ള നിങ്ങളുടെ GPS സെൻസർ പ്രോഗ്രാം വിജയകരമായി പൂർത്തിയായി! --- **ജില്ലവ്:** ഈ ഡോക്യമെൻറ് എ.ഐ. പരിഭാഷാ സേവനം [കോ-ഓപ്പ് ട്രാൻസ്‌ലൈറ്റർ](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. നാം സത്യസന്ധതയ്ക്ക് ശ്രമിച്ചാലും, സ്വയംകാര്യമായ പരിഭാഷയിൽ പിഴവുകൾ അല്ലെങ്കിൽ സ്വകാര്യതകൾ ഉണ്ടായിരിക്കുവാൻ സാധ്യതയുണ്ടെന്ന് ദയവായി ശ്രദ്ധിക്കുക. ഇക്കാര്യം ഏതെങ്കിലും നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മാനവ പരിഭാഷ ഗുണനിലവാരമുള്ളതാണ് ശുപാർശ ചെയ്യുന്നത്. ഈ പരിഭാഷ ഉപയോഗത്തിൽ നിന്നുള്ള തെറ്റിദ്ധരിപ്പിക്കൽ അല്ലെങ്കിൽ ദുരുപയോഗത്തിന് ഞങ്ങൾ ഉത്തരവാദിയല്ല.