ESP32 + GPS 模組 +TinyGPS

更新於 發佈於 閱讀時間約 4 分鐘

使用Arduino IDE 編譯

GPS模組讀取的為複雜的NMEA 資料,因此使用Tiny GPS 函數庫可以很方便的直接將經緯度,時間,速度 資料讀取出來。

本文是參考 https://github.com/mikalhart/TinyGPSPlus 官方資料庫範例

先安裝TinyGPSPlus-ESP32 library

raw-image


以下是程式碼

#include <TinyGPSPlus.h>

TinyGPSPlus gps;

void setup() {

Serial.begin(115200);

Serial2.begin(9600);

}


void loop()

{

while(Serial2.available()>0)

if(gps.encode(Serial2.read()))

displayInfo();

if (millis() > 5000 && gps.charsProcessed() < 10)

{

Serial.println(F("No GPS detected: check wiring."));

while(true);

}

}


void displayInfo()

{

Serial.print(F("Location: "));

if(gps.location.isValid())

{

Serial.print(gps.location.lat(), 6);

Serial.print(F(","));

Serial.print(gps.location.lng(), 6);

}

else

{

Serial.print(F("INVALID"));

}

Serial.print(F(" Date/Time: "));

if(gps.date.isValid() && gps.time.isValid() )

{

Serial.print(gps.date.year());

Serial.print(F("/"));

Serial.print(gps.date.month());

Serial.print(F("/"));

Serial.print(gps.date.day());

Serial.print(F(" "));

if (gps.time.hour() <10) Serial.print(F("0"));

Serial.print(gps.time.hour());

Serial.print(F(":"));

if (gps.time.minute()<10) Serial.print(F("0"));

Serial.print(gps.time.minute());

Serial.print(F(":"));

if(gps.time.second() <10) Serial.print(F("0"));

Serial.print(gps.time.second());

}

else

{

Serial.print(F("INVALID"));

}

Serial.print(F(" Speed: "));

if (gps.speed.isValid())

{

Serial.print(gps.speed.kmph());

Serial.print(F("km"));

}

else

{

Serial.print(F("INVALID"));

}

Serial.println();

}

這樣從序列阜就可以看到經緯度,時間,速度被讀取出來,不用去閱讀$GNRMC、 $GPGSV等GPS 資料。時間是UTC時間,台灣要在加8小時。另外如果是用Arduino板子接GPS 此程式不適用,因讀取GPS 資料串的方式不同。

avatar-img
3會員
26內容數
寫程式的筆記,把一些自學寫過的程式放上來
留言
avatar-img
留言分享你的想法!

































































程式_筆記 的其他內容
ESP32 連接 GPS模組 讀取gps 模組資料
本文來介紹(紀錄)如何用python 寫出目前時間
字典中的候選人居住地排列沒有按照字母排,且有重複,想印出候選人居住地並依字母順序排列
簡單介紹 如何在list中放入dictionary
ESP32 連接 GPS模組 讀取gps 模組資料
本文來介紹(紀錄)如何用python 寫出目前時間
字典中的候選人居住地排列沒有按照字母排,且有重複,想印出候選人居住地並依字母順序排列
簡單介紹 如何在list中放入dictionary
你可能也想看
Google News 追蹤
場外的人不知情,走下樓來看見他坐在那裡發呆,給予陪伴時,沈霜降好似真的將他看成活生生般擁有金城武那樣的奶油容貌,眉目深邃如畫,正在年輕努力地於鏡頭裡出演,做一件要從時序裡嚴肅推行的雜務,儘管再稀鬆平常不過。 但其實又不像金城武,他只是沈默時像個電影巨星。 她手墊著下巴,心底如實萌生退意。
Thumbnail
Tree View 是一種適合於建立父子組件關係的結構,能夠展示多層級的數據,特別適合遞回渲染。這個組件允許用戶雙擊項目將其轉換為文件夾,並通過 TreeItem 組件遞歸渲染子項目。
Thumbnail
本文介紹了SonicLight Guardian產品開發過程,涵蓋現代協作工具Google雲端、ChatGPT和Gamma AI的應用,透過這些工具提升產品開發效率與創造力。強調即時備份與追蹤修改的重要性,以及如何利用POE平臺和GPT模型進行程式碼生成和簡報製作,讓開發團隊能夠專注於各自的任務。
追尋未知,追尋彼方。
Thumbnail
這篇文章介紹瞭如何利用單晶片來控制不同功能模組的應用,並分享了親手體驗的影片和遇到的卡關。文章強調了需要具備基礎程式語言撰寫的邏輯,以及解決卡關時需要個人調整程式碼的順序。
Thumbnail
作為〈Esperanto〉的續作,此作加強了雙方對話的空間,在這空間進行情感的脈絡梳理與抉擇,對對方保持希望也是對自己保持希望。 詩篇:〈Esperantoj〉 由 Tingku Tjarungan 撰寫收錄於《吸血鬼的情調》
場外的人不知情,走下樓來看見他坐在那裡發呆,給予陪伴時,沈霜降好似真的將他看成活生生般擁有金城武那樣的奶油容貌,眉目深邃如畫,正在年輕努力地於鏡頭裡出演,做一件要從時序裡嚴肅推行的雜務,儘管再稀鬆平常不過。 但其實又不像金城武,他只是沈默時像個電影巨星。 她手墊著下巴,心底如實萌生退意。
Thumbnail
Tree View 是一種適合於建立父子組件關係的結構,能夠展示多層級的數據,特別適合遞回渲染。這個組件允許用戶雙擊項目將其轉換為文件夾,並通過 TreeItem 組件遞歸渲染子項目。
Thumbnail
本文介紹了SonicLight Guardian產品開發過程,涵蓋現代協作工具Google雲端、ChatGPT和Gamma AI的應用,透過這些工具提升產品開發效率與創造力。強調即時備份與追蹤修改的重要性,以及如何利用POE平臺和GPT模型進行程式碼生成和簡報製作,讓開發團隊能夠專注於各自的任務。
追尋未知,追尋彼方。
Thumbnail
這篇文章介紹瞭如何利用單晶片來控制不同功能模組的應用,並分享了親手體驗的影片和遇到的卡關。文章強調了需要具備基礎程式語言撰寫的邏輯,以及解決卡關時需要個人調整程式碼的順序。
Thumbnail
作為〈Esperanto〉的續作,此作加強了雙方對話的空間,在這空間進行情感的脈絡梳理與抉擇,對對方保持希望也是對自己保持希望。 詩篇:〈Esperantoj〉 由 Tingku Tjarungan 撰寫收錄於《吸血鬼的情調》