INHOUDSOPGAWE:
- Stap 1: verbinding
- Stap 2: sagteware op 'n rekenaar
- Stap 3: Firmware oor ESP32
- Stap 4: Verwerking van inligting
Video: DIY GPS Tracker --- Python-toepassing: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Ek het twee weke gelede aan 'n fietsbyeenkoms deelgeneem. Nadat ek klaar was, wou ek die roete en die spoed wat ek destyds gery het, nagaan. Ongelukkig is dit nie bereik nie. Nou gebruik ek ESP32 om 'n GPS -spoorsnyer te maak, en ek sal dit volgende keer neem om my fietsroete op te neem. Die GPS -spoorsnyer kan die ligging- en tydinligting op die SD -kaart stoor, en hierdie inligting kan verwerk word en 'n kaart van afstand en spoed met die rekenaarprogrammatuur teken.
Benodighede:
Hardeware:
- MakePython ESP32 (met Wrover)
- Maak Python A9G
MakePython A9G -bord is GPS/GPRS -uitbreidingskaart vir MakePython.
- Battery
- Mikro USB kabel
Sagteware:
- Python 3
- uPyCraft_v1.1
Stap 1: verbinding
Verbind twee borde volgens die penne. Die module kan aangedryf word deur 'n battery of 'n mikro -USB -kabel.
Stap 2: sagteware op 'n rekenaar
Python3:
- U kan dit hier aflaai: Python3. Kies die weergawe 3.8.5, laai dit af en installeer dit.
- Die keuse van 'Voeg Python 3.8 by PATH' moet tydens die installasieproses nagegaan word, soos in figuur 1.
- As die biblioteek wat deur die program gebruik word nie geïnstalleer is nie, sal die program vra wanneer dit aan die gang is. U kan die volgende opdrag in cmd.exe uitvoer om biblioteke te installeer, soos figuur 2.
pip install xxx // xxx is biblioteeknaam
pip verwyder xxx // xxx is biblioteeknaam pip lys // druk geïnstalleerde biblioteke
Kode:
- U kan die python -lêer hier kry: Code. Die python-lêer is “/Project_Gps-Trace-Analysis-master/Google_trace.py”.
- Teken 'n roete op die 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], kleur = 'rooi') gmap.draw ("./ map -trace.html")
Teken grafieke van spoed teenoor tyd, afstand teenoor tyd
subplot (2, 1, 1)
plt.plot (time_list [0: -1], spoed) plt.title ("Gemiddelde snelheid:" + 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 ("Tyd") plt.ylabel ("Afstand (m)") plt.draw () plt.pause (0) slaag
Stap 3: Firmware oor ESP32
uPyCraft_v1.1
- U kan dit hier aflaai: uPyCraft.
- Koppel die kaart met 'n USB -kabel aan die rekenaar. Maak uPyCraft_v1.1 oop, kies die gereedskap: "Tool> board> esp32" en "Tools> port> com*", klik op die gekoppelde knoppie regs.
- As die verbinding nie slaag nie, word die aanwysing vertoon as "maak die reeksfout oop, probeer asseblief weer". U moet die firmware opdateer om verbindings suksesvol te belowe. Die skakel vir die aflaai van die firmware is LINK. Open "Tools> BurnFirmware", stel die parameter in figuur 3 en klik op OK.
-
Maak die Python -lêer oop en klik op die "DownloadAndRun" -knoppie regs. Die program is op die bord afgelaai; u kan dit sien in die menu "toestel" aan die linkerkant, soos in figuur 4.
Firmware en aflaai
U kan die firmware van hier af kry: Firmware.
Stel die verbinding met die SD-kaartmodule in die lêer: "/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 () # Verseker regter baudrate lcd. teks ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # Versoenbaar met PCB vfs = os. VfsFat (sd) os.mount (vfs, "/SD") random.seed (len (os.listdir ("/SD"))) druk ("SD OK") lcd.text ('SPI OK', 0, 16)
Stel die verbinding met die A9G-module in die lêer: "/Project_Gps-Trace-Analysis-master/workspace/test.py"
# A9G oop
A9G_RESET_PIN = Speld (33, Pin. OUT) A9G_RESET_PIN.waarde (0) # stel pen op lae tyd in. Slaap (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.waarde (0) time.sleep (1) A9G_PW.waarde (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G open', 0, 0)
AT -opdrag vir die A9G -module
AT+GPS = 1 # 1: Skakel die GPS aan, 0: Skakel die GPS uit
AT+LOCATION = 2 #Kry die adresinligting van GPS, solank die GPS die satelliet kan sien voordat hy terugkeer, anders sal dit GPS terugstuur NIE NOU OP nie+GPSRD = 0 #Stop verslagdoening
Koppel die kaart met 'n USB-kabel aan die rekenaar en gebruik uPyCraft om alle lêers in die gids "/Project_Gps-Trace-Analysis-master/workspace" af te laai
Stap 4: Verwerking van inligting
- Kopieer die TXT-lêer wat begin met "trace" op die SD-kaart in die gids "/Project_Gps-Trace-Analysis-master".
- Maak die Python -lêer oop met die notaboek en verander die kode.
#Bestand wat u wil ontleed
trace_file_name = "./trace4.txt"