和最基础的网页服务器不同的点
称基础网页服务器为服务1,控制引脚状态服务器为服务2。 两者区别有
- 服务2多了一个led的html页面
- 服务2的主程序中多了一个函数定义,声明以及调用,如下
void handleLEDControl();
esp8266_server.on("/LED-Control", handleLEDControl);
void handleLEDControl(){
bool ledStatus = digitalRead(LED_BUILTIN);
ledStatus == HIGH ? digitalWrite(LED_BUILTIN, LOW) : digitalWrite(LED_BUILTIN, HIGH);
esp8266_server.sendHeader("Location", "/LED.html");
esp8266_server.send(303);
}
关于多出来的部分的评论
esp8266_server.on("/LED-Control", handleLEDControl); 将程序代码和网页连接起来,表示当提交表单的时候会触发handleLEDControl 函数,于是服务器就会调用相应的函数,由于是向根目录发送请求,所以会带上一个“/” handleLEDControl() 函数 该函数会改变led的状态,然后进行页面的刷新- 函数的调用将会在
setup 函数中进行
关于表单
- 表单用来收集用户不同类型的输入
action 属性表示每次按下按钮会发送名为“led-control”的请求<input type="submit"> 表示样式为一个按键 <form action="LED-Control"><input type="submit" value="LED控制"></form>
<form action="index.html"><input type="submit" value="返回首页"></form>
led.html代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Kafen</title>
</head>
<body>
<form action="LED-Control"><input type="submit" value="LED控制"></form>
<form action="index.html"><input type="submit" value="返回首页"></form>
</body>
</html>
index.html代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Kafen</title>
</head>
<body>
<p><a href="LED.html">前往LED控制页面</a></p>
</body>
</html>
|