İçindekiler:
- Adım 1: Bağlantı
- 2. Adım: Bilgisayardaki Yazılım
- 3. Adım: ESP32 Hakkında Ürün Yazılımı
- Adım 4: Bilgilerin İşlenmesi
- Adım 5: Deneyelim
Video: DIY GPS Tracker --- Python Uygulaması: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
İki hafta önce bir bisiklet etkinliğine katıldım. Bitirdikten sonra rotayı ve o sırada bindiğim hızı kontrol etmek istedim. Ne yazık ki, ulaşılamadı. Şimdi bir GPS izleyici yapmak için ESP32 kullanıyorum ve bir dahaki sefere bisiklet rotamı kaydetmek için onu alacağım. GPS izci, konum ve zaman bilgilerini SD karta kaydedebilir ve bu bilgiler PC yazılımı ile işlenebilir ve mesafe ve hız tablosu çizilebilir.
Gereçler:
Donanım:
- MakePython ESP32 (Wrover ile)
- MakePython A9G
MakePython A9G kartı, MakePython için GPS/GPRS genişletme kartıdır.
- pil
- Mikro USB kablosu
Yazılım:
- piton 3
- uPyCraft_v1.1
Adım 1: Bağlantı
Pinlere göre iki kartı bağlayın. Modül, pil veya Mikro USB kablosu ile çalıştırılabilir.
2. Adım: Bilgisayardaki Yazılım
Python3:
- Buradan indirebilirsiniz: Python3. 3.8.5 sürümünü seçin, indirin ve kurun.
- Kurulum işlemi sırasında Şekil 1'deki gibi “Add Python 3.8 to PATH” seçimi kontrol edilmelidir.
- Programın kullandığı kitaplık kurulu değilse, program çalışırken soracaktır. Şekil 2'deki gibi kütüphaneleri kurmak için cmd.exe'de aşağıdaki komutu çalıştırabilirsiniz.
pip kurulum xxx // xxx kitaplık adıdır
pip kaldırma xxx // xxx kitaplık adıdır pip listesi // kurulu kitaplıkları yazdır
Kod:
- Python dosyasını buradan alabilirsiniz: Code. Python dosyası “/Project_Gps-Trace-Analysis-master/Google_trace.py” şeklindedir.
- Haritada bir rota çizin.
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[genişlik - 1], lon_list[genişlik - 1], renk='kırmızı') gmap.draw("./map-trace.html")
Hız-zaman, mesafe-zaman grafikleri çizin
plt.subplot(2, 1, 1)
plt.plot(time_list[0:-1], hız) plt.title("Ortalama Hız:" + str(ort_hız)) # plt.xlabel("Zaman") plt.ylabel("Hız(m/s)") plt.subplot(2, 1, 2) plt.plot(time_list[0:-1], toplam_mesafe) plt.title("Toplam Mesafe:" + str(yuvarlak(toplam_mesafe[- 1], 2))) plt.xlabel("Zaman") plt.ylabel("Mesafe(m)") plt.draw() plt.pause(0) pass
3. Adım: ESP32 Hakkında Ürün Yazılımı
uPyCraft_v1.1
- Buradan indirebilirsiniz: uPyCraft.
- Kartı USB kablosuyla PC'ye bağlayın. uPyCraft_v1.1'i açın, araçları seçin: "Araç > pano > esp32" ve "Araçlar > bağlantı noktası > com*", sağdaki bağlan düğmesine tıklayın.
- Bağlantı başarılı değilse, "seri hatasını açın, lütfen tekrar deneyin" istemi görünecektir. Bağlantıları başarılı bir şekilde vaat etmek için üretici yazılımını güncellemeniz gerekir. Ürün yazılımı indirme bağlantısı LINK'dir. “Tools>BurnFirmware”i açın, parametreyi Şekil 3'teki gibi ayarlayın ve Tamam'a tıklayın.
-
Python dosyasını açın ve sağdaki “DownloadAndRun” düğmesine tıklayın. Program panoya indirildi, Şekil 4 gibi sol taraftaki “cihaz” menüsünden görebilirsiniz.
Bellenim ve İndirme
Firmware'i buradan edinebilirsiniz: Firmware.
SD kart modülü ile bağlantıyı “/Project_Gps-Trace-Analysis-master/workspace/test.py” dosyasında ayarlayın
# SD başlangıç
spi = SPI(1, baud hızı=400000, polarite=1, faz=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) spi.init() # LCD'nin doğru baud hızı olduğundan emin olun. text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # PCB ile uyumlu vfs = os. VfsFat(sd) os.mount(vfs, "/SD") random.seed (len(os.listdir("/SD"))) print("SD OK") lcd.text('SPI OK', 0, 16)
A9G modülü ile bağlantıyı şu dosyada ayarlayın: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# A9G açık
A9G_RESET_PIN = Pin(33, Pin. OUT) A9G_RESET_PIN.value(0) # pini düşük time.sleep(1) olarak ayarla 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 açık', 0, 0)
A9G modülü için AT komutu
AT+GPS=1 # 1: GPS'i açın, 0: GPS'i kapatın
AT+LOCATION=2 #GPS geri dönmeden önce uyduyu görebildiği sürece GPS'in adres bilgilerini alın, aksi takdirde GPS geri dönecektir AT+GPSRD=0 #Raporlamayı durdur
Kartı USB kablosuyla PC'ye bağlayın ve “/Project_Gps-Trace-Analysis-master/workspace” klasöründeki tüm dosyaları indirmek için uPyCraft'ı kullanın
Adım 4: Bilgilerin İşlenmesi
- SD karttaki "trace" ile başlayan TXT dosyasını “/Project_Gps-Trace-Analysis-master” klasörüne kopyalayın.
- Python dosyasını not defteri ile açın ve kodu değiştirin.
#Analizini istediğiniz dosya
trace_file_name = "./trace4.txt"