En aquest cas tindrem el nostre microcontrolador actuant com un punt d'accés a la xarxa. Qualsevol dispositiu Wi-Fi veurà el nostre microcontrolador a la llista de xarxes Wi-Fi disponibles i, si sap la contrasenya, s'hi podrà connectar.Un cop connectat al punt d'accés, l'usuari podrà posar l'adreça IP corresponent a la placa i rebrà una pàgina web amb la que podrà encendre i apagar un LED connectat a la pota 15, tal com mostra la figura següent:

La pàgina que veurà l'usuari tindrà el següent contingut (vegeu les etiquetes del llenguatge html).
<!DOCTYPE HTML> <meta charset='UTF-8'> <html> <h1>El LED està apagat</h1> <p></p> <button type='button' onClick=location.href='/?LED=1'>Encén</button> <p></p> <button type='button' onClick=location.href='/?LED=0'>Apaga</button> </html>
Que ens donarà una pàgina similar a aquesta:

El programa configura el punt d'accés i espera que algun usuari s'hi connecti. Quan ho fa li envia la pàgina html en la que l'estat del LED es personalitza segons com estigui en aquell moment. Quan es prem un botó es torna a carregar la pàgina afegint el paràmetre corresponent. A continuació hi ha les tres versions possibles de l'adreça: consulta, encendre i apagar (vegeu les comandes http). Podeu consultar també les funcions de la biblioteca ESP8266WiFi que fem servir.
192.168.4.1/ 192.168.4.1/?LED=0 192.168.4.1/?LED=1
El programa que fem servir per provar-ho és el següent:
// Exemple basat en un tutorial de Dani No www.esploradores.com #include <ESP8266WiFi.h> // Carreguem la biblioteca ESP8266WiFi #define LED 15 // pota on hem connectat el LED
const char idXarxa[] = "acces-ESP8266"; // Nom del punt d'accés
const char contrasenya[] = "etseib00"; // Contrasenya de connexió
bool estat = LOW; // Variable que recorda l'estat del LED
WiFiServer server(80); // Creem un objecte de comunicació amb el port 80
// El port 80 és el de defecte per a http
void setup() { // Inicialització
Serial.begin(9600); // Monitor sèrie
pinMode(LED, OUTPUT); // La pota del LED és sortida
digitalWrite(LED, LOW); // Comencem amb el LED apagat
server.begin(); // Posem en marxa el servidor
WiFi.mode(WIFI_AP); // El Wi-Fi funcionarà com a punt d'accés
WiFi.softAP(idXarxa, contrasenya); // Configura el punt d'accés
Serial.print("Adreça MAC del servidor: ");
Serial.println(WiFi.softAPmacAddress());
Serial.print("Adreça IP del servidor: ");
Serial.println(WiFi.softAPIP());
}
void loop() { // Programa que es repeteix indefinidament
WiFiClient client = server.available(); // Obrim un client per al servidor
if (!client) { // Mirem si està disponible
return; // Si no ho està, torna a començar
}
// Connexió del client
Serial.println("Nou client");
while(!client.available()){
delay(1); // Esperem tenir client
}
Serial.print("Clients connectats: ");
Serial.println(WiFi.softAPgetStationNum());
String peticio = client.readString();
Serial.print("Petició: ");
Serial.println(peticio); // Quina petició ha fet el client?
client.flush();
// Petició del client
if (peticio.indexOf("LED=1") != -1) { // Si no ho troba torna -1
estat = HIGH; // Si ho troba encendrem el LED
}
if (peticio.indexOf("LED=0") != -1){
estat = LOW; // Si ho troba apagarem el LED
}
digitalWrite(LED, estat); // Enviem el nou estat al LED
// Resposta al client
client.println("HTTP/1.1 200 OK");
client.println(); // Imprescindible línia en blanc
client.println("<!DOCTYPE HTML>");
client.println("<meta charset='UTF-8'>");
client.println("<html>");
// En el títol l'estat del LED
client.print("<h1>El LED està ");
if(estat == HIGH) {
client.print("encès");
} else {
client.print("apagat");
}
client.println("</h1>");
// Botons per canviar l'estat del LED
client.println("<p></p>");
client.println("<button type='button' onClick=location.href='/?LED=1'>Encén</button>");
client.println("<p></p>");
client.println("<button type='button' onClick=location.href='/?LED=0'>Apaga</button>");
client.println("</html>");
delay(1);
Serial.println("Fi de la petició");
}
Per provar-ho, podem agafar un dispositiu mòbil i cercar les xarxes Wi-Fi. Ens hem de connectar a la xarxa acces-ESP8266. Probablement ens avisarà que la xarxa no ens dóna connexió a internet. Si fem servir habitualment el Wi-Fi pot passar que es torni a connectar a la nostra xarxa habitual (i, per tant, no ens poguem connectar al microcontrolador). Per tant, serà convenient desactivar l'opció de tornar-se a connectar automàticament a la nostra xarxa habitual. Un cop connectats a la xarxa acces-ESP8266 podem obrir un navegador i demanar-li la pàgina 192.168.4.1. Llavors ens hauria de mostrar la pàgina que em vist més amunt i picant els botons podem encendre i apagar el LED.
El nostre programa de prova escriu unes quantes coses al monitor sèrie (instruccions Serial.print i Serial.println). Quan ja tinguem clar que el programa funciona, les podem eliminar i probablement anirà una mica més ràpid.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.