//Controlamos el pin 13 por el puerto serial
const int ledPin = 13; // the pin that the LED is attached to
int incomingByte; // a variable to read incoming serial data into
int estado;
void setup() {
// initialize serial communication:
Serial.begin(9600);
Serial.println("LED_ON_OFF");
Serial.println("0 - APAGAR");
Serial.println("1 - ENCENDER");
Serial.println("9 - ESTADO");
Serial.println();
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
}
void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
switch (incomingByte){
case '0':
digitalWrite(ledPin, LOW);
estado=0;
break;
case '1':
digitalWrite(ledPin, HIGH);
estado=1;
break;
case '9':
if(estado==1){
Serial.println("ENCENDIDO");
} else {
Serial.println("APAGADO");
}//if estado
break;
}//switch
} else {
delay(100);
}//IF Serial
} //loop
miércoles, 10 de junio de 2015
Arduino UNo + Shield Ethernet completo
Página web Información: http://diymakers.es/crear-servidor-web-con-arduino/
/* www.diymakers.es by A.García & M.García Crear servidor Web con Arduino Tutorial en: http://diymakers.es/crear-servidor-web-con-arduino/*/#include <SPI.h> //Importamos librería comunicación SPI#include <Ethernet.h> //Importamos librería Ethernetbyte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Ponemos la dirección MAC de la Ethernet Shield que está con una etiqueta debajo la placaIPAddress ip(192,168,1,100); //Asingamos la IP al ArduinoEthernetServer server(80); //Creamos un servidor Web con el puerto 80 que es el puerto HTTP por defectoint led=6; //Pin del ledString estado="OFF"; //Estado del Led inicialmente "OFF"void setup(){ Serial.begin(9600); // Inicializamos la comunicación Ethernet y el servidor Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); pinMode(led,OUTPUT);}void loop(){ EthernetClient client = server.available(); //Creamos un cliente Web //Cuando detecte un cliente a través de una petición HTTP if (client) { Serial.println("new client"); boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco String cadena=""; //Creamos una cadena de caracteres vacía while (client.connected()) { if (client.available()) { char c = client.read();//Leemos la petición HTTP carácter por carácter Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera convertimos la petición HTTP a un String //Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar partes del texto. int posicion=cadena.indexOf("LED="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion' if(cadena.substring(posicion)=="LED=ON")//Si a la posición 'posicion' hay "LED=ON" { digitalWrite(led,HIGH); estado="ON"; } if(cadena.substring(posicion)=="LED=OFF")//Si a la posición 'posicion' hay "LED=OFF" { digitalWrite(led,LOW); estado="OFF"; } //Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta if (c == '\n' && currentLineIsBlank) { // Enviamos al cliente una respuesta HTTP client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); //Página web en formato HTML client.println("<html>"); client.println("<head>"); client.println("</head>"); client.println("<body>"); client.println("<h1 align='center'>DIYMakers</h1><h3 align='center'>LED controlado por Servidor Web con Arduino</h3>"); //Creamos los botones. Para enviar parametres a través de HTML se utiliza el metodo URL encode. Los parámetros se envian a través del símbolo '?' client.println("<div style='text-align:center;'>"); client.println("<button onClick=location.href='./?LED=ON\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"); client.println("ON"); client.println("</button>"); client.println("<button onClick=location.href='./?LED=OFF\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"); client.println("OFF"); client.println("</button>"); client.println("<br /><br />"); client.println("<b>LED = "); client.print(estado); client.println("</b><br />"); client.println("</b></body>"); client.println("</html>"); break; } if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r') { currentLineIsBlank = false; } } } //Dar tiempo al navegador para recibir los datos delay(1); client.stop();// Cierra la conexión }}
Suscribirse a:
Comentarios (Atom)