本文將介紹如何使用一個(gè)ESP8266開(kāi)發(fā)板制作光強(qiáng)度檢測(cè)器,并將檢測(cè)結(jié)果在本地網(wǎng)頁(yè)顯示。
前言
你是否碰到過(guò)這樣的問(wèn)題,當(dāng)你外出時(shí)突然忘記了家里的燈是否還開(kāi)著,忘了關(guān)家里的燈怎么辦呢?這個(gè)項(xiàng)目將允許你通過(guò)一個(gè)每秒更新的簡(jiǎn)單網(wǎng)頁(yè),查看房間的燈是否亮著。
電路連接
首先,連接一些外部元件到ESP8266開(kāi)發(fā)板。將LDR光敏電阻通過(guò)一個(gè)10k的下拉電阻連接到3.3v。LDR光敏電阻將根據(jù)它接收到的光強(qiáng)度來(lái)改變電阻值,然后再用跳線連接10k電阻到ESP8266的ADC引腳。
電路原理圖如下:
程序設(shè)計(jì)思路
首先加載Hello World服務(wù)器的示例文件,為了讓它聲明light值并自動(dòng)刷新,文中更改了handleRoot回調(diào)函數(shù)來(lái)提供定制的html代碼。由于沒(méi)有使用SD卡,所以無(wú)法使用javascript自動(dòng)刷新這些值。慶幸的是,HTML本身提供了一種按設(shè)置的間隔時(shí)間刷新頁(yè)面的方法。只需要在《p》標(biāo)簽后面添加《meta http-equiv=“refresh” content=“1”》。記住需要在代碼中包含你的WiFi證書(shū)。
然后,通過(guò)瀏覽器訪問(wèn)ESP8266的IP地址就可以查看頁(yè)面,在示例中IP地址是192.168.0.41,在瀏覽器設(shè)置中允許網(wǎng)站自動(dòng)刷新,如果希望在不網(wǎng)絡(luò)上(例如在使用4G網(wǎng)絡(luò)的手機(jī)上)查看網(wǎng)頁(yè),需要將對(duì)應(yīng)端口轉(zhuǎn)發(fā)到ESP8266的IP地址。例如,輸入的不是192.168.0.41,端口轉(zhuǎn)發(fā)的類(lèi)型是“MY_IP:THE_PORT_I_CHOSE_TO_FORWARD”,MY_IP是你的外網(wǎng)IP地址,THE_PORT_I_CHOSE_TO_FORWARD路由器設(shè)置中設(shè)置的端口。通過(guò)端口轉(zhuǎn)發(fā),現(xiàn)在就算你不在家也可以檢查家里的燈是開(kāi)著還是關(guān)著了!
完整代碼
#include
#include
#include
#include
const char* ssid = "SSID";
const char* password = "PSSWD";
ESP8266WebServer server(80);
void handleRoot() {
String msg = "
msg += "
";msg += "
The light level is: ";
msg += String(analogRead(A0))+"
";msg += "";
msg += "";
server.send(200, "text/html", msg);
}
void handleNotFound(){
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET)?"GET":"POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i=0; i
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void setup(void){
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient();
}
-
檢測(cè)器
+關(guān)注
關(guān)注
1文章
882瀏覽量
48270 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5389瀏覽量
100890 -
ESP8266
+關(guān)注
關(guān)注
50文章
963瀏覽量
46518
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
NodeMCU基于ESP8266的一款wifi開(kāi)發(fā)板
ESP8266 Wi-Fi到底傳多遠(yuǎn)_esp8266 wifi信號(hào)強(qiáng)度測(cè)距
ESP8266-DevKitC開(kāi)發(fā)板的入門(mén)指南資料免費(fèi)下載

ESP8266開(kāi)發(fā)板的原理圖和PCB圖免費(fèi)下載

ESP8266開(kāi)發(fā)板源代碼和固件資料合集免費(fèi)下載

ESP8266開(kāi)發(fā)板的電路和PCB原理圖免費(fèi)下載

ESP8266和Node MCU掃盲與開(kāi)發(fā)入門(mén)

NodeMCU-ESP8266開(kāi)發(fā)板搭建Arduino IDE開(kāi)發(fā)環(huán)境

MacOS上ESP8266開(kāi)發(fā)板刷microPython教程

esp筆記(2)使用Arduino IDE 開(kāi)發(fā) esp8266

配置esp8266開(kāi)發(fā)板的Arduino開(kāi)發(fā)環(huán)境

用Arduino和esp8266檢測(cè)WIFI信號(hào)強(qiáng)度

開(kāi)發(fā)板ESP8266開(kāi)源分享

nodemcu和esp8266是什么關(guān)系?

評(píng)論