Índice:
- Etapa 1: Conexão
- Etapa 2: Software no PC
- Etapa 3: Firmware sobre ESP32
- Etapa 4: Processamento de informações
Vídeo: DIY GPS Tracker --- Aplicativo Python: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Participei de um evento de ciclismo há duas semanas. Depois de terminar, quis verificar o percurso e a velocidade que rodei naquele momento. Infelizmente, isso não foi alcançado. Agora eu uso o ESP32 para fazer um rastreador GPS e vou usá-lo para registrar minha rota de bicicleta na próxima vez. O rastreador GPS pode salvar as informações de localização e hora no cartão SD, e essas informações podem ser processadas e traçar um gráfico de distância e velocidade com o software para PC.
Suprimentos:
Hardware:
- MakePython ESP32 (com Wrover)
- MakePython A9G
A placa MakePython A9G é uma placa de expansão GPS / GPRS para MakePython.
- Bateria
- Cabo micro usb
Programas:
- Python 3
- uPyCraft_v1.1
Etapa 1: Conexão
Conecte duas placas de acordo com os pinos. O módulo pode ser alimentado por bateria ou cabo Micro USB.
Etapa 2: Software no PC
Python3:
- Você pode baixá-lo aqui: Python3. Escolha a versão 3.8.5, baixe e instale.
- A seleção “Adicionar Python 3.8 ao PATH” deve ser verificada durante o processo de instalação, conforme Figura 1.
- Se a biblioteca usada pelo programa não estiver instalada, o programa irá avisar quando estiver em execução. Você pode executar o seguinte comando em cmd.exe para instalar bibliotecas, conforme Figura 2.
pip install xxx // xxx é o nome da biblioteca
pip uninstall xxx // xxx é o nome da biblioteca pip list // imprime as bibliotecas instaladas
Código:
- Você pode obter o arquivo python aqui: Código. O arquivo python é “/Project_Gps-Trace-Analysis-master/Google_trace.py”.
- Desenhe uma rota no 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 [largura - 1], lon_list [largura - 1], cor = 'vermelho') gmap.draw ("./ map-trace.html")
Desenhe gráficos de velocidade x tempo, distância x tempo
plt.subplot (2, 1, 1)
plt.plot (time_list [0: -1], velocidade) plt.title ("Velocidade média:" + str (avg_speed)) # plt.xlabel ("Tempo") plt.ylabel ("Velocidade (m / s)") plt.subplot (2, 1, 2) plt.plot (time_list [0: -1], total_distance) plt.title ("Distância Total:" + str (round (total_distance [- 1], 2))) plt.xlabel ("Tempo") plt.ylabel ("Distância (m)") plt.draw () plt.pause (0) pass
Etapa 3: Firmware sobre ESP32
uPyCraft_v1.1
- Você pode baixá-lo aqui: uPyCraft.
- Conecte a placa ao PC pelo cabo USB. Abra o uPyCraft_v1.1, selecione as ferramentas:”Ferramenta> placa> esp32” e “Ferramentas> porta> com *”, clique no botão conectado à direita.
- Se a conexão não for bem-sucedida, o prompt será mostrado como “abra o erro serial, tente novamente”. Você tem que atualizar o firmware para prometer conexões com sucesso. O link para download do firmware é LINK. Abra “Ferramentas> BurnFirmware”, defina o parâmetro, conforme Figura 3, e clique em OK.
-
Abra o arquivo Python e clique no botão “DownloadAndRun” à direita. O programa foi baixado para a placa, você pode vê-lo no menu “dispositivo” à esquerda, conforme Figura 4.
Firmware e download
Você pode obter o firmware aqui: Firmware.
Defina a conexão com o módulo de cartão SD no arquivo: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# SD init
spi = SPI (1, taxa de transmissão = 400000, polaridade = 1, fase = 0, sck = Pino (14), mosi = Pino (13), miso = Pino (12)) spi.init () # Garanta a taxa de transmissão correta lcd. text ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # Compatível com PCB vfs = os. VfsFat (sd) os.mount (vfs, "/ SD") random.seed (len (os.listdir ("/ SD"))) print ("SD OK") lcd.text ('SPI OK', 0, 16)
Defina a conexão com o módulo A9G no arquivo: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G open
A9G_RESET_PIN = Pin (33, Pin. OUT) A9G_RESET_PIN.value (0) # definir o pino para baixo time.sleep (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.value (0) time.sleep (1) A9G_PWR_KEY.value (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G aberto', 0, 0)
Comando AT para o módulo A9G
AT + GPS = 1 # 1: liga o GPS, 0: desliga o GPS
EM + LOCALIZAÇÃO = 2 # Obtenha as informações de endereço do GPS, desde que o GPS possa ver o satélite antes de retornar, caso contrário, retornará GPS NÃO CORRIGIDO AGORA AT + GPSRD = 0 #Parar relatório
Conecte a placa ao PC por um cabo USB e use o uPyCraft para baixar todos os arquivos da pasta “/ Project_Gps-Trace-Analysis-master / workspace”
Etapa 4: Processamento de informações
- Copie o arquivo TXT começando com "trace" no cartão SD para a pasta “/ Project_Gps-Trace-Analysis-master”.
- Abra o arquivo Python com o bloco de notas e altere o código.
#Arquivo que você deseja analisar
trace_file_name = "./trace4.txt"