代码更改WiFi账号密码后,写入ai thinker esp32-cam 板即可运行。登录调试串口输出的IP地址即可
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
const char* ssid = "iamMT";
const char* password = "meet2009";
WebServer server(80);
//Check if header is present and correct 检查收割台是否存在并正确
bool is_authentified() { //authentified 认证的
Serial.println("Enter is_authentified");
if (server.hasHeader("Cookie")) {
Serial.print("Found cookie: ");
String cookie = server.header("Cookie");
Serial.println(cookie);
if (cookie.indexOf("ESPSESSIONID=1") != -1) {
Serial.println("Authentification Successful");
return true;
}
}
Serial.println("Authentification Failed");
return false;
}
//login page, also called for disconnect 登录页面,也称为断开连接
void handleLogin() { //第一个网页显示及事件响应函数
String msg = " \t\t";String msg_ = " \t\t";
if (server.hasHeader("Cookie")) { //网页请求事件判断
Serial.print("Found cookie: ");
String cookie = server.header("Cookie");
Serial.println(cookie);
}
if (server.hasArg("DISCONNECT")) { //点击超链接判断值
Serial.println("Disconnection");
server.sendHeader("Location", "/login");//定位到登录界面
server.sendHeader("Cache-Control", "no-cache");//清空文本框
server.sendHeader("Set-Cookie", "ESPSESSIONID=0");
server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
return;
}
if(server.hasArg("SUBMIT")){ //登录按钮事件判断
if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")) {
if (server.arg("USERNAME") == "admin" && server.arg("PASSWORD") == "admin") { //server.arg("PASSWORD")获取文本框值
server.sendHeader("Location", "/"); //定位到主界面
server.sendHeader("Cache-Control", "no-cache");
server.sendHeader("Set-Cookie", "ESPSESSIONID=1");
server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
Serial.println("Log in Successful");
return;
}
msg = "Wrong username/password! try again.";
Serial.println("Log in Failed"); //调试串口显示
}
}
if(server.hasArg("SUBMIT_test")){ //异登录按钮事件判断
if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")) {
if (server.arg("USERNAME") == "admin" && server.arg("PASSWORD") == "admin") { //server.arg("PASSWORD")获取文本框值
server.sendHeader("Location", "/test"); //定位到/test界面
server.sendHeader("Cache-Control", "no-cache");
server.sendHeader("Set-Cookie", "ESPSESSIONID=1");
server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
Serial.println("Log in Successful");
return;
}
msg_ = "账号/密码错误,请重新输入!";
Serial.println("Log in Failed"); //调试串口显示
}
}
String content = "<html>\n<head>\n<meta charset='UTF-8'>\n</head>\n";
content += "<body>\n<form action='/login' method='POST'><p style = 'font-size: 32px;'>To log in, please use : admin/admin<br>\n";//第一行文本
content += "User:<input type='text' name='USERNAME' placeholder='user name' style='width: 200px; height: 50px;font-size: 32px;&