Casa domótica con Arduino y

9
Casa domótica con Arduino y Android El proyecto es el de una casa domótica eficiente. Dicho proyecto fue elegido para defender en el final del Grado Superior de Desarrollo de Productos Electrónicos. Este proyecto consta de 2 partes: Parte de electrónica: Esta es la parte en la que he intervenido yo, desarrollando varios circuitos como el control de un toldo, control de una persiana, control de acceso a la vivienda mediante una huella dactilar, registro del consumo eléctrico de toda la vivienda y regulación de un fluorescente mediante el protocolo de comunicaciones I2C. Todo el proyecto ha sido desarrollado con las emergentes placas libres Arduino. Para controlar todo este hardware hemos utilizado el modulo WIFLY RN-XV, el shield deArduino y la placa Arduino Uno. Parte de informática: En esta parte, han intervenido compañeros informáticos que han desarrollado una magnífica aplicación capaz de comunicar una Tablet Android con el módulo wifi wifly rn-xv y de esta manera controlar cada de una de las cargas anteriores. A continuación se puede ver parte del hardware desarrollado y la Interface de la aplicación:

Transcript of Casa domótica con Arduino y

Page 1: Casa domótica con Arduino y

Casa domótica con Arduino y Android

El proyecto es el de una casa domótica  eficiente. Dicho proyecto fue

elegido para defender en el final del Grado Superior de Desarrollo de Productos Electrónicos.

Este proyecto consta de 2 partes:

Parte de electrónica:

Esta es la parte en la que he intervenido yo, desarrollando varios circuitos como el control de

un toldo, control de una persiana, control de acceso a la vivienda mediante una huella dactilar,

registro del consumo eléctrico de toda la vivienda y regulación de un fluorescente mediante el

protocolo de comunicaciones I2C. Todo el proyecto ha sido desarrollado con las emergentes

placas libres Arduino.

Para controlar todo este hardware hemos utilizado el modulo WIFLY RN-XV, el shield

deArduino y la placa Arduino Uno.

Parte de informática:

En esta parte, han intervenido compañeros informáticos que han desarrollado una magnífica

aplicación capaz de comunicar una Tablet Android con el módulo wifi wifly rn-xv y de esta

manera controlar cada de una de las cargas anteriores.

A continuación se puede ver parte del hardware desarrollado y la Interface de la aplicación:

Page 2: Casa domótica con Arduino y

Sigo avanzando parte del proyecto

con el control inalámbrico via Wifi con el dispositivoArduino Wifly rn-xv !

Ventajas sobre un sistema de domótica KNX, X-10, etc.

- Ahorro brutal de costes, trabajando con hardware y software libre ahorramos costes frente a

sistemas ya estandarizados.

- Simplicidad de la instalación: La mayor instalación que hará falta realizar será para motores

de persianas, fluorescentes, etc. mediante Wifi podemos conectar cada habitación a la red y

evitar cableados.

- Control desde cualquier parte del mundo, la tecnología Wifi nos permite conectarnos desde

nuestra aplicación en la otra punta de la tierra.

- Instalación con la tecnología más puntera actual en el mercado.

1. Pepe dijo:

Dos puntualizaciones:

1) El “control desde cualquier parte del mundo” se puede conseguir con KNX, así que no es

ventaja.

2) Los microcontroladores Atmel , la Wifi y el I2C ya no son precisamente la tecnología más

puntera.

Y dos preguntas:

1) ¿Cómo evitáis que el vecino de al lado se meta en la wifi del domicilio?

2) Los módulos que usáis, ¿qué dimensiones de caja necesitan para ser empotrados?

o Diego Romano  dijo:

Buenas!

Page 3: Casa domótica con Arduino y

Te contesto a todo:

1) No es ventaja frente al KNX el control pero si que es ventaja el precio del módulo usado para

su control.

2) No hablo como tecnología puntera los microcontroladores Atmel, Wifi o I2C sino el Arduino

como hardware libre usado.

3) Se evita que el vecino acceda a la red porque el modulo Wifi se conecta a internet y no al

revés, el módulo se conecta a una sola dirección IP y a la red predefinida. La seguridad de este

módulo viene en función de la segurar de tu router.

4) No usamos ninguna caja, este proyecto ha sido desarrollado como prototipo y no se ha

desarrollado con fin comercial por falta de inversores.

Gracias por su interés

Pepe dijo:

¡Muchas gracias por la respuesta!

Llegué aquí desdehttp://foro.webdearde.com/viewtopic.phpt=3788&p=38727#p3872y pensé

que ese post lo habíais puesto vosotros, por eso preguntaba lo de las cajas 

Un saludo 

2. Gonzalo dijo:

oye diego, que usaste para el registro del consumo de la vivienda. Estoy interesado en realizar

un proyecto sobre este tema.

o Diego Romano dijo:

Hola gonzalo, usamos un transformador en serie con el circuito a medir y en el otro extremo del

transformador colocamos una resistencia pequeña para medir las varaciaciones de tensión en

función del consumo. En este apartado hicimos algunas pruebas pero no llegamos a realizar el

prototipo por lo que tampoco te puedo indicar mucho.

3. Chema dijo:

Hola,

Primero, enhorabuena por vuestro proyecto, parece que ha quedado muy bien.

Quería preguntaros, sobre todo por la parte hardware, cómo hacéis para conectar arduino +

módulo wifly. Para otros usos que he estado trabajando con RFID no he tenido problema, pero

para este no sé como hacerlo.

Os cuento lo que necesito desarrollar para mi proyecto: queremos tomar medidas de

temperatura durante periodos de tiempo en diversos puntos (más o menos una monitorización),

de manera que con un cliente arduino móvil (podamos cambiarlo de sitio, pues está

autoalimentado) y que envíe la información que vaya recogiendo con el sensor de

temperatura/humedad/CO2 a un pequeño router y éste, a una aplicación central (web+bbdd).

La duda es esa, si con este módulo, una vez configurado para que se entienda con el router,

podrá funcionar de manera autónoma para que envíe la información que vaya recogiendo.

Muchas gracias y saludos.

o Diego Romano  dijo:

Hola Chema, gracias por visitar mi web y participar!

Page 4: Casa domótica con Arduino y

Nosotros el hardware lo realizamos con la placa arduino con el módulo shield de

comunicaciones y el Wifly Rn-Xv.

Este modelo trabaja con una simple comunicación UART pero que previamente hay que

configurar como cualquier otro módulo de comunicación como el bluetooth, xbee, etc.

Las configuraciones que realizamos nosotros fueron asignarle una ip estática, aunque también

sirve dinámica.

También hay que asignarle el nombre del router al que te vas a conectar y su contraseña.

Una vez hecho esto, puedes abrir un terminal con wifi, ya sea un ordenador portatil o un

telefono Android y escribir la ip del módulo, si la ip la has fijado estática ya sabes cual es, si la

as asignado dinámica tendrás que rastrear los equipos conectados a tu router para conectarte.

Si lo que quieres es desde el módulo wifi ir contra la base de datos, me imagino que la base de

datos la tendrás que configurar para que reciba datos de esa ip, en esto no me hagas mucho

caso que yo no entiendo mucho de informática.

También comentarte que nosotros realizamos una conexión local porque no nos dio tiempo a

realizar la conexión “publica”, pero entiendo que si quieres conectarte desde otra ubicación que

no sea tu red local tendrás que adquirir una ip publica para poder conectarte a la base de datos.

Un saludo

4. Carlos  dijo:

Hola buenas,

Tenía una pregunta. ¿Qué pasa si lo quiero implementar sin tener router e internet en casa?

Simplemente tengo electricidad. La wifi ya no me sirve…

o Diego Romano  dijo:

Hola, si quieres implementarlo en casa sin tener internet, ya no te sirve el módulo wifi, si

deseas comunicación inalámbrica desde cualquier lugar podrías optar a comunicaciones gsm o

por el contrario si deseas comunicación inalambrica pero desde un lugar inferior a unos 10

metros aproximadamente puedes usar algún módulo bluetooth!

Un saludo.

5. Carlos  dijo:

Muchas Gracias por tu respuesta!!! Buen trabajo! 

Responder

6. AMERU dijo:

Hola Diego, me encanta tu rpoyecto y estoy muy interesado en conocer más sobre el mismo, ya

que quiero realizar un pequeño proyecto para mi familia donde necesito contar el número de

personas que suben a un auto mediante un sensor óptico, y que cuando el auto llegue a casa,

con una tablet pueda bajar la información y guardarla, pero todo de manera inalámbrica, es

decir por medio de bluetooth, pero no se como hacer esa comuniciación bidireccional con

bluetooth, espero y me puedas ayudar, muchas gracias y un gran saludo, haces un gran

trabajo!!!

Hasta pronto!!

Responder

o Diego Romano  dijo:

Buenas! Gracias por el comentario! Me falta información, no entiendo que dudas tienes porque

veo que tienes todo muy claro. El bluetooth simplemente con conectarlo ya te genera la

comunicación bidireccional permitiendo escribir y leer por puerto serie todo lo que mandes.

Para la tablet puedes descargar alguna aplicación que sea un terminal de comunicación

bluetooth y simplemente emparejarlo con el bluetooth. Si tienes mas preguntas no dudes en

escribir o mandarme un correo si quieres! un saludo

Page 5: Casa domótica con Arduino y

Android es un sistema operativo basado en Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos

inteligentes o tabletas, 

Características

Características y especificaciones actuales:41 42 43

Diseño de

dispositivo

La plataforma es adaptable a pantallas de mayor resolución, VGA, biblioteca de gráficos 2D, biblioteca de gráficos 3D

basada en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales.

Almacenamiento SQLite, una base de datos liviana, que es usada para propósitos de almacenamiento de datos.

ConectividadAndroid soporta las siguientes tecnologías de conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-

Fi, LTE, HSDPA, HSPA+, NFC y WiMAX.

MensajeríaSMS y MMS son formas de mensajería, incluyendo mensajería de texto y ahora la Android Cloud to Device Messaging

Framework (C2DM) es parte del servicio de Push Messaging de Android.

Navegador web

El navegador web incluido en Android está basado en el motor de renderizado de código abierto WebKit, emparejado

con el motor JavaScript V8 de Google Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una

puntuación de 100/100 en el test Acid3.

Soporte de Java

Aunque la mayoría de las aplicaciones están escritas en Java, no hay una máquina virtual Java en la plataforma.

El bytecode Java no es ejecutado, sino que primero se compila en un ejecutable Dalvik y corre en la Máquina Virtual

Dalvik. Dalvik es una máquina virtual especializada, diseñada específicamente para Android y optimizada para

dipositivos móviles que funcionan con batería y que tienen memoria y procesador limitados. El soporte para J2ME

puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner.44

Soporte

multimedia

Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR, AMR-

WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg

Vorbis, WAV, JPEG, PNG, GIF y BMP.43

Soporte para

streaming

Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5 <video> tag). Adobe Flash Streaming

(RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port

de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará disponible mediante una actualización de Adobe

Flash Player.

Page 6: Casa domótica con Arduino y

Soporte para

hardware

adicional

Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros,

sensores de proximidad y de presión, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y 3D.

Entorno de

desarrollo

Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software.

El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de

Desarrollo de Android.

Google PlayGoogle Play es un catálogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en

dispositivos Android sin la necesidad de un PC.

Multi-táctil

Android tiene soporte nativo para pantallas capacitivas con soporte multi-táctil que inicialmente hicieron su aparición en

dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para

evitar infringir patentes de otras compañías).45 Más tarde, Google publicó una actualización para el Nexus Oney

el Motorola Droid que activa el soporte multi-táctil de forma nativa.46

Bluetooth

El soporte para A2DF y AVRCP fue agregado en la versión 1.5;47 el envío de archivos (OPP) y la exploración del

directorio telefónico fueron agregados en la versión 2.0;48 y el marcado por voz junto con el envío de contactos entre

teléfonos lo fueron en la versión 2.2.</ref> Los cambios incluyeron:49

Videollamada Android soporta videollamada a través de Google Talk desde su versión HoneyComb.

MultitareaMultitarea real de aplicaciones está disponible, es decir, las aplicaciones que no estén ejecutándose en primer plano

reciben ciclos de reloj.

Características

basadas en voz

La búsqueda en Google a través de voz está disponible como "Entrada de Búsqueda" desde la versión inicial del

sistema.50

Tethering

Android soporta tethering, que permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (todos

los teléfonos desde la versión 2.2, no oficial en teléfonos con versión 1.6 o inferiores mediante aplicaciones disponibles

en Google Play (por ejemplo PdaNet). Para permitir a un PC usar la conexión de datos del móvil android se podría

requerir la instalación de software adicional.51

Arquitectura

Los componentes principales del sistema operativo de Android (cada sección se describe en detalle):

Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador,

contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.

Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las

aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar

sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework).

Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.

Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se

exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación

biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.

Page 7: Casa domótica con Arduino y

Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las

bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual

Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta

archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en

registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida

"dx".

Núcleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de

procesos, pila de red y modelo de controladores. El núcleotambién actúa como una capa de abstracción entre el hardware y el resto de

la pila de software.

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en

software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y

cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una

gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros

actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de

programación Arduino(basasdo en Wiring) y el entorno de desarrollo Arduino (basado

en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar

a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de

software (p.ej. Flash, Processing, MaxMSP).

Las placas pueden ser hechas a mano o compradasmontadas de fábrica; el software puede ser

descargado de forma gratuita. Los ficheros de diseño de referencia (CAD) están disponibles bajo

una licencia abierta, así pues ereslibre de adaptarlos a tus necesidades.

Page 8: Casa domótica con Arduino y

El módulo RN171XV es una solución certificada Wi - Fi diseñado especialmente para clientes que desean migrar su arquitectura existente 802.15.4 a una plataforma basada en estándares TCP / IP sin tener que rediseñar su hardware existente.

El RN171XV está disponible en 3 opciones de antena : cable ( RN171XVW-I/RM ) , conector SMA inverso de polaridad ( RN171XVS-I/RM ) y el conector U.FL ( RN171XVU-I/RM ) .

El módulo RN171XV se basa en un robusto módulo Wi - Fi RN171 para redes, e incorpora 802.11 b / g radio, procesador de 32 bits , la pila TCP / IP , reloj en tiempo real , Crypto Accelerator , la unidad de administración de energía y una interfaz de sensor analógica.

El módulo RN171XV apoya la creación de redes de infraestructura de acceso a Internet en todo el mundo directamente por cada nodo de conectividad y adhoc para el punto totalmente conectado a las redes de punto , a diferencia de muchos 802.15.4 implementaciones que requieren extensas , perfiles de aplicaciones personalizadas y productos puente adicionales. El RN171XV soporta rangos de temperatura industrial , por lo que es ideal para aplicaciones tales como redes de sensores , controladores industriales o comerciales, medidores de servicios y aplicaciones M2M.

El módulo ofrece funcionalidad adicional a través de sus puertos programables GPIO en placa (8) y ( 3 ) ADC  . Los ADCs proporcionan una resolución de 14 bits , mientras que los GPIO pueden ser configurados para proporcionar una funcionalidad estándar o de señal de estado a un microcontrolador principal para reducir la necesidad de polling en serie entre el módulo de Wi-Fi y microcontrolador principal.

El módulo está precargado con Roving firmware para simplificar la integración y minimizar el tiempo de desarrollo de la aplicación.En la configuración más simple , el hardware sólo requiere cuatro conexiones ( PWR , TX , RX y GND ) para crear una conexión de datos inalámbrica .

CARACTERISTICAS

Direct internet connectivity provides internet access to every node Point to point connectivity to every node without the need for custom profiles Based on common 802.15.4 footprint 3 Antenna options available - wire, reverse polarity SMA connector, and U.FL connector Ultra low power: 4µA sleep mode, 40mA active Onboard TCP/IP stack includes DHCP, UDP, DNS, ARP, ICMP, HTTP client, FTP client and TCP Firmware configurable transmit power: 0dBm to 12dBm Hardware interfaces: TTL UART Host data rate up to 464Kbps over UART Supports Adhoc and infrastructure networking 8 general purpose digital I/O 3 analog sensor inputs Real-time clock for time-stamping, auto-sleep, and auto-wakeup modes Accepts 3.3VDC regulated power supply Configuration over UART or wireless interface (via Telnet) using simple ASCII commands Over the air firmware upgrade (FTP) Secure Wi-Fi authentication: WEP, WPA-TKIP , WPA2-AES

APPLICATIONS Industrial metering HVAC control Room temperature sensors

Page 9: Casa domótica con Arduino y

Pump configuration and control Telemetry Robotics PV / Solar controllers