Tabla de contenido:
- Paso 1: Conexión
- Paso 2: Software en PC
- Paso 3: firmware sobre ESP32
- Paso 4: procesamiento de la información
Video: Rastreador GPS de bricolaje --- Aplicación Python: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Participé en un evento de ciclismo hace dos semanas. Una vez terminado, quería comprobar la ruta y la velocidad que recorría en ese momento. Desafortunadamente, no se logró. Ahora uso ESP32 para hacer un rastreador GPS y lo usaré para registrar mi ruta ciclista la próxima vez. El rastreador GPS puede guardar la información de ubicación y tiempo en la tarjeta SD, y esta información se puede procesar y dibujar un gráfico de distancia y velocidad con el software para PC.
Suministros:
Hardware:
- MakePython ESP32 (con Wrover)
- MakePython A9G
La placa MakePython A9G es una placa de expansión GPS / GPRS para MakePython.
- Batería
- Cable micro USB
Software:
- Python 3
- uPyCraft_v1.1
Paso 1: Conexión
Conecte dos placas de acuerdo con los pines. El módulo puede ser alimentado por batería o cable Micro USB.
Paso 2: Software en PC
Python3:
- Puede descargarlo desde aquí: Python3. Elija la versión 3.8.5, descárguela e instálela.
- La selección “Agregar Python 3.8 a PATH” debe marcarse durante el proceso de instalación, como se muestra en la Figura 1.
- Si la biblioteca utilizada por el programa no está instalada, el programa le avisará cuando se esté ejecutando. Puede ejecutar el siguiente comando en cmd.exe para instalar bibliotecas, como se muestra en la Figura 2.
pip install xxx // xxx es el nombre de la biblioteca
pip uninstall xxx // xxx es el nombre de la biblioteca pip list // imprime las bibliotecas instaladas
Código:
- Puede obtener el archivo Python desde aquí: Código. El archivo de Python es "/Project_Gps-Trace-Analysis-master/Google_trace.py".
- Dibuja una ruta en el mapa.
def create_html_map ():
gmap = gmplot. GoogleMapPlotter (lat_list [0], lon_list [0], 16) gmap.plot (lat_list, lon_list) gmap.marker (lat_list [0], lon_list [0], color = 'blue') gmap.marker (lat_list [ancho - 1], lon_list [ancho - 1], color = 'rojo') gmap.draw ("./ map-trace.html")
Dibuja gráficos de velocidad frente a tiempo, distancia frente a tiempo
plt. subparcela (2, 1, 1)
plt.plot (lista_tiempo [0: -1], velocidad) plt.title ("Velocidad promedio:" + str (avg_speed)) # plt.xlabel ("Tiempo") plt.ylabel ("Velocidad (m / s)") plt.subplot (2, 1, 2) plt.plot (time_list [0: -1], total_distance) plt.title ("Distancia total:" + str (round (total_distance [- 1], 2))) plt.xlabel ("Tiempo") plt.ylabel ("Distancia (m)") plt.draw () plt.pause (0) pasar
Paso 3: firmware sobre ESP32
uPyCraft_v1.1
- Puede descargarlo desde aquí: uPyCraft.
- Conecte la placa a la PC mediante un cable USB. Abra uPyCraft_v1.1, seleccione las herramientas:”Herramienta> tablero> esp32” y “Herramientas> puerto> com *”, haga clic en el botón conectado a la derecha.
- Si la conexión no se realiza correctamente, el mensaje se mostrará como "abra el error de serie, inténtelo de nuevo". Tienes que actualizar el firmware para prometer conexiones exitosas. El enlace de descarga de firmware es LINK. Abra “Herramientas> BurnFirmware”, configure el parámetro, como se muestra en la Figura 3, y haga clic en Aceptar.
- Abra el archivo Python y haga clic en el botón "Descargar y ejecutar" a la derecha. El programa ha sido descargado a la placa, lo puedes ver en el menú “dispositivo” a la izquierda, como se muestra en la Figura 4.
Firmware y descarga
Puede obtener el firmware desde aquí: Firmware.
Establezca la conexión con el módulo de la tarjeta SD en el archivo: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# SD init
spi = SPI (1, velocidad en baudios = 400000, polaridad = 1, fase = 0, sck = Pin (14), mosi = Pin (13), miso = Pin (12)) spi.init () # Asegúrese de que la pantalla lcd de velocidad en baudios sea la correcta. text ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # Compatible con PCB vfs = os. VfsFat (sd) os.mount (vfs, "/ SD") random.seed (len (os.listdir ("/ SD"))) print ("SD OK") lcd.text ('SPI OK', 0, 16)
Establezca la conexión con el módulo A9G en el archivo: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G abierto
A9G_RESET_PIN = Pin (33, Pin. OUT) A9G_RESET_PIN.value (0) # establece el pin en tiempo bajo.sleep (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.value (0) time.sleep (1) A9G_PWR.value (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G abierto', 0, 0)
Comando AT para el módulo A9G
AT + GPS = 1 # 1: Enciende el GPS, 0: Apaga el GPS
AT + UBICACIÓN = 2 #Obtenga la información de la dirección del GPS, siempre que el GPS pueda ver el satélite antes de regresar; de lo contrario, devolverá GPS NO FIJAR AHORA EN + GPSRD = 0 #Detener informes
Conecte la placa a la PC mediante un cable USB y use uPyCraft para descargar todos los archivos en la carpeta “/ Project_Gps-Trace-Analysis-master / workspace”
Paso 4: procesamiento de la información
- Copie el archivo TXT que comienza con "trace" en la tarjeta SD en la carpeta “/ Project_Gps-Trace-Analysis-master”.
- Abra el archivo Python con el bloc de notas y cambie el código.
#Archivo que quieres analizar
trace_file_name = "./trace4.txt"