Tabla de contenido:

Seguimiento GPS en tiempo real: 3 pasos
Seguimiento GPS en tiempo real: 3 pasos

Video: Seguimiento GPS en tiempo real: 3 pasos

Video: Seguimiento GPS en tiempo real: 3 pasos
Video: Localización en tiempo real WhatsApp: ¿Cómo funciona? 2024, Noviembre
Anonim

Por elizabethna

Rastreador de truco o trato de Pumpkin Pi
Rastreador de truco o trato de Pumpkin Pi
Rastreador de truco o trato de Pumpkin Pi
Rastreador de truco o trato de Pumpkin Pi
Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Cómo construir un monitor de temperatura Raspberry Pi
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel
Transmitir datos desde Google Sheets a un panel

En este tutorial, le mostraremos cómo realizar un seguimiento de la ubicación en tiempo real utilizando un BerryGPS-GSM, un Raspberry Pi Zero y un estado inicial. Enviaremos longitud, latitud y velocidad a través de 3G con el BerryGPS-GSM al estado inicial.

Suministros

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Estado inicial

Paso 1: estado inicial

Estado inicial
Estado inicial

Queremos transmitir todos nuestros datos de longitud, latitud y velocidad a un servicio en la nube y que ese servicio convierta nuestros datos en un agradable panel al que podamos acceder desde nuestra computadora portátil o dispositivo móvil. Usaremos Estado inicial.

Paso 1: Regístrese para obtener una cuenta estatal inicial

Vaya a https://iot.app.initialstate.com y cree una nueva cuenta. Obtienes una prueba gratuita de 14 días y cualquier persona con una dirección de correo electrónico de educación puede registrarse para un plan de estudiante gratuito.

Paso 2: Instale ISStreamer

Instale el módulo Python de estado inicial en su Raspberry Pi. En el símbolo del sistema, ejecute el siguiente comando:

$ cd / inicio / pi /

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

Paso 3: haz algo de Automagic

Después del paso 2, verá algo similar al siguiente resultado en la pantalla:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: ¡Comenzando con la instalación fácil de ISStreamer Python! Esto puede tardar un par de minutos en instalarse, tómate un café:) Pero no olvides volver, ¡tendré preguntas más tarde! Encontrado easy_install: setuptools 1.1.6 Encontrado pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip versión principal: 1 pip versión menor: 5 ISStreamer encontrado, actualizando… Requisito ya actualizado: ISStreamer en Library / Python / 2.7 / site-packages Limpiando… ¿Desea obtener automáticamente un script de ejemplo? [s / N] ¿Dónde desea guardar el ejemplo? [predeterminado:./is_example.py] Seleccione qué aplicación de estado inicial está utilizando: 1. app.initialstate.com 2. [¡NUEVO!] iot.app.initialstate.com Ingrese la opción 1 o 2: Ingrese iot.app.initialstate.com nombre de usuario: Ingrese la contraseña de iot.app.initialstate.com:

Cuando se le pregunte si desea obtener automáticamente una secuencia de comandos de ejemplo, escriba "y" para sí y presione Intro para guardar la secuencia de comandos en la ubicación predeterminada. Para la pregunta sobre qué aplicación está utilizando, seleccione 2 (a menos que se haya registrado antes de noviembre de 2018) e ingrese su nombre de usuario y contraseña.

Paso 4: Ejecute el script de ejemplo

Ejecute el script de prueba para asegurarse de que podamos crear un flujo de datos en su cuenta de estado inicial. Escribe el siguiente comando:

$ python is_example.py

Paso 5: Datos de ejemplo

Regrese a su cuenta de estado inicial en su navegador web. Debería haber aparecido un nuevo depósito de datos llamado "Python Stream Example" a la izquierda de su estantería de registros (es posible que deba actualizar la página). Haga clic en este depósito para ver sus datos.

Paso 2: BerryGPS-GSM y Raspberry Pi Zero

BerryGPS-GSM y Raspberry Pi Zero
BerryGPS-GSM y Raspberry Pi Zero

Si está utilizando un BerryGPS-GSM, puede seguir esta guía para que el GPS funcione y que su Pi se conecte a través de 3G usando PPP.

La guía vinculada también muestra cómo hacer que su Pi se conecte a la red del operador automáticamente cuando se inicia. Lo necesitará si planea realizar un seguimiento remoto.

Instalar bibliotecas

Deberá instalar las siguientes bibliotecas:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Secuencia de comandos principal de Python

Aquí crearemos el script principal que transmitirá los datos del GPS al estado inicial. El código a continuación crea un hilo separado que se usa para monitorear el puerto serial. Esto es necesario porque tenemos una pausa en el ciclo principal. La pausa está ahí para limitar la cantidad de datos que cargamos a través de 3G.

Si hiciéramos todo en el mismo hilo durante la pausa, el búfer serial se llenaría (es FIFO) y cuando obtengamos el siguiente valor del búfer, será viejo por unos segundos. Esto sucede en cada bucle y, finalmente, los datos se retrasarán minutos u horas.

Para crear el script de Python y abrir el editor de texto, ingrese el siguiente comando:

$ nano GPStracker.py

Copie y pegue el siguiente código en el editor de texto. Deberá ingresar su clave de acceso estatal inicial en la línea 11 donde dice "INGRESE SU CLAVE DE ACCESO":

#! / usr / bin / pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None #Configurar variable global #Configurar el flujo de estado inicial, ingrese su clave de acceso debajo streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" INTRODUZCA SU CLAVE DE ACCESO ") class 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) # crear un hilo para recopilar datos intente: gpsdThread.start () # iniciarlo mientras es True: imprimir 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) y (gpsd.fix.longitude'nan '): streamer.log ("Ubicación", "{lat}, {lon}". formato (lat = gpsd.fix.latitude, lon = gpsd.fix.longitu de)) streamer.log ("velocidad", gpsd.fix.speed) imprimir 'lat', gpsd.fix.latitude, imprimir 'lon', gpsd.fix.longitude, imprimir 'velocidad', gpsd.fix.speed sleep (5) excepto (KeyboardInterrupt, SystemSalir): # cuando presiona ctrl + c print "\ nKilling Thread…" gpsdThread.running = False gpsdThread.join () # espera a que el hilo termine lo que está haciendo print "Done. / NSaliendo."

Guarde y salga del editor de texto presionando CTRL + X, Y, enter.

Inicie el script automáticamente al arrancar

Si está realizando una supervisión remota, querrá que la secuencia de comandos se ejecute al arrancar. Para hacer esto, crearemos un pequeño script que iniciará el programa principal de Python. Ingrese el siguiente comando:

$ nano GPStrackerStart.sh

Copie las líneas en el editor de texto:

#! / bin / bash

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

La pausa anterior está ahí para darle tiempo al Pi para que arranque y se conecte a través de PPP.

Haga que el script sea ejecutable:

$ chmod + x ~ / GPStrackerStart.sh

Usaremos cron para iniciar el script cada vez que arranque el Pi:

$ crontab -e

Agregue la siguiente línea al final:

@reboot /home/pi/GPStrackerStart.sh &

Paso 3: Panel de control de ubicación y velocidad

Panel de control de ubicación y velocidad
Panel de control de ubicación y velocidad

Ahora que tiene su proyecto en funcionamiento, los datos deberían enviarse al estado inicial. Tendrás datos de GPS y datos de velocidad. Puede utilizar los datos GPS en un mosaico de mapas para rastrear la ubicación. Para el mosaico de mapa, asegúrese de marcar la casilla de verificación Dibujar ruta para que el seguimiento de su ubicación se asigne como el tablero de arriba. Puede poner sus datos de velocidad en un gráfico lineal para ver la velocidad a lo largo del tiempo.

Recomendado: