Inhaltsverzeichnis:
- Schritt 1: Verbindung
- Schritt 2: Software auf dem PC
- Schritt 3: Firmware über ESP32
- Schritt 4: Informationen verarbeiten
Video: DIY GPS-Tracker --- Python-Anwendung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Ich habe vor zwei Wochen an einem Radsport-Event teilgenommen. Nachdem ich fertig war, wollte ich die Route und die Geschwindigkeit, die ich damals gefahren bin, überprüfen. Leider wurde es nicht erreicht. Jetzt verwende ich ESP32, um einen GPS-Tracker zu erstellen, und ich werde ihn beim nächsten Mal mitnehmen, um meine Radroute aufzuzeichnen. Der GPS-Tracker kann die Standort- und Zeitinformationen auf der SD-Karte speichern, und diese Informationen können mit der PC-Software verarbeitet und ein Diagramm der Entfernung und Geschwindigkeit erstellt werden.
Lieferungen:
Hardware:
- MakePython ESP32 (mit Wrover)
- MakePython A9G
Das MakePython A9G Board ist ein GPS/GPRS-Erweiterungsboard für MakePython.
- Batterie
- Micro-USB-Kabel
Software:
- Python 3
- uPyCraft_v1.1
Schritt 1: Verbindung
Verbinden Sie zwei Platinen entsprechend den Pins. Das Modul kann mit Batterie oder Micro-USB-Kabel betrieben werden.
Schritt 2: Software auf dem PC
Python3:
- Sie können es hier herunterladen: Python3. Wählen Sie die Version 3.8.5, laden Sie sie herunter und installieren Sie sie.
- Die Auswahl „Python 3.8 zu PATH hinzufügen“muss während des Installationsvorgangs überprüft werden, wie in Abbildung 1 dargestellt.
- Wenn die vom Programm verwendete Bibliothek nicht installiert ist, wird das Programm bei der Ausführung dazu aufgefordert. Sie können den folgenden Befehl in cmd.exe ausführen, um Bibliotheken zu installieren, wie in Abbildung 2 dargestellt.
pip install xxx // xxx ist der Name der Bibliothek
pip deinstallieren xxx // xxx ist der Name der Bibliothek pip-Liste // installierte Bibliotheken drucken
Code:
- Sie können die Python-Datei hier herunterladen: Code. Die Python-Datei ist „/Project_Gps-Trace-Analysis-master/Google_trace.py“.
- Zeichnen Sie eine Route auf die Karte.
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")
Zeichnen Sie Diagramme von Geschwindigkeit vs. Zeit, Distanz vs. Zeit
plt.subplot(2, 1, 1)
plt.plot(time_list[0:-1], speed) plt.title("Durchschnittsgeschwindigkeit:" + 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("Time") plt.ylabel("Distance(m)") plt.draw() plt.pause(0) pass
Schritt 3: Firmware über ESP32
uPyCraft_v1.1
- Sie können es hier herunterladen: uPyCraft.
- Verbinden Sie das Board per USB-Kabel mit dem PC. Öffnen Sie uPyCraft_v1.1, wählen Sie die Tools aus: „Tool > board > esp32“und „Tools > port > com*“, klicken Sie rechts auf die Schaltfläche „Verbunden“.
- Wenn die Verbindung nicht erfolgreich ist, wird die Eingabeaufforderung „Öffnen Sie den seriellen Fehler, bitte versuchen Sie es erneut“angezeigt. Sie müssen die Firmware aktualisieren, um erfolgreiche Verbindungen zu versprechen. Der Link zum Firmware-Download lautet LINK. Öffnen Sie „Tools>BurnFirmware“, stellen Sie den Parameter wie in Abbildung 3 ein und klicken Sie auf OK.
- Öffnen Sie die Python-Datei und klicken Sie rechts auf die Schaltfläche "DownloadAndRun". Das Programm wurde auf das Board heruntergeladen, Sie können es im Menü „Gerät“links sehen, wie Abbildung 4.
Firmware und Download
Die Firmware erhalten Sie hier: Firmware.
Stellen Sie die Verbindung mit dem SD-Kartenmodul in der Datei „/Project_Gps-Trace-Analysis-master/workspace/test.py“ein
# SD-Initialisierung
spi = SPI(1, baudrate=400000, polarity=1, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) spi.init() # Stellen Sie die richtige Baudrate lcd sicher. text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # Kompatibel mit PCB vfs = os. VfsFat(sd) os.mount(vfs, "/SD") random.seed (len(os.listdir("/SD"))) print("SD OK") lcd.text('SPI OK', 0, 16)
Stellen Sie die Verbindung mit dem A9G-Modul in der Datei „/Project_Gps-Trace-Analysis-master/workspace/test.py“ein
# A9G geöffnet
A9G_RESET_PIN = Pin(33, Pin. OUT) A9G_RESET_PIN.value(0) # Pin auf Low setzen 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 open', 0, 0)
AT-Befehl für das A9G-Modul
AT+GPS=1 # 1: GPS einschalten, 0: GPS ausschalten
AT+LOCATION=2 # Holen Sie sich die Adressinformationen von GPS, solange das GPS den Satelliten vor der Rückkehr sehen kann, andernfalls wird GPS zurückgegeben
Verbinden Sie das Board per USB-Kabel mit dem PC und laden Sie mit uPyCraft alle Dateien im Ordner „/Project_Gps-Trace-Analysis-master/workspace“herunter
Schritt 4: Informationen verarbeiten
- Kopieren Sie die mit „trace“beginnende TXT-Datei auf der SD-Karte in den Ordner „/Project_Gps-Trace-Analysis-master“.
- Öffnen Sie die Python-Datei mit dem Notepad und ändern Sie den Code.
#Datei, die Sie analysieren möchten
trace_file_name = "./trace4.txt"