Gracias por responder amigo, y por supuesto que no espero que hagan el código desde cero, solo necesito un poco de sus conocimientos.
hasta el momento tengo este codigo, trate de seguir los pasos que me dejaste en el post anterior, pero no logro que funcione, como les comentaba recien estoy aprendiendo.
#include <SPI.h> //Aqui incluimos la libreria SPI
#include <Ethernet.h> //Aqui incluimos la libreria Ethernet
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //Declaracion de la direccion MAC
IPAddress ip(192,168,0,10); //Declaracion de la IP
EthernetServer servidor(80); //Declaracion del puerto 80
int PIN_LED=2; // establecemos la variable PIN_LED como un valor entero
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char)
String state=String(3);
String state1=String(3);
const int LED_Pin = 3; // pin para el LED
const int PIR_Pin = 8; // pin de entrada de sensor
int pirState = LOW; // de inicio no hay movimiento
int val = 0; // estado del pin
void setup() {
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin(); //inicia el servidor
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="APAGADA";
pinMode(LED_Pin, OUTPUT);
pinMode(PIR_Pin, INPUT);
Serial.begin(9600);
}
void loop() {
//EthernetClient Crea un cliente que se puede conectar a
//una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado
{
int LED = readString.indexOf("LED=");
if(readString.substring(LED,LED+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ENCENDIDA"; }
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW);
state="APAGADA";
}
val = digitalRead(PIR_Pin);
if (val == HIGH) //si está activado
{
digitalWrite(LED_Pin, HIGH); //enciende led
if (pirState == LOW) //si previamente estaba apagado
{
Serial.println("movimiento detectado");
pirState = HIGH;
state1="MOVIMIENTO DETECTADO";
}
}
else //si esta desactivado
{
digitalWrite(LED_Pin, LOW); // apaga led
if (pirState == HIGH) //si previamente estaba encendido
{
Serial.println("sin movimiento");
pirState = LOW;
state1="SIN MOVIMIENTO";
}
}
//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println(); //Página Web en HTML
cliente.println("");
cliente.println("");
cliente.println("BIENVENIDOS");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("
BIENVENIDOS
");
cliente.print("
");
cliente.print("HABITACION_01: ");
cliente.print(state);
cliente.print("
");
cliente.println("<input type=submit value=ENCENDER style=width:200px;height:75px onClick=location.href='./?LED=T'>");
cliente.println("<input type=submit value=APAGAR style=width:200px;height:75px onClick=location.href='./?LED=F'>");
cliente.print("
");
cliente.print("DETECCION DE MOVIMIENTO: ");
cliente.print(state1);
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();
//Cierro conexión con el cliente
readString="";
}
}
}
}
}
tengo conexion con el led 2 y lo logro encender y apagar, pero no logro que funcione el sensor y me muestre el mensaje por la pagina web de que detecto movimiento, me muestra un 3 como mensaje. espero mme puedan ayudar, saludos y gracias