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/cs/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

7.5 KiB

Čtení GPS dat - Virtuální IoT zařízení

V této části lekce přidáte GPS senzor do svého virtuálního IoT zařízení a budete z něj číst hodnoty.

Virtuální hardware

Virtuální IoT zařízení bude používat simulovaný GPS senzor, který je přístupný přes UART prostřednictvím sériového portu.

Fyzický GPS senzor má anténu, která zachycuje rádiové vlny z GPS satelitů a převádí GPS signály na GPS data. Virtuální verze toto simuluje tím, že vám umožňuje buď nastavit zeměpisnou šířku a délku, poslat surové NMEA věty, nebo nahrát GPX soubor s více lokacemi, které mohou být vráceny postupně.

🎓 NMEA věty budou pokryty později v této lekci

Přidání senzoru do CounterFit

Pro použití virtuálního GPS senzoru je potřeba jej přidat do aplikace CounterFit.

Úkol - přidání senzoru do CounterFit

Přidejte GPS senzor do aplikace CounterFit.

  1. Vytvořte novou Python aplikaci na svém počítači ve složce gps-sensor s jediným souborem app.py a Python virtuálním prostředím, a přidejte CounterFit pip balíčky.

    ⚠️ Pokud potřebujete, můžete se podívat na instrukce pro vytvoření a nastavení CounterFit Python projektu v lekci 1.

  2. Nainstalujte další Pip balíček pro instalaci CounterFit shim, který dokáže komunikovat se senzory založenými na UART přes sériové připojení. Ujistěte se, že instalujete z terminálu s aktivovaným virtuálním prostředím.

    pip install counterfit-shims-serial
    
  3. Ujistěte se, že webová aplikace CounterFit běží.

  4. Vytvořte GPS senzor:

    1. V poli Create sensor v panelu Sensors rozbalte pole Sensor type a vyberte UART GPS.

    2. Nechte Port nastavený na /dev/ttyAMA0.

    3. Vyberte tlačítko Add pro vytvoření GPS senzoru na portu /dev/ttyAMA0.

    Nastavení GPS senzoru

    GPS senzor bude vytvořen a objeví se v seznamu senzorů.

    Vytvořený GPS senzor

Programování GPS senzoru

Virtuální IoT zařízení nyní může být naprogramováno pro použití virtuálního GPS senzoru.

Úkol - programování GPS senzoru

Naprogramujte aplikaci GPS senzoru.

  1. Ujistěte se, že aplikace gps-sensor je otevřená ve VS Code.

  2. Otevřete soubor app.py.

  3. Přidejte následující kód na začátek app.py pro připojení aplikace k CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Přidejte následující kód pod tento pro import potřebných knihoven, včetně knihovny pro CounterFit sériový port:

    import time
    import counterfit_shims_serial
    
    serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
    

    Tento kód importuje modul serial z Pip balíčku counterfit_shims_serial. Poté se připojuje k sériovému portu /dev/ttyAMA0 - to je adresa sériového portu, který virtuální GPS senzor používá pro svůj UART port.

  5. Přidejte následující kód pod tento pro čtení ze sériového portu a tisk hodnot do konzole:

    def print_gps_data(line):
        print(line.rstrip())
    
    while True:
        line = serial.readline().decode('utf-8')
    
        while len(line) > 0:
            print_gps_data(line)
            line = serial.readline().decode('utf-8')
    
        time.sleep(1)
    

    Funkce print_gps_data je definována tak, aby tiskla řádek, který jí byl předán, do konzole.

    Poté kód běží v nekonečné smyčce, čte co nejvíce textových řádků ze sériového portu v každé iteraci smyčky. Pro každý řádek volá funkci print_gps_data.

    Po přečtení všech dat smyčka na 1 sekundu usne a poté se pokusí znovu.

  6. Spusťte tento kód, ujistěte se, že používáte jiný terminál než ten, ve kterém běží aplikace CounterFit, aby aplikace CounterFit zůstala spuštěná.

  7. Z aplikace CounterFit změňte hodnotu GPS senzoru. Můžete to udělat jedním z následujících způsobů:

    • Nastavte Source na Lat/Lon a zadejte konkrétní zeměpisnou šířku, délku a počet satelitů použitých k získání GPS fixu. Tato hodnota bude odeslána pouze jednou, takže zaškrtněte políčko Repeat, aby se data opakovala každou sekundu.

      GPS senzor s vybraným lat lon

    • Nastavte Source na NMEA a přidejte některé NMEA věty do textového pole. Všechny tyto hodnoty budou odeslány, s prodlevou 1 sekundy před každou novou větou GGA (fixace polohy).

      GPS senzor s nastavenými NMEA větami

      Můžete použít nástroj jako nmeagen.org k vytvoření těchto vět nakreslením na mapě. Tyto hodnoty budou odeslány pouze jednou, takže zaškrtněte políčko Repeat, aby se data opakovala jednu sekundu poté, co byla všechna odeslána.

    • Nastavte Source na GPX soubor a nahrajte GPX soubor s trasovými lokacemi. GPX soubory můžete stáhnout z řady populárních mapovacích a turistických webů, jako je AllTrails. Tyto soubory obsahují více GPS lokací jako trasu a GPS senzor vrátí každou novou lokaci v intervalech 1 sekundy.

      GPS senzor s nastaveným GPX souborem

      Tyto hodnoty budou odeslány pouze jednou, takže zaškrtněte políčko Repeat, aby se data opakovala jednu sekundu poté, co byla všechna odeslána.

    Jakmile nastavíte GPS hodnoty, vyberte tlačítko Set pro potvrzení těchto hodnot na senzoru.

  8. Uvidíte surový výstup z GPS senzoru, něco jako následující:

    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    

💁 Tento kód najdete ve složce code-gps/virtual-device.

😀 Vaše programování GPS senzoru bylo úspěšné!


Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.