Otra ves yo con espero algunos adelantos je, bueno primero voy a poner los codigos despues mis preguntas...
Codigo Arduino:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x11, 0xAC };
byte ip[] = { 192, 168, 1, 19 };
byte server[] = { 192,168,1,33 };
int posicion=0;
int prend;
int foco;
Client client(server, 80);
void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);
Serial.println("Coneccion cliente");
Serial.println();
delay(1000);
Serial.println("connecting...");
if (client.connect()) {
Serial.println("connected");
//client.println("GET /arduino.txt HTTP/1.0");
client.println("GET /prueba2.php?led=1");
//client.println("GET /prueba2.php?led=2");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char dato_recibido = client.read();
if (dato_recibido=='B' && posicion==0){
posicion=1;
//Serial.println("POSICION 1");
//Serial.println(dato_recibido);
}
if (((dato_recibido=='H')) && posicion==1){
posicion=2;
//Serial.println("POSICION 2");
//Serial.println(dato_recibido);
}
if (((dato_recibido=='1')||(dato_recibido=='2')||(dato_recibido=='3')||(dato_recibido=='4')||(dato_recibido=='5')) && posicion==2){
posicion=3;
if (dato_recibido=='1') foco=13;
//Serial.println("POSICION 3");
//Serial.println(dato_recibido);
}
if (((dato_recibido=='A')||(dato_recibido=='Y')) && posicion==3){
posicion=4;
if (dato_recibido=='A') prend=1; //A led encendido
if (dato_recibido=='Y') prend=0; //Y led apagado
//Serial.println("POSICION 4");
//Serial.println(dato_recibido);
//Serial.println(prend);
}
if (dato_recibido=='F' && posicion==4){
posicion=0;
pinMode(foco, OUTPUT);
digitalWrite(foco,prend);
//Serial.println("POSICION 5");
//Serial.println(dato_recibido);
//Serial.println(prend);
//Serial.println(foco);
}
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
Serial.println("==================================");
Serial.println("");
client.stop();
for(;;);
}
}
Bueno mas o menos la idea es recibir tramas por ejemplo BH1AF (donde B el inicio de mi trama, H para decir q se trata de habitacion, 1 numero de la habitacion, A o Y led encendido o apagado, F final de la trama).
Codigo Php:
<b>Apretar Boton para prender o Apagar led</b>
<form action='/prueba2.php' method='GET'><p><input type='hidden' name='pin' value='0'>
<input type='submit' value='Off'/></form>
<form action='/prueba2.php' method='GET'><p><input type='hidden' name='pin' value='1'>
<input type='submit' value='On'/></form>
<?php
$estado=$_GET["pin"]; //esta es la variable que modifico con los botones
$val =$_GET["led"]; //esta es la variable que consulta el arduino.
$con = mysql_connect("localhost", "*****", "*****");
if(!$con)
{
die('Could not connect: ' .mysql_error());
}
mysql_select_db("arduino", $con);
$result = mysql_query("SELECT `numero`, `estado` FROM `habitacion` WHERE numero=$val"); //aca consulto la base de datos con elarduino
while($rs = mysql_fetch_array($result)) {
echo "$rs[1]";
mysql_close($con);
}
echo $estado;
if ($estado==0){
mysql_query("UPDATE habitacion set estado='BH1YF' WHERE numero=1");
mysql_close($con);
}
if ($estado==1){
mysql_query("UPDATE habitacion set estado='BH1AF' WHERE numero=1");
mysql_close($con);
}
//mysql_query("INSERT INTO `led`(`habitacion`) VALUES ($val)");
?>
Bien lo que hago hasta ahora con mi pagina son dos botones On y Off y se apretas actualiza el valor en la base de datos del estado de nuestro led....Ahora bien mis preguntas que he estado probando no logro entender bien, como hacer varias consultas desde el arduino osea preguntar por varias variables, hice varios client.print(GET /) pero solo ejecuta el primero (se q se debe a como se ejecuta por partes el codigo en arduino pero no logro entender).
Mi otra pregunta es mas o menos similar como hago en ese codigo de arduino para que quede a la escucha de alguna variable, por que siempre se ejecuta y se termina el codigo queda en disconect, intente varias modificaciones sin lograr lo que queria probe con while, probe sacando el disconect, probe sacando el for que hay (sucede algo asi como un lazo infinito :S)...bue, me gustaria saber como le doy ahora mas dinamismo a la cosa...yo voy a seguir probando opciones, pero si alguno me va ayudando con tips se lo agradesco, saludos y seguimos avanzando wiiii.