สารบัญ:

DIY GPS Tracker --- แอปพลิเคชั่น Python: 5 ขั้นตอน (พร้อมรูปภาพ)
DIY GPS Tracker --- แอปพลิเคชั่น Python: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY GPS Tracker --- แอปพลิเคชั่น Python: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY GPS Tracker --- แอปพลิเคชั่น Python: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ดึงข้อมูลบน Website (อัตโนมัติ) แสดงผล Real Time ด้วย Python | 2022 2024, กันยายน
Anonim
DIY GPS Tracker --- แอปพลิเคชั่น Python
DIY GPS Tracker --- แอปพลิเคชั่น Python

ฉันเข้าร่วมกิจกรรมปั่นจักรยานเมื่อสองสัปดาห์ก่อน เสร็จแล้วก็อยากเช็คเส้นทางและความเร็วที่ขี่ในตอนนั้น น่าเสียดายที่มันไม่ประสบความสำเร็จ ตอนนี้ฉันใช้ ESP32 เพื่อสร้างตัวติดตาม GPS และฉันจะนำไปใช้เพื่อบันทึกเส้นทางการปั่นจักรยานของฉันในครั้งต่อไป ตัวติดตาม GPS สามารถบันทึกข้อมูลตำแหน่งและเวลาลงในการ์ด SD และข้อมูลนี้สามารถประมวลผลและวาดแผนภูมิระยะทางและความเร็วด้วยซอฟต์แวร์พีซี

เสบียง:

ฮาร์ดแวร์:

  • MakePython ESP32 (พร้อม Wrover)
  • MakePython A9G

บอร์ด MakePython A9G เป็นบอร์ดขยาย GPS/GPRS สำหรับ MakePython

  • แบตเตอรี่
  • สายไมโคร USB

ซอฟต์แวร์:

  • Python3
  • uPyCraft_v1.1

ขั้นตอนที่ 1: การเชื่อมต่อ

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

เชื่อมต่อสองบอร์ดตามหมุด โมดูลสามารถขับเคลื่อนด้วยแบตเตอรี่หรือสาย Micro USB

ขั้นตอนที่ 2: ซอฟต์แวร์บนพีซี

ซอฟต์แวร์บนพีซี
ซอฟต์แวร์บนพีซี
ซอฟต์แวร์บนพีซี
ซอฟต์แวร์บนพีซี

Python3:

  • คุณสามารถดาวน์โหลดได้จากที่นี่: Python3 เลือกเวอร์ชัน 3.8.5 ดาวน์โหลดและติดตั้ง
  • ต้องตรวจสอบการเลือก “Add Python 3.8 to PATH” ระหว่างขั้นตอนการติดตั้ง ดังรูปที่ 1
  • หากไม่ได้ติดตั้งไลบรารีที่ใช้โดยโปรแกรม โปรแกรมจะแจ้งเมื่อทำงาน คุณสามารถเรียกใช้คำสั่งต่อไปนี้ใน cmd.exe เพื่อติดตั้งไลบรารี ดังรูปที่ 2

pip install xxx // xxx คือชื่อไลบรารี

pip ถอนการติดตั้ง xxx // xxx เป็นชื่อไลบรารี รายการ pip // พิมพ์ไลบรารีที่ติดตั้งไว้

รหัส:

  • คุณสามารถรับไฟล์ python ได้จากที่นี่: Code ไฟล์หลามคือ “/Project_Gps-Trace-Analysis-master/Google_trace.py”
  • วาดเส้นทางบนแผนที่

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[ความกว้าง - 1], lon_list[ความกว้าง - 1], color='red') gmap.draw("./map-trace.html")

วาดกราฟความเร็วเทียบกับเวลา ระยะทางเทียบกับเวลา

plt.subplot(2, 1, 1)

plt.plot(time_list[0:-1], speed) plt.title("ความเร็วเฉลี่ย:" + 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("Time") plt.ylabel("Distance(m)") plt.draw() plt.pause(0) ผ่าน

ขั้นตอนที่ 3: เฟิร์มแวร์เกี่ยวกับ ESP32

เฟิร์มแวร์ เกี่ยวกับ ESP32
เฟิร์มแวร์ เกี่ยวกับ ESP32
เฟิร์มแวร์ เกี่ยวกับ ESP32
เฟิร์มแวร์ เกี่ยวกับ ESP32

uPyCraft_v1.1

  • คุณสามารถดาวน์โหลดได้จากที่นี่: uPyCraft
  • เชื่อมต่อบอร์ดกับพีซีด้วยสาย USB เปิด uPyCraft_v1.1 เลือกเครื่องมือ:” เครื่องมือ > บอร์ด > esp32” และ “เครื่องมือ > พอร์ต > com*” คลิกปุ่มเชื่อมต่อทางด้านขวา
  • หากการเชื่อมต่อไม่สำเร็จ ระบบจะแสดงข้อความว่า "เปิดข้อผิดพลาดซีเรียล โปรดลองอีกครั้ง" คุณต้องอัปเดตเฟิร์มแวร์เพื่อให้สัญญาการเชื่อมต่อสำเร็จ ลิงค์ดาวน์โหลดเฟิร์มแวร์คือ LINK เปิด "เครื่องมือ>เบิร์นเฟิร์มแวร์" ตั้งค่าพารามิเตอร์ดังรูปที่ 3 แล้วคลิกตกลง
  • เปิดไฟล์ Python แล้วคลิกปุ่ม "DownloadAndRun" ทางด้านขวา ดาวน์โหลดโปรแกรมไปที่บอร์ดแล้ว คุณสามารถดูได้ในเมนู "อุปกรณ์" ทางด้านซ้าย ดังรูปที่ 4

เฟิร์มแวร์และดาวน์โหลด

คุณสามารถรับเฟิร์มแวร์ได้จากที่นี่: เฟิร์มแวร์

ตั้งค่าการเชื่อมต่อกับโมดูลการ์ด SD ในไฟล์: “/Project_Gps-Trace-Analysis-master/workspace/test.py”

# SD เริ่มต้น

spi = SPI(1, baudrate=400000, polarity=1, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) spi.init() # ตรวจดูให้แน่ใจว่ามี Baudrate LCD ที่ถูกต้อง text('SPI OK', 0, 8) sd = sdcard. SDCard(spi, Pin(32)) # Compatible with PCB vfs = os. VfsFat(sd) os.mount(vfs, "/SD") random.seed (len(os.listdir("/SD"))) พิมพ์ ("SD OK") lcd.text ('SPI OK', 0, 16)

ตั้งค่าการเชื่อมต่อกับโมดูล A9G ในไฟล์: “/Project_Gps-Trace-Analysis-master/workspace/test.py”

# A9G เปิด

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 เปิด', 0, 0)

คำสั่ง AT สำหรับโมดูล A9G

AT+GPS=1 # 1: เปิด GPS, 0: ปิด GPS

AT+LOCATION=2 #รับข้อมูลที่อยู่ของ GPS ตราบใดที่ GPS สามารถเห็นดาวเทียมก่อนกลับ มิฉะนั้น GPS จะส่งคืน ไม่แก้ไขตอนนี้ AT+GPSRD=0 #หยุดการรายงาน

เชื่อมต่อบอร์ดกับพีซีด้วยสาย USB และใช้ uPyCraft เพื่อดาวน์โหลดไฟล์ทั้งหมดในโฟลเดอร์ “/Project_Gps-Trace-Analysis-master/workspace”

ขั้นตอนที่ 4: การประมวลผลข้อมูล

การประมวลผลข้อมูล
การประมวลผลข้อมูล
  • คัดลอกไฟล์ TXT ที่ขึ้นต้นด้วย "trace" ในการ์ด SD ลงในโฟลเดอร์ “/Project_Gps-Trace-Analysis-master”
  • เปิดไฟล์ Python ด้วยแผ่นจดบันทึกและเปลี่ยนรหัส

#ไฟล์ที่คุณต้องการวิเคราะห์

trace_file_name = "./trace4.txt"

ใช้บรรทัดคำสั่งเพื่อเรียกใช้ไฟล์ Python คุณจะได้ตัวเลขของความเร็วและระยะทางดังรูปที่ 5

ขั้นตอนที่ 5: มาลองกันเถอะ