Accionar una salida en Arduino con módulo ethernet W5100.

Programa.

Con esta aplicación activaremos una salida en arduino a través de una página web, utilizando arduino como webserver.

La página web tiene la siguiente forma, activaremos la salida con el pulsador verde y la desactivaremos con el pulsador rojo, que sustituirá al verde al realizar la activación.

                                                                     marcha1

El programa que subiremos al arduino es el siguiente.

/** Activar remotamente una salida en Arduino, a través de Internet con W5100*/
#include <SPI.h>
#include <Ethernet.h>
int pinLED = 9; // Terminal de salida
boolean acceso = false; 
byte mac[] = {  // Mac de Arduino
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
 EthernetServer server(80);// Inicializa librería de Arduino
 void setup() {
  pinMode(pinLED,OUTPUT);
  digitalWrite(pinLED,LOW);
  Serial.begin(9600);
  Ethernet.begin(mac);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}
void loop() {
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
     boolean currentLineIsBlank = true;
    String postText ="";
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if(postText.length()<10){
          postText +=c;
        }
        if (c == '\n' && currentLineIsBlank) {
           client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  
          client.println();
          client.println("<meta charset=UTF-8>"); 
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println("<head> <TITLE>Arduino</TITLE> </head>"); 
          client.println("<body><DIV ALIGN=center> <h1> Accionar salida Arduino </h1></DIV>"); 
             client.println("</body>");
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    if(postText.indexOf("?on") >0){
          digitalWrite(pinLED,HIGH);
          Serial.println("Accendi LED");
          acceso = true;
        }http://electric1.es/c/i/pulsador_$S.jpg
     if(postText.indexOf("?off") >0 ){
       digitalWrite(pinLED,LOW);
        Serial.println("Spegni LED");
        acceso = false;
       }
       if(acceso){
          client.println("<DIV ALIGN=center><a href=\"./?off\"> <img src = \"http://electric1.es/c/i/pulsador_OFF.jpg\"alt = \"Spegni\" ></a></DIV>");
          client.println("<DIV ALIGN=center><h3>Encendido</h3></DIV>");
        }else{
          client.println("<DIV ALIGN=center><a href=\"./?on\"> <img src = \"http://electric1.es/c/i/pulsador_ON.jpg\"alt = \"Accendi\" ></a></DIV>");
          client.println("<DIV ALIGN=center><h3>Apagado</h3></DIV>");
          }   
    delay(1);
    client.stop();
    Serial.println("client disconnected");
  }
}

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *