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

7.8 KiB

Citirea datelor GPS - Hardware IoT Virtual

În această parte a lecției, vei adăuga un senzor GPS la dispozitivul tău IoT virtual și vei citi valorile de la acesta.

Hardware Virtual

Dispozitivul IoT virtual va folosi un senzor GPS simulat, accesibil prin UART printr-un port serial.

Un senzor GPS fizic va avea o antenă pentru a recepționa undele radio de la sateliții GPS și pentru a converti semnalele GPS în date GPS. Versiunea virtuală simulează acest lucru, permițându-ți să setezi o latitudine și longitudine, să trimiți propoziții NMEA brute sau să încarci un fișier GPX cu locații multiple care pot fi returnate secvențial.

🎓 Propozițiile NMEA vor fi acoperite mai târziu în această lecție

Adăugarea senzorului în CounterFit

Pentru a folosi un senzor GPS virtual, trebuie să adaugi unul în aplicația CounterFit.

Sarcină - adaugă senzorul în CounterFit

Adaugă senzorul GPS în aplicația CounterFit.

  1. Creează o nouă aplicație Python pe computerul tău într-un folder numit gps-sensor cu un singur fișier numit app.py și un mediu virtual Python, și adaugă pachetele pip CounterFit.

    ⚠️ Poți consulta instrucțiunile pentru crearea și configurarea unui proiect Python CounterFit în lecția 1, dacă este necesar.

  2. Instalează un pachet Pip suplimentar pentru a instala un shim CounterFit care poate comunica cu senzori bazați pe UART printr-o conexiune serială. Asigură-te că instalezi acest pachet dintr-un terminal cu mediul virtual activat.

    pip install counterfit-shims-serial
    
  3. Asigură-te că aplicația web CounterFit este pornită.

  4. Creează un senzor GPS:

    1. În caseta Create sensor din panoul Sensors, deschide meniul derulant Sensor type și selectează UART GPS.

    2. Lasă Port setat la /dev/ttyAMA0.

    3. Selectează butonul Add pentru a crea senzorul GPS pe portul /dev/ttyAMA0.

    Setările senzorului GPS

    Senzorul GPS va fi creat și va apărea în lista de senzori.

    Senzorul GPS creat

Programează senzorul GPS

Dispozitivul IoT virtual poate fi acum programat pentru a folosi senzorul GPS virtual.

Sarcină - programează senzorul GPS

Programează aplicația senzorului GPS.

  1. Asigură-te că aplicația gps-sensor este deschisă în VS Code.

  2. Deschide fișierul app.py.

  3. Adaugă următorul cod în partea de sus a fișierului app.py pentru a conecta aplicația la CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Adaugă următorul cod sub acesta pentru a importa câteva biblioteci necesare, inclusiv biblioteca pentru portul serial CounterFit:

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

    Acest cod importă modulul serial din pachetul Pip counterfit_shims_serial. Apoi se conectează la portul serial /dev/ttyAMA0 - aceasta este adresa portului serial pe care senzorul GPS virtual îl folosește pentru portul său UART.

  5. Adaugă următorul cod sub acesta pentru a citi de la portul serial și a afișa valorile în consolă:

    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)
    

    Este definită o funcție numită print_gps_data care afișează linia transmisă către ea în consolă.

    Apoi, codul intră într-un ciclu infinit, citind cât mai multe linii de text de la portul serial în fiecare iterație. Apelează funcția print_gps_data pentru fiecare linie.

    După ce toate datele au fost citite, ciclul așteaptă 1 secundă, apoi încearcă din nou.

  6. Rulează acest cod, asigurându-te că folosești un terminal diferit de cel în care aplicația CounterFit rulează, astfel încât aplicația CounterFit să rămână activă.

  7. Din aplicația CounterFit, schimbă valoarea senzorului GPS. Poți face acest lucru în unul dintre următoarele moduri:

    • Setează Source la Lat/Lon și setează o latitudine, longitudine și numărul de sateliți folosiți pentru a obține fixarea GPS. Această valoare va fi trimisă o singură dată, așa că bifează caseta Repeat pentru ca datele să se repete la fiecare secundă.

      Senzorul GPS cu lat lon selectat

    • Setează Source la NMEA și adaugă câteva propoziții NMEA în caseta de text. Toate aceste valori vor fi trimise, cu o întârziere de 1 secundă înainte ca fiecare propoziție GGA (fixare poziție) nouă să poată fi citită.

      Senzorul GPS cu propoziții NMEA setate

      Poți folosi un instrument precum nmeagen.org pentru a genera aceste propoziții desenând pe o hartă. Aceste valori vor fi trimise o singură dată, așa că bifează caseta Repeat pentru ca datele să se repete la o secundă după ce toate au fost trimise.

    • Setează Source la fișier GPX și încarcă un fișier GPX cu locații de traseu. Poți descărca fișiere GPX de pe o serie de site-uri populare de hărți și drumeții, cum ar fi AllTrails. Aceste fișiere conțin locații GPS multiple ca traseu, iar senzorul GPS va returna fiecare locație nouă la intervale de 1 secundă.

      Senzorul GPS cu fișier GPX setat

      Aceste valori vor fi trimise o singură dată, așa că bifează caseta Repeat pentru ca datele să se repete la o secundă după ce toate au fost trimise.

    După ce ai configurat setările GPS, selectează butonul Set pentru a confirma aceste valori pentru senzor.

  8. Vei vedea ieșirea brută de la senzorul GPS, ceva de genul:

    $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
    

💁 Poți găsi acest cod în folderul code-gps/virtual-device.

😀 Programul senzorului GPS a fost un succes!


Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.