简单实现Web控制ESP32,附入门最快的方式
先看效果
typecho的markdown用不了html标签,只能放个直链了
视频直链
那时
很早以前就想玩这种东西了,那时候还没有5G,现在……我来了!
入门最快的方法
要问怎样入门最快?直接找好兄弟!
我:
然后我就得到了:需要什么(硬件)、用什么(软件)……
再然后:给链接!
基本入门,达成。
硬件、环境
硬件:
- ESP32开发板一块 cp2102
- 数据线一根,能传输数据的。
- 其他硬件还没到,需要什么得看想做什么
软件:
- VSCode
- VSCode插件:PlatformIO IDE
PlatformIO IDE
安装好后新建项目,Board选择DOIT ESP32 DEVKIT V1
,然后Aruino的库就自动安装好了
(原本我用的AruinoIDE,各种错误各种坑,得亏好兄弟了)
ESP32程序编写
platformio.ini 加一个配置项 monitor_speed = 115200
开发是使用的C++
引入头文件:
#include
#include
#include
连接WiFi我就不描述了。
再创建一个WebServer对象:
WebServer server(80);
注册uri,并启动Web服务器:
//客户端访问回调函数
void indexHandler()
{
server.send(200, "text/html", "index");
}
//客户端访问回调函数
void testHandler(){
server.send(200, "text/html", "test seccess");
Serial.print("test Controller | Time:");
Serial.println(millis());
}
//注册URI
server.on("/", indexHandler);
server.on("/test", testHandler);
//启动WebServer
server.begin();
loop函数中处理请求:
server.handleClient();
ESP32 完整代码
#include
#include
#include
// #include
const char *ssid = "wifi";
const char *password = "wifi";
WebServer server(80);
String indexHtml = String("") + "" +
"" +
" " +
" " +
" ESP32 WebController " +
" " +
" " +
" Web Controller
" +
" " +
" " +
" " +
"";
void indexHandler()
{
server.send(200, "text/html", indexHtml);
}
void testHandler()
{
server.send(200, "text/html", "test seccess");
Serial.print("test Controller | Time:");
Serial.println(millis());
}
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(2000);
Serial.println(WiFi.status());
Serial.println("Connecting to WiFi..");
}
Serial.println(WiFi.status());
Serial.println("Connected.");
Serial.println(WiFi.localIP().toString());
server.on("/", indexHandler);
server.on("/test", testHandler);
server.begin();
}
void loop()
{
// put your main code here, to run repeatedly:
server.handleClient();
}
Web页面
主要就是使用了个原生Ajax向esp32程序注册的URI发出请求,再由esp32程序的请求回调函数进行处理
完整代码
ESP32 WebController
Web Controller
万丈高楼平地起
这是第一步,可以说是很简单了,但这又是最重要的一环。
之后可以使用websocket与云服务器+控制端+esp终端进行实时互联,当然也可以用其他的,总之就是:起飞