NodeMCU數(shù)據(jù)記錄器用于在web服務(wù)器上上傳數(shù)據(jù)
你通常會在ThingSpeak和其他物聯(lián)網(wǎng)平臺上看到帶有實時圖表和表格的數(shù)據(jù)記錄web服務(wù)器。但是我們也可以創(chuàng)建我們自己的web服務(wù)器,可以實時更新數(shù)據(jù),我們以前使用不同的板創(chuàng)建了許多web服務(wù)器。在這里,我們還將使用DHT11傳感器創(chuàng)建ESP8266 Web服務(wù)器數(shù)據(jù)記錄器。在這里,溫度和濕度數(shù)據(jù)將使用AJAX在網(wǎng)頁上更新。
AJAX(異步JavaScript和XML)允許通過在后臺與服務(wù)器共享少量數(shù)據(jù)來自動更新網(wǎng)站,而無需刷新整個網(wǎng)頁。這確保了網(wǎng)頁的某些部分將被更改,而無需重新加載整個網(wǎng)站。讓我們開始吧!
組件的要求
?NodeMCU ESP8266
?DHT11傳感器
?跳線
DHT11傳感器用于測量溫度和濕度,通常用于創(chuàng)建氣象站。
線路圖
ESP8266數(shù)據(jù)記錄儀電路圖如下:
將DHT11連接到NodeMCU很容易。DHT11的VCC和GND引腳連接到NodeMCU的3.3V和GND, DHT的Data引腳連接到NodeMCU的D5 (GPIO 14)引腳。
NodeMCU ESP8266數(shù)據(jù)記錄編程
完整的代碼NodeMCU溫度記錄器可以在頁面的末尾找到。這里我們逐行解釋完整的代碼:
在直接進行編碼之前,請安裝所需的庫,ESP8266庫已預(yù)先安裝在IDE上;您只需要安裝可以從這里下載的DHT11庫。
在安裝庫之后,包括所有必需的庫。
現(xiàn)在在下一行中,輸入您的Wi-Fi名稱和密碼。
然后定義DHT傳感器的類型和傳感器連接的引腳。如果您使用的是DHT22,那么將DHT類型更改為DHT22。在我的情況下,DHT傳感器連接到NodeMCU的GPIO14 (D5)。
當我們使用NodeMCU IP地址在瀏覽器中打開網(wǎng)頁時,執(zhí)行handleRoot函數(shù)。
下一個函數(shù)是readData(),用于從DHT11傳感器讀取數(shù)據(jù)并將其發(fā)送到網(wǎng)頁。在這個循環(huán)中,NodeMCU將DHT11值存儲為兩個float變量:溫度和濕度,在此之后,它將float變量轉(zhuǎn)換為字符串,并將其數(shù)據(jù)存儲為另一個字符串變量data,并在請求時將其發(fā)送給網(wǎng)頁。
在void setup()函數(shù)中,我們初始化波特率,使用.begin()函數(shù)初始化DHT傳感器,使用server.begin()函數(shù)初始化網(wǎng)頁,然后使用Wi-Fi名稱和密碼將模塊與Wi-Fi連接。
第一個函數(shù)用于在客戶端請求URI(統(tǒng)一資源標識符)時調(diào)用‘handleRoot’函數(shù)“/”而第二個函數(shù)用于在POST請求URI “/readData”時調(diào)用‘readData’函數(shù)
void loop()函數(shù)持續(xù)偵聽來自客戶端的HTTP請求
網(wǎng)頁的HTML代碼
標簽用于告訴web瀏覽器我們正在使用哪個版本的html來編寫html代碼。這個標簽寫在頂部。這段代碼中的所有內(nèi)容都是在它之后編寫的。
在標簽之間編寫的代碼將被瀏覽器讀取。標簽用于定義網(wǎng)頁的標題、標題行和樣式。中寫入的數(shù)據(jù)是瀏覽器中選項卡的名稱。標簽用于給表格和標題行設(shè)置樣式。
標簽用于包含jQuery。jQuery是JavaScript庫。標記中的getData()函數(shù)用于從NodeMCU獲取數(shù)據(jù)并更新數(shù)據(jù)表。
XMLHttpRequest對象用于從web服務(wù)器請求數(shù)據(jù)。所有瀏覽器都有一個內(nèi)置的XMLHttpRequest對象,用于從服務(wù)器請求數(shù)據(jù)。使用XMLHttpRequest,我們可以在不重新加載頁面的情況下更新網(wǎng)頁,從服務(wù)器請求數(shù)據(jù),從服務(wù)器接收數(shù)據(jù),并可以向服務(wù)器發(fā)送數(shù)據(jù)。這里我們使用這個對象從NodeMCU獲取溫度和濕度數(shù)據(jù),并在不刷新網(wǎng)頁的情況下更新數(shù)據(jù)表。
XMLHttpRequest對象的open()和send()方法用于向服務(wù)器發(fā)送請求。http.open()的語法如下所示:
測試NodeMCU數(shù)據(jù)記錄器
最后,將DHT11傳感器與NodeMCU連接并上傳代碼。在NodeMCU上傳程序后,打開波特率為115200的串口監(jiān)視器,獲取NodeMCU的IP地址。在瀏覽器中打開它,你的網(wǎng)頁看起來像這樣:
本文編譯自iotdesignpro