esp8266wifi给服务器发消息,WiFi-ESP8266入门http(1)-建立服务器,直接发送网

#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 = "";

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值