NodeMCU en español
NodeMCU - Juan Antonio Villalpando
-- Tutorial de NodeMCU en español --
Volver al índice del tutorial NodeMCU
____________________________
70C.- Una página web para consultar el estado de dos LED desde WiFi con NodeMCU.
- En el NodeMCU tenemos dos LED que podemos encender/apagar con sendos pulsadores.
- Cuando entramos en una página web nos conectamos con el WiFi del NodeMCU y podemos consultar el estado de esos dos botones.
- [En este caso en la página solo consultamos, no controlamos los LED].
- Para hacer las pruebas pulsamos un pulsador y lo dejamos pulsado.
- Para ver el estado debemos actualizar la página web.
___________________________________________________
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 para consultar el estado de los LED desde WiFi.
- Fíjate que he declarado varibles de dos maneras, observa que uno termina en punto y coma y el otro no.
int LED4 = 4;
int LED5 = 5;
#define pulsa13 13
#define pulsa15 15
Código
Nodemcu_2_LED_consultar_wifi.ino |
// Juan A. Villalpando.
// KIO4.COM
// Saldrá una página web en donde se verán imágenes
// de LED encendido/apagado según estén.
#include <ESP8266WiFi.h>
const char* ssid = "Tu_nombre_de_red_wifi";
const char* password = "La_clave_de_tu_red_wifi";
int LED4 = 4; // Es el D2 del NodeMCU
int LED5 = 5; // Es el D1 del NodeMCU
#define pulsa13 13 // Es el D8 del NodeMCU. Aquí irá un pulsador.
#define pulsa15 15 // Es el D7 del NodeMCU. Aquí irá un pulsador.
int valor13;
int valor15;
String imagen4 ="N";
String imagen5 ="N";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(pulsa13, INPUT);
pinMode(pulsa15, INPUT);
// 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("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();
// Comprueba y enciende/apaga los LED
valor13 = digitalRead(pulsa13); // Lee el valor del pulsa13 y se lo asigna a valor13. (Puede ser 0 o 1)
if (valor13 == HIGH) { digitalWrite(LED4, HIGH); imagen4="R";}
else { digitalWrite(LED4, LOW); imagen4="N";}
valor15 = digitalRead(pulsa15); // Lee el valor del pulsa15 y se lo asigna a valor15. (Puede ser 0 o 1)
if (valor15 == HIGH) { digitalWrite(LED5, HIGH); imagen5="R";}
else { digitalWrite(LED5, LOW); imagen5="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>Consulta estado de los LED por WiFi.</h1>");
client.println("<h2><font color='#009900'>KIO4.COM - Juan A. Villalpando</font></h2>");
client.println("<br><br>");
if (imagen4 == "R") { client.println("<img src='http://kio4.esy.es/LEDR.png'>");}
if (imagen4 == "N") { client.println("<img src='http://kio4.esy.es/LEDN.png'>");}
if (imagen5 == "R") { client.println("<img src='http://kio4.esy.es/LEDR.png'>");}
if (imagen5 == "N") { client.println("<img src='http://kio4.esy.es/LEDN.png'>");}
client.println("</font></body></html>");
}
|
________________________________
|