GPS模塊與NodeMCU ESP8266接口:在網(wǎng)頁(yè)上顯示經(jīng)緯度
掃描二維碼
隨時(shí)隨地手機(jī)看文章
NodeMCU是一個(gè)開(kāi)源物聯(lián)網(wǎng)平臺(tái),包含運(yùn)行在expressif Systems ESP8266 Wi-Fi SoC上的固件,硬件基于ESP-12模塊。NodeMCU的特點(diǎn)之一是可以使用Arduino IDE進(jìn)行簡(jiǎn)單的編程。
如果你是ESP8266模塊的新手,那么從文章開(kāi)始使用ESP8266和使用Arduino IDE編程,并通過(guò)跟隨ESP8266的其他基于物聯(lián)網(wǎng)的項(xiàng)目了解更多信息:
?使用ESP8266 NodeMCU的Facebook控制家庭自動(dòng)化
?物聯(lián)網(wǎng)無(wú)線氣象站使用Arduino, ESP8266和ThingSpeak
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè),使用Arduino UNO和ESP8266
?物聯(lián)網(wǎng)控制LED采用卡宴和ESP8266
?使用Blynk和ESP8266 (Node MCU)的物聯(lián)網(wǎng)控制LED
NodeMCU兼具ESP-8266和Arduino的優(yōu)點(diǎn)。它有足夠的I/O引腳,可以使用微型USB電纜連接到計(jì)算機(jī)。如果我們將NodeMCU與普通的ESP8266-01模塊進(jìn)行比較- ESP8266-01模塊的I/O引腳限制為2,如果沒(méi)有附加的板載,您無(wú)法將ESP8266直接連接到計(jì)算機(jī)。如果我們比較一下NodeMCU和Arduino, NodeMCU有內(nèi)置的Wi-Fi,而Arduino沒(méi)有任何內(nèi)置的互聯(lián)網(wǎng)連接硬件。因此,對(duì)于需要較少GPIO引腳并且需要連接WiFi網(wǎng)絡(luò)的應(yīng)用程序,使用NodeMCU更容易。
在這個(gè)物聯(lián)網(wǎng)項(xiàng)目中,我們將在GPS模塊上與NodeMCU ESP8266接口,并在本地web服務(wù)器上顯示GPS數(shù)據(jù)(緯度,經(jīng)度,日期和時(shí)間)。通過(guò)轉(zhuǎn)發(fā)路由器中的端口,世界上任何地方都可以訪問(wèn)該網(wǎng)頁(yè),以監(jiān)控安裝該系統(tǒng)的跟蹤車(chē)輛的位置。
組件的要求
?NodeMCU ESP8266
?GPS模塊- Ublox 6m
?跳線
配置Arduino IDE編程N(yùn)odeMCU ESP8266
這里NodeMCU是使用Arduino IDE編程的,要做到這一點(diǎn),你必須首先將NodeMCU板添加到Arduino IDE。
要做到這一點(diǎn),打開(kāi)Arduino IDE并進(jìn)入File>>Preferences
然后將彈出一個(gè)新窗口,在“附加板管理器URL”中添加以下鏈接,然后單擊“確定”。
現(xiàn)在在你的Arduino IDE去工具>>板>>板管理器
然后搜索“ESP8266”,然后通過(guò)點(diǎn)擊“安裝”按鈕安裝“ESP8266由ESP8266社區(qū)”包(我已經(jīng)安裝了板,這就是為什么安裝按鈕在禁用)
完成安裝需要幾分鐘的時(shí)間。安裝完成后,您將能夠在您的board列表中看到NodeMCU
線路圖
基于NodeMCU ESP8266的GPS跟蹤器電路圖如下:
將Ublox Neo 6m GPS模塊直接連接到NodeMCU單板,將Neo 6m的GND引腳連接到NodeMCU的GND引腳,將VCC引腳連接到3v3引腳。也連接RXD到D1和TXD到D2。
大多數(shù)其他GPS模塊需要5v電源,但Neo-6m工作在3.3v,所以我們可以直接從NodeMCU模塊為GPS模塊供電。
用Arduino IDE編程N(yùn)odeMCU,實(shí)現(xiàn)向本地服務(wù)器發(fā)送GPS數(shù)據(jù)
NodeMCU可以使用ArduinoIDE輕松編程,只需使用microrousb電纜將NodeMCU連接到計(jì)算機(jī),并在ArduinoIDE中選擇Tools>>boards>>NodeMCU 1.0 (esb - 12e Module)。
在“Tools>>端口”中選擇正確的端口。在我的例子中,活動(dòng)端口是“COM10”,但在您的計(jì)算機(jī)中可能不同。
現(xiàn)在我們準(zhǔn)備在NodeMCU中上傳程序。完整的程序在本教程的末尾給出,在這里我們解釋它的幾個(gè)重要部分。
本程序主要分為兩部分。第一部分是從GPS模塊獲取位置數(shù)據(jù),第二部分是通過(guò)WiFi發(fā)送到網(wǎng)頁(yè)。
首先通過(guò)Arduino IDE進(jìn)入Sketch下載并安裝TinyGPS庫(kù)到Arduino IDE中>>包括庫(kù)>>添加。zip庫(kù)。這個(gè)庫(kù)可以從這個(gè)鏈接下載。然后包括所有需要的庫(kù)并定義程序中的所有變量,如下所示:
要將NodeMCU連接到您的WiFi網(wǎng)絡(luò),我們需要在代碼中添加WiFi網(wǎng)絡(luò)的SSID和密碼。確保在代碼中更改SSID和WiFi密碼(這里我的SSID是“Onlilo_SP”,密碼是“ArduinoUno”)
在setup()函數(shù)中,首先將波特率設(shè)置為115200。然后使用WiFi SSID和密碼初始化WiFi連接。一旦將NodeMCU連接到WiFi網(wǎng)絡(luò),就會(huì)生成一個(gè)本地IP地址,并顯示在串口監(jiān)視器上。此IP地址將用于訪問(wèn)您的手機(jī)或筆記本電腦的GPS位置數(shù)據(jù)。
在loop()函數(shù)中,我們不斷檢查GPS數(shù)據(jù)是否可用,如果可用,我們從從GPS模塊接收的NMEA字符串中提取緯度、經(jīng)度、日期和時(shí)間。
來(lái)自GPS模塊的數(shù)據(jù)是28個(gè)字符的連續(xù)字符串,其中包含緯度,經(jīng)度,日期,時(shí)間和許多其他信息。它被稱為NMEA字符串,
TinyGPS庫(kù)內(nèi)置了從NMEA字符串中獲取所需數(shù)據(jù)的功能。因此,在下面的代碼中,我們從字符串中提取緯度、經(jīng)度、日期和時(shí)間,并分別將這些值存儲(chǔ)在變量“l(fā)at_str”、“l(fā)ng_str”、“date_str”和“time_str”中。
我們從GPS模塊得到的時(shí)間將是GMT格式。因此,首先將時(shí)間數(shù)據(jù)從長(zhǎng)字符串中分離出來(lái),然后將其轉(zhuǎn)換為本地時(shí)間格式
現(xiàn)在添加HTML代碼以在網(wǎng)頁(yè)上顯示GPS數(shù)據(jù)。因此,這里所有的HTML代碼都嵌入到一個(gè)名為“s”的變量中,然后使用client.print(s)打印該變量,將所有嵌入的HTML代碼發(fā)送到網(wǎng)頁(yè)。
在網(wǎng)頁(yè)上顯示經(jīng)度和緯度
現(xiàn)在,一旦代碼上傳到NodeMCU,打開(kāi)串行監(jiān)視器。
在串行監(jiān)視器中,您將能夠看到一些信息,如WiFi是否連接。如果它已連接,您將獲得本地IP地址,這里是192.168.1.26(這對(duì)您來(lái)說(shuō)是不同的)。記下串行監(jiān)視器上顯示的那個(gè)。如果串口顯示器顯示空白,則按下NodeMCU板上的RESET按鈕。
有時(shí)需要幾分鐘才能將GPS模塊連接到衛(wèi)星上。一旦連接上,模塊上的藍(lán)色LED將開(kāi)始閃爍。
現(xiàn)在從您的計(jì)算機(jī)打開(kāi)一個(gè)網(wǎng)頁(yè)(只需在b谷歌chrome, Firefox或任何瀏覽器中打開(kāi)一個(gè)頁(yè)面),并在地址欄中輸入我們從串行監(jiān)視器收集的IP地址,然后按ENTER?,F(xiàn)在,您將能夠看到位置,日期和時(shí)間顯示在您的計(jì)算機(jī)屏幕上,如下所示
通過(guò)轉(zhuǎn)發(fā)Wi-Fi路由器中的端口,您將能夠通過(guò)互聯(lián)網(wǎng)從世界任何地方監(jiān)控這些GPS數(shù)據(jù)。
本文編譯自iotdesignpro