ESP8266实现的web页面开门

实现思路

为什么直接使用esp8266

esp8266是一种WiFi模块,原来可以同过AT指令建立TCP连接进行远程操作。但是这样导致需要另外的51或者32单片机进行IO控制,esp8266本身也是一块单片机,直接使用esp8266的IO口无疑是方便很多了。

esp8266的实现

注册WiFi连接事件,在WiFi连接是获取客户端的mac地址,将WiFi的连接数目设置为一,防止mac被新的mac覆盖,定义一个常量为你允许能开门的mac地址用户。

代码实现

WIFI设置

WiFi.mode(WIFI_AP);//设置为AP模式
WiFi.softAPConfig(IP,IP,IPAddress(255,255,255,0));
WiFi.softAP(ssid,password,1,0,1);//配置wifi名字和密码设置信道为1,不隐藏SSID,连接数目为1

WIF连接事件

WiFi.onSoftAPModeStationConnected(&onStationConnected);
void onStationConnected(const WiFiEventSoftAPModeStationConnected& evt) {

Mac=macToString(evt.mac);//获取连接的mac地址
}

域名设置

dnsserver.setTTL(300);//设置超时
dnsserver.setErrorReplyCode(DNSReplyCode::ServerFailure);
dnsserver.start(DNS_Port,“www.sixgod.com”,IP);//设置域名IP为esp8266的IP地址

web服务器

webserver.on("/3220",//设置webrequest请求后处理事件
{
if(check_root())//判断是否为允许用户
{
setopen();
webserver.send(200,“text/html”,html);//发送html文件给客户端
//执行开门指令
myservo.write(90);
delay(1500);
myservo.write(0);
}
else
{
//返回404
webserver.send(404,“text/plain”,“404”);
}
});
webserver.begin();//开启服务器`

发布了2 篇原创文章 · 获赞 1 · 访问量 63

猜你喜欢

转载自blog.csdn.net/qq_44690417/article/details/104788933