Taula de continguts:

Seguiment GPS en temps real: 3 passos
Seguiment GPS en temps real: 3 passos

Vídeo: Seguiment GPS en temps real: 3 passos

Vídeo: Seguiment GPS en temps real: 3 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim

Segueix-ne més per l'autor:

Rastrejador de trucs o tracte Pumpkin Pi
Rastrejador de trucs o tracte Pumpkin Pi
Rastrejador de trucs o tracte Pumpkin Pi
Rastrejador de trucs o tracte Pumpkin Pi
Com es construeix un monitor de temperatura Raspberry Pi
Com es construeix un monitor de temperatura Raspberry Pi
Com es construeix un monitor de temperatura Raspberry Pi
Com es construeix un monitor de temperatura Raspberry Pi
Reprodueix dades de Fulls de càlcul de Google a un tauler
Reprodueix dades de Fulls de càlcul de Google a un tauler
Reprodueix dades de Fulls de càlcul de Google a un tauler
Reprodueix dades de Fulls de càlcul de Google a un tauler

En aquest tutorial, us mostrarem com fer un seguiment de la ubicació en temps real mitjançant un BerryGPS-GSM, un Raspberry Pi Zero i un estat inicial. Enviarem longitud, latitud i velocitat via 3G amb el BerryGPS-GSM a l’estat inicial.

Subministraments

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Estat inicial

Pas 1: estat inicial

Estat inicial
Estat inicial

Volem transmetre totes les nostres dades de longitud, latitud i velocitat a un servei al núvol i que aquest servei converteixi les nostres dades en un bonic tauler al qual puguem accedir des del nostre ordinador portàtil o dispositiu mòbil. Utilitzarem l’Estat inicial.

Pas 1: registreu-vos al compte estatal inicial

Aneu a https://iot.app.initialstate.com i creeu un compte nou. Obteniu una prova gratuïta de 14 dies i tothom que tingui una adreça de correu electrònic edu es pot inscriure a un pla d'estudiant gratuït.

Pas 2: instal·leu ISStreamer

Instal·leu el mòdul Initial State Python al vostre Raspberry Pi. A l'indicador d'ordres, executeu l'ordre següent:

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Pas 3: feu Automagic

Després del pas 2, veureu una cosa similar a la següent sortida a la pantalla:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Començant la instal·lació fàcil d'ISStreamer Python! Això pot trigar uns quants minuts a instal·lar-se, prendre un cafè:) Però no oblideu tornar, ja que tindré preguntes més endavant. Trobat easy_install: setuptools 1.1.6 Trobat pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versió major pip: 1 versió pip menor: 5 ISStreamer trobat, actualitzant-se … Requisit ja actualitzat: ISStreamer a Library / Python / 2.7 / site-packages Neteja … Voleu obtenir automàticament un exemple de script? [Sí / N] On voleu desar l'exemple? [predeterminat:./is_example.py] Seleccioneu l'aplicació Estat inicial que utilitzeu: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduïu l'opció 1 o 2: Introduïu iot.app Nom d'usuari de.initialstate.com: Introduïu la contrasenya iot.app.initialstate.com:

Quan se us demani si voleu obtenir automàticament un exemple de script, poseu "y" per sí i premeu Retorn per desar el script a la ubicació predeterminada. Per a la pregunta sobre quina aplicació utilitzeu, seleccioneu 2 (tret que us hàgiu registrat abans de novembre de 2018) i introduïu el vostre nom d'usuari i contrasenya.

Pas 4: executeu el script d’exemple

Executeu l'script de prova per assegurar-vos que podem crear un flux de dades al vostre compte d'estat inicial. Escriviu l'ordre següent:

$ python és_exemple.py

Pas 5: dades d'exemple

Torneu al vostre compte d’estat inicial al navegador web. A la part esquerra del prestatge de registre s’hauria d’haver aparegut un nou dipòsit de dades anomenat “Exemple de corrent de Python” (és possible que hagueu d’actualitzar la pàgina). Feu clic en aquest dipòsit per veure les vostres dades.

Pas 2: BerryGPS-GSM i Raspberry Pi Zero

BerryGPS-GSM i Raspberry Pi Zero
BerryGPS-GSM i Raspberry Pi Zero

Si feu servir un BerryGPS-GSM, podeu seguir aquesta guia per fer funcionar el GPS i aconseguir que el vostre Pi es connecti mitjançant 3G mitjançant PPP.

La guia enllaçada també mostra com fer que el vostre Pi es connecti automàticament a la xarxa de l’operador en arrencar. Ho necessitareu si teniu previst realitzar un seguiment remot.

Instal·leu biblioteques

Haureu d’instal·lar les biblioteques següents:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Script Python principal

Aquí crearem l'script principal que transmetrà les dades GPS a l'estat inicial. El codi següent crea un fil separat que s'utilitza per controlar el port sèrie. Això és necessari perquè tenim una pausa al bucle principal. La pausa és aquí per limitar la quantitat de dades que carreguem a través de 3G.

Si ho féssim tot en el mateix fil durant la pausa, el buffer sèrie s’ompliria (és FIFO) i quan obtinguem el següent valor del buffer, quedarà vell uns segons. Això passa cada bucle i, finalment, les dades es quedaran minuts o hores enrere.

Per crear l'script Python i obrir l'editor de text, introduïu l'ordre següent:

$ nano GPStracker.py

Copieu i enganxeu el següent codi a l'editor de text. Haureu d’introduir la vostra clau d’accés a l’estat inicial a la línia 11, on es diu "ENTRAR LA CLAU D'ACCÉS":

#! / usr / bin / pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = Cap #Setup variable global #Setup the Initial State stream, introduïu la vostra clau d'accés streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ENTRAR LA CLAU D'ACCÉS ") classe 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 #Inicia l'execució d'aquest fil d'execució de def (self): global gpsd mentre gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # crea un fil per recopilar dades proveu: gpsdThread.start () # inicieu-lo mentre és True: imprimiu 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) i (gpsd.fix.longitude'nan '): streamer.log ("Ubicació", "{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) exceptuant (KeyboardInterrupt, SystemExit): #quan pressiona ctrl + c imprimeix "\ nMateix el fil …" gpsdThread.running = Falso gpsdThread.join () # espera que el fil finalitzi el que està imprimint "Fet. / NSortint."

Deseu i sortiu de l’editor de text prement CTRL + X, Y, introduïu.

Inicieu l'script automàticament en arrencar

Si feu una supervisió remota, voldríeu que l'script s'executés a l'arrencada. Per fer-ho, crearem un petit script que iniciarà el programa python principal. Introduïu l'ordre següent:

$ nano GPStrackerStart.sh

Copieu les línies a l'editor de text:

#! / bin / bash

dormir 15 python /home/pi/GPStracker.py &

La pausa anterior hi és per donar temps al Pi a arrencar i connectar-se mitjançant PPP.

Feu que l'script sigui executable:

$ chmod + x ~ / GPStrackerStart.sh

Utilitzarem cron per iniciar el script cada cop que arrenci el Pi:

$ crontab -e

Afegiu la línia següent a la part inferior:

@reboot /home/pi/GPStrackerStart.sh &

Pas 3: Ubicació i tauler de velocitat

Ubicació i tauler de velocitat
Ubicació i tauler de velocitat

Ara que teniu el projecte en marxa i executant les dades hauríeu d'enviar-les a l'estat inicial. Tindreu dades GPS i dades de velocitat. Podeu utilitzar les dades GPS en un mosaic de mapes per fer un seguiment de la ubicació. Per al mosaic del mapa, assegureu-vos de marcar la casella de selecció Dibuixar ruta per tal que el seguiment de la vostra ubicació estigui assignat com el tauler de dalt. Podeu posar les vostres dades de velocitat en un gràfic lineal per veure la velocitat al llarg del temps.

Recomanat: