Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aporte Nodemcu, controlar encendido / apagado de led via wifi
#1
Saludos.

Vamos a controlar el encendido / apagado  de un led vía wifi con Nodemcu. La página web que nos proporcionará el Nodemcu nos dirá si en led está encendido o apagado y nos mostrará un botón para realizar una acción según sea el caso. 
El programa lo cargaremos al Nodemcu con el Arduino IDE.


Materiales necesarios:
  • Una placa Nodemcu (yo he utilizado la V2).
  • 2 cables dupont.
  • Un led.

[Imagen: nodemcu.jpg]

[Imagen: led.gif]




Conexiones:
  • Pin D7 del Nodemcu al polo positivo del led
  • Pin GND del Nodemcu al polo negativo del led


Código para Nodemcu:

Código:
#include <ESP8266WiFi.h>

const char* ssid = "Tu_ssid";
const char* password = "Tu_contraseña";
IPAddress ip(192,168,1,222);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
int ledPin = 13; //Lo conectamos a D7
WiFiServer server(80);

void setup() {
 Serial.begin(115200);
 delay(10);

 pinMode(ledPin, OUTPUT);
 digitalWrite(ledPin, LOW);

 WiFi.begin(ssid, password);
 WiFi.config(ip, gateway, subnet);
 
 server.begin();
}

void loop() {

 WiFiClient client = server.available();
 if (!client) {
   return;
 }


 Serial.println("new client");
 while(!client.available()){
   delay(1);
 }

 String request = client.readStringUntil('\r');
 client.flush();


 int value = digitalRead(ledPin);
 if (request.indexOf("/LED=ON") != -1)  {
   digitalWrite(ledPin, HIGH);
   value = HIGH;
 }
 if (request.indexOf("/LED=OFF") != -1)  {
   digitalWrite(ledPin, LOW);
   value = LOW;
 }


 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println("");
 client.println("<!DOCTYPE HTML>");
 client.println("<html>");

 client.print("El led esta ahora: ");

 if(value == HIGH) {
   client.print("Encendido");
   client.println("<br><br>");
   client.println("<a href=\"/LED=OFF\"\"><button>Apagar</button></a><br />");  
 } else {
   client.print("Apagado");
client.println("<br><br>");
 client.println("<a href=\"/LED=ON\"\"><button>Encender</button></a>");
 }
 client.println("</html>");

 delay(1);

}




Comentario del código:

En primer lugar está la configuración de la red wifi. Deberás cambiar la sidd y la contraseña por la de tu router. En este script le asignamos la dirección IP 192.168.1.222, la puedes cambiar a tu gusto siempre que esté en el rango de ips de tu router.

Le asignamos el pin 13 al led, que en la placa Nodemcu es el D7, le indicamos que es de salida y lo iniciamos en LOW (apagado).

Comenzamos la comunicación Wifi.

Recién encendida la placa Nodemcu, el led estará apagado, al pone en el navegador la dirección IP 192.168.1.222 nos mostrará lo siguiente:

[Imagen: nodemculed1.png]


Si le damos al botón de encender, el led se encenderá y el navegador nos mostrará:

[Imagen: nodemculed2.png]


Si le damos al botón de apagar, el led se apagará y nos mostrará el navegador:


[Imagen: nodemculed3.png]



Y ya está. Como habéis visto la página que muestra es muy sencilla, pero era para que vierais como funciona.

Bueno, espero que le sirva a alguien.

Saludos.
Responder

#2
Excelente, funciona muy bien, incluso desde el celular. Gracias
Responder

#3
Me alegro de que te haya funcionado bien Guiño

Saludos
[Imagen: chuck.gif]
Responder

#4
Hola ChuJALT, he seguido tu tutorial y el código y en vez de poner un led, he puesto una tira led de Navidad, me ha funcionado perfectamente tanto desde el PC como desde el Móvil, gracias.
Te quería hacer una consulta porque mas o menos es lo que estoy buscando.
Resulta que tengo varias tiras led que funcionan, unas con 3 pilas 4,5V y otras con 2 pilas 3V mi idea era la siguiente:
Encender y apagar los led, en vez de el servidor web, utilizar ALEXA, y poder usar las pilas que traen las tiras led.
¿Seria posible?.
Muchas gracias.
Responder

#5
Saludos Crack1

Me imagino que si, yo nunca he tenido ni alexa ni google home, etc, pero pienso que si, no deja de ser un dispositivo que está conectado a la misma red interna de tu domicilio.

Te aconsejo que mires temas referentes a skills de Alexa, por ejemplo

https://www.xataka.com/basics/skills-ale...es-mejores

https://www.genbeta.com/desarrollo/como-...aso-a-paso

Si decides hacer algo sobre el tema ya nos vas diciendo como vas prosperando  Sonrisa
[Imagen: chuck.gif]
Responder



Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)