Isi kandungan:
- Langkah 1: Sambungan
- Langkah 2: Perisian pada PC
- Langkah 3: Perisian Firmware Mengenai ESP32
- Langkah 4: Memproses Maklumat
Video: Penjejak GPS DIY --- Aplikasi Python: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Saya mengambil bahagian dalam acara berbasikal dua minggu yang lalu. Setelah selesai, saya ingin memeriksa laluan dan kelajuan yang saya naiki ketika itu. Malangnya, ia tidak dapat dicapai. Sekarang saya menggunakan ESP32 untuk membuat pelacak GPS, dan saya akan mengambilnya untuk merakam laluan berbasikal saya lain kali. Penjejak GPS dapat menyimpan maklumat lokasi dan masa ke kad SD, dan maklumat ini dapat diproses dan melukis carta jarak dan kelajuan dengan perisian PC.
Bekalan:
Perkakasan:
- MakePython ESP32 (dengan Wrover)
- MakePython A9G
Papan MakePython A9G adalah papan pengembangan GPS / GPRS untuk MakePython.
- Bateri
- Kabel USB mikro
Perisian:
- Python 3
- uPyCraft_v1.1
Langkah 1: Sambungan
Sambungkan dua papan mengikut pin. Modul ini boleh dikuasakan dengan bateri atau kabel USB Mikro.
Langkah 2: Perisian pada PC
Python3:
- Anda boleh memuat turunnya dari sini: Python3. Pilih versi 3.8.5, muat turun dan pasangnya.
- Pilihan "Tambah Python 3.8 ke PATH" harus diperiksa selama proses pemasangan, seperti Gambar 1.
- Sekiranya perpustakaan yang digunakan oleh program tidak dipasang, program akan diminta ketika dijalankan. Anda boleh menjalankan perintah berikut di cmd.exe untuk memasang perpustakaan, seperti Gambar 2.
memasang pip xxx // xxx adalah nama perpustakaan
uninstall pip xxx // xxx adalah nama perpustakaan senarai pip // cetak terpasang perpustakaan
Kod:
- Anda boleh mendapatkan fail python dari sini: Kod. Fail python adalah "/Project_Gps-Trace-Analysis-master/Google_trace.py".
- Lukis laluan di peta.
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")
Lukiskan graf kelajuan berbanding masa, jarak berbanding masa
plt.subplot (2, 1, 1)
plt.plot (senarai_ waktu [0: -1], kelajuan) plt.title ("Purata Kelajuan:" + str (avg_speed)) # plt.xlabel ("Masa") plt.ylabel ("Kelajuan (m / s)") plt.subplot (2, 1, 2) plt.plot (senarai_ waktu [0: -1], jumlah_jarak) plt.title ("Total Distance:" + str (bulat (total_distance [- 1], 2))) plt.xlabel ("Time") plt.ylabel ("Jarak (m)") plt.draw () plt.pause (0) hantaran
Langkah 3: Perisian Firmware Mengenai ESP32
uPyCraft_v1.1
- Anda boleh memuat turunnya dari sini: uPyCraft.
- Sambungkan papan ke PC dengan kabel USB. Buka uPyCraft_v1.1, pilih alat: "Alat> papan> esp32" dan "Alat> port> com *", klik butang bersambung di sebelah kanan.
- Sekiranya sambungan tidak berjaya, permintaan akan ditunjukkan sebagai "buka kesalahan bersiri, sila cuba lagi". Anda mesti mengemas kini firmware untuk menjanjikan sambungan dengan jayanya. Pautan muat turun firmware adalah LINK. Buka "Tools> BurnFirmware", tetapkan parameter, seperti Gambar 3, dan klik OK.
- Buka fail Python, dan klik butang "DownloadAndRun" di sebelah kanan. Program ini telah dimuat turun ke papan, Anda dapat melihatnya di menu "peranti" di sebelah kiri, seperti Gambar 4.
Firmware dan Muat turun
Anda boleh mendapatkan firmware dari sini: Firmware.
Tetapkan sambungan dengan modul kad SD dalam fail: "/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 () # Pastikan lcd baudrate yang betul. teks ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # Sesuai dengan PCB vfs = os. VfsFat (sd) os.mount (vfs, "/ SD") random.seed (len (os.listdir ("/ SD"))) cetak ("SD OK") lcd.text ('SPI OK', 0, 16)
Tetapkan sambungan dengan modul A9G dalam fail: “/ Projek_Gps-Trace-Analysis-master/workspace/test.py”
# A9G dibuka
A9G_RESET_PIN = Pin (33, Pin. OUT) A9G_RESET_PIN.value (0) # tetapkan pin ke masa rendah. Tidur (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.value (0) time.sleep (1) A9G_P.value (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G open', 0, 0)
Perintah AT untuk modul A9G
AT + GPS = 1 # 1: Hidupkan GPS, 0: Matikan GPS
AT + LOKASI = 2 #Dapatkan maklumat alamat GPS, selagi GPS dapat melihat satelit sebelum kembali, jika tidak, ia akan mengembalikan GPS TIDAK TETAP SEKARANG AT + GPSRD = 0 #Hentikan pelaporan
Sambungkan papan ke PC dengan kabel USB, dan gunakan uPyCraft untuk memuat turun semua fail dalam folder "/ Project_Gps-Trace-Analysis-master / ruang kerja"
Langkah 4: Memproses Maklumat
- Salin fail TXT dimulai dengan "jejak" dalam kad SD ke dalam folder "/ Project_Gps-Trace-Analysis-master".
- Buka fail Python dengan notepad dan ubah kodnya.
#File yang anda mahukan analisis
trace_file_name = "./trace4.txt"