Inhoudsopgave:
Video: DIY GPS Tracker --- Python-toepassing - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Ik heb twee weken geleden deelgenomen aan een wielerevenement. Nadat ik klaar was, wilde ik de route en de snelheid controleren die ik op dat moment reed. Helaas is het niet gehaald. Nu gebruik ik ESP32 om een GPS-tracker te maken, en die neem ik de volgende keer mee om mijn fietsroute vast te leggen. De GPS-tracker kan de locatie- en tijdinformatie op de SD-kaart opslaan en deze informatie kan worden verwerkt en een kaart van afstand en snelheid tekenen met de pc-software.
Benodigdheden:
Hardware:
- Merknaam Python ESP32 (met Wrover)
- MerknaamPython A9G
MakePython A9G-kaart is een GPS/GPRS-uitbreidingskaart voor MakePython.
- Accu
- Micro-USB-kabel
Software:
- Python 3
- uPyCraft_v1.1
Stap 1: Aansluiting
Verbind twee borden volgens de pinnen. De module kan worden gevoed door een batterij of een micro-USB-kabel.
Stap 2: Software op pc
Python3:
- Je kunt het hier downloaden: Python3. Kies de 3.8.5-versie, download en installeer deze.
- "Add Python 3.8 to PATH" selectie moet worden aangevinkt tijdens het installatieproces, zoals figuur 1.
- Als de bibliotheek die door het programma wordt gebruikt, niet is geïnstalleerd, wordt er gevraagd wanneer het wordt uitgevoerd. U kunt de volgende opdracht in cmd.exe uitvoeren om bibliotheken te installeren, zoals in Afbeelding 2.
pip install xxx // xxx is bibliotheeknaam
pip uninstall xxx // xxx is bibliotheeknaam pip list // print geïnstalleerde bibliotheken
Code:
- U kunt het python-bestand hier ophalen: Code. Het python-bestand is "/Project_Gps-Trace-Analysis-master/Google_trace.py".
- Teken een route op de kaart.
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[breedte - 1], lon_list[breedte - 1], color='red') gmap.draw("./map-trace.html")
Teken grafieken van snelheid versus tijd, afstand versus tijd
plt.subplot(2, 1, 1)
plt.plot(time_list[0:-1], speed) plt.title("Gemiddelde snelheid:" + str(avg_speed)) # plt.xlabel("Tijd") plt.ylabel("Snelheid (m/s)") plt.subplot(2, 1, 2) plt.plot(time_list[0:-1], total_distance) plt.title("Totale afstand:" + str(round(total_distance[- 1], 2))) plt.xlabel("Tijd") plt.ylabel("Afstand(m)") plt.draw() plt.pause(0) pas
Stap 3: Firmware over ESP32
uPyCraft_v1.1
- Je kunt het hier downloaden: uPyCraft.
- Verbind het bord met de pc via een USB-kabel. Open uPyCraft_v1.1, selecteer de tools: "Tool > board > esp32" en "Tools > port > com*", klik op de verbonden knop aan de rechterkant.
- Als de verbinding niet succesvol is, wordt de prompt weergegeven als "open de seriële fout, probeer het opnieuw". U moet de firmware bijwerken om succesvolle verbindingen te beloven. De firmware-downloadlink is LINK. Open "Tools>BurnFirmware", stel de parameter in zoals in figuur 3, en klik op OK.
-
Open het Python-bestand en klik op de knop "DownloadAndRun" aan de rechterkant. Het programma is gedownload naar het bord, je kunt het zien in het menu "apparaat" aan de linkerkant, zoals figuur 4.
Firmware en downloaden
U kunt de firmware hier downloaden: Firmware.
Stel de verbinding met SD-kaartmodule in het bestand: "/Project_Gps-Trace-Analysis-master/workspace/test.py"
# SD init
spi = SPI(1, baudrate=400000, polariteit=1, fase=0, sck=Pin(14), mosi=Pin(13), miso=Pin (12)) spi.init() # Zorg voor de juiste baudrate lcd. text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # Compatibel met PCB vfs = os. VfsFat(sd) os.mount(vfs, "/SD") random.seed (len(os.listdir("/SD"))) print("SD OK") lcd.text('SPI OK', 0, 16)
Stel de verbinding met de A9G-module in het bestand: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G geopend
A9G_RESET_PIN = Pin(33, Pin. OUT) A9G_RESET_PIN.value(0) # set pin to 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 open', 0, 0)
AT-opdracht voor de A9G-module
AT+GPS=1 # 1: Zet de GPS aan, 0: Zet de GPS uit
AT+LOCATION=2 #Verkrijg de adresinformatie van GPS, zolang de GPS de satelliet kan zien voordat hij terugkeert, anders zal hij GPS terugsturen NIET NU FIX AT+GPSRD=0 #Stop rapportage
Verbind het bord met de pc via een USB-kabel en gebruik uPyCraft om alle bestanden in de map "/Project_Gps-Trace-Analysis-master/workspace" te downloaden
Stap 4: Informatie verwerken
- Kopieer het TXT-bestand dat begint met "trace" op de SD-kaart naar de map "/Project_Gps-Trace-Analysis-master".
- Open het Python-bestand met het kladblok en verander de code.
#Bestand dat u wilt analyseren
trace_file_name = "./trace4.txt"