# GPS ഡേറ്റ വായിക്കുക - Wio Terminal പാഠ ക്ലാസിന്റെ ഈ ഭാഗത്ത്, നിങ്ങൾക്ക് നിങ്ങളുടെ Wio Terminal ല്‍ GPS സെന്‍സര്‍ ചേര്‍ക്കാനും അതിൽ നിന്നുള്ള മൂല്യങ്ങള്‍ വായിക്കാനുമാകും. ## ഹാര്‍ഡ്‌വെയര്‍ Wio Terminal ന് GPS സെന്‍സര്‍ ആവശ്യമുണ്ട്. നിങ്ങൾ ഉപയോഗിക്കുന്ന സെന്‍സർ ഒരു [Grove GPS Air530 സെന്‍സര്‍](https://www.seeedstudio.com/Grove-GPS-Air530-p-4584.html) ആണ്. ഈ സെന്‍സര്‍ വേഗതയുള്ള, ശരിയായ ഫിക്‌സ് നേടാന്‍ ബഹുസ്ഥാപന GPS സിസ്റ്റങ്ങളോട് ബന്ധപ്പെടാൻ കഴിയും. സെന്‍സര്‍ രണ്ട് ഭാഗങ്ങളായി അടങ്ങിയിരിക്കുന്നു - സെന്‍സറിന്റെ കോര്‍ ഇലക്ട്രോണിക്സ്, және ഉപഗ്രഹങ്ങളിൽ നിന്ന് റേഡിയോ തരംഗങ്ങൾ പിക് ചെയ്യുന്നതിനായി സാന്ദ്രമായ വയറിൽ ബന്ധിപ്പിച്ച പുറത്തുള്ള ആന്റിന. ഇത് UART സെന്‍സർ ആണ്, അതിനാൽ GPS ഡാറ്റ UART വഴി അയയ്ക്കുന്നു. ### GPS സെന്‌സര്‍ കണക്ട് ചെയ്യുക Grove GPS സെന്‍സർ Wio Terminal ല്‍ കണക്ട് ചെയ്യാവുന്നതാണ്. #### ടാസ്‌ക് - GPS സെന്‍സര്‍ കണക്ട് ചെയ്യുക GPS സെന്‍സർ കണക്ട് ചെയ്യുക. ![A grove GPS sensor](../../../../../translated_images/ml/grove-gps-sensor.247943bf69b03f0d.webp) 1. ഒരു Grove കേബിളിന്റെ ഒരു അറ്റം GPS സെന്‍സറിന്റെ സോക്കറ്റിലേക്ക് പ്രവേശിപ്പിക്കുക. അത് ഒരു മാത്രം ദിശയിലേയ്ക്ക് കണക്ട് ചെയ്യപ്പെട്ടിരിക്കും. 1. Wio Terminal നിങ്ങളുടെ കമ്പ്യൂട്ടറില്‍ നിന്നും അല്ലെങ്കിൽ മറ്റ് പവറിനെകിൾ നിന്ന് അൺകണക്ട് ചെയ്തിരിക്കുമ്പോൾ, Grove കേബിളിന്റെ മറു അറ്റം Wio Terminal ന്റെ സ്ക്രീന്‍ കാണുമ്പോൾ ഇടതുവശത്തുള്ള Grove സോക്കറ്റിലേക്കുനിൽക്കൂ. ഇത് പവർ ബട്ടണിനടുത്തുള്ള സോക്കറ്റാണ്. ![The grove GPS sensor connected to the left hand socket](../../../../../translated_images/ml/wio-gps-sensor.19fd52b81ce58095.webp) 1. GPS സെന്‍സര്‍ ആന്റിന കത്തിയുള്ള ഭാഗം ആകാശത്തേക്ക് കാണുന്ന വിധത്തില്‍ സ്ഥിതി ചെയ്യുക - ആശയവിനിമയം പൂർത്തിയാകാൻ തുറന്ന കിടപ്പുമുറിവീടോ പുറത്തോ ഉയർന്ന സ്ഥിതിയോ ഉത്തമമാണ്. ആന്റിനയ്ക്ക് മുന്നിൽ ഒന്നും ഇല്ലാതിരിക്കുകയാണെങ്കിൽ സിഗ്നൽ കൂടുതല്‍ വ്യക്തമാണ്. 1. ഇപ്പോൾ Wio Terminal നിങ്ങളുടെ കമ്പ്യൂട്ടര്‍ക്ക് കണക്ട് ചെയ്യാം. 1. GPS സെന്‍സറിന് 2 LEDs ഉണ്ട് - ഡാറ്റ അയയ്ക്കുമ്പോൾ ഫ്ലാഷ് ചെയ്യുന്ന ബ്ലൂ LED, ഉപഗ്രഹങ്ങളിൽ നിന്നുള്ള ഡാറ്റ ലഭിക്കുമ്പോള്‍ ഒരു സെക്കൻഡിന് ഓരൊന്ന് ഫ്ലാഷ് ചെയ്യുന്ന ഗ്രീൻ LED. Wio Terminal പവർ ഓണ്‍ ചെയ്‌തപ്പോൾ നീല LED ഫ്ലാഷ് ചെയ്യുന്നതാകും ഉറപ്പാക്കുക. കുറച്ച് മിനിറ്റുകൾക്കുള്ളിലെ ഗ്രീൻ LED ഫ്ലാഷ് ചെയ്യാത്ത പക്ഷം ആന്റിന പുനരുപയോഗം ചെയ്യേണ്ടതുണ്ടാകാം. ## GPS സെന്‍സര്‍ പ്രോഗ്രാം ചെയ്യുക Wio Terminal ഇപ്പോൾ ബന്ധിപ്പിച്ച GPS സെന്‍സര്‍ ഉപയോഗിക്കാൻ പ്രോഗ്രാം ചെയ്യാം. ### ടാസ്‌ക് - GPS സെന്‍സര്‍ പ്രോഗ്രാം ചെയ്യുക ഡിവൈസ് പ്രോഗ്രാം ചെയ്യുക. 1. PlatformIO ഉപയോഗിച്ച് ഒരു പുതിയ Wio Terminal പ്രോജക്ട് സൃഷ്ടിച്ച് `gps-sensor` എന്ന പേരിടുക. `setup` ഫംഗ്ഷനില്‍ സീരിയല്‍ പോര്‍ട്ട് കൺഫിഗർ ചെയ്യാനുള്ള കോഡ് ചേർക്കുക. 1. `main.cpp` ഫയലിന്റെ മുകളിലായി താഴെപ്പറയുന്ന include ഡയറക്ടിവ് ചേർക്കുക. ഇത് അവകാശപ്പെട്ട Grove പോര്‍ട്ട് UART ആയി ക്രമീകരിക്കുന്ന ഫംഗ്ഷനുകൾ അടങ്ങിയ ഹെഡര്‍ ഫയലാണ്. ```cpp #include ``` 1. ഇതിന്റെ താഴെ, UART പോര്‍ട്ടിലേക്ക് സീരിയല്‍ പോര്‍ട്ട് കണക്ഷൻ പ്രഖ്യാപിക്കുന്ന കോഡ് ചേർക്കുക: ```cpp static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0); ``` 1. നിങ്ങളുടെ ചില സിഗ്നൽ ഹാൻഡ്ലറുകളെ ഈ സീരിയല്‍ പോര്‍ട്ടിലേക്ക് റിടയറക്ട് ചെയ്യാൻ ചുരുങ്ങിയ കോഡ് ഇവിടെ ചേർക്കുക: ```cpp void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); } ``` 1. താഴെപ്പറയുന്ന കോഡ് `setup` ഫംഗ്ഷനിൽ `Serial` പോർട്ട് ക്രമീകരിക്കുന്നതിന് മുകളിലായി ചേർക്കുക: ```cpp Serial3.begin(9600); while (!Serial3) ; // Serial3 തയ്യാറാവാൻ കാത്തിരിക്കൂ delay(1000); ``` 1. `setup` ഫംഗ്ഷനിലെ ഈ കോഡിന് താഴെ Grove പിനിനെ സീരിയല്‍ പോർട്ടിലേക്ക് കണക്ട് ചെയ്യാനുള്ള താഴെപ്പറയുന്ന കോഡ് ചേർക്കുക: ```cpp pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT); ``` 1. GPS ഡാറ്റ സീരിയൽ മോണിറ്ററിലേക്ക് അയയ്ക്കാനുള്ള അനുബന്ധ ഫംഗ്ഷൻ `loop` മുമ്പുണ്ടാക്കുക: ```cpp void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); } ``` 1. `loop` ഫംഗ്ഷനിൽ UART സീരിയല്‍ പോര്‍ട്ടിൽ നിന്ന് ഡാറ്റ വായിക്കുകയും സീരിയൽ മോണിറ്ററിലേക്ക് പ്രിന്റ് ചെയ്യാനും താഴെ കൊടുത്ത കോഡ് ചേർക്കുക: ```cpp while (Serial3.available() > 0) { printGPSData(); } delay(1000); ``` ഈ കോഡ് UART സീരിയല്‍ പോര്‍ട്ടിൽ നിന്ന് വായിക്കുന്നു. `readStringUntil` ഫംഗ്ഷന്‍റെ സഹായത്തോടെ നിരതിരിക്കുന്ന ടർമിനേറ്റർ ചിഹ്നം വരെയുള്ള ഡാറ്റ വായിക്കപ്പെടുന്നു, ഈ കേസിൽ പുതിയ വരിക്കാനിരിക്കുന്നു. ഇതിലൂടെ ഒരു പൂർണ്ണ NMEA വാക്യം (NMEA വാക്യങ്ങള്‍ പുതിയ വരിക്കാനിരിക്കാൻ അവസാനിക്കുന്നു) വായിക്കുന്നു. UART സീരിയല്‍ പോര്‍ട്ടിൽ നിന്ന് ഡാറ്റ ലഭിക്കുമ്പോൾ അത് വായിച്ചു `printGPSData` ഫംഗ്ഷന്‍റെ സഹായത്തോടെ സീരിയൽ മോണിറ്ററിലേക്ക് അയച്ചുതരുന്നു. പിന്നെ ഡാറ്റ ഇല്ലാതെ പോയാൽ `loop` 1 സെക്കന്റ് (1,000ms) ഡിലേ എന്നു ചെയ്‌തുകൊണ്ടിരിക്കും. 1. കോഡ് കമ്പൈല്‍ ചെയ്ത് Wio Terminal ലേക്ക് അപ്‌ലോഡ് ചെയ്യുക. 1. അപ്‌ലോഡ് പൂര്‍ത്തിയായ ശേഷം സീരിയൽ മോണിറ്റർ വഴി GPS ഡാറ്റാ നിരീക്ഷിക്കാം. ```output > Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $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 ``` > 💁 ഈ കോഡ് നിങ്ങൾക്ക് [code-gps/wio-terminal](../../../../../3-transport/lessons/1-location-tracking/code-gps/wio-terminal) ഫോൾഡറിൽ കണ്ടെത്താം. 😀 നിങ്ങളുടെ GPS സെന്‍സര്‍ പ്രോഗ്രാം വിജയകരമായി പൂർത്തിയായി! --- **അസൂയാ നോട്ടിസ്സ്**: ഈ രേഖ [Co-op Translator](https://github.com/Azure/co-op-translator) എന്ന AI ഭാഷാന്തരണ സേവനം ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. 우리는 സത്യസന്ധതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിഴവുകൾ അല്ലെങ്കിൽ അശുദ്ധികൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിനാൽ, മൗലിക രേഖ, അതിന്റെ സ്വന്തം ഭാഷയിൽ തന്നെയാണ് പ്രാമാണികമായ ഉറവിടം. നിർണ്ണായകമായ വിവരങ്ങൾക്കായി, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം നിർദ്ദേശിക്കുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗം മൂലം ഉണ്ടായ οποιεδήποτε തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്ക്‌ നമ്മൾ ഉത്തരവാദിത്തം ഏറ്റെടുത്തിരിക്കുന്നില്ല.