esp8266建立的网页内输入框判断输入值是否为123,点击页面内按钮后如果是就向ESP8266返回1,并将传输的信息在串口打印
时间: 2024-03-24 08:40:23 浏览: 103
要实现这个功能,可以修改ESP8266的web服务器代码,添加一个表单输入框和一个按钮。当用户输入值并点击按钮时,ESP8266将判断输入值是否为123,如果是则向网页发送值为1的响应,并将传输的信息打印到串口上。
以下是一个示例代码:
```c++
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
String data;
void handleRoot() {
String html = "<form method='get' action='/submit'>String: <input type='text' name='string'><br><input type='submit' value='Submit'></form>";
server.send(200, "text/html", html);
}
void handleSubmit() {
data = server.arg("string");
Serial.println("Data received: " + data);
if (data == "123") {
server.send(200, "text/plain", "1");
} else {
server.send(200, "text/plain", "0");
}
}
void setup() {
Serial.begin(9600);
WiFi.begin("SSID", "password");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
server.on("/", handleRoot);
server.on("/submit", handleSubmit);
server.begin();
}
void loop() {
server.handleClient();
}
```
在这个例子中,ESP8266启动一个web服务器,监听端口80。当用户访问ESP8266的IP地址时,服务器将调用handleRoot()函数,向用户显示一个表单。当用户提交表单时,服务器将调用handleSubmit()函数,将输入的字符串保存到data变量中,并判断输入值是否为123。如果是,则向用户发送值为1的响应;否则,发送值为0的响应。同时,收到的数据也会打印到串口上,方便调试和查看数据传输情况。
需要注意的是,在这个例子中,ESP8266的串口波特率为9600,需要在串口监视器中将波特率设置为相同的值才能正确显示打印信息。
阅读全文