Sei sulla pagina 1di 11

Funcionamiento:

Elfuncionamientointernodeelproyectosedescribeacontinuacin
elcontroladorarduinohacelafunciondeHOSTdeelEthernetShield,tarjetaquetienelafuncionde
darlecomunicacionaelHardwareconectadoalatarjetaarduinohaciainternet,unadesusaplicaciones
esmedianteladeunservidorwebintegradoqueeslaqueseaplicoenesteproyecto.

Arduino HOST

Ethernet SHIELDcon
servidor WEB(FORM
HTML)

Android APKLeyendo e
IntroduciendoValores por medio
de HTML FORMS

Elservidorwebintegradodelethernetshieldgeneraunformulariohtmlenelqueespecificacon

etiquetassilailuminaciondelacasa/maquetaestaenencendidooapagadoylomuestraensu
sitio.UsandoelsiguientecodigoHTML
<!doctypehtml>
<html>
<head>
<title>ArduinoRemoto</title>
<metaname="viewport"content="<width=320">
<metaname="viewport"content="width=devicewidth">
<metacharset="utf8">
<metaname="viewport"content"initialscale=1.0,userscalable=no">
</head>
<body>
<center>
<fontsize="5"face="verdana"color="green">ProyectoTelefonicos</font>
<formaction="led1"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinExterior***
Apagado</button>
</form><br/>
<formaction="led2"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinInterior***
Apagado</button>
</form><br/>
<formaction="led3"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinJardin***Apagado</button>
</form><br/>
<formaction="led4"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinSala***Apagado</button>
</form><br/>
<formaction="led6"method="get">
<buttontype=submitstyle="width:200px;">***AireAcondicionado***Apagado</button>
</form><br/>
<formaction="led7"method="get">
<buttontype=submitstyle="width:200px;">***Alarma***Apagado</button>
</form><br/>
<formaction="led8"method="get">
<buttontype=submitstyle="width:200px;">***ACTIVAR***Apagado</button>
</form><br/>
</center>
</body>
</html>

almodificarelformulariowebcorriendodirectamenteenelarduinosemuestranlassiguientes
modificacionesenlapaginayenelcodigocorriendointernamenteenelethernetshield.

Yensucodigo
<!doctypehtml>
<html>
<head>
<title>ArduinoRemoto</title>
<metaname="viewport"content="<width=320">
<metaname="viewport"content="width=devicewidth">
<metacharset="utf8">
<metaname="viewport"content"initialscale=1.0,userscalable=no">
</head>
<body>
<center>
<fontsize="5"face="verdana"color="green">ProyectoTelefonicos</font>
<formaction="led1"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinExterior***
Encendido</button>
</form><br/>
<formaction="led2"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinInterior***
Encendido</button>
</form><br/>
<formaction="led3"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinJardin***
Encendido</button>
</form><br/>
<formaction="led4"method="get">
<buttontype=submitstyle="width:200px;">***IluminacinSala***Apagado</button>
</form><br/>
<formaction="led6"method="get">

<buttontype=submitstyle="width:200px;">***AireAcondicionado***Apagado</button>
</form><br/>
<formaction="led7"method="get">
<buttontype=submitstyle="width:200px;">***Alarma***Apagado</button>
</form><br/>
<formaction="led8"method="get">
<buttontype=submitstyle="width:200px;">***ACTIVAR***Apagado</button>
</form><br/>
</center>
</body>
</html>

asigeneramoslainteraccionentreelhardware/maquetaynuestrositioweb
apoyandonosenelsiguientecodigocorriendosobrelatarjetaarduino/uno.
CodigoArduino
//LibreriasnecesariasparaelfuncionamientoadecuadodelatarjetaarduinoyelshieldEthernet
#include<SPI.h>
#include<string.h>
#include<Ethernet.h>
//AquiseespecificaladireccinMACdelEthernetShieldasicomosudireccinIPypuerto
TCP.
bytemac[]={0x90,0xA2,0xDA,0x00,0x9B,0x36};
byteip[]={192,168,1,200};
EthernetServerserver(8090);
//aquiseespecificaelvalordefaultdecadavariableledX,xesigualalpindesalidaenla
tarjeta//arduino
intled1=1;
intled2=2;
intled3=3;
intled4=4;
intled5=5;
intled6=6;
intled7=7;
intled8=9;
//aquisedeclaralavariablequealmacenaraelestadodelledEncendido/Apagado
StringreadString=String(30);
StringstatusLed;
voidsetup(){
//Aquiseinicializanlosdispositivosdeelcontroladorarduinosuspuertosysuethernetshield.
Ethernet.begin(mac,ip);

pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);

}
voidloop(){
//Aquiseinicializaelcodigodeelservidorethernet

EthernetClientclient=server.available();
if(client)
{
while(client.connected())
{
if(client.available())
{
charc=client.read();
if(readString.length()<30){
readString+=(c);
}
if(c=='\n')
{
//rutinaencendidodeleds
if(readString.indexOf("led1")>0){
digitalWrite(led1,!digitalRead(led1));
}
if(readString.indexOf("led2")>0){
digitalWrite(led2,!digitalRead(led2));
}

if(readString.indexOf("led3")>0){
digitalWrite(led3,!digitalRead(led3));
}
if(readString.indexOf("led4")>0){
digitalWrite(led4,!digitalRead(led4));
}
if(readString.indexOf("led5")>0){
digitalWrite(led5,!digitalRead(led5));
}
if(readString.indexOf("led6")>0){
digitalWrite(led6,!digitalRead(led6));
}
if(readString.indexOf("led7")>0){
digitalWrite(led7,!digitalRead(led7));
}
if(readString.indexOf("led8")>0){
digitalWrite(led8,!digitalRead(led8));
}

//AquiempiezaaescribirenelservidorHTTPlapaginaWEBamostrarenelnavegador
enla
direccionHTTP://192.168.1.200:8090
client.println("HTTP/1.1200OK");
client.println("ContentType:text/html");
client.println();
client.println("<!doctypehtml>");
client.println("<html>");
client.println("<head>");
client.println("<title>ArduinoRemoto</title>");
client.println("<metaname=\"viewport\"content=\"<width=320\">");
client.println("<metaname=\"viewport\"content=\"width=devicewidth\">");
client.println("<metacharset=\"utf8\">");
client.println("<metaname=\"viewport\"content\"initialscale=1.0,userscalable=no\">");
client.println("</head>");
client.println("<body>");
client.println("<center>");
client.println("<fontsize=\"5\"face=\"verdana\"color=\"green\">Proyecto

Telefonicos</font>");

//consultaelestadodelled1por1pormediodelaopcionGETdeHTMLFORMS
if(digitalRead(led1)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}

client.println("<formaction=\"led1\"method=\"get\">");
//yescribeelresultadoeneltextodelformularioWEB
client.println("<buttontype=submitstyle=\"width:200px;\">***IluminacinExterior***
"+statusLed+"</button>");
client.println("</form><br/>");
if(digitalRead(led2)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led2\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***IluminacinInterior***
"+statusLed+"</button>");
client.println("</form><br/>");
if(digitalRead(led3)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led3\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***IluminacinJardin***
"+statusLed+"</button>");
client.println("</form><br/>");
if(digitalRead(led4)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led4\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***IluminacinSala***
"+statusLed+"</button>");
client.println("</form><br/>");
if(digitalRead(led6)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led6\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***AireAcondicionado***
"+statusLed+"</button>");
client.println("</form><br/>");

if(digitalRead(led7)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led7\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***Alarma***"+statusLed+"</button>");
client.println("</form><br/>");
if(digitalRead(led8)){
statusLed="Encendido";
}else{
statusLed="Apagado";
}
client.println("<formaction=\"led8\"method=\"get\">");
client.println("<buttontype=submitstyle=\"width:200px;\">***ACTIVAR***
"+statusLed+"</button>");
client.println("</form><br/>");
client.println("</center>");
client.println("</body>");
client.println("</html>");
readString="";
client.stop();
}
}
}
}
}
//findelacodificacion

Aplicacionandroid
paralaaplicacinandroid,seusoelidedeMITAPPINVENTORhttp://ai2.appinventor.mit.edudebido
aqueelideoficialdeandroidesdemasiadopesadoynocontabamosconunequipoconlas
prestacionesnecesariasparasumanejo.
Engeneralenelsitiodedesarrollohttp://ai2.appinventor.mit.eduseintroducengraficamentetodoslos
complementos(imagenes,botones,sensores,layouts),sesubenalsitioarchivos(imagenes,audio,
video)yluegosecodificamediantebloquesollavesdecomplementollamadosbloques.

Diseodenuestraaplicacion.

Archivossubidosalaplataformaparaserusadosluego.

Ycodificaciondelaaplicacin.

Engeneralloquelaaplicacionhaceesqueinicializaunadireccionwebparatomarlacomourl.Luego
consultasuresponsecontentenformadequeryparaleerelcontenidodelaetiquetadelosbotones
html,ydependiendodesurepuestacambiaeliconodeunaimagenaotraejemplodelampHigh.pnga
lampHigh_ON.pngparadarsentidoalusuariodelaaccinqueseestallevandoacabo.Alseresta
consultabidireccionalyelarchivosergeneradodinamicamenteelusuarioalpresionarunbotonel
cambiosereflejatambienenladireccionandroidarduinodandolasensacindecontrol.

Potrebbero piacerti anche