- Componente necesare:
- Modulul GPS și funcționarea sa:
- Pregătirea Raspberry Pi pentru a comunica cu GPS:
- Conexiuni pentru modul GPS Raspberry Pi Interfațare:
- Testarea înainte de Python Script:
Una dintre cele mai tari platforme încorporate, cum ar fi Arduino, le-a oferit producătorilor și DIYerilor posibilitatea de a obține cu ușurință date despre locație utilizând modulul GPS și astfel să construiască lucruri care se bazează pe locație. Cu cantitatea de energie oferită de Raspberry Pi, cu siguranță va fi destul de minunat să construiești proiecte bazate pe GPS cu aceleași module GPS ieftine și acesta este punctul central al acestei postări. Astăzi, în acest proiect, vom interfața modulul GPS cu Raspberry Pi 3.
Scopul acestui proiect este de a colecta date de localizare (longitudine și latitudine) prin UART de la un modul GPS și a le afișa pe un LCD de 16x2, deci dacă nu sunteți familiarizați cu modul în care LCD-ul de 16x2 funcționează cu Raspberry Pi, acesta este un alt mare oportunitate de a învăța.
Componente necesare:
- Raspberry Pi 3
- Modul GPS Neo 6m v2
- 16 x 2 LCD
- Sursă de alimentare pentru Raspberry Pi
- Cablu LAN pentru a conecta pi la computer în modul fără cap
- Cabluri pentru panouri și jumper
- Rezistor / potențiometru pe ecranul LCD
- Card de memorie 8 sau 16Gb care rulează Raspbian Jessie
În afară de asta, trebuie să instalăm biblioteca GPS Daemon (GPSD), biblioteca Adafruit LCD 16x2, pe care o instalăm mai târziu în acest tutorial.
Aici folosim Raspberry Pi 3 cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducerea Raspberry Pi.
Modulul GPS și funcționarea sa:
GPS înseamnă Sistem de poziționare globală și este utilizat pentru a detecta latitudinea și longitudinea oricărei locații de pe Pământ, cu ora UTC exactă (timpul universal coordonat). Modulul GPS este componenta principală a proiectului nostru de sistem de urmărire a vehiculului. Acest dispozitiv primește coordonatele de la satelit pentru fiecare secundă, cu ora și data.
Modulul GPS trimite datele legate de poziția de urmărire în timp real și trimite atât de multe date în format NMEA (vezi captura de ecran de mai jos). Formatul NMEA constă în mai multe propoziții, în care avem nevoie doar de o propoziție. Această propoziție începe de la $ GPGGA și conține coordonatele, timpul și alte informații utile. Acest GPGGA este menționat la datele de corecție ale sistemului de poziționare globală. Aflați mai multe despre citirea datelor GPS și șirurile sale aici.
Putem extrage coordonatele din șirul $ GPGGA numărând virgulele din șir. Să presupunem că găsiți șirul $ GPGGA și îl stocați într-o matrice, atunci Latitude poate fi găsită după două virgule, iar Longitudina poate fi găsită după patru virgule. Acum, aceste latitudini și longitudini pot fi plasate în alte matrice.
Mai jos este șirul $ GPGGA, împreună cu descrierea sa:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M,, * 47
$ GPGGA, HHMMSS.SSS, latitudine, N, longitudine, E, FQ, NOS, HDP, altitudine, M, înălțime, M,, date de control
Identificator |
Descriere |
$ GPGGA |
Date de remediere a sistemului de poziționare globală |
HHMMSS.SSS |
Timp în oră minut secunde și format de milisecunde. |
Latitudine |
Latitudine (coordonată) |
N |
Direcția N = Nord, S = Sud |
Longitudine |
Longitudine (coordonată) |
E |
Direcția E = Est, W = Vest |
FQ |
Remediați datele de calitate |
NOS |
Numărul de sateliți utilizați |
HPD |
Diluarea orizontală a preciziei |
Altitudine |
Altitudine față de nivelul mării |
M |
Metru |
Înălţime |
Înălţime |
Suma de control |
Date privind suma de verificare |
Puteți verifica celelalte proiecte GPS ale noastre:
- Vehicul Tracker bazat pe Arduino folosind GPS și GSM
- Sistem de alertă a accidentelor vehiculului bazat pe Arduino, care utilizează GPS, GSM și accelerometru
- Cum se folosește GPS cu Arduino
- Urmăriți un vehicul pe Google Maps folosind Arduino, ESP8266 și GPS
Pregătirea Raspberry Pi pentru a comunica cu GPS:
Bine, deci pentru a intra, deci acest lucru nu devine plictisitor, presupun că știți deja multe despre Raspberry Pi, suficient pentru a vă instala sistemul de operare, pentru a obține adresa IP, pentru a vă conecta la software-ul terminalului, cum ar fi chit și alte lucruri despre PI. Dacă aveți vreo problemă făcând vreunul dintre lucrurile menționate mai sus, contactați-mă în secțiunea de comentarii și voi fi bucuros să vă ajut.
Primul lucru pe care trebuie să-l facem pentru a începe acest proiect este să ne pregătim Raspberry Pi 3 pentru a putea comunica cu modulul GPS prin UART. ghidul meu cu atenție îl veți obține dintr-o dată, aceasta este destul de dificilă parte a proiectului. Aici am folosit modulul GPS Neo 6m v2.
Pentru a vă scufunda, iată o mică explicație despre cum funcționează Raspberry Pi 3 UART.
Raspberry Pi are două UART încorporate, un PL011 și un mini UART. Acestea sunt implementate folosind diferite blocuri hardware, astfel încât acestea au caracteristici ușor diferite. Cu toate acestea, pe raspberry pi 3, modulul wireless / bluetooth este conectat la PLO11 UART, în timp ce mini UART este utilizat pentru consola Linux opțională. În funcție de modul în care îl vedeți, voi defini PLO11 ca fiind cel mai bun dintre cele două UART datorită nivelului său de implementare. Deci, pentru acest proiect, vom dezactiva modulul Bluetooth de la PLO11 UART utilizând o suprapunere disponibilă în versiunea actualizată actualizată a Raspbian Jessie.
Pasul 1: Actualizarea Raspberry Pi:
Primul lucru care îmi place îmi place să fac înainte de a începe fiecare proiect este actualizarea raspberry pi. Deci, să facem obișnuitul și să executăm comenzile de mai jos;
sudo apt-get update sudo apt-get upgrade
apoi reporniți sistemul cu;
sudo reboot
Pasul 2: Configurarea UART în Raspberry Pi:
Primul lucru pe care îl vom face în acest sens este să edităm fișierul /boot/config.txt . Pentru a face acest lucru, executați comenzile de mai jos:
sudo nano /boot/config.txt
în partea de jos a fișierului config.txt, adăugați următoarele rânduri
dtparam = spi = on dtoverlay = pi3-disable-bt core_freq = 250 enable_uart = 1 force_turbo = 1
ctrl + x pentru a ieși și apăsați y și introduceți pentru a salva.
Asigurați-vă că nu există greșeli de eroare sau erori prin verificarea dublă, deoarece o eroare cu acest lucru ar putea împiedica pornirea pi.
Care sunt motivele acestor comenzi, force_turbo permite UART să utilizeze frecvența de bază maximă pe care o setăm în acest caz la 250. Motivul pentru aceasta este de a asigura consistența și integritatea datelor seriale primite. Este important să rețineți în acest moment că utilizarea force_turbo = 1 va anula garanția dvs. de zmeură pi, dar în afară de aceasta, este destul de sigur.
Dtoverlay = PI3-disable-BT întrerupefli Bluetooth de la ttyAMA0 , acest lucru este de a ne permite acces la utilizarea puterea deplină UART disponibile prin ttyAMAO în loc de mini - UART ttyS0.
Al doilea pas din această secțiune de configurare UART este să editați boot / cmdline.txt
Vă voi sugera să faceți o copie a cmdline.txt și să salvați mai întâi înainte de editare, astfel încât să puteți reveni la el mai târziu, dacă este necesar. Acest lucru se poate face folosind;
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Înlocuiți conținutul cu;
dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait quiet splash plymouth.ignore-serial-consoles
Salvează și ieși.
După ce vom face acest lucru, va trebui să repornim sistemul din nou pentru a efectua modificări ( reporniți sudo ).
Pasul 3: Dezactivarea serviciului Raspberry Pi Serial Getty
Următorul pas este dezactivarea serialului Pi al serviciului getty , comanda îl va împiedica să înceapă din nou la repornire:
sudo systemctl opri [email protected] sudo systemctl dezactivează [email protected]
Următoarele comenzi pot fi folosite pentru a o activa din nou, dacă este necesar
sudo systemctl activate [email protected] sudo systemctl start [email protected]
Reporniți sistemul.
Pasul 4: Activarea ttyAMAO:
Am dezactivat ttyS0, următorul lucru este să activăm ttyAMAO .
sudo systemctl activate [email protected]
Pasul 5: Instalați Minicom și pynmea2:
Vom fi minicom pentru a ne conecta la modulul GPS și a înțelege datele. Este, de asemenea, unul dintre instrumentele pe care le vom folosi pentru a testa dacă modulul nostru GPS funcționează bine. O alternativă la minicom este software-ul daemon GPSD.
sudo apt-get install minicom
Pentru a analiza cu ușurință datele primite, vom folosi biblioteca pynmea2 . Poate fi instalat folosind;
sudo pip instalează pynmea2
Documentația bibliotecii poate fi găsită aici
Pasul 6: Instalarea bibliotecii LCD:
Pentru acest tutorial vom folosi biblioteca AdaFruit. Biblioteca a fost realizată pentru ecranele AdaFruit, dar funcționează și pentru panourile de afișare folosind HD44780. Dacă afișajul dvs. se bazează pe aceasta, atunci ar trebui să funcționeze fără probleme.
Mă simt mai bine să clonez biblioteca și să o instalez direct. A clona alerga;
git clone
schimbați în directorul clonat și instalați-l
cd./Adafruit_Python_CharLCD sudo python setup.py install
În această etapă, vă voi sugera o altă repornire, astfel încât să fim gata să continuăm conectarea componentelor.
Conexiuni pentru modul GPS Raspberry Pi Interfațare:
Conectați modulul GPS și ecranul LCD la Raspberry Pi așa cum se arată în schema de circuite de mai jos.
Testarea înainte de Python Script:
Consider că este important să testez conexiunea modulului GPS înainte de a trece la scriptul Python, pentru asta vom folosi minicom. Rulați comanda:
sudo minicom -D / dev / ttyAMA0 -b9600
unde 9600 reprezintă rata de transmisie la care comunică modulul GPS. Acest lucru poate fi folosit pentru o dată când suntem siguri de comunicarea datelor între GPS și RPI, este timpul să scriem scriptul nostru Python.
Testul se poate face și folosind cat
sudo cat / dev / ttyAMA0
În Window, puteți vedea propoziții NMEA pe care le-am discutat mai devreme.
Scriptul Python pentru acest tutorial GPS Raspberry Pi este dat mai jos în secțiunea Cod.
Cu toate cele spuse și gata, este timpul să testați întregul sistem. Este important să vă asigurați că GPS-ul dvs. este o soluție bună, scoțându-l, majoritatea GPS necesită între trei și 4 sateliți pentru a obține o remediere, deși al meu a funcționat în interior.
Funcționează corect? Da…
Aveți întrebări sau comentarii? Lăsați-le în secțiunea de comentarii.
Video demonstrativ este prezentat mai jos, unde am arătat Locația în latitudine și longitudine pe LCD folosind GPS și Raspberry Pi.