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