Ya tenemos la conexión en ambos sentidos y recibimos el dato que le pedimos tanto en un lado como en otro.
Codigo de la pagina web
<html>
<body>
<?php
if(isset($_GET['modTiempo'])){
?>
<form method=get name=LED action="URL">
<input type=text name=cambiartiempo>
<input type=submit value=submit>
</form>
<?php
}
echo "temp: ".$_REQUEST['temp'];
?>
<form method=get name=LED action="URL">
<input type=radio name=opcion value=LED>LED ON<br>
<input type=radio name=opcion value=TEMP>TEMPERATURA<br>
<input type=radio name=opcion value=TIEMPO>MOD. TIEMPO
<input type=submit value=submit>
</form>
</body>
</html>
Extracto de codigo de arduino, gestiona las peticiones:
if(readString == ("GET /?opcion=TIEMPO HTTP/1.1") ) //MOD TIEMPO
{
sprintf(url, "URL");
sprintf(meta, "<meta http-equiv='Refresh' content='0;url=%s'>", url);
client.println("HTTP/1.1 200 OK");
client.println("<body><html>");
client.println("Content-Type: text/html");
client.println();
client.println(meta);
client.println("</body></html>");
}
else if(readString.substring(6,19) == ("cambiartiempo") )
{
int Triego = readString.substring(20,22).toInt();
modificarTiempo(Triego);
//redireccionar a la web
client.println("HTTP/1.1 200 OK");
client.println("<body><html>");
client.println("Content-Type: text/html");
client.println();
client.println("<meta http-equiv='Refresh' content='0;url= URL'>");
client.println("</body></html>");
}
else if(readString == ("GET /?opcion=LED HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(ledPin, HIGH); // set the LED on
//redireccionar a la web
client.println("HTTP/1.1 200 OK");
client.println("<body><html>");
client.println("Content-Type: text/html");
client.println();
client.println("<meta http-equiv='Refresh' content='0;url= URL'>");
client.println("</body></html>");
}
else if(readString == ("GET /?opcion=TEMP HTTP/1.1") ) //PEDIR TEMPERATURA
{
//CONSTRUIMOS LA URL PARA LA REDIRECCION
sprintf(url, "URL?temp=%d", tempValor);
sprintf(meta, "<meta http-equiv='Refresh' content='0;url=%s'>", url);
//redireccionar a la web
client.println("HTTP/1.1 200 OK");
client.println("<body><html>");
client.println("Content-Type: text/html");
client.println();
client.println("<meta http-equiv='Refresh' content='0;url= URL'>");
client.println("</body></html>");
}
else{
//led has to be turned OFF
digitalWrite(ledPin, LOW); // set the LED OFF
//redireccionar a la web
client.println("HTTP/1.1 200 OK");
client.println("<body><html>");
client.println("Content-Type: text/html");
client.println();
client.println("<meta http-equiv='Refresh' content='0;url= URL'>");
client.println("</body></html>");
}
lunes, 29 de octubre de 2012
viernes, 12 de octubre de 2012
Comunicación Arduino -> Web
Una vez que estamos dentro de arduino y una vez obtenidos los datos necesarios tenemos que enviarlos a la web para ser tratados, para esto tenemos varias opciones:
- Un formulario en el que la propiedad action mande a la web.
- Otra opción es utilizar la etiqueta <meta http-equiv="Refresh" content="5;url=xxxxxxxxxx">
Comunicación Web -> Arduino
Este es el formulario en html que esta en el servidor, las XXX corresponden a la ip publica seguida del puerto que previamente hemos redireccionado en nuestro router hacia la ip interna asignada a arduino.
<html>
<body>
<form method=get name=LED action="http://XX.X.XX.XXX:YYYY">
<input type=checkbox name=L value=1>LED<br>
<input type=submit value=submit>
</form>
</body>
</html>
Y este el código de arduino:
if(readString == ("GET /?L=1 HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(ledPin, HIGH); // set the LED on
LEDON = true;
}
Simplemente comprueba lo que tiene la variable L.
<html>
<body>
<form method=get name=LED action="http://XX.X.XX.XXX:YYYY">
<input type=checkbox name=L value=1>LED<br>
<input type=submit value=submit>
</form>
</body>
</html>
Y este el código de arduino:
if(readString == ("GET /?L=1 HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(ledPin, HIGH); // set the LED on
LEDON = true;
}
Simplemente comprueba lo que tiene la variable L.
Suscribirse a:
Entradas (Atom)