# ਜੀਪੀਐਸ ਡਾਟਾ ਡੀਕੋਡ ਕਰੋ - ਵਰਚੁਅਲ 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) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀਅਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁੱਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼, ਜੋ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੈ, ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।