Ara que ja hem fet els nostres primers programes, que si comencem a jugar amb el Wifi?
La idea d'aquesta activitat és fer que:
El ESP32 faci de punt d'accés wifi on ens podrem connectar amb el mòbil.
El ESP32 també faci de servidor de pàgina web! Per veure una web des del mòbil!
Sembla molt, a què sí? Però és molt fàcil si pensem amb el codi com si fossin blocs!
#include <WiFi.h>
#include <WebServer.h>
//Variables del WIFI i del servidor web
const char *ssid = "Wifi-ESP32-GRUPXX"; //Configurar
WebServer server(80);
//Funcions Servidor Web
void handleRoot() {
char temp[800];
int sec = millis() / 1000;
int min = sec / 60;
int hr = min / 60;
snprintf(temp, 800,
"<html>\
<head>\
<meta http-equiv='refresh' content='1'/>\
<title>ESP32 Demo</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h1>Hola desde ESP32 del GRUP XX!</h1>\
<p>Uptime: %02d:%02d:%02d</p>\
</body>\
</html>",
hr, min % 60, sec % 60
);
server.send(200, "text/html", temp);
}
void handleNotFound() {
String message = "Archivo no encontrado\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void handleInline(){
server.send(200, "text/plain", "Usted a accedido al recurso ``inline''");
}
//Final funcions Servidor Web
//Inicialitzem port sèrie
Serial.begin(115200);
while(!Serial);
Serial.println();
//Inici configuració WIFI i Servidor
Serial.println("Configurando punto de acceso...");
WiFi.softAP(ssid);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.on("/", handleRoot);
server.on("/inline", handleInline);
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
//Final configuració WIFI i servidor
//Comprovem i gestionem les respostes del WIFI
server.handleClient();