SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Aplicaciones	
  Prác/cas	
  	
  
                                     con	
  	
  
                              Sistemas	
  Arduino	
  




     Introducción	
  a	
  Webduino	
  
                                                                                   Ponentes:	
  
CEP	
  SEVILLA	
                                                Luis	
  Modesto	
  González	
  
IES	
  Los	
  Viveros	
                                                  José	
  Pujol	
  Pérez	
  
Curso	
  2011/2012	
                                                        Coordinador:	
  
Ref:	
  11412FP23	
                                            Leopoldo	
  Acal	
  Rodríguez	
  
Índice	
  

•  Webduino	
  
•  Instalación	
  
•  Funciones	
  
•  Como	
  funciona	
  un	
  servidor	
  Web	
  
•  Tipos	
  de	
  aplicaciones	
  
•  HTML	
  
•  Programación	
  con	
  Webduino	
  
•  Ejemplos	
  
                                                   1	
  
Webduino	
  

•  Librería	
  que	
  facilita	
  la	
  implementación	
  de	
  un	
  servidor	
  web	
  con 	
  
   Arduino	
  
•  Permite	
   que	
   podamos	
   interactuar	
   con	
   nuestro	
   arduino	
   a         	
  
   través	
  de	
  un	
  navegador	
  
•  Será	
   necesario	
   crear	
   una	
   página	
   web	
   en	
   html	
   que	
   deberá	
  
   estar	
  guardada	
  en	
  arduino.	
  
•  Enviando	
   órdenes	
   desde	
   un	
   formulario	
   podremos	
   ejecutar            	
  
   acciones	
  
•  Podemos	
   añadir	
   funcionalidades	
   AJAX	
   que	
   permitan	
   leer	
   el      	
  
   estado	
  de	
  una	
  entrada	
  analógica	
  en	
  /empo	
  real	
  (o	
  casi)	
  


                                                                                                2	
  
Instalación	
  

•  Se	
  descarga	
  desde:	
  
     –  h[p://code.google.com/p/webduino/	
  o	
  
     –  h[ps://github.com/sirleech/Webduino	
  
•  Creamos	
  la	
  carpeta	
  WebServer	
  dentro	
  de	
  librerías	
  
•  Copiamos	
  los	
  ejemplos	
  dentro	
  de	
  examples	
  
•  Es	
  necesaria	
  la	
  librería	
  streaming,	
  que	
  descargamos	
  desde	
  
   h[p://arduiniana.org/libraries/streaming/	
  
•  Limitaciones:	
  	
  
    –  1	
  única	
  conexión	
  simultánea	
  (el	
  siguiente	
  debe	
  esperar)	
  	
  
    –  No	
  es	
  posible	
  SSL	
  
    –  Mal	
  documentada	
  
                                                                                              3	
  
Funciones
                                         	
  

•    Begin();	
  inicia	
  librería	
  
•    h[pSuccess();devuelve	
  ok	
  
•    readPOSTparam(p1,len1,p2,len2);Leer	
  parámetro	
  POST	
  
•    print(valor):escribir	
  valor	
  
•    printP(valor);escribir	
  valor	
  desde	
  la	
  flash	
  
•    setDefaultCommand(&tratamiento)	
  
•    addCommand("index.html",	
  &tratamiento)	
  
•    processConnec/on(buff,	
  &len);tamaño	
  del	
  buffer	
  para	
  recibir	
  
     datos	
  


                                                                                    4	
  
Instalación	
  

Hola	
  Mundo	
  
•  Abrimos	
  el	
  ejemplo	
  “Hola	
  Mundo”	
  
•  Ajustamos	
  la	
  dirección	
  Mac	
  
•  Ajustamos	
  la	
  IP	
  
•  Abrimos	
  el	
  navegador	
  con	
  la	
  ip	
  de	
  nuestro	
  arduino	
  




                                                                                   5	
  
Cómo	
  funciona	
  un	
  servidor	
  web	
  

El	
  cliente	
  (mi	
  PC)	
  envía	
  una	
  pe/ción	
  	
  al	
  servidor	
  en	
  texto	
  plano,	
  
      que	
  puede	
  ser	
  de	
  /po	
  GET	
  o	
  POST	
  
            •  GET	
  <shorturl>	
  HTTP/1.1	
  
            •  Host:	
  example.com	
  
            •  <other-­‐headers>	
  	
  
            •  <blankline>	
  

            •  POST	
  <shorturl>	
  HTTP/1.1	
  
            •  Host:	
  example.com	
  
            •  <other-­‐headers>	
  
            •  <blankline>	
  
            •  <url-­‐encoded-­‐content>	
  

                                                                                                            6	
  
Como	
  funciona	
  un	
  servidor	
  web	
  

•  El	
  servidor,	
  contesta	
  enviando	
  un	
  encabezado	
  y	
  un	
  
   contenido.	
  
•  En	
  el	
  encabezado	
  viaja	
  una	
  señal	
  de	
  estado	
  
             – 200	
  OK	
  
             – Content-­‐Type:	
  text/html	
  
             – <other-­‐headers>	
  
             – <blank-­‐line>	
  
             – <HTML	
  web	
  page>	
  




                                                                                7	
  
TIPOS	
  DE	
  APLICACIONES	
  

•  Unidireccionales:	
  Arduino	
  nos	
  presenta	
  el	
  estado	
  de	
  algún	
  
   sensor.	
  Para	
  refrescar,	
  debemos	
  hacer	
  una	
  recarga	
  de	
  la	
  
   página.	
  
•  Interac/vas:	
  Arduino	
  nos	
  presente	
  un	
  menú,	
  en	
  el	
  que	
  
   tenemos	
  algún	
  elemento	
  para	
  ejecutar	
  acciones,	
  por	
  ejemplo,	
  
   un	
  botón	
  para	
  encender	
  o	
  apagar.	
  
•  Con	
  autorefresco:	
  La	
  página	
  que	
  nos	
  presenta	
  arduino,	
  se	
  
   refresca	
  de	
  forma	
  automá/ca	
  cada	
  cierto	
  /empo,	
  así	
  
   podremos	
  detectar	
  cuando	
  ocurra	
  algo.	
  	
  



                                                                                          8	
  
HTML
                                           	
  

•  Las	
  páginas	
  que	
  visualiza	
  un	
  navegador,	
  deben	
  estar	
  escritas	
  
   en	
  HTML	
  
•  HTML,	
  permite	
  incrustar	
  enlaces,	
  por	
  lo	
  que	
  podemos	
  hacer	
  
   que	
  una	
  página	
  web	
  servida	
  por	
  arduino,	
  presente	
  imágenes	
  o	
  
   ficheros	
  alojados	
  en	
  otros	
  servidores.	
  

         <html>
           <head><title>Hello, World</title></head>
           <body>
           <img src="http://www.cepsevilla.es/templates/mineown/images/header21.jpg”>
           <h1>Hello, World!</h1>
           </body>
         </html>




                                                                                            9	
  
Limitaciones	
  de	
  arduino	
  con	
  HTML
                                           	
  
 •  Arduino	
  /ene	
  2k	
  de	
  ram	
  y	
  32k	
  de	
  Flash.	
  
 •  Una	
  aplicación	
  web	
  puede	
  requerir	
  bastante	
  texto	
  .	
  
 •  Si	
  escribimos:	
  
              •  server.print("<p>Hello!</p>");	
  
              •  El	
  texto	
  se	
  guarda	
  en	
  RAM	
  
 •  Si	
  escribimos	
  	
  
              •  P(message)	
  =	
  "<h1>Webduino</h1>";	
  	
  
              •  server.printP(message);	
  
              •  El	
  texto	
  se	
  guarda	
  en	
  Flash	
  
 •  La	
  librería	
  Streaming,	
  permite	
  	
  
              •  server	
  <<	
  "You	
  have	
  "	
  <<	
  n	
  <<	
  "	
  bananas";	
  
              •  Frente	
  a:	
  	
  
                        –  server.print("You	
  have	
  "	
  );	
  
                        –  server.print(n);	
  
                        –  Server.print("	
  bananas";);	
  

                                                                                            10	
  
Formularios	
  HTML
                                                	
  

•  Permiten	
  añadir	
  interac/vidad.	
  
•  Necesitaremos	
  un	
  editor	
  HTML	
  para	
  diseñar	
  el	
  formulario	
  y	
  
   luego	
  moverlo	
  a	
  arduino.	
  
•  Se	
  admiten	
  envío	
  de	
  parámetros	
  por	
  POST	
  y	
  por	
  GET	
  (desde	
  la	
  
   propia	
  url)	
  




                                                                                                 11	
  
HTML	
  Páginas	
  con	
  autorefresco	
  

•  Con	
  un	
  encabezado	
  del	
  /po:	
  
           •  <META	
  HTTP-­‐EQUIV="Refresh"	
  CONTENT=“0.5">	
  
           Conseguimos	
  que	
  la	
  página	
  se	
  refresque	
  2	
  veces	
  cada	
  segundo	
  
•  Podemos	
  incluir	
  scripts	
  de	
  javascript	
  que	
  autorefresquen	
  la	
  
   página	
  cada	
  x	
  segundos.	
  	
  
•  Podemos	
  incluir	
  librerías	
  AJAX	
  	
  refresquen	
  sólo	
  los	
  datos,	
  sin	
  
   recargar	
  toda	
  la	
  página.	
  




                                                                                                        12	
  
Programación	
  con	
  Webduino	
  

Tenemos	
  que	
  definir	
  una	
  función	
  que	
  será	
  la	
  que	
  se	
  encargue	
  de	
  
  tratar	
  las	
  pe/ciones	
  web.	
  
     #define PREFIX "/carpeta" /// ó ""	
  
     WebServer webserver(PREFIX, 80);	
  

     void tratamiento(WebServer                    &server, WebServer::ConnectionType type, char
     *url_tail, bool tail_com)	
  
     {//Server: Objeto que representa al servidor
     //ConnectionType tipo de petición; INVALID, GET, HEAD, POST, PUT, DELETE, PATCH
     //url_tail : Parte de la url que no coincide con carpetas o ficheros registrados
     //tail_complete:es true, si toda la url entró en el buffer, flase en caso contrario
     //Tratamiento	
  
     }	
  

     void setup()	
  
     {	
  
             Ethernet.begin(mac, ip);	
  
              webserver.setDefaultCommand(&tratamiento);	
  
     }	
  

     void loop(){	
  
             webserver.processConnection();	
  
     }	
  

                                                                                                   13	
  
Ejemplo	
  1:	
  Enciende	
  Led.
                                                           	
  

•  Creamos	
  la	
  página	
  principal	
  con	
  un	
  editor	
  html	
  
•  Abrimos	
  el	
  ejemplo	
  “Hello	
  world”	
  y	
  cambiamos	
  el	
  texto	
  a	
  
   mostrar	
  por	
  el	
  del	
  formulario	
  

                 <html>	
  
                 <head>	
  
                 <meta	
  h[p-­‐equiv="Content-­‐Type"	
  content="text/html;	
  charset=windows-­‐1252">	
  
                 </tle>Enciende	
  Led<//tle>	
  
                 </head>	
  
                 <body>	
  
                 <center>	
  
                 Pulsa	
  para	
  encender	
  o	
  apagar	
  led	
  en	
  pin	
  3	
  de	
  arduino	
  
                 <form	
  method="POST"	
  ac/on="">	
                           	
  
                 	
           <p><input	
  type="submit"	
  value="Encender"	
  name="en"></p>	
  
                 	
           <p><input	
  type="submit"	
  value="Apagar"	
  name="ap"></p>	
  
                 </form>	
  
                 </center>	
  
                 </body>	
  
                 </html>	
  


                                                                                                                14	
  
Ejemplo	
  1:	
  Enciende	
  Led.
                                                        	
  

•  Tenemos	
  que	
  procesar	
  las	
  solicitudes	
  
   POST	
  y	
  ver	
  si	
  existe	
  una	
  parámetro	
  
   Encender	
  o	
  Apagar,	
  que	
  es	
  el	
  “value”	
  del	
  
   botón	
  pulsado.	
  
•  El	
  código	
  lo	
  colocamos	
  dentro	
  del	
  
   procesamiento	
  del	
  comando	
  
if (type = WebServer::POST)
    {
        while (server.readPOSTparam(nombre,10,valor,10))
    {
      if (strcmp(valor,"Encender")==0) digitalWrite(3,HIGH);
      if (strcmp(valor,"Apagar") ==0) digitalWrite(3,LOW);
    }
  }




                                                                       15	
  
Ejemplo	
  2:	
  Lee	
  entrada	
  digital.
                                                                 	
  

•  Modificamos	
  la	
  página	
  anterior	
  ya	
  añadimos	
  un	
  botón	
  que	
  cambiará	
  a	
  
   verde	
  cuando	
  la	
  entrada	
  esté	
  alta.	
  
•  Añadimos	
  el	
  encabezado	
  <META	
  HTTP-­‐EQUIV="Refresh"	
  CONTENT=“1">,	
  
   para	
  que	
  se	
  refresque	
  cada	
  segundo	
  
              <html>	
  
              <head>	
  
              <meta	
  h[p-­‐equiv="Content-­‐Type"	
  content="text/html;	
  charset=windows-­‐1252">	
  
              <META	
  HTTP-­‐EQUIV="Refresh"	
  CONTENT=“1">	
  
              </tle>Enciende	
  Led<//tle>	
  
              </head>	
  
              <body>	
  
              <center>	
  
              Pulsa	
  para	
  encender	
  o	
  apagar	
  
              <form	
  method="POST"	
  ac/on="">	
           	
  
              	
           <p><input	
  type="submit"	
  value="Encender"	
  name="en"></p>	
  
              	
           <p><input	
  type="submit"	
  value="Apagar"	
  name="ap">	
  </p>	
  
              	
           <p><input	
  type="bu[on"	
  value="	
  "	
  name="B1"	
  STYLE="background-­‐color:green"	
  >	
  Entrada	
  digital	
  1</p>	
  
              </form>	
  
              </center>	
  
              </body>	
  
              </html>	
  

                                                                                                                                                                16	
  
Ejemplo	
  2:	
  Lee	
  entrada	
  digital.
                                                                	
  

•  Tenemos	
  que	
  insertar	
  de	
  forma	
  condicional,	
  el	
  es/lo	
  de	
  color	
  del	
  botón	
  en	
  
   función	
  del	
  valor	
  de	
  la	
  entrada	
  digital.	
  
•  Dividimos	
  el	
  mensaje	
  en	
  2	
  trozos,	
  e	
  insertamos	
  en	
  medio	
  el	
  color	
  del	
  
   botón	
  
 	
  P(helloMsg1)       = “<html><head>“
 "<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">“
 "<META HTTP-EQUIV="Refresh" CONTENT="1">“
 "<title>Enciende Led</title>""</head><body><center>“
 "Pulsa para encender o apagar led conectado entre el pin 3 y el 2 de arduino, y para evaluar el nivel de l
 a entrada digital 5""<form method="POST" action="">      “
 "       <p><input type="submit" value="Encender" name="en"></p>“
 “       <p><input type="submit" value="Apagar" name="ap"></p>“
 "<p><input type="button" value=" " name="B1" ";
 P(helloMsg2)           ="> Entrada digital 1</p> </form></center></body></html>";

           char color[]="STYLE="background-color:green"";
           if (digitalRead(5)==0)strcpy(color," ");
           server.printP( helloMsg1);
           server.print(color);
           server.printP( helloMsg2);

                                                                                                                 17	
  
Aplicaciones	
  Prác/cas	
  	
  
                                     con	
  	
  
                              Sistemas	
  Arduino	
  




     Introducción	
  a	
  Webduino	
  
                                                                                   Ponentes:	
  
CEP	
  SEVILLA	
                                                Luis	
  Modesto	
  González	
  
IES	
  Los	
  Viveros	
                                                  José	
  Pujol	
  Pérez	
  
Curso	
  2011/2012	
                                                        Coordinador:	
  
Ref:	
  11412FP23	
                                            Leopoldo	
  Acal	
  Rodríguez	
  

Más contenido relacionado

La actualidad más candente

Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...Carlos Camacho
 
Arduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digitalArduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digitalDaniel Guisado
 
Programacion basica en Arduino
Programacion basica en ArduinoProgramacion basica en Arduino
Programacion basica en ArduinoAlberto Labarga
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con ArduinoJomicast
 
ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino El Gfe Davidson
 
Interruptor crepuscular con LDR y ARDUINO
Interruptor crepuscular con LDR y ARDUINOInterruptor crepuscular con LDR y ARDUINO
Interruptor crepuscular con LDR y ARDUINOLuis Torreño Peromingo
 
Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesiónJavier Gamarra
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoRamiro Hernandez Michua
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010Rubén Loredo
 
Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012assdl
 
Introduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salidaIntroduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salidaMoises Nuñez Silva
 
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...RFIC-IUMA
 
Taller Arduino espacio-RES 3ª Sesion
Taller Arduino espacio-RES 3ª SesionTaller Arduino espacio-RES 3ª Sesion
Taller Arduino espacio-RES 3ª SesionJosé Pujol Pérez
 

La actualidad más candente (20)

Iniciación a Arduino
Iniciación a ArduinoIniciación a Arduino
Iniciación a Arduino
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
 
Arduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digitalArduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digital
 
Programacion basica en Arduino
Programacion basica en ArduinoProgramacion basica en Arduino
Programacion basica en Arduino
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con Arduino
 
ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino
 
Seminario de Arduino
Seminario de ArduinoSeminario de Arduino
Seminario de Arduino
 
Interruptor crepuscular con LDR y ARDUINO
Interruptor crepuscular con LDR y ARDUINOInterruptor crepuscular con LDR y ARDUINO
Interruptor crepuscular con LDR y ARDUINO
 
Taller arduino intermedio
Taller arduino intermedio Taller arduino intermedio
Taller arduino intermedio
 
Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesión
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino uno
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010
 
Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012
 
Introduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salidaIntroduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salida
 
Curso arduino basico bitbloq
Curso arduino basico bitbloqCurso arduino basico bitbloq
Curso arduino basico bitbloq
 
Arduino practicas
Arduino practicasArduino practicas
Arduino practicas
 
Cargando el primer programa de arduino
Cargando el primer programa de arduinoCargando el primer programa de arduino
Cargando el primer programa de arduino
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
 
Taller Arduino espacio-RES 3ª Sesion
Taller Arduino espacio-RES 3ª SesionTaller Arduino espacio-RES 3ª Sesion
Taller Arduino espacio-RES 3ª Sesion
 

Destacado

Arduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaArduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaJosé Pujol Pérez
 
Taller Arduino espacio-RES 2ª Sesion
Taller Arduino espacio-RES 2ª SesionTaller Arduino espacio-RES 2ª Sesion
Taller Arduino espacio-RES 2ª SesionJosé Pujol Pérez
 
Vehiculo controlado por app y Arduino
Vehiculo controlado por app y ArduinoVehiculo controlado por app y Arduino
Vehiculo controlado por app y ArduinoJosé Pujol Pérez
 
Practicas E -S Analogicas Arduino
Practicas E -S Analogicas ArduinoPracticas E -S Analogicas Arduino
Practicas E -S Analogicas ArduinoJosé Pujol Pérez
 
Prácticas Entradas Salidas Digitales
Prácticas Entradas Salidas DigitalesPrácticas Entradas Salidas Digitales
Prácticas Entradas Salidas DigitalesJosé Pujol Pérez
 
Introduccion a Openscad y Blockscad
Introduccion a Openscad y BlockscadIntroduccion a Openscad y Blockscad
Introduccion a Openscad y BlockscadJosé Pujol Pérez
 
Multievaluación con Rúbricas y Formularios
Multievaluación con Rúbricas y FormulariosMultievaluación con Rúbricas y Formularios
Multievaluación con Rúbricas y FormulariosJosé Pujol Pérez
 
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...Tino Fernández
 

Destacado (13)

Arduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en SecundariaArduino: Programación y Robótica en Secundaria
Arduino: Programación y Robótica en Secundaria
 
Motores-Arduino
Motores-ArduinoMotores-Arduino
Motores-Arduino
 
Taller Arduino espacio-RES 2ª Sesion
Taller Arduino espacio-RES 2ª SesionTaller Arduino espacio-RES 2ª Sesion
Taller Arduino espacio-RES 2ª Sesion
 
Vehiculo controlado por app y Arduino
Vehiculo controlado por app y ArduinoVehiculo controlado por app y Arduino
Vehiculo controlado por app y Arduino
 
Arduino vs S4A
Arduino vs S4AArduino vs S4A
Arduino vs S4A
 
Practicas E -S Analogicas Arduino
Practicas E -S Analogicas ArduinoPracticas E -S Analogicas Arduino
Practicas E -S Analogicas Arduino
 
Iniciacion arduino
Iniciacion arduinoIniciacion arduino
Iniciacion arduino
 
Prácticas Entradas Salidas Digitales
Prácticas Entradas Salidas DigitalesPrácticas Entradas Salidas Digitales
Prácticas Entradas Salidas Digitales
 
Introduccion a Openscad y Blockscad
Introduccion a Openscad y BlockscadIntroduccion a Openscad y Blockscad
Introduccion a Openscad y Blockscad
 
Impresoras 3d opensource
Impresoras 3d opensourceImpresoras 3d opensource
Impresoras 3d opensource
 
Que es scratch
Que es scratchQue es scratch
Que es scratch
 
Multievaluación con Rúbricas y Formularios
Multievaluación con Rúbricas y FormulariosMultievaluación con Rúbricas y Formularios
Multievaluación con Rúbricas y Formularios
 
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
 

Similar a Libreria webduino

5 servidor web
5 servidor web5 servidor web
5 servidor webangeles104
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)Tensor
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a phpEDUARDLARA1
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internetcristinaig123
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdfCarlosDavidMontellan
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysqljograci
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apachegarciadebora
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidoresrossykeles
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes drossykeles
 
Servidor Web Apache para Linux
Servidor Web Apache para LinuxServidor Web Apache para Linux
Servidor Web Apache para LinuxMaría del Cisne
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - PhpPROD LARD
 

Similar a Libreria webduino (20)

Curso de php
Curso de phpCurso de php
Curso de php
 
Servidorweb casero
Servidorweb caseroServidorweb casero
Servidorweb casero
 
5 servidor web
5 servidor web5 servidor web
5 servidor web
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a php
 
Curso php-my sql-clase-2
Curso php-my sql-clase-2Curso php-my sql-clase-2
Curso php-my sql-clase-2
 
Servidor web
Servidor webServidor web
Servidor web
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internet
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf
 
Servidores
ServidoresServidores
Servidores
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysql
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 
Php 4.3
Php 4.3Php 4.3
Php 4.3
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
 
Apache practica
Apache practicaApache practica
Apache practica
 
Servidor Web Apache para Linux
Servidor Web Apache para LinuxServidor Web Apache para Linux
Servidor Web Apache para Linux
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 

Más de José Pujol Pérez

App inventor bluetooth Arduino
App inventor bluetooth ArduinoApp inventor bluetooth Arduino
App inventor bluetooth ArduinoJosé Pujol Pérez
 
Taller Arduino con Kiwibot- Interruptor crepuscular
Taller Arduino con Kiwibot- Interruptor crepuscularTaller Arduino con Kiwibot- Interruptor crepuscular
Taller Arduino con Kiwibot- Interruptor crepuscularJosé Pujol Pérez
 
Paralelismo y sincronizacion scratch
Paralelismo y sincronizacion scratchParalelismo y sincronizacion scratch
Paralelismo y sincronizacion scratchJosé Pujol Pérez
 
Memoria Casa Inteligente con S4A
Memoria Casa Inteligente con S4AMemoria Casa Inteligente con S4A
Memoria Casa Inteligente con S4AJosé Pujol Pérez
 
Programacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceProgramacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceJosé Pujol Pérez
 
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaProgramacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaJosé Pujol Pérez
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1José Pujol Pérez
 
P11: Kiwibot Basic Shield: Control matriz led sin libreria
P11: Kiwibot Basic Shield:  Control matriz led sin libreriaP11: Kiwibot Basic Shield:  Control matriz led sin libreria
P11: Kiwibot Basic Shield: Control matriz led sin libreriaJosé Pujol Pérez
 
P01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoP01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoJosé Pujol Pérez
 
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosP10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosJosé Pujol Pérez
 

Más de José Pujol Pérez (20)

Arduino control motores cc
Arduino control motores ccArduino control motores cc
Arduino control motores cc
 
App inventor bluetooth Arduino
App inventor bluetooth ArduinoApp inventor bluetooth Arduino
App inventor bluetooth Arduino
 
Taller Arduino con Kiwibot- Interruptor crepuscular
Taller Arduino con Kiwibot- Interruptor crepuscularTaller Arduino con Kiwibot- Interruptor crepuscular
Taller Arduino con Kiwibot- Interruptor crepuscular
 
Scratch: Clones
Scratch: ClonesScratch: Clones
Scratch: Clones
 
Paralelismo y sincronizacion scratch
Paralelismo y sincronizacion scratchParalelismo y sincronizacion scratch
Paralelismo y sincronizacion scratch
 
Depuracion errores scratch
Depuracion errores scratchDepuracion errores scratch
Depuracion errores scratch
 
Por que trabajar con scratch
Por que trabajar con scratchPor que trabajar con scratch
Por que trabajar con scratch
 
S4A Metodo Trabajo
S4A Metodo TrabajoS4A Metodo Trabajo
S4A Metodo Trabajo
 
Introducción a Processing
Introducción a ProcessingIntroducción a Processing
Introducción a Processing
 
Memoria Casa Inteligente con S4A
Memoria Casa Inteligente con S4AMemoria Casa Inteligente con S4A
Memoria Casa Inteligente con S4A
 
S4A Metodologia
S4A MetodologiaS4A Metodologia
S4A Metodologia
 
Introducción a Scratch
Introducción a ScratchIntroducción a Scratch
Introducción a Scratch
 
Programacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open SourceProgramacion y Robótica Secundaria Open Source
Programacion y Robótica Secundaria Open Source
 
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo PropuestaProgramacion y Robotica Secundaria-Linea Trabajo Propuesta
Programacion y Robotica Secundaria-Linea Trabajo Propuesta
 
Taller fabricación robots-d2
Taller fabricación robots-d2Taller fabricación robots-d2
Taller fabricación robots-d2
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
 
Kiwibot Robotica Open Source
Kiwibot  Robotica Open SourceKiwibot  Robotica Open Source
Kiwibot Robotica Open Source
 
P11: Kiwibot Basic Shield: Control matriz led sin libreria
P11: Kiwibot Basic Shield:  Control matriz led sin libreriaP11: Kiwibot Basic Shield:  Control matriz led sin libreria
P11: Kiwibot Basic Shield: Control matriz led sin libreria
 
P01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoP01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con Arduino
 
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con ServosP10: Kiwibot Basic Shield: Control Vehiculos con Servos
P10: Kiwibot Basic Shield: Control Vehiculos con Servos
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (13)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Libreria webduino

  • 1. Aplicaciones  Prác/cas     con     Sistemas  Arduino   Introducción  a  Webduino   Ponentes:   CEP  SEVILLA   Luis  Modesto  González   IES  Los  Viveros   José  Pujol  Pérez   Curso  2011/2012   Coordinador:   Ref:  11412FP23   Leopoldo  Acal  Rodríguez  
  • 2. Índice   •  Webduino   •  Instalación   •  Funciones   •  Como  funciona  un  servidor  Web   •  Tipos  de  aplicaciones   •  HTML   •  Programación  con  Webduino   •  Ejemplos   1  
  • 3. Webduino   •  Librería  que  facilita  la  implementación  de  un  servidor  web  con   Arduino   •  Permite   que   podamos   interactuar   con   nuestro   arduino   a   través  de  un  navegador   •  Será   necesario   crear   una   página   web   en   html   que   deberá   estar  guardada  en  arduino.   •  Enviando   órdenes   desde   un   formulario   podremos   ejecutar   acciones   •  Podemos   añadir   funcionalidades   AJAX   que   permitan   leer   el   estado  de  una  entrada  analógica  en  /empo  real  (o  casi)   2  
  • 4. Instalación   •  Se  descarga  desde:   –  h[p://code.google.com/p/webduino/  o   –  h[ps://github.com/sirleech/Webduino   •  Creamos  la  carpeta  WebServer  dentro  de  librerías   •  Copiamos  los  ejemplos  dentro  de  examples   •  Es  necesaria  la  librería  streaming,  que  descargamos  desde   h[p://arduiniana.org/libraries/streaming/   •  Limitaciones:     –  1  única  conexión  simultánea  (el  siguiente  debe  esperar)     –  No  es  posible  SSL   –  Mal  documentada   3  
  • 5. Funciones   •  Begin();  inicia  librería   •  h[pSuccess();devuelve  ok   •  readPOSTparam(p1,len1,p2,len2);Leer  parámetro  POST   •  print(valor):escribir  valor   •  printP(valor);escribir  valor  desde  la  flash   •  setDefaultCommand(&tratamiento)   •  addCommand("index.html",  &tratamiento)   •  processConnec/on(buff,  &len);tamaño  del  buffer  para  recibir   datos   4  
  • 6. Instalación   Hola  Mundo   •  Abrimos  el  ejemplo  “Hola  Mundo”   •  Ajustamos  la  dirección  Mac   •  Ajustamos  la  IP   •  Abrimos  el  navegador  con  la  ip  de  nuestro  arduino   5  
  • 7. Cómo  funciona  un  servidor  web   El  cliente  (mi  PC)  envía  una  pe/ción    al  servidor  en  texto  plano,   que  puede  ser  de  /po  GET  o  POST   •  GET  <shorturl>  HTTP/1.1   •  Host:  example.com   •  <other-­‐headers>     •  <blankline>   •  POST  <shorturl>  HTTP/1.1   •  Host:  example.com   •  <other-­‐headers>   •  <blankline>   •  <url-­‐encoded-­‐content>   6  
  • 8. Como  funciona  un  servidor  web   •  El  servidor,  contesta  enviando  un  encabezado  y  un   contenido.   •  En  el  encabezado  viaja  una  señal  de  estado   – 200  OK   – Content-­‐Type:  text/html   – <other-­‐headers>   – <blank-­‐line>   – <HTML  web  page>   7  
  • 9. TIPOS  DE  APLICACIONES   •  Unidireccionales:  Arduino  nos  presenta  el  estado  de  algún   sensor.  Para  refrescar,  debemos  hacer  una  recarga  de  la   página.   •  Interac/vas:  Arduino  nos  presente  un  menú,  en  el  que   tenemos  algún  elemento  para  ejecutar  acciones,  por  ejemplo,   un  botón  para  encender  o  apagar.   •  Con  autorefresco:  La  página  que  nos  presenta  arduino,  se   refresca  de  forma  automá/ca  cada  cierto  /empo,  así   podremos  detectar  cuando  ocurra  algo.     8  
  • 10. HTML   •  Las  páginas  que  visualiza  un  navegador,  deben  estar  escritas   en  HTML   •  HTML,  permite  incrustar  enlaces,  por  lo  que  podemos  hacer   que  una  página  web  servida  por  arduino,  presente  imágenes  o   ficheros  alojados  en  otros  servidores.   <html> <head><title>Hello, World</title></head> <body> <img src="http://www.cepsevilla.es/templates/mineown/images/header21.jpg”> <h1>Hello, World!</h1> </body> </html> 9  
  • 11. Limitaciones  de  arduino  con  HTML   •  Arduino  /ene  2k  de  ram  y  32k  de  Flash.   •  Una  aplicación  web  puede  requerir  bastante  texto  .   •  Si  escribimos:   •  server.print("<p>Hello!</p>");   •  El  texto  se  guarda  en  RAM   •  Si  escribimos     •  P(message)  =  "<h1>Webduino</h1>";     •  server.printP(message);   •  El  texto  se  guarda  en  Flash   •  La  librería  Streaming,  permite     •  server  <<  "You  have  "  <<  n  <<  "  bananas";   •  Frente  a:     –  server.print("You  have  "  );   –  server.print(n);   –  Server.print("  bananas";);   10  
  • 12. Formularios  HTML   •  Permiten  añadir  interac/vidad.   •  Necesitaremos  un  editor  HTML  para  diseñar  el  formulario  y   luego  moverlo  a  arduino.   •  Se  admiten  envío  de  parámetros  por  POST  y  por  GET  (desde  la   propia  url)   11  
  • 13. HTML  Páginas  con  autorefresco   •  Con  un  encabezado  del  /po:   •  <META  HTTP-­‐EQUIV="Refresh"  CONTENT=“0.5">   Conseguimos  que  la  página  se  refresque  2  veces  cada  segundo   •  Podemos  incluir  scripts  de  javascript  que  autorefresquen  la   página  cada  x  segundos.     •  Podemos  incluir  librerías  AJAX    refresquen  sólo  los  datos,  sin   recargar  toda  la  página.   12  
  • 14. Programación  con  Webduino   Tenemos  que  definir  una  función  que  será  la  que  se  encargue  de   tratar  las  pe/ciones  web.   #define PREFIX "/carpeta" /// ó ""   WebServer webserver(PREFIX, 80);   void tratamiento(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_com)   {//Server: Objeto que representa al servidor //ConnectionType tipo de petición; INVALID, GET, HEAD, POST, PUT, DELETE, PATCH //url_tail : Parte de la url que no coincide con carpetas o ficheros registrados //tail_complete:es true, si toda la url entró en el buffer, flase en caso contrario //Tratamiento   }   void setup()   {   Ethernet.begin(mac, ip);   webserver.setDefaultCommand(&tratamiento);   }   void loop(){   webserver.processConnection();   }   13  
  • 15. Ejemplo  1:  Enciende  Led.   •  Creamos  la  página  principal  con  un  editor  html   •  Abrimos  el  ejemplo  “Hello  world”  y  cambiamos  el  texto  a   mostrar  por  el  del  formulario   <html>   <head>   <meta  h[p-­‐equiv="Content-­‐Type"  content="text/html;  charset=windows-­‐1252">   </tle>Enciende  Led<//tle>   </head>   <body>   <center>   Pulsa  para  encender  o  apagar  led  en  pin  3  de  arduino   <form  method="POST"  ac/on="">       <p><input  type="submit"  value="Encender"  name="en"></p>     <p><input  type="submit"  value="Apagar"  name="ap"></p>   </form>   </center>   </body>   </html>   14  
  • 16. Ejemplo  1:  Enciende  Led.   •  Tenemos  que  procesar  las  solicitudes   POST  y  ver  si  existe  una  parámetro   Encender  o  Apagar,  que  es  el  “value”  del   botón  pulsado.   •  El  código  lo  colocamos  dentro  del   procesamiento  del  comando   if (type = WebServer::POST) { while (server.readPOSTparam(nombre,10,valor,10)) { if (strcmp(valor,"Encender")==0) digitalWrite(3,HIGH); if (strcmp(valor,"Apagar") ==0) digitalWrite(3,LOW); } } 15  
  • 17. Ejemplo  2:  Lee  entrada  digital.   •  Modificamos  la  página  anterior  ya  añadimos  un  botón  que  cambiará  a   verde  cuando  la  entrada  esté  alta.   •  Añadimos  el  encabezado  <META  HTTP-­‐EQUIV="Refresh"  CONTENT=“1">,   para  que  se  refresque  cada  segundo   <html>   <head>   <meta  h[p-­‐equiv="Content-­‐Type"  content="text/html;  charset=windows-­‐1252">   <META  HTTP-­‐EQUIV="Refresh"  CONTENT=“1">   </tle>Enciende  Led<//tle>   </head>   <body>   <center>   Pulsa  para  encender  o  apagar   <form  method="POST"  ac/on="">       <p><input  type="submit"  value="Encender"  name="en"></p>     <p><input  type="submit"  value="Apagar"  name="ap">  </p>     <p><input  type="bu[on"  value="  "  name="B1"  STYLE="background-­‐color:green"  >  Entrada  digital  1</p>   </form>   </center>   </body>   </html>   16  
  • 18. Ejemplo  2:  Lee  entrada  digital.   •  Tenemos  que  insertar  de  forma  condicional,  el  es/lo  de  color  del  botón  en   función  del  valor  de  la  entrada  digital.   •  Dividimos  el  mensaje  en  2  trozos,  e  insertamos  en  medio  el  color  del   botón    P(helloMsg1) = “<html><head>“ "<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">“ "<META HTTP-EQUIV="Refresh" CONTENT="1">“ "<title>Enciende Led</title>""</head><body><center>“ "Pulsa para encender o apagar led conectado entre el pin 3 y el 2 de arduino, y para evaluar el nivel de l a entrada digital 5""<form method="POST" action=""> “ " <p><input type="submit" value="Encender" name="en"></p>“ “ <p><input type="submit" value="Apagar" name="ap"></p>“ "<p><input type="button" value=" " name="B1" "; P(helloMsg2) ="> Entrada digital 1</p> </form></center></body></html>"; char color[]="STYLE="background-color:green""; if (digitalRead(5)==0)strcpy(color," "); server.printP( helloMsg1); server.print(color); server.printP( helloMsg2); 17  
  • 19. Aplicaciones  Prác/cas     con     Sistemas  Arduino   Introducción  a  Webduino   Ponentes:   CEP  SEVILLA   Luis  Modesto  González   IES  Los  Viveros   José  Pujol  Pérez   Curso  2011/2012   Coordinador:   Ref:  11412FP23   Leopoldo  Acal  Rodríguez