You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/lt/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md

6.4 KiB

Skaitykite GPS duomenis - Wio Terminal

Šioje pamokos dalyje pridėsite GPS jutiklį prie savo Wio Terminal ir nuskaitysite jo duomenis.

Aparatinė įranga

Wio Terminal reikalingas GPS jutiklis.

Jutiklis, kurį naudosite, yra Grove GPS Air530 jutiklis. Šis jutiklis gali prisijungti prie kelių GPS sistemų, kad greitai ir tiksliai nustatytų vietą. Jutiklis sudarytas iš dviejų dalių pagrindinės elektronikos ir išorinės antenos, prijungtos plonu laidu, kad galėtų priimti radijo bangas iš palydovų.

Tai yra UART jutiklis, todėl GPS duomenis perduoda per UART.

Prijunkite GPS jutiklį

Grove GPS jutiklis gali būti prijungtas prie Wio Terminal.

Užduotis - prijunkite GPS jutiklį

Prijunkite GPS jutiklį.

Grove GPS jutiklis

  1. Įstatykite vieną Grove kabelio galą į GPS jutiklio lizdą. Kabelis įsistatys tik viena kryptimi.

  2. Kai Wio Terminal atjungtas nuo kompiuterio ar kito maitinimo šaltinio, prijunkite kitą Grove kabelio galą prie kairiojo Grove lizdo Wio Terminal, žiūrint į ekraną. Tai yra lizdas, esantis arčiausiai maitinimo mygtuko.

    Grove GPS jutiklis prijungtas prie kairiojo lizdo

  3. Padėkite GPS jutiklį taip, kad prijungta antena turėtų matomumą į dangų idealiai šalia atviro lango arba lauke. Antenai lengviau gauti aiškų signalą, kai nėra kliūčių.

  4. Dabar galite prijungti Wio Terminal prie savo kompiuterio.

  5. GPS jutiklis turi 2 LED lemputes mėlyną LED, kuris mirksi, kai perduodami duomenys, ir žalią LED, kuris mirksi kas sekundę, kai gaunami duomenys iš palydovų. Įsitikinkite, kad mėlyna LED mirksi, kai įjungiate Wio Terminal. Po kelių minučių žalia LED turėtų pradėti mirksėti jei ne, gali tekti perkelti anteną.

Programuokite GPS jutiklį

Dabar Wio Terminal galima programuoti, kad naudotų prijungtą GPS jutiklį.

Užduotis - programuokite GPS jutiklį

Programuokite įrenginį.

  1. Sukurkite visiškai naują Wio Terminal projektą naudodami PlatformIO. Pavadinkite šį projektą gps-sensor. Pridėkite kodą į setup funkciją, kad sukonfigūruotumėte nuoseklųjį prievadą.

  2. Pridėkite šį include direktyvą failo main.cpp viršuje. Tai įtraukia antraštės failą su funkcijomis, skirtomis konfigūruoti kairįjį Grove prievadą UART.

    #include <wiring_private.h>
    
  3. Po to pridėkite šią kodo eilutę, kad deklaruotumėte nuosekliojo prievado ryšį su UART prievadu:

    static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
    
  4. Jums reikia pridėti šiek tiek kodo, kad nukreiptumėte kai kuriuos vidinius signalų apdorojimo įrenginius į šį nuoseklųjį prievadą. Pridėkite šį kodą po Serial3 deklaracijos:

    void SERCOM3_0_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_1_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_2_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_3_Handler()
    {
        Serial3.IrqHandler();
    }
    
  5. setup funkcijoje, po to, kai sukonfigūruotas Serial prievadas, sukonfigūruokite UART nuoseklųjį prievadą naudodami šį kodą:

    Serial3.begin(9600);
    
    while (!Serial3)
        ; // Wait for Serial3 to be ready
    
    delay(1000);
    
  6. Po šio kodo setup funkcijoje pridėkite šį kodą, kad prijungtumėte Grove piną prie nuosekliojo prievado:

    pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
    
  7. Pridėkite šią funkciją prieš loop funkciją, kad išsiųstumėte GPS duomenis į nuosekliojo monitorių:

    void printGPSData()
    {
        Serial.println(Serial3.readStringUntil('\n'));
    }
    
  8. loop funkcijoje pridėkite šį kodą, kad nuskaitytumėte iš UART nuosekliojo prievado ir išvestumėte duomenis į nuosekliojo monitorių:

    while (Serial3.available() > 0)
    {
        printGPSData();
    }
    
    delay(1000);
    

    Šis kodas nuskaito iš UART nuosekliojo prievado. Funkcija readStringUntil nuskaito iki terminatoriaus simbolio, šiuo atveju naujos eilutės. Tai nuskaito visą NMEA sakinį (NMEA sakiniai baigiasi naujos eilutės simboliu). Kol galima nuskaityti duomenis iš UART nuosekliojo prievado, jie nuskaitomi ir siunčiami į nuosekliojo monitorių per funkciją printGPSData. Kai daugiau duomenų nuskaityti neįmanoma, loop funkcija uždelsia 1 sekundę (1,000ms).

  9. Sukurkite ir įkelkite kodą į Wio Terminal.

  10. Įkėlus kodą, galite stebėti GPS duomenis naudodami nuosekliojo monitorių.

    > 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
    

💁 Šį kodą galite rasti code-gps/wio-terminal aplanke.

😀 Jūsų GPS jutiklio programa buvo sėkminga!


Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.