DIY GPS Tracker con ESP32 - Aplicación Python

DIY GPS Tracker con ESP32 - Aplicación Python

noviembre 21, 2020

DIY-GPS-Tracker-con-ESP32-Python-1
En este proyecto, haremos un rastreador GPS DIY con ESP32, usaremos la placa de expansión MakePython ESP32 y A9G, es una aplicación de Python.

Participé en un evento de ciclismo hace dos semanas. Después de terminar, quería comprobar la ruta y la velocidad que montaba en ese momento. Desafortunadamente, no se logró. Ahora uso ESP32 para hacer un rastreador GPS, y lo tomaré para registrar mi ruta ciclista la próxima vez. El rastreador GPS puede guardar la información de ubicación y hora en la tarjeta SD, y esta información se puede procesar y dibujar un gráfico de distancia y velocidad con el software de PC.

1. Materiales para el rastreador GPS DIY

1.1 Hardware:

  • MakePython ESP32(Versión WROVER)
  • MakePython A9G,La placa de expansión MakePython A9G es una placa de desarrollo GPS / GPRS para MakePython.
  • Batería
  • Cable micro USB

1.2 Software:

  • Python 3
  • uPyCraft_v1.1

2. Conexión de hardware

DIY-GPS-Tracker-con-ESP32-A9GDIY-GPS-Tracker-con-ESP32

Conecte dos placas de acuerdo con los pines, solo tendrá que enchufar esas 2 placas. El módulo puede ser alimentado por una batería o cable Micro USB.

3. Programación de software en PC

Instalar-PythonSoftware en PC

3.1 Python 3:

  • Puedes 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 indica en la Figura 1.
  • Si la biblioteca utilizada por el programa no está instalada, el programa le preguntará cuando se esté ejecutando. Puede ejecutar el siguiente comando en cmd.exe para instalar bibliotecas, como la figura 2.
pip install xxx // xxx es el nombre de la biblioteca
pip uninstall xxx // xxx es el nombre de la biblioteca
Lista PIP // Imprimir bibliotecas instaladas

3.2 Código:

  • Puede obtener el archivo python desde aquí:Código. El archivo 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[width - 1], lon_list[width - 1], color='red')
   gmap.draw("./map-trace.html")
 
  • Dibuja gráficos de velocidad vs. tiempo, distancia vs. tiempo.
plt.subplot(2, 1, 1)
    plt.plot(time_list[0:-1], velocidad)
    plt.title("Velocidad media:" + str(avg_speed))
    # plt.xlabel("Hora")
    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("Hora")
    plt.ylabel("Distancia(m)")
    plt.draw()
    plt.pause(0)
    pasar

4. Firmware sobre ESP32

Firmware-Acerca de-ESP32Firmware-About-ESP32-on-uPyCraft

4.1 uPyCraft_v1.1

  • Puedes descargarlo desde aquí:uPyCraft.
  • Conecte la placa al PC mediante un cable USB. Abra uPyCraft_v1.1, seleccione las herramientas:" Tool > board > esp32" y "Tools > port > 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". Debe actualizar el firmware para prometer conexiones exitosas. El enlace de descarga del firmware esENLACE. Abra "Tools>BurnFirmware", establezca el parámetro, como Figura 3, y haga clic en Aceptar.
  • Abra el archivo Python y haga clic en el botón "DownloadAndRun" a la derecha. El programa se ha descargado en la placa, puede verlo en el menú "dispositivo" a la izquierda, como la Figura 4.

4.2 Firmware y descarga

Puede obtener el firmware desde aquí:Firmware.
  • Establezca la conexión con el módulo de tarjeta SD en el archivo: "/ Project_Gps-Trace-Analysis-master / workspace / test.py"
# SD init
    spi = SPI(1, baudios=400000, polaridad=1, fase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
    spi.init() # Asegurar la velocidad en baudios correcta
    lcd.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) # establecer pin en bajo

tiempo.dormir(1)
    A9G_PWR_KEY = Pin(27, Pin.OUT)
    A9G_PWR_KEY.value(0)
    tiempo.dormir(1)
    A9G_PWR_KEY.valor(1)
    tiempo.dormir(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+LOCATION=2 #Obtenga la información de la dirección del GPS, siempre y cuando el GPS pueda ver el satélite antes de regresar, de lo contrario devolverá GPS NOT FIX NOW
AT+GPSRD=0 #Detener la generación de informes
Conecte la placa al PC mediante un cable USB y utilice uPyCraft para descargar todos los archivos de la carpeta "/Project_Gps-Trace-Analysis-master/workspace".

5. Procesamiento de la información

DIY-GPS-Tracker-Processing-Information
  • 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.
#File que desea analizar
trace_file_name = "./trace4.txt"
  • Use la línea de comandos para ejecutar el archivo de Python, obtendrá la cifra de velocidad y distancia, como la Figura 5.

6. Probemos este rastreador GPS ESP32 DIY

DIY-GPS-Tracker-con-ESP32-ExperimentoDIY-GPS-Tracker-con-ESP32-Resultado
Si tiene más preguntas o necesita algunas personalizaciones de PCBA basadas en esas placas IoT de MakePython, no dude en ponerse en contacto conservice@makerfabs.com.guiño

Contáctenos