#include
/*** 该工程可以在2.4.0版本esp8266库中运行,没在更高版本库中进行测试 ***/
const char *ssid = "HUAWEI-H3VBKZ";
const char *password = "13991320168";
WiFiServer server(80);
String readString = ""; //建立一个字符串对象用来接收存放来自客户的数据
//响应头
String responseHeaders =
String("") +
"HTTP/1.1 200 OK
" +
"Content-Type: text/html
" +
"Connection: close
" +
"
";
//网页
String myhtmlPage=
String("") +
"" +
"
" +""+
"
ESP8266 配置信息" +"
" function ledSwitch() {" +
" var name = document.getElementById("wifiname").value;"+
" var psw = document.getElementById("wifipwd").value;"+
" var xmlhttp;" +
" if (window.XMLHttpRequest) {" +
" xmlhttp = new XMLHttpRequest();" +
" } else {" +
" xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");" +
" }" +
" xmlhttp.onreadystatechange = function () {" +
" if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {" +
" document.getElementById("txtState").innerHTML = xmlhttp.responseText;" +
" }" +
" }," +
" xmlhttp.open("GET", "Switch"+name+psw, true);" +
" xmlhttp.send(); " +
" }" +
" " +
"" +
"
""
连接WIFI:
"+"
"+"WIFI账号: "+
"
"+"
"+"WIFI密码: "+
"
"+" 连接 "+
"
状态消息:
"+"" +
"";
bool isLedTurnOpen = false; // 记录LED状态
void setup()
{
pinMode(D4, OUTPUT);
digitalWrite(D4, HIGH); // 熄灭LED
Serial.begin(115200);
Serial.println();
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" connected");
server.begin();
Serial.printf("Web server started, open %s in a web browser
", WiFi.localIP().toString().c_str());
}
void loop()
{
WiFiClient client = server.available(); //尝试建立客户对象
if (client) //如果当前有客户可用
{
boolean currentLineIsBlank = true;
Serial.println("[Client connected]");
while (client.connected()) //如果客户端建立连接
{
if (client.available()) //等待有可读数据
{
char c = client.read(); //读取一字节数据
readString += c; //拼接数据
/************************************************/
if (c == '
' && currentLineIsBlank) //等待请求头接收完成(接收到空行)
{
//比较接收到的请求数据
if (readString.startsWith("GET / HTTP/1.1")) //如果是网页请求
{
client.print(responseHeaders); //向客户端输出网页响应
client.print(myhtmlPage); //向客户端输出网页内容
client.print("
");
}
else if (readString.startsWith("GET /Switch")) //如果是改变LED状态请求
{
if (isLedTurnOpen == false)
{
digitalWrite(D4, LOW); // 点亮LED
client.print("LED has been turn on");
isLedTurnOpen = true;
}
else
{
digitalWrite(D4, HIGH); // 熄灭LED
client.print("LED has been turn off");
isLedTurnOpen = false;
}
}
else
{
client.print("
");
}
break;
}
if (c == '
')
{
currentLineIsBlank = true; //开始新行
}
else if (c != '')
{
currentLineIsBlank = false; //正在接收某行中
}
/************************************************/
}
}
delay(1); //等待客户完成接收
client.stop(); //结束当前连接:
Serial.println("[Client disconnected]");
Serial.println(readString); //打印输出来自客户的数据
readString = "";
}
}