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