可攜式GPS軌跡記錄器 一、專案簡介 本專案旨在設計並製作一套可攜式GPS軌跡記錄器,利用Arduino主控板搭配NEO-6M GPS模組,將即時取得的經緯度與時間資料記錄於SD卡中,並以CSV格式儲存,方便後續資料分析與應用。整套系統以18650鋰電池供電,透過升壓模組確保運作穩定,達到無線與便攜的目標。 二、系統架構 1. 硬體組成 元件名稱 型號/規格 功能說明 主控板 Arduino UNO/Nano 控制與資料處理 GPS模組 NEO-6M 取得定位與時間資料 SD卡模組 SPI介面 資料儲存 鋰電池 18650(3.7V, 2200mAh) 提供電力 升壓模組 3.7V→5V(如MT3608) 穩定供電至5V 連接線 杜邦線 電路連接 2. 系統連接圖 [18650鋰電池] ↓ [升壓模組 (3.7V→5V)] ↓ [Arduino] ←→ [NEO-6M GPS模組] ↓ [SD卡模組] 三、電路接線說明 模組 連接到Arduino腳位 NEO-6M VCC 5V NEO-6M GND GND NEO-6M TX D4(軟體序列埠RX) NEO-6M RX D3(軟體序列埠TX) SD卡 VCC 5V SD卡 GND GND SD卡 MOSI D11 SD卡 MISO D12 SD卡 SCK D13 SD卡 CS D10 四、軟體設計 1. 使用函式庫 TinyGPS++:解析GPS NMEA資料 SD:SD卡操作 SPI:SPI通訊 SoftwareSerial:額外序列埠 2. 程式邏輯流程 初始化SD卡與GPS模組 建立CSV檔案並寫入標題行 持續讀取GPS模組資料 每當GPS位置資料更新時,解析經緯度與UTC時間 將資料以CSV格式寫入SD卡 重複步驟3~5,實現即時紀錄 3. 程式碼範例 #include #include #include #include SoftwareSerial gpsSerial(4, 3); // RX, TX TinyGPSPlus gps; const int chipSelect = 10; // SD卡CS腳位 void setup() { Serial.begin(9600); gpsSerial.begin(9600); if (!SD.begin(chipSelect)) { Serial.println("SD卡初始化失敗"); while (1); } // 建立CSV檔案並寫入標題 File dataFile = SD.open("gpslog.csv", FILE_WRITE); if (dataFile) { dataFile.println("Date,Time,Latitude,Longitude"); dataFile.close(); } } void loop() { while (gpsSerial.available() > 0) { gps.encode(gpsSerial.read()); if (gps.location.isUpdated()) { String dataString = ""; // 日期 dataString += String(gps.date.year()) + "-" + String(gps.date.month()) + "-" + String(gps.date.day()) + ","; // 時間 char timeBuffer[9]; sprintf(timeBuffer, "%02d:%02d:%02d", gps.time.hour(), gps.time.minute(), gps.time.second()); dataString += String(timeBuffer) + ","; // 經度與緯度 dataString += String(gps.location.lat(), 6) + "," + String(gps.location.lng(), 6); // 寫入SD卡 File dataFile = SD.open("gpslog.csv", FILE_WRITE); if (dataFile) { dataFile.println(dataString); dataFile.close(); } delay(1000); // 每秒記錄一次 } } } 五、成果展示 資料格式 : 檔案名稱:gpslog.csv 內容範例: Date,Time,Latitude,Longitude 2025-05-20,14:23:10,25.047800,121.531900 2025-05-20,14:23:11,25.047805,121.531905 ... 可用工具 : 直接用Excel、Google Sheets開啟分析 可將資料匯入Google地圖或其他地理資訊系統軟體,進行軌跡顯示 六、注意事項與建議 18650鋰電池需加保護板,確保安全 升壓模組應選用輸出電流足夠(建議1A以上) SD卡建議格式化為FAT32 若需更長續航可並聯多顆電池 可依需求擴充紀錄內容(如速度、海拔等) 七、未來展望 增加無線傳輸功能(如LoRa、藍牙、WiFi),實現即時上傳 加入OLED/LCD顯示即時資訊 結合移動偵測,節省儲存空間與電力 應用於戶外活動紀錄、車輛追蹤、科學實驗等多元場域 八、參考資料 TinyGPS++ Library Arduino SD Library Instructables - Arduino GPS Data Logger Maker Portal - Arduino GPS Logger 結論 : 本專案成功實現以Arduino為核心的無線GPS軌跡記錄器,具備低成本、易擴充、便攜等特點,能有效記錄移動路徑與時間資訊,並以標準CSV格式儲存,方便後續資料分析與應用。