带联网功能的RFID宿舍门禁(二)-ESP8266利用arduino使用AP模式建立简单服务器
带联网功能的RFID宿舍门禁项目目录做完这个部分,觉得之前固件简直是无用功,根本没用上。
这部分涉及到了很多,可以写挺多篇的,不过单拿出来的话和别人写的没太大区别,就一起写了。
ESP8266WiFi.h库不存在也可以用这个办法解决。
成果
涉及内容
Arduino增加NodeMCU开发板。
ESP8266WiFi.h库不存在的解决办法(用NodeMCU开发板)。
Arduino下载文件慢的解决办法。
Github加速下载。
ESP8266建站。
通过WIFI连接AP模式下的ESP8266服务器。
材料
NodeMCU模块(搭载 ESP8266 CH340G串口wifi模块 与 USB转TTL串口(CH340)芯片)
数据线(卖家送的,我也不确定是什么型号,看起来像手机数据线,不是type-c与mini)
购买链接:https://m.tb.cn/h.Vztlv1P?sm=09469e(非广告,我用的是这款)
烧录平台
Arduino 1.8.13 - 开发板:NodeMCU1.0
开发板配置
在Arduino中,点击 文件-首选项,将下面网址输入附加开发板管理器网址并保存。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
点击工具-开发板-开发板管理器,搜索ESP8266,下载安装并重启。
Arduino下载相关
如果下载速度过慢,打开下面的文件夹,(AppData可能是隐藏文件夹)
C:\Users\用户名\AppData\Local\Arduino15\staging\packages
先将下载启动,查看该文件夹新增的文件(或大小变动的文件),复制文件名,到下面链接中搜索:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
找到下载连接后,用其他方式将他下载下来后,替换文件即可。
Github下载加速
可以到下面这个网址下载:
https://shrill-pond-3e81.hunsh.workers.dev/
或者导入Gitee,然后下载,但这个不太方便。
相关搜索:Github下载加速、Github Host
AP模式/建站
代码我也不会,是缝合怪代码,主要参考是这个:ESP8266+搭建迷你小网站,利用STA连接主机热点,让主机进入ESP8266网站,主机用电脑手机都行,不过和我的项目不太搭,改成了AP模式,即让主机连接ESP8266热点。作者还有几篇相关的文章,可以看一下扩展视野。
#include <ESP8266WiFi.h> // 本程序使用 ESP8266WiFi库
#include <ESP8266WebServer.h> // ESP8266WebServer库
ESP8266WebServer esp8266_server(80);// 建立ESP8266WebServer对象,对象名称为esp8266_server
// 括号中的数字是网路服务器响应http请求的端口号
// 网络服务器标准http端口号为80,因此这里使用80为端口号
#define WIFISSID "ESP8266Web" //设定ESP8266 wifi名称
#define WIFIPSSD "123456789" //设定wifi密码
void setup(void){
Serial.begin(115200); // 启动串口通讯
setAP(); // 设定AP模式,并建立热点。
//--------"启动网络服务功能"程序部分开始-------- // 此部分为程序为本示例程序重点1
esp8266_server.begin(); // 详细讲解请参见太极创客网站《零基础入门学用物联网》
esp8266_server.on("/", handleRoot); // 第3章-第2节 ESP8266-NodeMCU网络服务器-1
esp8266_server.onNotFound(handleNotFound);
//--------"启动网络服务功能"程序部分结束--------
Serial.println("HTTP esp8266_server started");// 告知用户ESP8266网络服务功能已经启动
}
void loop(void){
esp8266_server.handleClient(); // 处理http服务器访问
}
void setAP(){
WiFi.mode(WIFI_AP); // AP模式设定
WiFi.softAP(WIFISSID,WIFIPSSD); // WIFI热点建立
Serial.printf("Success!\nWIFISSID: %s \nWIFIPSSD: %s \nControlWeb: ", WIFISSID, WIFIPSSD); // 输出相关信息
Serial.println(WiFi.softAPIP()); // 输出网站地址
}
void handleRoot() { //处理网站根目录“/”的访问请求
esp8266_server.send(200, "text/plain", "ESP8266 WEB CONTROL PAGE.\n -mwhls.top"); // NodeMCU将调用此函数。
}
// 设置处理404情况的函数'handleNotFound'
void handleNotFound(){ // 当浏览器请求的网络资源无法在服务器找到时,
esp8266_server.send(404, "text/plain", "404: Not found"); // NodeMCU将调用此函数。
}
连接至ESP8266服务器
打开任意设备WIFI,连接上ESP8266热点。
打开任意串口工具,连接后按下nodeMCU上的RESET键(RST键),重启nodeMCU,记下输出信息中的ip地址。
可以使用这个sscom:https://mwhls.lanzous.com/iEFKFhdmzgd(侵权请联系)
打开ip地址即可与ESP8266服务器交互。
我这个设备是192.168.4.1,不知道是不是都是这个。
共有 0 条评论