ESP32 GPS跟蹤器-基于物聯(lián)網(wǎng)的車輛跟蹤系統(tǒng)
GPS是全球定位系統(tǒng)的縮寫,是一種全球性的無線電導航系統(tǒng)。為了跟蹤設備的位置,GPS跟蹤系統(tǒng)使用全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)網(wǎng)絡。該網(wǎng)絡由一系列衛(wèi)星組成,這些衛(wèi)星使用微波信號傳輸數(shù)據(jù),這些數(shù)據(jù)將被GPS接收器模塊接收。
以前,我們使用GPS與NodeMCU ESP8266建立車輛跟蹤系統(tǒng)和事故警報系統(tǒng)。在這個項目中,我們將使用ESP32構(gòu)建一個基于物聯(lián)網(wǎng)的GPS車輛跟蹤系統(tǒng),我們將在OLED顯示器以及Blynk應用程序上顯示緯度和經(jīng)度值,以便可以從世界任何地方進行監(jiān)控。
組件的要求
?ESP32
?GPS模塊
?OLED顯示模塊
?跳線
?電路試驗板
OLED顯示器
OLED顯示器是微控制器中最常見和最容易獲得的顯示器之一。該顯示器可以很容易地使用IIC或SPI通信與微控制器接口,具有良好的視角和像素密度,使其可靠地顯示小級別圖形。它兼容任何3.3V-5V微控制器,如Arduino。OLED顯示屏配備了一個強大的單芯片CMOS OLED驅(qū)動控制器- SSD1306,可處理整個RAM緩沖。SSD1306驅(qū)動程序內(nèi)置1KB的圖形顯示數(shù)據(jù)RAM (GDDRAM)。我們之前將OLED與ESP32接口。
規(guī)格:
?OLED驅(qū)動IC: SSD1306
?分辨率:128 x 64
?視角:>160°
?輸入電壓:3.3V ~ 6V
?像素顏色:藍色
?工作溫度:-30℃~ 70℃
Neo 6M GPS模塊
NEO-6M模塊的封裝尺寸為16 x 12.2 x 2.4 mm。它有6個Ublox定位引擎,提供無與倫比的性能。它是一款性能良好的GPS接收機,結(jié)構(gòu)緊湊,功耗低,內(nèi)存選項可靠。考慮到它的結(jié)構(gòu)和電力需求,它是電池供電的移動設備的理想選擇。首次定位的時間不到1秒,這使得它幾乎可以立即找到衛(wèi)星。輸出是NMEA標準的格式,可以解碼以找到位置的坐標和時間。
?電源:2.8V ~ 5V
?接口:RS232 TTL
?內(nèi)置EEPROM和外部天線
?默認波特率為9600bps
我們以前使用GPS模塊Neo 6M與NodeMCU,并在網(wǎng)頁上顯示位置坐標,查看所有基于GPS的物聯(lián)網(wǎng)項目在這里。
線路圖
ESP32 GPS NEO 6M的電路圖如下:
這里我們是接口ESP32與GPS模塊和OLED顯示器。GPS模塊的Vcc和GND引腳接ESP32的3.3V和GND, RX和TX引腳接ESP32的TX2和RX2引腳。OLED顯示模塊(SSD1306)與ESP32采用I2C模式連接。ESP32與OLED顯示器的連接如下:
配置Blynk應用程序的ESP32 GPS跟蹤器
從b谷歌Play Store下載Blynk應用程序并創(chuàng)建一個新帳戶或登錄到您現(xiàn)有的帳戶。
現(xiàn)在點擊“New Project”開始一個新項目。
現(xiàn)在給你的項目起一個名字。在選擇設備選項中選擇“ESP32 Dev Board”,在連接類型中選擇“Wi-Fi”。然后點擊“創(chuàng)建”。
在此之后,Blynk將向注冊的電子郵件id發(fā)送授權(quán)。記下認證令牌代碼。它將在程序中使用。
現(xiàn)在在下一個窗口中,單擊“+”符號來添加小部件。在Widget框中,選擇“Map”小部件。
之后,單擊MAP小部件并選擇虛擬引腳‘ V0 ’作為INPUT。
通過這最后一步,你已經(jīng)準備好使用你的應用程序了。按下“播放”按鈕,你可以將你的應用程序從編輯模式切換到播放模式,在那里你可以與硬件進行交互。
代碼的解釋
ESP32 GPS跟蹤系統(tǒng)的完整代碼在本頁末尾給出。這里我們將解釋代碼的一些重要部分。
在這個程序中,我們將使用Wire.h、TinyGPS++.h、SH1106.h和BlynkSimpleEsp32.h庫。這些資料庫可從以下連結(jié)下載:
?Wire.hTinyGPS + + . h
?SH1106.h
?BlynkSimpleEsp32.h
因此,像往常一樣,通過包含所有必需的庫來開始代碼。SH1106.h是專門為ESP模塊創(chuàng)建的。
然后定義變量來存儲Latitude和Longitude值。
在接下來的幾行中,輸入您的Wi-Fi名稱和密碼,并輸入Blynk授權(quán)密鑰。
之后,為OLED顯示器創(chuàng)建一個實例,其中包括連接顯示器的地址和引腳。
在setup()函數(shù)中,為了調(diào)試目的,以115200的波特率初始化串行監(jiān)視器,并使用begin()方法初始化OLED顯示器、GPS模塊和Blynk。
在loop()函數(shù)中,檢查是否有來自GPS模塊的傳入數(shù)據(jù)。如果數(shù)據(jù)可用,代碼將對數(shù)據(jù)進行編碼,并檢查編碼后的數(shù)據(jù)是否有效,如果數(shù)據(jù)有效,則進行進一步的計算,將NMEA數(shù)據(jù)轉(zhuǎn)換為可理解的數(shù)據(jù)。
之后,GPS數(shù)據(jù)被發(fā)送到Blynk應用程序和OLED顯示器。Blynk應用程序使用地圖小部件使用經(jīng)緯度數(shù)據(jù)來確定用戶的位置。
ESP32 GPS跟蹤系統(tǒng)的工作原理
一旦硬件和程序準備好,將GPS跟蹤程序上傳到ESP32板。這里使用Arduino IDE將ESP32 GPS NEO 6M代碼上傳到ESP32板,因此使用Micro USB電纜將ESP32連接到筆記本電腦并點擊上傳按鈕。一旦代碼上傳,OLED將顯示緯度和經(jīng)度值。它還會在地圖上的Blynk應用中顯示位置,如下所示:
本文編譯自iotdesignpro