Sommario:
- Passaggio 1: connessione
- Passaggio 2: software su PC
- Passaggio 3: firmware su ESP32
- Passaggio 4: elaborazione delle informazioni
Video: Tracker GPS fai da te --- Applicazione Python: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Ho partecipato a un evento ciclistico due settimane fa. Dopo aver finito, volevo controllare il percorso e la velocità che ho guidato in quel momento. Purtroppo non è stato raggiunto. Ora uso ESP32 per creare un localizzatore GPS e la prossima volta lo utilizzerò per registrare il mio percorso in bicicletta. Il localizzatore GPS può salvare le informazioni sulla posizione e l'ora sulla scheda SD e queste informazioni possono essere elaborate e tracciare un grafico della distanza e della velocità con il software per PC.
Forniture:
Hardware:
- MakePython ESP32 (con Wrover)
- MakePython A9G
La scheda MakePython A9G è una scheda di espansione GPS/GPRS per MakePython.
- Batteria
- Cavo micro USB
Software:
- Pitone 3
- uPyCraft_v1.1
Passaggio 1: connessione
Collegare due schede in base ai pin. Il modulo può essere alimentato tramite batteria o cavo Micro USB.
Passaggio 2: software su PC
Python3:
- Puoi scaricarlo da qui: Python3. Scegli la versione 3.8.5, scaricala e installala.
- La selezione "Add Python 3.8 to PATH" deve essere controllata durante il processo di installazione, come nella Figura 1.
- Se la libreria utilizzata dal programma non è installata, il programma chiederà quando è in esecuzione. È possibile eseguire il comando seguente in cmd.exe per installare le librerie, come nella Figura 2.
pip install xxx // xxx è il nome della libreria
pip uninstall xxx // xxx è il nome della libreria pip list // stampa le librerie installate
Codice:
- Puoi ottenere il file python da qui: Code. Il file python è "/Project_Gps-Trace-Analysis-master/Google_trace.py".
- Disegna un percorso sulla mappa.
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='blu') gmap.marker(lat_list[larghezza - 1], lon_list[larghezza - 1], color='rosso') gmap.draw("./map-trace.html")
Disegna grafici di velocità in funzione del tempo, distanza in funzione del tempo
plt.sottotrama(2, 1, 1)
plt.plot(time_list[0:-1], speed) plt.title("Average Speed:" + str(avg_speed)) # plt.xlabel("Time") plt.ylabel("Speed(m/s)") plt.subplot(2, 1, 2) plt.plot(time_list[0:-1], total_distance) plt.title("Total Distance:" + str(round(total_distance[- 1], 2))) plt.xlabel("Tempo") plt.ylabel("Distanza(m)") plt.draw() plt.pause(0) pass
Passaggio 3: firmware su ESP32
uPyCraft_v1.1
- Puoi scaricarlo da qui: uPyCraft.
- Collegare la scheda al PC tramite cavo USB. Apri uPyCraft_v1.1, seleziona gli strumenti: "Strumento > scheda > esp32" e "Strumenti > porta > com*", fai clic sul pulsante connesso a destra.
- Se la connessione non va a buon fine, il prompt verrà mostrato come "apri l'errore seriale, riprova". Devi aggiornare il firmware per promettere connessioni con successo. Il link per il download del firmware è LINK. Aprire "Strumenti> BurnFirmware", impostare il parametro, come in Figura 3, e fare clic su OK.
- Apri il file Python e fai clic sul pulsante "DownloadAndRun" a destra. Il programma è stato scaricato sulla scheda, lo puoi vedere nel menu "dispositivo" a sinistra, come in Figura 4.
Firmware e download
Puoi ottenere il firmware da qui: Firmware.
Impostare la connessione con il modulo della scheda SD nel file: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# SD init
spi = SPI(1, baudrate=400000, polarity=1, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) spi.init() # Assicura la corretta baudrate lcd. text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # Compatibile 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)
Impostare la connessione con il modulo A9G nel file: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G aperto
A9G_RESET_PIN = Pin(33, Pin. OUT) A9G_RESET_PIN.value(0) # imposta pin su low 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 aperto', 0, 0)
Comando AT per il modulo A9G
AT+GPS=1 # 1: Accendi il GPS, 0: Spegni il GPS
AT+LOCATION=2 #Ottieni le informazioni sull'indirizzo del GPS, a patto che il GPS possa vedere il satellite prima di tornare, altrimenti restituirà GPS NON CORRETTO ORA AT+GPSRD=0 #Interrompi segnalazione
Collega la scheda al PC tramite cavo USB e usa uPyCraft per scaricare tutti i file nella cartella “/Project_Gps-Trace-Analysis-master/workspace”
Passaggio 4: elaborazione delle informazioni
- Copiare il file TXT che inizia con "trace" nella scheda SD nella cartella “/Project_Gps-Trace-Analysis-master”.
- Apri il file Python con il blocco note e modifica il codice.
#File che vuoi analizzare
trace_file_name = "./trace4.txt"