WAVEGO-WEB
来自Waveshare Wiki
WEB端的简单控制
简介
- WAVEGO驱动板ESP32上带有WiF模块,通过调用库<WiFi.h>即可打开驱动板的WiFi,ESP32的WiFi有两种模式,AP模式和STA模式。AP模式为创建一个无线网络的模式;STA模式为连接到已有WiFi的模式。
- webserver为网页服务器,是发送和接受信息,处理信息并存储信息的地方,服务器通过超文本传输协议(HTTP)的协议与用户通信。调用库<webserver.h>可以创建远程控制WAVEGO的网页控制端。
- 本章主要介绍如何在ESP32上开启WiFi并创建连接web控制端远程控制WAVEGO。
代码
#include "WiFi.h" #include "WebServer.h" #include "index.h" //引入依赖库 const char* ssid = "Waveshare-Robot"; const char* password = "12345678"; //机器狗开启热点 IPAddress IP_ADDRESS; //引入变量IP地址 const int buzzerPin = 21; //定义IO引脚 WebServer server(80); //定义对象server void handleRoot(){ server.send(200, "text/html", INDEX_HTML); //将写好的HTML页面发送到端口80 } void setAP(){ WiFi.softAP(ssid, password); //创建热点 IPAddress myIP = WiFi.softAPIP(); //读取IP地址 IP_ADDRESS = myIP; Serial.print("AP IP address: "); Serial.println(myIP); //打印IP地址 } void buzzerON(){ digitalWrite(buzzerPin,LOW); //拉低蜂鸣器电平,蜂鸣器响起 server.send(200, "text/html", INDEX_HTML); } void buzzerOFF(){ digitalWrite(buzzerPin,HIGH); //拉高蜂鸣器电平,蜂鸣器关闭 server.send(200, "text/html", INDEX_HTML); } void setup(){ digitalWrite(buzzerPin,HIGH); //将蜂鸣器初始状态设置为关闭 Serial.begin(115200); //打开串口,传输波特率为115200 pinMode(buzzerPin, OUTPUT); //设置蜂鸣器引脚为输出模式 setAP(); //开启热点并在串口打印IP server.on("/", handleRoot); //创建网页 server.on("/on",buzzerON); //检测到/on时蜂鸣器响起 server.on("/off",buzzerOFF); //检测到/off时蜂鸣器关闭 server.begin(); //启动服务器 } void loop(){ server.handleClient(); //检查是否有设备向服务器发出请求 delay(10); }
代码解析
-
const char* ssid = "Waveshare-Robot"; const char* password = "12345678";
设置WiFi名称和密码,const表示恒不变量,ssid和password为指针变量。 WebServer server(80);
从WebServer类中定义了一个名为server的对象,使用server对象,就可以在端口80上创建网页了。server.send(200, "text/html", INDEX_HTML);
发送写好的INDEX_HTML到端口80上创建网页,send函数的三个参数分别是响应状态码,
;响应内容类型,此处类型为html的文本;响应内容。WiFi.softAP(ssid,password);
创建AP模式的WiFi。WiFi.softAPIP();
创建WiFi后,调用这个函数就能够获得WiFi的IP地址。digitalWrite(buzzerPin,LOW); digitalWrite(buzzerPin,HIGH);
控制蜂鸣器的IO口的电平高低达到控制蜂鸣器的效果。server.on("/",handleRoot); server.on("/on",buzzerON); server.on("/off",buzzerOFF);
server.on(uri,uri_handler);
其中uri为标识符,http识别到标识符后,调用另一个参数回调函数,从而达到网页按键控制WAVEGO的效果。
server.begin();
开启网页服务器。server.handleClient();
检查有没有设备通过网络向ESP32网络服务器发送请求,每一次调用这个函数,网络服务器都会检查一下是否有设备发送HTTP请求,因此此函数最好放在loop函数里。
总结
通过本章的学习,你可以学会如何运用WiFi库以及webserver库建立一个网页控制端。