简单实现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终端进行实时互联,当然也可以用其他的,总之就是:起飞