Cuprins:

Urmărire GPS în timp real: 3 pași
Urmărire GPS în timp real: 3 pași

Video: Urmărire GPS în timp real: 3 pași

Video: Urmărire GPS în timp real: 3 pași
Video: Urmăriți orice telefon - Tracker GPS în timp real 2024, Noiembrie
Anonim

De elizabethna Urmăriți mai multe de la autor:

Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Cum se construiește un monitor de temperatură Raspberry Pi
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord
Transmiteți date din Foi de calcul Google într-un tablou de bord

Î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ă

Stare initiala
Stare initiala

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

BerryGPS-GSM și Raspberry Pi Zero
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ă

Locație și tabloul de bord de viteză
Locație și tabloul de bord de 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: