chujalt

Arduino
Arduino. Encender o pagar led o relé vía wifi con placa Nodemcu

3 posts en este tema

Saludos.

 

    En esta ocasión vamos a encender / apagar un led, o un relé, vía wifi desde una placa Nodemcu. La página web nos la proporcionará la propia placa.

 

 

Materiales utilizados

  • Una placa Nodemcu (yo he utilizado la V2)
  • Un led o un relé
  • 2 cables dupont (para el led) o 3 cables dupont (para el relé)

 

 

 

nodemcu.jpg

 

rele.jpg

 

led.gif

 

 

 

 

Conexiones

 

Si lo hacemos para el led:

  • Pin D7 del Nodemcu al polo positivo del led.
  • Pin GND del Nodemcu al polo negativo del led

 

Si lo hacemos para el relé

  • Pin D7 del Nodemcu al pin In del relé
  • Pin GND del Nodemcu al pin Gnd del relé
  • Pin 3v del Nodemcu al pin Vcc del relé

 

 

 

Código Nodemcu:

#include <ESP8266WiFi.h>
 
const char* ssid = "Tu_red";
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, que es el gpio13
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);
 
}

Básicamente el código lo que hace es:

  • Carga la librería necesaria.
  • Se auto-asigna una dirección ip de nuestro router (en esta ocasión la 192.168.1.222) pero se puede poner la que quiera, que no esté ocupada por otro dispositivo, por eso cuanto mas alta mejor.
  • Al poner en nuestro navegador la dirección ip la placa nos enviará una página web donde nos indicará si el dispositivo está encendido o apagado, si está apagado nos mostrará un botón para encenderlo y si está encendido nos mostrará el botón para apagarlo.

 

Bueno... ya está... espero que le pueda servir a alguien. Saludos.

Editado por chujalt
radon2, Rohlling, pacoeloyo y 1 otro le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Hola chujalt, me encuentro diseñando un circuito que incluye un modulo de relay de 4 canales y el NodemCU, no miro la conexión física que has hecho, y estoy con una gran duda. Según las especificaciones técnicas que he leído, el NodemCU saca por GPIO 12mA y el modulo de relay necesita de 15-20mA, mi pregunta es, Se activa el relay con la corriente suministrada del NodemCU? 
Y del pin "Vin" del NodemCU que según parece son 5V, de ese pin lo conectaste al modulo de Relay?
Otra duda, por si sabe y puedes ayudarme, puedo alimentar al NodemCU con un cargador de celular que me da 5V-1A? O lo quemo??

 

Espero puedas ayudarme, necesito salir de estas dudas urgentemente.

De antemano, Gracias,

pacoeloyo y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Saludos, perdona mi tardanza en responderte.

 

Aunque el relé pone que funciona a 5V yo lo conecto al pin 3V del Nodemcu y funciona bien, hace su cometido.

 

Por lo que yo tengo entendido, el pin Vin es solo para alimentar la placa, no para sacar corriente de él.

 

Con la placa Nodemcu no lo he hecho, pero he alimentado otras (Arduino, arduino micro) por un power bank (que creo que es a lo que te refieres) y no ha habido problemas.

 

Saludos 

pacoeloyo y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!


Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.


Iniciar Sesión