ESP8266 Captive Portal 项目教程
1. 项目的目录结构及介绍
ESP8266 Captive Portal 项目的目录结构如下:
ESP8266-Captive-Portal/
├── data/
│ ├── index.html
│ ├── style.css
│ └── script.js
├── src/
│ ├── CaptivePortal.cpp
│ ├── CaptivePortal.h
│ ├── main.cpp
│ └── WiFiManager.h
├── platformio.ini
└── README.md
目录介绍
-
data/: 存放Web页面的静态文件,包括HTML、CSS和JavaScript文件。
index.html
: 主页面的HTML文件。style.css
: 页面的样式表。script.js
: 页面的JavaScript脚本。
-
src/: 存放项目的源代码文件。
CaptivePortal.cpp
和CaptivePortal.h
: 实现Captive Portal功能的主要代码。main.cpp
: 项目的入口文件。WiFiManager.h
: WiFi管理相关的头文件。
-
platformio.ini: PlatformIO的配置文件,用于项目的构建和上传。
-
README.md: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件是 src/main.cpp
。这个文件包含了项目的初始化代码和主循环。
main.cpp 主要内容
#include <ESP8266WiFi.h>
#include "CaptivePortal.h"
void setup() {
Serial.begin(115200);
CaptivePortal::start();
}
void loop() {
CaptivePortal::handleClient();
}
代码解释
#include <ESP8266WiFi.h>
: 引入ESP8266的WiFi库。#include "CaptivePortal.h"
: 引入Captive Portal的头文件。setup()
: 初始化串口通信和启动Captive Portal。loop()
: 处理客户端请求。
3. 项目的配置文件介绍
项目的配置文件是 platformio.ini
。这个文件用于配置PlatformIO的构建和上传参数。
platformio.ini 主要内容
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB0
monitor_speed = 115200
lib_deps =
ESP8266WiFi
ESP8266WebServer
DNSServer
配置解释
[env:d1_mini]
: 定义环境名称为d1_mini
。platform = espressif8266
: 指定使用ESP8266平台。board = d1_mini
: 指定使用的开发板为D1 Mini。framework = arduino
: 使用Arduino框架。upload_port = /dev/ttyUSB0
: 指定上传端口。monitor_port = /dev/ttyUSB0
: 指定监视端口。monitor_speed = 115200
: 指定监视速度。lib_deps
: 列出项目依赖的库。