สารบัญ:
- ขั้นตอนที่ 1: การเชื่อมต่อ
- ขั้นตอนที่ 2: ซอฟต์แวร์บนพีซี
- ขั้นตอนที่ 3: เฟิร์มแวร์เกี่ยวกับ ESP32
- ขั้นตอนที่ 4: การประมวลผลข้อมูล
- ขั้นตอนที่ 5: มาลองกันเถอะ
วีดีโอ: DIY GPS Tracker --- แอปพลิเคชั่น Python: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ฉันเข้าร่วมกิจกรรมปั่นจักรยานเมื่อสองสัปดาห์ก่อน เสร็จแล้วก็อยากเช็คเส้นทางและความเร็วที่ขี่ในตอนนั้น น่าเสียดายที่มันไม่ประสบความสำเร็จ ตอนนี้ฉันใช้ 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
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"