Arduino: servidor web con escudo Arduino + Ethernet

En el mundo de la electrónica y la programación, Arduino se ha convertido en una herramienta indispensable para proyectos creativos e innovadores. En este artículo descubriremos cómo utilizar un escudo Arduino + Ethernet para crear un servidor web con Arduino, abriendo un sinfín de posibilidades para la comunicación en red de tus dispositivos. ¡No te lo pierdas!

Este proyecto implica el uso de un Arduino con un escudo Ethernet. Controlaré un LED y un servo, pero también puedes usar este método para controlar cualquier dispositivo electrónico que desees. (como motores CC, zumbadores, relés, motores paso a paso, etc.)

Arduino: servidor web con escudo Arduino + Ethernet

introducción

Cuando el código proporcionado se carga y se conecta a Internet, se crea un servidor web en su LAN y usted simplemente usa la IP para acceder a este servidor web a través de su navegador. Después de eso, aparecerá una página web similar a la siguiente. Cuando haces clic en el botón «Encender LED», tu URL cambiará a: “http://192.168.1.178/?button1on” El Arduino lee esta información y enciende el LED.

Por defecto la IP es “192.168.1.178”. Esto también se puede ver en el código Arduino proporcionado.

Arduino: servidor web con escudo Arduino + EthernetMira este vídeotutorial

Piezas requeridas

Arduino: servidor web con escudo Arduino + Ethernet

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

Arduino: servidor web con escudo Arduino + Ethernet

Esquema

Arduino: servidor web con escudo Arduino + Ethernet

Sube el código a continuación

/*
 Created by Rui Santos
 Visit: https://randomnerdtutorials.com for more arduino projects

 Arduino with Ethernet Shield
 */

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h> 
int led = 4;
Servo microservo; 
int pos = 0; 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //physical mac address
byte ip[] = { 192, 168, 1, 178 };                      // ip in lan (that's what you need to use in your browser. ("192.168.1.178")
byte gateway[] = { 192, 168, 1, 1 };                   // internet access via router
byte subnet[] = { 255, 255, 255, 0 };                  //subnet mask
EthernetServer server(80);                             //server port     
String readString;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  pinMode(led, OUTPUT);
  microservo.attach(7);
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {   
      if (client.available()) {
        char c = client.read();
     
        //read char by char HTTP request
        if (readString.length() < 100) {
          //store characters to string
          readString += c;
          //Serial.print(c);
         }

         //if HTTP request has ended
         if (c == 'n') {          
           Serial.println(readString); //print to serial monitor for debuging
     
           client.println("HTTP/1.1 200 OK"); //send new page
           client.println("Content-Type: text/html");
           client.println();     
           client.println("<HTML>");
           client.println("<HEAD>");
           client.println("<meta name="apple-mobile-web-app-capable" content="yes" />");
           client.println("<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />");
           client.println("<link rel="stylesheet" type="text/css" href="https://randomnerdtutorials.com/ethernetcss.css" />");
           client.println("<TITLE>Random Nerd Tutorials Project</TITLE>");
           client.println("</HEAD>");
           client.println("<BODY>");
           client.println("<H1>Random Nerd Tutorials Project</H1>");
           client.println("<hr />");
           client.println("<br />");  
           client.println("<H2>Arduino with Ethernet Shield</H2>");
           client.println("<br />");  
           client.println("<a href="/?button1on"">Turn On LED</a>");
           client.println("<a href="/?button1off"">Turn Off LED</a><br />");   
           client.println("<br />");     
           client.println("<br />"); 
           client.println("<a href="/?button2on"">Rotate Left</a>");
           client.println("<a href="/?button2off"">Rotate Right</a><br />"); 
           client.println("<p>Created by Rui Santos. Visit https://randomnerdtutorials.com for more projects!</p>");  
           client.println("<br />"); 
           client.println("</BODY>");
           client.println("</HTML>");
     
           delay(1);
           //stopping client
           client.stop();
           //controls the Arduino if you press the buttons
           if (readString.indexOf("?button1on") >0){
               digitalWrite(led, HIGH);
           }
           if (readString.indexOf("?button1off") >0){
               digitalWrite(led, LOW);
           }
           if (readString.indexOf("?button2on") >0){
                for(pos = 0; pos < 180; pos += 3)  // goes from 0 degrees to 180 degrees 
                {                                  // in steps of 1 degree 
                  microservo.write(pos);              // tell servo to go to position in variable 'pos' 
                  delay(15);                       // waits 15ms for the servo to reach the position 
                } 
           }
           if (readString.indexOf("?button2off") >0){
                for(pos = 180; pos>=1; pos-=3)     // goes from 180 degrees to 0 degrees 
                {                                
                  microservo.write(pos);              // tell servo to go to position in variable 'pos' 
                  delay(15);                       // waits 15ms for the servo to reach the position 
                } 
           }
            //clearing string for next read
            readString="";  
           
         }
       }
    }
}
}

Ver código sin formato

Nota: Si pruebas este proyecto. Sólo puedes acceder a esta dirección IP desde casa. Esto significa que debe estar conectado al mismo enrutador al que está conectado su Ethernet Shield. La siguiente imagen me muestra accediendo a mi servidor web usando mi iPad.

Arduino: servidor web con escudo Arduino + Ethernet

Gracias por leer. Puedes contactar conmigo dejando un comentario. Si te gusta esta publicación, probablemente también te gustarán las siguientes, así que apóyame suscribiéndote a mi blog y a mi blog. Sitio de Facebook.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Arduino: servidor web con escudo Arduino + Ethernet

Este proyecto se trata de utilizar un Arduino con un escudo de Ethernet. Controlaré un LED y un servo, pero puedes aplicar este método para controlar cualquier dispositivo electrónico que desees (como motores DC, zumbadores, relés, motores paso a paso, etc.).

Introducción

El código proporcionado, al ser cargado y conectado a Internet, crea un servidor web en tu LAN y simplemente utilizas la IP para acceder a ese servidor web a través de tu navegador. Después, se muestra una página web similar a la que se muestra a continuación. Cuando presionas el botón «Encender LED», tu URL cambiará a: «http://192.168.1.178/?button1on», el Arduino leerá esa información y encenderá el LED.

Por defecto, la IP es «192.168.1.178». También puedes encontrarla en el código del Arduino proporcionado.

Este proyecto se trata de utilizar un Arduino con un escudo de Ethernet. Controlaré un LED y un servo, pero puedes aplicar este método para controlar cualquier dispositivo electrónico que desees (como motores DC, zumbadores, relés, motores paso a paso, etc.).

Partes necesarias

  1. Arduino UNO
  2. 1x Escudo de Ethernet
  3. 1x Resistencia de 220 Ohmios
  4. 1x LED
  5. 1x Servomotor Micro
  6. 1x Protoboard
  7. Cables Jumpers

Puedes encontrar todas las partes para tus proyectos al mejor precio en MakerAdvisor.

Esquemático

A continuación se muestra el código para subir al Arduino con el escudo de Ethernet. Este código crea un servidor web que te permite controlar un LED y un servomotor a través de una página web.

Código Arduino

Este es el código que debes cargar en tu Arduino con el escudo de Ethernet para crear un servidor web y controlar un LED y un servomotor:

«`cpp
(Inserta el código aquí)
«`

Nota: Al probar este proyecto, solo puedes acceder a esa dirección IP desde tu hogar. Esto significa que debes estar conectado al mismo enrutador al que está conectado tu escudo de Ethernet.

Gracias por leer, puedes contactarme dejando un comentario. Si te gustó esta publicación, probablemente te gustarán las siguientes. Por favor, apóyame suscribiéndote a mi blog y mi página de Facebook.

Deja un comentario