前两天刚学,不咋懂,原理可以搜别的博主的文章,这是一个示例
cpp
#include<WiFi.h>
#include<WebServer.h>
#define ledpin 2
const char* ssid="Your ssid"; //写你们家的WiFi名称
const char* password="Your password"; //写你们家的WiFi密码
WebServer server(80); //端口号
void handleRoot()
{
String HTML="<!DOCTYPE html>\
<html>\
<head><meta charset='utf-8'></head>\
<body>\
你好,我的朋友!\
<br/>\
<!--千万不要在<script>的定义内打注释,网页控制台会报错!!!(别问我是怎么知道的,问就是用chatgpt找了一个半小时多)-->\
<!--24:创建xmlhttprequest对象-->\
<!--25:需要一个参数-->\
<!--26:建立连接,请求类别,地址(url),是否是异步请求(不刷新网页)-->\
<!--27:发送请求-->\
<script>\
var xhttp=new XMLHttpRequest();\
function ctrl(arg){\
xhttp.open('GET','/ctrl?led='+arg,true);\
xhttp.send('null');\
}\
</script>\
<!--30:script的定义-->\
<button onmousedown=\"ctrl('on')\">开灯</button> <!-- //按钮,button必须带一个参数,当鼠标按下之后执行一个方法,led灯控制字目录后/ctrl?led=后的参数,两个button中间是按钮上的字-->\
<button onmousedown=\"ctrl('off')\">关灯</button> <!-- -->\
</body>\
</html>";
server.send(200,"text/html",HTML); //返回成功码,返回类型,返回字符串
}
void ledctrl()
{
String state=server.arg("led"); //用来获取网址ctrl?led=后的内容
if(state=="on")
{
digitalWrite(ledpin,HIGH);
}
else if(state=="off")
{
digitalWrite(ledpin,LOW);
}
server.send(200,"text/html","<b>Led is "+state+"</b>."); //<b>你要加粗的文字</b>加粗字体
}
void setup()
{
// put your setup code here, to run once:
Serial.begin(921600);
pinMode(ledpin,OUTPUT);
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi连接成功");
Serial.print("WiFi IP地址:");
Serial.println(WiFi.localIP());
server.on("/",handleRoot);
server.on("/hello",[](){server.send(200,"text/html","hello");}); //秘名函数
server.onNotFound([](){server.send(200,"text/html;charset=utf-8","没有找到页面!");});
server.on("/ctrl",ledctrl); //可以带参数,网址/ctrl?led=后就是参数
server.begin();
}
void loop()
{
// put your main code here, to run repeatedly:
server.handleClient();
}