# GPS డేటాను డీకోడ్ చేయండి - వర్చువల్ IoT హార్డ్‌వేర్ మరియు రాస్ప్బెర్రీ పై పాఠం ఈ భాగంలో, మీరు రాస్ప్బెర్రీ పై లేదా వర్చువల్ IoT డివైస్ ద్వారా GPS సెన్సార్ నుండి చదవబడిన NMEA సందేశాలను డీకోడ్ చేసి, అక్షాంశం మరియు రేఖాంశాన్ని వెలికితీయబోతున్నారు. ## 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 `(d)ddmm.mmmm` ఫార్మాట్ నుండి డెసిమల్ డిగ్రీలుగా మార్చబడతాయి. `dm_to_sd` ఫంక్షన్ ఈ మార్చడాన్ని చేస్తుంది. అక్షాంశ దిశను తనిఖీ చేస్తారు, మరియు అక్షాంశం సౌత్ అయితే, విలువను నెగటివ్ సంఖ్యగా మార్చబడుతుంది. రేఖాంశం కూడా వెస్ట్ అయితే, అది నెగటివ్ సంఖ్యగా మార్చబడుతుంది. చివరగా, స్థానాన్ని పొందేందుకు ఉపయోగించిన ఉపగ్రహాల సంఖ్యతో సహా కోఆర్డినేట్లు కన్సోల్‌లో ప్రింట్ చేయబడతాయి. 1. కోడ్‌ను రన్ చేయండి. మీరు వర్చువల్ IoT డివైస్ ఉపయోగిస్తున్నట్లయితే, కౌంటర్‌ఫిట్ యాప్ నడుస్తోందని మరియు 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 సెన్సార్ ప్రోగ్రామ్ డేటా డీకోడింగ్‌తో విజయవంతమైంది! --- **సంకేత వ్యాఖ్య**: ఈ పత్రం AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తుంటే కూడా, స్వయంచాలక అనువాదాలలో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. మూల పత్రం ఒక అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, వృత్తిపరమైన మనవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వలన ఎదురయ్యే ఏదైనా పొరపాటులు లేదా తప్పుగా అర్థం చేసుకోవడాలకు మేము బాధ్యత వహించము.