En este artículo, exploraremos la fascinante combinación de la tecnología Arduino con la conectividad Ethernet para crear un servidor web capaz de controlar un relé. Descubre cómo esta innovadora solución puede ser utilizada en una variedad de proyectos industriales y domésticos para automatizar procesos y mejorar la eficiencia. ¡Sigue leyendo para desentrañar los secretos del servidor web Arduino Ethernet con relé!
Esta publicación muestra cómo construir un servidor web Arduino Ethernet que controla un relé conectado a una lámpara.
Puedes acceder a tu servidor web desde cualquier dispositivo que tenga un navegador y esté conectado a la misma red.
Recursos recomendados:
- Instrucciones para módulo de relé con Arduino.
- Arduino: servidor web con escudo Arduino + Ethernet
- Servidor web ESP8266 con Arduino IDE
- Tutorial del servidor web ESP8266
Si te gustan los proyectos Arduino y quieres construir más, te recomiendo mi curso Proyectos Arduino Paso a Paso – Construye 25 Proyectos.
Nota: Si no está muy familiarizado con la tensión de red pero aún desea probar el proyecto, puede reemplazar el módulo de relé con un LED, por ejemplo. El código y los esquemas son muy similares.
escudo ethernet
El Arduino Ethernet Shield conecta fácilmente su Arduino a Internet. Simplemente monte este módulo en su placa Arduino, conéctelo a su red con un cable RJ45 y siga unos sencillos pasos para comenzar a controlar sus proyectos a través de Internet.
Nota: Debe conectar un cable Ethernet desde su enrutador a su escudo Ethernet como se muestra en la siguiente imagen.
Uso de pines
Si el Arduino está conectado a un escudo Ethernet, no puede utilizar los pines digitales 10 a 13, ya que se utilizan para establecer comunicación entre el Arduino y el escudo Ethernet.
módulo de relé
Un relé es un interruptor accionado eléctricamente. Esto significa que se puede encender o apagar, permitiendo que la corriente fluya a través de él o no. El módulo de relé es el de la imagen de abajo.
Este módulo de relé en particular viene con dos relés (esos cubos azules).
Respecto a la tensión de red, los relés tienen tres posibles conexiones:
- COM: pin común
- NO: normalmente abierto – No hay contacto entre el pin común y el pin normalmente abierto. Entonces, cuando active el relé, se conectará al pin COM y la carga (en nuestro caso, una lámpara) se energizará.
- CAROLINA DEL NORTE: normalmente cerrado – hay contacto entre el pin común y el pin normalmente cerrado. Siempre hay contacto entre los pines COM y NC, incluso cuando el relé está apagado. Cuando dispara el relé, el circuito se abre y no se suministra energía a la carga.
Para este proyecto es mejor tener uno. circuito normalmente abiertoya que queremos encender la lámpara de vez en cuando. En este tutorial aprenderá a utilizar un módulo de relé con la placa Arduino.
Las conexiones entre el relé y el Arduino son realmente sencillas:
- Dimensiones: cae al piso
- EN 1: controla el primer relé. Debe estar conectado a un pin Arduino digital.
- EN 2: controla el segundo relé. Debe conectarse a un pin Arduino digital.
- VCC: va a 5V
Piezas requeridas
Aquí hay una lista completa de los componentes que necesitará para este proyecto:
- Arduino UNO – leer Los mejores kits de inicio de Arduino
- escudo ethernet
- módulo de relé
- Juego de cables para lámpara (ver en eBay)
- tablero de circuitos
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
código
Copie el siguiente código en su IDE de Arduino y léalo antes de cargarlo en su placa Arduino. “Configura tu red” Sección siguiente.
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 111);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
// Relay state and pin
String relay1State = "Off";
const int relay = 7;
// Client variables
char linebuf[80];
int charcount=0;
void setup() {
// Relay module prepared
pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);
// Open serial communication at a baud rate of 9600
Serial.begin(9600);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
// Display dashboard page with on/off button for relay
// It also print Temperature in C and F
void dashboardPage(EthernetClient &client) {
client.println("<!DOCTYPE HTML><html><head>");
client.println("<meta name="viewport" content="width=device-width, initial-scale=1"></head><body>");
client.println("<h3>Arduino Web Server - <a href="/">Refresh</a></h3>");
// Generates buttons to control the relay
client.println("<h4>Relay 1 - State: " + relay1State + "</h4>");
// If relay is off, it shows the button to turn the output on
if(relay1State == "Off"){
client.println("<a href="/relay1on"><button>ON</button></a>");
}
// If relay is on, it shows the button to turn the output off
else if(relay1State == "On"){
client.println("<a href="/relay1off"><button>OFF</button></a>");
}
client.println("</body></html>");
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
memset(linebuf,0,sizeof(linebuf));
charcount=0;
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
linebuf[charcount]=c;
if (charcount<sizeof(linebuf)-1) charcount++;
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == 'n' && currentLineIsBlank) {
dashboardPage(client);
break;
}
if (c == 'n') {
if (strstr(linebuf,"GET /relay1off") > 0){
digitalWrite(relay, HIGH);
relay1State = "Off";
}
else if (strstr(linebuf,"GET /relay1on") > 0){
digitalWrite(relay, LOW);
relay1State = "On";
}
// you're starting a new line
currentLineIsBlank = true;
memset(linebuf,0,sizeof(linebuf));
charcount=0;
}
else if (c != 'r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
Configura tu red
Consulte el fragmento de código para configurar su red:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,XXX);
Importante: Es posible que deba reemplazar la variable resaltada en rojo con valores apropiados para su red. De lo contrario, su Arduino no se conectará a su red.
Reemplace la siguiente línea con una IP que esté disponible y sea adecuada para su red:
IPAddress ip(X, X, X, X);
En mi caso mi rango de IP es 192.168.1.X y con el software Escáner IP enojado Sé que la IP 192.168.1.111 está disponible en mi red porque no hay ningún dispositivo activo en mi red con exactamente la misma dirección IP:
IPAddress ip(192, 168, 1, 111);
Esquema
Conecte su circuito de acuerdo con el siguiente diagrama:
demostración
Su servidor web Arduino se verá como la siguiente imagen:
Aquí hay una demostración que muestra lo que tendrá al final de este proyecto:
Envolver
Con este proyecto has creado un servidor web Arduino que enciende y apaga un relé.
Ahora puedes utilizar este proyecto para controlar cualquier dispositivo electrónico que desees.
Este proyecto es una versión simplificada de uno de mis proyectos en los proyectos paso a paso de Arduino. Si te gustó este proyecto, asegúrate de consultar el curso, que incluye 23 proyectos Arduino.
Gracias por leer,
rui y sara
Servidor web Arduino Ethernet con relé – Preguntas Frecuentes
Este artículo muestra cómo construir un servidor web Arduino Ethernet que controla un relé que está conectado a una lámpara.
¿Qué recursos se recomiendan para este proyecto?
- Guía para Módulo de Relé con Arduino
- Arduino – Servidor web con Arduino + Módulo Ethernet
- Tutorial de Servidor Web ESP8266 con IDE de Arduino
- Tutorial de Servidor Web ESP8266 con IDE de Arduino
¿Qué es el módulo Ethernet y cómo se utiliza?
El módulo Ethernet para Arduino conecta tu Arduino a internet de manera sencilla. Monta este módulo en tu placa Arduino, conéctalo a tu red con un cable RJ45 y sigue unos simples pasos para comenzar a controlar tus proyectos a través de la web.
¿Qué debo tener en cuenta al utilizar un relé?
Un relé es un interruptor operado eléctricamente que puede encender o apagar la corriente. Al utilizar un relé en este proyecto, asegúrate de conectarlo de manera adecuada y seguir las instrucciones proporcionadas en la guía mencionada anteriormente.
¿Qué componentes se necesitan para este proyecto?
- Arduino UNO
- Módulo Ethernet
- Módulo de Relé
- Juego de cables de lámpara
- Protoboard
- Cables de puente
¿Cómo configuro mi red para este proyecto?
Es importante configurar tu red de acuerdo a las especificaciones del proyecto. Asegúrate de seguir las instrucciones detalladas en el código proporcionado y ajustar la dirección IP y otros parámetros según tu red.
¿Cómo se realiza la conexión entre el Arduino y el relé?
Las conexiones entre el relé y el Arduino son muy simples. Asegúrate de seguir el esquema de conexiones proporcionado en la guía para evitar errores.
¿Qué funciones puedo controlar con este proyecto?
Con este proyecto, puedes controlar cualquier electrodoméstico que desees. El uso de un Arduino web server con relé te ofrece la flexibilidad de controlar dispositivos a distancia a través de la web.
¿Dónde puedo obtener más proyectos de Arduino?
Si te gustan los proyectos de Arduino y deseas construir más, te recomiendo obtener mi curso Proyectos paso a paso de Arduino – Construye 25 Proyectos para explorar nuevas ideas y aplicaciones.
Agradecimiento
¡Gracias por leer y seguir explorando el mundo de Arduino con nosotros!