Casa domótica con Arduino y
-
Upload
miriam-escobar -
Category
Documents
-
view
328 -
download
0
Transcript of 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:
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!
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!
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
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.
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.
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.
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
Pump configuration and control Telemetry Robotics PV / Solar controllers