NodeMCU en español
NodeMCU - Juan Antonio Villalpando
-- Tutorial de NodeMCU en español --
Volver al índice del tutorial NodeMCU
____________________________
70B.- Una página web con varios botones para encender/apagar dos LED desde WiFi.
- Saldrá una página web con cuatro botones, según pulsemos uno u otro se encenderá un LED por WiFi.
- Además cuando entremos en esa página nos mostrará con imágenes si los LED están encendidos o apagados.
- También puedes hacerlo desde el móvil conectado a WiFi.
___________________________________________________
1.- Conexión de los LED.
- En el código utilizamos el GPIO2 y el GPIO16 del ESP8266, esos corresponden a los terminales D0 y D4 del NodeMCU, como se observa en la imagen.
- Debes tener en cuenta la polarización de los diodos, conectar correctamente el ánodo(+) y el cátodo (-).
- También esas dos conexiones corresponden a los LED azules integrados en la tarjeta, pero observarás que tienen lógica contraria.
- Realizamos la siguiente conexión:
___________________________________________________
2.- Código encender/apagar dos LED desde WiFi.
Código
Nodemcu_2_LED_wifi.ino |
// Juan A. Villalpando.
// KIO4.COM
// Saldrá una página web con cuatro botones, según el usuario pulse
// encenderá un LED en el NodeMCU por WiFi..
#include <ESP8266WiFi.h>
const char* ssid = "Tu_nombre_de_red_wifi";
const char* password = "La_clave_de_tu_red_wifi";
int LED2 = 2; // Es el LED azul del ESP8266
int LED16 = 16; //
String imagen2 ="N";
String imagen16 ="N";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(LED2, OUTPUT);
pinMode(LED16, OUTPUT);
digitalWrite(LED2, LOW);
digitalWrite(LED16, LOW);
// Conecta a la red wifi.
Serial.println();
Serial.println();
Serial.print("Conectando con ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Conectado con WiFi.");
// Inicio del Servidor web.
server.begin();
Serial.println("Servidor web iniciado.");
// Esta es la IP
Serial.print("Esta es la IP para conectar: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Consulta si se ha conectado algún cliente.
WiFiClient client = server.available();
if (!client) {
return;
}
// Espera hasta que el cliente envíe datos.
Serial.println("Nuevo cliente.");
while(!client.available()){
delay(1);
}
// Lee la primera línea de la petición.
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Consulta la petición
if (request.startsWith("mensaje=1", 5)) { digitalWrite(LED2, HIGH); imagen2="R";}
if (request.startsWith("mensaje=2", 5)) { digitalWrite(LED2, LOW); imagen2="N";}
if (request.startsWith("mensaje=3", 5)) { digitalWrite(LED16, HIGH); imagen16="R";}
if (request.startsWith("mensaje=4", 5)) { digitalWrite(LED16, LOW); imagen16="N";}
// Página web.
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // Comillas importantes.
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><meta charset=utf-8></head>");
client.println("<body><font face='Arial'><h1>Encender/apagar LED por WiFi.</h1>");
client.println("<h2><font color='#009900'>KIO4.COM - Juan A. Villalpando</font></h2>");
client.println("<br><br>");
client.println("<a href=\"/mensaje=1\"\"><button>Enciende LED2 (D4)</button></a>");
client.println("<a href=\"/mensaje=2\"\"><button>Apaga LED2 (D4)</button></a>");
client.println("<a href=\"/mensaje=3\"\"><button>Enciende LED16 (D0)</button></a>");
client.println("<a href=\"/mensaje=4\"\"><button>Apaga LED16 (D0)</button></a>");
client.println("<br><br>");
if (imagen2 == "R") { client.println("________<img src='http://kio4.esy.es/LEDR.png'>");}
if (imagen2 == "N") { client.println("________<img src='http://kio4.esy.es/LEDN.png'>");}
if (imagen16 == "R") { client.println("________________<img src='http://kio4.esy.es/LEDR.png'>");}
if (imagen16 == "N") { client.println("________________<img src='http://kio4.esy.es/LEDN.png'>");}
client.println("</font></body></html>");
delay(1);
Serial.println("Cliente desconectado.");
Serial.println("");
}
|
________________________________
|