jueves, 5 de noviembre de 2009

Actuador de led via WebServer en Arduino

Ejemplo de como actuar sobre una salida digital de Arduino para encender un led a través de una página web en un móvil o portátil servida por un servidor web residente en Arduino.



El montaje es el siguiente:

1. Arduino Duemilanove (2009)
2. Ethernet Shield for Arduino
3. Led
4. Móvil o PC portátil

Pasos:

- El Ethernet Shield va conectado al Arduino 2009.
- Alimentamos con 5V a través de un cable USB a un PC portátil (se podría alimentar con baterías)
- Conectamos el Ethernet Shield a la red LAN Ethernet con cable UTP con conector RJ-45.
- Programamos una aplicación .pde (WebServer2) en el portátil y la transferimos por USB al Arduino.
- Conectamos un led en las salidas digitales del Ethernet Shield (PIN 9 y GND).
- Accedemos a la aplicación a través de un navegador web en móvil o pc portátil poniendo la dirección IP del Arduino (http://192.168.1.82)

El programa que reside en Arduino es un servidor web a medida que actúa sobre las entradas digitales del mismo.

El servidor web utiliza las librerías:

- Ethernet.h
- WString.h

y ofrece una página web que consiste en dos botones (ON, OFF) que le pasa por GET el parámetro "do" con los valores ON u OFF de la siguiente manera:



El servidor parsea la URL enviada por el cliente web y obtiene los valores ON u OFF para poner el pin 9 a HIGH o LOW.


17 comentarios:

Unknown dijo...

y como lo haces para controlar mas de una salida de led?


lo ideal son minimo 10...

Ricky dijo...

En la página web cliente se te ofrecerá 10 botones de acción donde cada botón mandará un comando específico por la url. El botón 1 mandará do=ON1 u OFF1, el botón 2 do = ON2 u OFF2, ..., botón 10 do = ON10 u OFF10. Parseas la URL y si lo que recibes es do = ON4 encenderá el led4.

Esto para hacerlo individualizado. De igual modo, se podría actuar por grupos, es decir, que un botón encendiera más de un led.

Ricky dijo...

La librería WString.h puede conseguir en http://arduino.cc/en/Tutorial/TextString

Se tiene que poner descomprimida en la carpeta hardware\libraries de la carpeta del IDE de Arduino. Creo que la carpeta se llama String.

luis dijo...

hola, y como harias para limitar el acceso a usuarios solamente con arduino (no proxy ni xamp, etc)
gracias

Ricky dijo...

Se podrían almacenar unos usuarios en la memoria EEPROM de Arduino y comprobar mediante un formulario de login/password si es alguno de los registrados.

Gerardo Rodríguez dijo...

Hola que tal, oye no tienes el codigo del programa? saludos!

Admin dijo...

Podría ser posible que pusieses/enviases el código? Te lo agradecería mucho.

Unknown dijo...

No os molestéis en pedir el código. Esto es España, nadie comparte nada gratis. Eso son cosas del mundo anglosajón.

Ricky dijo...

Perdonad! Pero todo el mundo que lo ha pedido expresamente se lo he adjuntado por mail.

Pablo Rincon Crespo dijo...
Este comentario ha sido eliminado por el autor.
Pablo Rincon Crespo dijo...

Perdona, una crítica constructiva. A mí el código no me interesa (o al menos no ahora mismo), pero he leído los comentarios y me he quedado un poco sorprendido. La filosofía del proyecto de Arduino es precisamente la de compartir. Puedes usarlo como te venga en gana, pero recuerda que tienes varios esquemas públicos para crear tus propias placas, ver como están hechas, modificarlas a tu antojo, tienes un entorno de compilación y carga de programas, las librerías, tienes la web con documentación del lenguaje de programación, tutoriales, etc. Un montón de material. Imagina que tuvieses que enviar un mail o escribir un comentario para pedir cada una de esas cosas. Y recuerda lo cómodo que lo has tenido tu sin tener que pedirlo. De hecho creo que la gente te agradecería mucho más los posts.
Saludos!

David dijo...

Pablo, llevas toda la razón. Evidentemente este señor puede hacer lo que quiera (poner el código o no), pero desde luego esa no es la filosofía de la que él mismo se está aprovechando, pero vamos que como alguien dice por ahí, esto es España y así nos va, siempre a la cola.

evil dijo...

Ola amigo Me interesa mucho tu programa, soy estudiante y pues si pudieras pasarme por favor tu codigo,

evil.7.tools@gmail.com Un Saludo, ITSLP

Ricky dijo...

Por fin he subido el codigo fuente. Me ha costado pero aquí está.

Un saludo.

JaimeDrn dijo...

Gracias Ricky. Esto hace que sumercé sea un man muy bacano.

Unknown dijo...

Buenas,
he adquirido una placa arduino y el ethernet shield, mientras me llega (es china y tarda casi un mes) estoy cacharreando con el SDK, y me pregunto y la placa ethernet soporta webs complejas (llenas de javascript, formularios,jquery...) o el servidor web es demasiado "light" como pra hacer webs muy 2.0

Ricky dijo...

Que yo sepa son webs bastante lights y no 2.0 pero quien sabe la evolución.