You are on page 1of 9

http://www.prometec.

net/etherswitch/
http://www.prometec.net/modulo-1/
Control de tu casa desde Internet
Controlando desde Internet hasta 10 pines digitales
Objetivos
* Montar un circuito con un 6 LEDs y un Shield Ethernet.
* Crear un servidor Web.
* Presentar un programa de Internet, ideal para monitorizar y controlar
remotamente tu casa.
* Ver como configurar y adaptar este programa a nuestras necesidades.

Material requerido.

Version R3 Esta va a ser la primera vez que necesitamos un Arduino MEGA


para una sesin

Protoboardconexiones

Una Protoboard ms cables.

componente

Una resistencia de 330.

componente

6 x LEDs

Shield Ethernet

Un Shield Ethernet

Un caso prctico

En las ltimas sesiones, hemos ido viendo los conceptos bsicos de las Redes
Ethernet y del protocolo TCPIP. Tambin hemos probado un esquema bsico
de programa que podemos usar como esqueleto para nuestros propios
proyectos.
Hemos intentado mantener los Sketches de Arduino y los snippets de cdigo
y los programas de gestin, a un mnimo de complicacin, para facilitar la
comprensin de los ejemplos y animaros a que los usis como base para
vuestros desarrollos.
En esta sesin, nos vamos a olvidar por un momento de la sencillez obligada
para presentaros un proyecto que hace tiempo tena ganas de traer a estas
pginas, pero que requera antes de una cierta base al respecto, y que
adems confi en que os sea til en algn momento.
Es un proyecto que vi en Instructables (pgina que por cierto os recomiendo,
si leis en ingls) y que me impresion. Bsicamente es un sistema de
gestin desde internet o la red local de las salidas digitales de Arduino, con
un interface grfico espectacular, desarrollado directamente en HTML5 y CSS.
Comprender el cdigo no es sencillo porque implica conocimiento importante
de HTML y CSS, pero en realidad tampoco es demasiado importante, porque
basta con utilizar la parte HTML como armazn y modificar, si lo necesitamos,
la parte de Arduino.
EL proyecto original del autor Claudio Vella, consista en desarrollar un
servidor web sobre Arduino que le permitiera controlar de una forma elegante
los pines digitales y gobernar diferentes controles de su casa, desde la
calefaccin al riego, o diferentes luces de casa, sin levantarse del silln.
Despus algunos otros han construido sobre el programa original y el
resultado creo que hablara por s mismo.
Pero debis saber que las mejoras graficas conllevan un coste, el programa
no puede cargarse en un Arduino UNO por falta de memoria y este va a ser el
primer ejemplo en Prometec en que vamos a utilizar un MEGA.
Creo que la dificultad del programa HTML (Que insisto puede ignorarse y
utilizarlo como una librera) y la necesidad de usar un MEGA compensan el
resultado.
Adems, al utilizar cdigo HTML5 para dibujar los controles, nos permite
acceder desde el navegador del mvil y efectuar el control, tanto desde casa
como desde el exterior, si previamente configuramos el Port Forwarding en el
Router.
Debo aadir adems, que no pretendo atribuirnos ningn mrito en el
desarrollo de este programa, y que nuestra nica funcin es la de

presentroslo, pero todo el mrito corresponde a los autores y no a


Pormetec.net
En cualquier caso, vosotros juzgareis si el esfuerzo ha merecido la pena.

Diagrama de conexin
Vamos a montar un circuito muy sencillo con mltiples LEDs, 6 en mi caso,
pero el programa permite gobernar hasta 10 pines digitales.
Hay una razn tcnica profunda, para elegir exactamente 6 LEDS: No
tengo ms, pero el programa acepta hasta 10 entradas.
Haremos un montaje con una nica resistencia de 330 entre GND y el
negativo de todos los LEDs y conectaremos los positivos de los LEDS a pines
digitales.
El diagrama incluye el Arduino MEGA y encima de el est un Shield Ethernet.
Esquema de protoboard

El programa de control
El objetivo del programa es montar un servidor web en Arduino, que nos
presente esta pantalla, preferiblemente en nuestro telfono mvil (Aunque
naturalmente, tambin funciona con el navegador):

Control remoto de Arduino por ethernet


Cuando tocas cualquiera de los botones la luz correspondiente se enciende e
el display y levanta el pin correspondiente de Arduino, y puede apagarse con
el botn de OFF.
El sistema gestiona correctamente la gestin de los mltiples pines y hasta
guarda en la EEPROM, por si se va la luz, es capaz de recordar que controles
tenia activados.
Por supuesto, Podis cambiar todas la etiquetas de nombres y adaptarlas a
vuestras necesidades.
Podis encontrar el proyecto original aqu : Ethernet Switching with Arduino
. Pero os pongo aqu un enlace para descargar el programa directamente:
WebServerSwitching V04.06
La ltima versin disponible es la 4.06, que incorpora unas cuantas mejoras
muy interesantes:
*Fijar un refresco de datos.

* Encender o apagar las salidas en el arranque, sin intervencin manual.


* Leer la temperatura y mostrarla.
* Guardar y recuperar datos de la EEPROM.
No tendra mucho sentido reproducir aqu, el programa completo, dada su
complejidad. Pero si me parece interesante comentar algunas lneas.
Lo primero es que carga las libreras SPI y Ethernet para el Shield y adems la
librera EEPROM
#include <Ethernet.h>
#include <SPI.h>
#include <EEPROM.h>
Despus configura manualmente el TCPIP (No nos interesa el DHCP para
saber a ciencia cierta que IP se nos asigna)
byte ip[] = { 192, 168, 1, 217 };
byte gateway[] = { 192, 168, 1, 254 };
byte subnet[] = { 255, 255, 255, 0 };
Si vais a acceder desde internet, lo lgico sera establecer una VPN. Si no
sabis lo que es, no tiene mayor importancia ahora mismo, pero s que es
imprescindible que cambies la direccin IP, a una diferente, para no dar
demasiadas facilidades al enemigo (Si, los administradores de red tendemos
a ser paranoicos).
Vamos con otro tema importante. Dependiendo del modelo que vayis a usar,
conviene definir un array con los pines que os interesa controlar.
int outputAddress[10] = { 3,5,6,7,8,9,14,15,16,17};

Recordad que el MEGA usa los pines 10, 50, 51, 52 y 53 para el Shield
Ethernet y por tanto, no se pueden usar. Dependiendo del modelo que usis,
tenis que comprobar que pines estn disponibles.
El pin 4 se usa para leer la tarjeta microSD y es mejor que no lo utilicis, o
veris cosas raras.
El pin 2 se usa para interrupciones, as que mejor ni tocar.
Otra lnea importante. Escribid los rtulos que queris mostrar en el display:

String buttonText[10] = { "01. Right Lamp","02. Left Lamp","03.


Bedroom","04. Kitchen",
"05. Water Heater","06. Gate","07. Toilet","08. Main Heater","09. Roof
Light","10. Basement"};
Mas configuraciones, Indica en que pines quieres retener la configuracin si
la luz se va, o sea que los vuelves a dejar en el estado previo al corte:
int retainOutputStatus[10] = {1,0,0,0,1,1,1,1,1,1};
1- Conservat status.
0 Ir a OFF al reiniciar.
Echadle una ojeada al programa. Es largo, pero no hay nada que no podis
entender, excepto, quizs el cdigo HTML que imprime con client.print, lo
mismo que hemos visto en las sesiones previas.
Aqu os pongo un mini video del proceso:
http://www.prometec.net/etherswitch/

Mejorando el proyecto
En el video anterior hemos visto el aspecto del programa y como manejaba
una coleccin de LEDs en una protoboard. Naturalmente, confo en que
encontrareis aplicaciones ms tiles para este programa que encender luces.
Y para ello vamos a necesitar algo que gobierne cargas de corriente
superiores.

Para ello bastara con conectar un Shield de Rels adicional o una lnea
externa de rels, del tipo que os muestro en las imgenes anexas.
SHield de reles Arduino

Tira de 8 reles

Tanto el Shield con 4 Rels, como la barra con 8 rels, son relativamente
fciles de encontrar, y te permiten conmutar,por muy poco dinero, hasta
250V con 10Amperios, lo que no est mal y es ms que suficiente para
conmutar casi lo que se os ocurra a nivel domstico.
En el caso del Shield de 4 reles no necesitaria, ni siquiera una protoboard o
circuito impreso adicional, ya que se puede montar encima del MEGA y del
Ethernet Shield, aunque habria que comprobar que no se maten entre ellos
por cuestion de pines.
Si fuera asi, existem tiras de reles, de 2, 4, y 8 unidades, lo que os permitiran
configurar bastante bien casi cualquier necesidad.
Resumen de la sesin
* Hemos presentado el proyecto Ethernet switching, que es excepcional

para domotizar vuestra casa.


*Utiliza un programa basado en HTML5 y una hoja de estilos, para
presentar unos controlos, estticamente agradables.
* Veris que es muy sencillo de configurar con nuestras preferencias y
nos va a permitir gobernar controles y equipos domesticos desde el exterior.
* Recordad, que si queremos entrar desde el exterior, tenemos que
configurar el port Forwarding.

You might also like