Tabla de contenido:
- Suministros
- Paso 1: estado inicial
- Paso 2: BerryGPS-GSM y Raspberry Pi Zero
- Paso 3: Panel de control de ubicación y velocidad
Video: Seguimiento GPS en tiempo real: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Por elizabethna
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
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
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
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:
Kits de coche de seguimiento de robot inteligente de bricolaje Seguimiento de coche fotosensible: 7 pasos
DIY Smart Robot Tracking Car Kits Tracking Car Photosensitive: Design by SINONING ROBOTPuedes comprar desde el robot de seguimiento carTheoryLM393 chip compara los dos fotorresistores, cuando hay un fotorresistor LED en BLANCO, el lado del motor se detendrá inmediatamente, el otro lado del motor girar, de modo que
Time Cube - Gadget de seguimiento de tiempo de Arduino: 6 pasos
Time Cube - Arduino Time Tracking Gadget: Me gustaría proponerle un proyecto arduino simple pero realmente útil para rastrear eventos de tiempo girando algún gadget de cubo inteligente. Dale la vuelta a " Trabajo " > " Aprender " > " Tareas " > " Descanso " lado y contará el
Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): 8 pasos
Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): ¿Entonces tienes un módulo GSM por ahí como yo? ¿También un rastreador GPS? ¡Nosotros pensamos lo mismo! En estos instructivos, trataré de guiarlo sobre cómo lograr su objetivo desde la perspectiva de un novato.Como no tenía conocimientos previos de ingeniería eléctrica (para
Brain Box: Seguimiento del volumen neuronal a lo largo del tiempo: 20 pasos
Brain Box: seguimiento del volumen neuronal a lo largo del tiempo: el avance hacia la frontera de una vida humana más larga ha provocado el surgimiento de enfermedades nunca vistas por civilizaciones anteriores a la nuestra. Entre estos, el Alzheimer afectó a aproximadamente 5,3 millones de estadounidenses ancianos vivos en 2017, o aproximadamente 1 de cada 10 e
Cómo conectar el DeLorme Earthmate GPS LT-20 a su Google Earth para obtener un excelente mapa de seguimiento GPS: 5 pasos
Cómo conectar el DeLorme Earthmate GPS LT-20 a su Google Earth para obtener un excelente mapa de seguimiento GPS: le mostraré cómo conectar un dispositivo GPS al popular programa Google Earth, sin usar Google Earth Plus. No tengo un gran presupuesto, así que puedo garantizar que será lo más barato posible