带联网功能的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,不知道是不是都是这个。

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注