Spisu treści:
- Krok 1: Połączenie
- Krok 2: Oprogramowanie na PC
- Krok 3: Oprogramowanie układowe dotyczące ESP32
- Krok 4: Przetwarzanie informacji
Wideo: DIY GPS Tracker --- Aplikacja Python: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Uczestniczyłem w imprezie kolarskiej dwa tygodnie temu. Po skończeniu chciałem sprawdzić trasę i prędkość jaką wtedy jechałem. Niestety nie udało się tego osiągnąć. Teraz używam ESP32 do wykonania trackera GPS i następnym razem wezmę go do nagrania mojej trasy rowerowej. Lokalizator GPS może zapisywać informacje o lokalizacji i czasie na karcie SD, a informacje te można przetwarzać i rysować wykres odległości i prędkości za pomocą oprogramowania komputerowego.
Kieszonkowe dzieci:
Sprzęt komputerowy:
- MakePython ESP32 (z Wrover)
- MakePython A9G
Płyta MakePython A9G to karta rozszerzeń GPS/GPRS dla MakePython.
- Bateria
- Kabel micro USB
Oprogramowanie:
- Pyton 3
- uPyCraft_v1.1
Krok 1: Połączenie
Połącz dwie deski zgodnie z kołkami. Moduł może być zasilany baterią lub kablem Micro USB.
Krok 2: Oprogramowanie na PC
Python3:
- Możesz go pobrać stąd: Python3. Wybierz wersję 3.8.5, pobierz i zainstaluj.
- Podczas procesu instalacji należy zaznaczyć opcję „Dodaj Python 3.8 do PATH”, jak pokazano na rysunku 1.
- Jeśli biblioteka używana przez program nie jest zainstalowana, program wyświetli monit, gdy jest uruchomiony. Możesz uruchomić następujące polecenie w cmd.exe, aby zainstalować biblioteki, jak na rysunku 2.
pip install xxx // xxx to nazwa biblioteki
pip odinstalować xxx // xxx to nazwa biblioteki lista pip // wydrukować zainstalowane biblioteki
Kod:
- Możesz pobrać plik Pythona stąd: Kod. Plik Pythona to „/Project_Gps-Trace-Analysis-master/Google_trace.py”.
- Narysuj trasę na mapie.
def utwórz_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[szerokość - 1], lon_list[szerokość - 1], color='czerwony') gmap.draw("./map-trace.html")
Narysuj wykresy prędkości w funkcji czasu, odległości w funkcji czasu
plt.subplot(2, 1, 1)
plt.plot(time_list[0:-1], prędkość) plt.title("Średnia prędkość:" + str(avg_speed)) # plt.xlabel("Czas") plt.ylabel("Prędkość(m/s)") plt.subplot(2, 1, 2) plt.plot(time_list[0:-1], total_distance) plt.title("Całkowita odległość:" + str(round(całkowita_odległość[-1], 2))) plt.xlabel("Czas") plt.ylabel("Odległość(m)") plt.draw() plt.pause(0) przebieg
Krok 3: Oprogramowanie układowe dotyczące ESP32
uPyCraft_v1.1
- Możesz go pobrać stąd: uPyCraft.
- Podłącz płytkę do komputera za pomocą kabla USB. Otwórz uPyCraft_v1.1, wybierz narzędzia: „Narzędzie > tablica > esp32” i „Narzędzia > port > com*”, kliknij przycisk połączenia po prawej stronie.
- Jeśli połączenie się nie powiedzie, pojawi się monit „otwórz błąd szeregowy, spróbuj ponownie”. Musisz zaktualizować oprogramowanie układowe, aby zapewnić pomyślne połączenia. Link do pobrania oprogramowania układowego to LINK. Otwórz „Tools>BurnFirmware”, ustaw parametr jak na rysunku 3 i kliknij OK.
- Otwórz plik Python i kliknij przycisk „DownloadAndRun” po prawej stronie. Program został pobrany na płytkę, można go zobaczyć w menu „urządzenie” po lewej stronie, jak na rysunku 4.
Oprogramowanie układowe i pobieranie
Oprogramowanie układowe można pobrać stąd: Oprogramowanie układowe.
Ustaw połączenie z modułem karty SD w pliku: „/Project_Gps-Trace-Analysis-master/workspace/test.py”
# Rozpoczęcie SD
spi = SPI(1, szybkość transmisji=400000, polaryzacja=1, faza=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) spi.init() # Zapewnij odpowiednią szybkość transmisji na lcd. text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # Zgodny z PCB vfs = os. VfsFat(sd) os.mount(vfs, "/SD") random.seed (len(os.listdir("/SD"))) print("SD OK") lcd.text('SPI OK', 0, 16)
Ustaw połączenie z modułem A9G w pliku: „/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G otwarte
A9G_RESET_PIN = Pin(33, Pin. OUT) A9G_RESET_PIN.value(0) # ustaw pin na niski 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 otwarte', 0, 0)
Polecenie AT dla modułu A9G
AT+GPS=1 # 1: Włącz GPS, 0: Wyłącz GPS
AT+LOCATION=2 #Uzyskaj informacje o adresie GPS, o ile GPS widzi satelitę przed powrotem, w przeciwnym razie zwróci GPS NIE NAPRAW TERAZ AT+GPSRD=0 #Zatrzymaj raportowanie
Podłącz płytkę do komputera za pomocą kabla USB i użyj uPyCraft, aby pobrać wszystkie pliki z folderu „/Project_Gps-Trace-Analysis-master/workspace”
Krok 4: Przetwarzanie informacji
- Skopiuj plik TXT zaczynający się od „trace” na karcie SD do folderu „/Project_Gps-Trace-Analysis-master”.
- Otwórz plik Pythona za pomocą notatnika i zmień kod.
#Plik, który chcesz przeanalizować
trace_file_name = "./trace4.txt"