Cuprins:
- Provizii
- Pasul 1: Starea inițială
- Pasul 2: BerryGPS-GSM și Raspberry Pi Zero
- Pasul 3: Tablou de bord Locație și viteză
Video: Urmărire GPS în timp real: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
De elizabethna Urmăriți mai multe de la autor:
În acest tutorial, vă vom arăta cum să efectuați urmărirea locației în timp real folosind un BerryGPS-GSM, un Raspberry Pi Zero și starea inițială. Vom trimite longitudine, latitudine și viteză prin 3G cu BerryGPS-GSM la starea inițială.
Provizii
- Raspberry Pi Zero
- BerryGPS-GSM
- Stare initiala
Pasul 1: Starea inițială
Vrem să transmitem toate datele de longitudine, latitudine și viteză către un serviciu cloud și ca acel serviciu să transforme datele noastre într-un tablou de bord frumos pe care îl putem accesa de pe laptopul sau dispozitivul nostru mobil. Vom folosi Starea inițială.
Pasul 1: Înregistrați-vă pentru contul de stat inițial
Accesați https://iot.app.initialstate.com și creați un cont nou. Veți obține o perioadă de încercare gratuită de 14 zile și oricine are o adresă de e-mail edu se poate înregistra pentru un plan de student gratuit.
Pasul 2: Instalați ISStreamer
Instalați modulul Initial State Python pe Raspberry Pi. În promptul de comandă, rulați următoarea comandă:
$ cd / home / pi /
$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash
Pasul 3: Faceți ceva Automagic
După Pasul 2 veți vedea ceva similar cu următoarea ieșire pe ecran:
pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashParolă: Început ISStreamer Python Instalare ușoară! Acest lucru poate dura câteva minute pentru a instala, luați o cafea:) Dar nu uitați să vă întoarceți, voi avea întrebări mai târziu! S-a găsit easy_install: setuptools 1.1.6 S-a găsit pip: pip 1.5.6 din /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versiune principală pip: 1 versiune pip minoră: 5 ISStreamer găsit, actualizare … Cerință deja actualizată: ISStreamer în Library / Python / 2.7 / site-packages Curățare … Vrei să obții automat un exemplu de script? [y / N] Unde doriți să salvați exemplul? [implicit:./is_example.py] Vă rugăm să selectați aplicația Stare inițială pe care o utilizați: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduceți alegerea 1 sau 2: Introduceți iot.app.initialstate.com nume utilizator: Introduceți parola iot.app.initialstate.com:
Când vi se cere dacă doriți să obțineți automat un exemplu de script, puneți „y” pentru da și apăsați Enter pentru a salva scriptul în locația implicită. Pentru întrebarea despre aplicația pe care o utilizați, selectați 2 (cu excepția cazului în care v-ați înscris înainte de noiembrie 2018) și introduceți numele de utilizator și parola.
Pasul 4: Rulați Exemplul de Script
Rulați scriptul de testare pentru a ne asigura că putem crea un flux de date în contul dvs. de stare inițială. Scrieți următoarea comandă:
$ python is_example.py
Pasul 5: Exemple de date
Reveniți la contul de stat inițial din browserul dvs. web. O nouă bucată de date numită „Exemplu de flux Python” ar fi trebuit să apară în stânga în raftul jurnalului (poate fi necesar să reîmprospătați pagina). Faceți clic pe acest compartiment pentru a vă vizualiza datele.
Pasul 2: BerryGPS-GSM și Raspberry Pi Zero
Dacă utilizați un BerryGPS-GSM, puteți urma acest ghid pentru a funcționa GPS și pentru a vă conecta Pi-ul prin 3G folosind PPP.
Ghidul conectat arată, de asemenea, cum să vă conectați Pi la rețeaua operatorului automat la pornire. Veți avea nevoie de acest lucru dacă intenționați să efectuați urmărirea de la distanță.
Instalați biblioteci
Va trebui să instalați următoarele biblioteci:
$ sudo apt-get install python-pip
$ sudo pip install pynmea2 $ sudo pip install ISStreamer
Principal Script Python
Aici vom crea scriptul principal care va transmite datele GPS în starea inițială. Codul de mai jos creează un fir separat care este utilizat pentru a monitoriza portul serial. Acest lucru este necesar deoarece avem o pauză în bucla principală. Pauza este acolo pentru a limita cantitatea de date pe care le încărcăm pe 3G.
Dacă am face totul în același fir în timpul pauzei, tamponul serial s-ar umple (este FIFO) și când vom obține următoarea valoare din tampon, va fi vechi cu câteva secunde. Acest lucru se întâmplă la fiecare buclă și, în cele din urmă, datele vor fi în urmă cu câteva minute sau ore.
Pentru a crea scriptul Python și a deschide editorul de text, introduceți următoarea comandă:
$ nano GPStracker.py
Copiați și lipiți următorul cod în editorul de text. Va trebui să introduceți cheia de acces la starea inițială pe linia 11, unde scrie „ENTER YOUR ACCESS KEY”:
#! / usr / bin / pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None #Setup global variable #Setup the Initial State stream, enter your access key below streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ENTER YOUR ACCESS KEY ") clasa GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring it in scope gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True #Start running this thread def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # creați un thread pentru a colecta date Încercați: gpsdThread.start () # porniți-l în timp ce este True: tipăriți „GPS”, gpsd.utc, „CPU time->”, datetime.datetime.now ().time (), if (gpsd.fix.longitude0) și (gpsd.fix.longitude'nan '): streamer.log ("Locație", "{lat}, {lon}". format (lat = gpsd.fix.latitude, lon = gpsd.fix.longitu de)) streamer.log ("speed", gpsd.fix.speed) print 'lat', gpsd.fix.latitude, print 'lon', gpsd.fix.longitude, print 'speed', gpsd.fix.speed sleep (5) cu excepția (KeyboardInterrupt, SystemExit): #când apăsați ctrl + c print "\ nKilling Thread …" gpsdThread.running = False gpsdThread.join () # așteptați ca firul să finalizeze ceea ce face print "Gata. / NExit."
Salvați și ieșiți din editorul de text apăsând CTRL + X, Y, introduceți.
Porniți automat scriptul la pornire
Dacă efectuați monitorizarea de la distanță, ați dori ca scriptul să ruleze la pornire. Pentru a face acest lucru, vom crea un mic script care va porni programul principal Python. Introduceți următoarea comandă:
$ nano GPStrackerStart.sh
Copiați liniile în editorul de text:
#! / bin / bash
dormi 15 python /home/pi/GPStracker.py &
Pauza de mai sus este acolo pentru a da Pi timpului pentru a porni și a se conecta prin PPP.
Faceți scriptul executabil:
$ chmod + x ~ / GPStrackerStart.sh
Vom folosi cron pentru a porni scriptul de fiecare dată când Pi pornește:
$ crontab -e
Adăugați linia de mai jos în partea de jos:
@reboot /home/pi/GPStrackerStart.sh &
Pasul 3: Tablou de bord Locație și viteză
Acum, că aveți proiectul în funcțiune și care rulează datele ar trebui să fie trimise la starea inițială. Veți avea date GPS și date de viteză. Puteți utiliza datele GPS într-o țiglă de hărți pentru a urmări locația. Pentru caseta de hărți, asigurați-vă că bifați caseta de selectare Desenați calea, astfel încât urmărirea locației dvs. să fie mapată, precum tabloul de bord de mai sus. Puteți pune datele despre viteză într-un grafic liniar pentru a vedea viteza în timp.
Recomandat:
Cum se folosește un modul de ceas în timp real (DS3231): 5 pași
Cum se folosește un modul de ceas în timp real (DS3231): DS3231 este un ceas I2C în timp real (RTC) cu cost redus, extrem de precis, cu un oscilator de cristal integrat compensat de temperatură (TCXO) și cristal. Dispozitivul încorporează o intrare a bateriei și menține o cronometrare exactă atunci când alimentarea principală la
ATtiny85 Urmărire și programare urmărire activități vibrante purtabile ATtiny85 cu Arduino Uno: 4 pași (cu imagini)
ATtiny85 Ceas și programare de urmărire a activității vibrante purtabile ATtiny85 Cu Arduino Uno: Cum să faci ceasul de urmărire a activității purtabil? Acesta este un gadget portabil conceput pentru a vibra atunci când detectează stagnarea. Îți petreci cea mai mare parte a timpului pe computer ca mine? Stai ore în șir fără să-ți dai seama? Atunci acest dispozitiv este f
Urmărire și urmărire pentru magazine mici: 9 pași (cu imagini)
Urmărire și urmărire pentru magazine mici: Acesta este un sistem creat pentru magazinele mici care se presupune că se montează pe biciclete electrice sau scutere electronice pentru livrări la distanță scurtă, de exemplu o brutărie care dorește să livreze produse de patiserie. Ce înseamnă urmărirea și urmărirea? Urmărirea și urmărirea este un sistem utilizat de ca
Tracker GPS de casă în timp real (SIM800L, Ublox NEO-6M, Arduino): 8 pași
Tracker GPS în timp real de casă (SIM800L, Ublox NEO-6M, Arduino): Deci aveți un modul GSM așezat ca mine? De asemenea, un GPS-tracker? Gândim la fel! În acest instructable, voi încerca să vă îndrum cum să vă atingeți obiectivul din perspectiva unui începător. Deoarece nu aveam cunoștințe anterioare de inginerie electrică (să
Cum să conectați DeLorme Earthmate GPS LT-20 la Google Earth pentru o hartă GPS excelentă de urmărire .: 5 pași
Cum să conectați DeLorme Earthmate GPS LT-20 la Google Earth pentru o hartă GPS excelentă de urmărire .: Vă voi arăta cum să conectați un dispozitiv GPS la popularul program Google Earth, fără a utiliza Google Earth Plus. Nu am un buget mare, așa că pot garanta că acest lucru va fi cât se poate de ieftin