DUSTIN - elco.guru 1/Proyecto DUSTIN.pdfque los nodos serán capaces de dialogar entre ellos y...
Transcript of DUSTIN - elco.guru 1/Proyecto DUSTIN.pdfque los nodos serán capaces de dialogar entre ellos y...
DUSTIN
Domotic Ubiquitous Service and Technology for Intelligent Nodes
Arenas Escribano, Carlos Cobo Jiménez, Enrique De la Rocha Gómez-Arevalillo, Alfonso Ladrón De Guevara Ruiz, Antonio Subirá Rodríguez, Telmo
Grupo 1 – Electrónica de Consumo – 2014
Contenido
1. Introducción ...................................................................................................... 2
2. Definición y arquitectura del nodo .................................................................... 3
2.1 Sensores ........................................................................................................................ 3
2.2 Actuadores .................................................................................................................... 3
2.3 Interfaz de usuario ........................................................................................................ 4
2.4 Diagrama de bloques .................................................................................................... 4
3. Definición y arquitectura del sistema ................................................................ 6
3.1 Diagrama de ejemplo de aplicación .............................................................................. 6
3.2 Comunicaciones ............................................................................................................ 7
4. Proyecto ............................................................................................................ 8
4.1 Tareas y tiempo de desarrollo ...................................................................................... 8
4.2 Coste ........................................................................................................................... 10
4.3 Posibles expansiones .................................................................................................. 12
4.4 Prototipo ..................................................................................................................... 13
5. Manual de usuario .......................................................................................... 15
5.1 Ejemplo de comandos de voz ..................................................................................... 15
5.2 Ejemplo de aplicación móvil........................................................................................ 16
6. Bibliografía ...................................................................................................... 17
7. Anexos ............................................................................................................ 18
7.1 Otros modelos de componentes ................................................................................. 18
1
1. Introducción
DUSTIN se trata de un sistema de control inteligente para un entorno doméstico. El sistema
está basado en una serie de nodos distribuidos a lo largo de las estancias que ofrece distintos
servicios, tanto para el control como para el confort de las mismas, siguiendo el principio de
computación ubicua.
El sistema, no obstante, permitirá el control total del hogar desde cualquier lugar, puesto
que los nodos serán capaces de dialogar entre ellos y conectarse a Internet. La interfaz
principal en el domicilio será por medio de la voz, si bien será posible manejarlo por medio de
aplicaciones.
Algunos de los servicios que se ofrecerán serán:
• Lectura y control de parámetros, como la temperatura, iluminación y consumo.
• Reproducción de contenidos audiovisuales on demand.
• Sistema de alarma en caso de intrusión.
2
2. Definición y arquitectura del nodo
El nodo está basado en una plataforma Raspberry Pi con el sistema operativo Raspbian,
conectividad inalámbrica por WiFi y con el software de control por voz Jasper modificado. A
esta plataforma se añadirán los sensores y actuadores necesarios para realizar las tareas
descritas anteriormente.
2.1 Sensores
Los sensores necesarios por los nodos para desarrollar su actividad son:
• Temperatura: la premisa para seleccionar este sensor será una buena precisión para la
aplicación en desarrollo. Su comunicación con el nodo, generalmente, se producirá con
estándares digitales, como el I2C.
• Presencia: escogeremos un PIR junto con una lente de Fresnel que permita la
detección de personas a una distancia de hasta 5 metros. Su salida es binaria.
• Luminosidad: será interesante usar un modelo comercial con salida digital, puesto que
la Raspberry Pi no dispone de puertos ADC. Es por ello que este sensor nos da una
palabra digital que representa el nivel de iluminación de la estancia.
2.2 Actuadores
Los actuadores utilizados serán:
• Relés: conocidos como interruptores digitales, permiten el paso o no de la corriente
eléctrica en función de una señal de control. Usaremos el En general, será la principal
interfaz de nuestro sistema, ya que por medio de relés podremos controlar:
o Iluminación de todas las estancias.
o Calefacción, accionando o desconectando la caldera o el radiador.
o En general, cualquier dispositivos que alimentemos por medio de un enchufe
con un relé.
• Salidas de propósito general: Como muestra de la escalabilidad del sistema, se podrán
controlar otros dispositivos por medio de estas interfaces.
3
2.3 Interfaz de usuario
Para la interfaz vocal, haremos uso de los siguientes elementos:
• Micrófono: se usará el micrófono para comunicarse con Jasper y darle una serie de
órdenes mediante comandos de voz.
• Altavoz: que permita reproducir las contestaciones del sistema, así como la música
que el usuario configure.
Además, el sistema es controlable por una aplicación, la cual desarrollaremos en HTML
bajo un diseño responsive de forma que se pueda manejar tanto desde un PC como desde un
terminal móvil.
2.4 Diagrama de bloques
En función de lo descrito en el apartado anterior, presentamos el diagrama de bloques de
los nodos incluidos en las estancias.
Figura 1 – Diagrama de bloques del nodo básico
Este sistema que observamos sería el formado por el nodo básico. Esto no necesariamente
implica que debiera ser este nodo el que estuviera en todas las habitaciones de la casa, ya que
nuestros nodos son adaptables y en función de las necesidades podría sufrir diferentes
modificaciones.
Dentro de estas modificaciones podrían estar incluidos, por ejemplo, una pinza
amperimétrica en el nodo de la entrada de la casa que nos permita obtener el consumo total
4
del hogar, y que nosotros podamos conocer dicho consumo y ver si nos estamos excediendo
en la actual factura eléctrica.
Otra inclusión adicional sería algún dispositivo de almacenamiento multimedia adicional, el
cual estaría situado en un nodo con capacidad de gestionar archivos multimedia. Dicho nodo
realizaría todas las funciones normales, además de ser el encargado de gestionar todos los
servicios de multimedia de la casa, es decir, los demás nodos cuando quieran acceder a esos
recursos (una canción por ejemplo) realizarán una petición a ese nodo, y este le enviará la
canción para reproducirla en otra habitación.
También las modificaciones podrían consistir en hacer el nodo más sencillo quitando
algunos componentes que no sea necesario utilizar en esa habitación como, por ejemplo, en
un sótano sin ninguna iluminación natural no sería necesario tener un sensor de luz, ya que
siempre que estemos allí será necesario tener la luz encendida, siendo inútil la función que
desempeñaría nuestro sensor de luz.
5
3. Definición y arquitectura del sistema
3.1 Diagrama de ejemplo de aplicación
No cabe olvidar que el sistema engloba toda la vivienda, por lo que consideramos un ejemplo de aplicación en el que se muestre su utilidad en conjunto. Sería el que sigue:
Figura 2 – Ejemplo de aplicación del sistema total
Hacemos una aclaración de los símbolos que se emplean en esta imagen:
• Los hexágonos determinan los nodos del sistema, apareciendo numerados.
• Encontramos un rombo nombrado con la letra E de Energía, puesto que, al estar junto
al cuadro eléctrico, será el responsable de hacer las lecturas de consumo energético.
• El rectángulo representa un nodo especial, denotado con la letra M de multimedia,
puesto será el que servirá de pasarela con el sistema de almacenamiento y, por tanto,
el responsable de atender las demandas de los nodos en este sentido.
• La doble flecha indica router, de acceso a Internet.
6
3.2 Comunicaciones
Las comunicaciones del sistema se organizan de la siguiente manera, explicadas con el
ejemplo expuesto más arriba:
Figura 3 – Diagrama de comunicaciones del sistema total
Pasamos a describir el funcionamiento del sistema:
• El router ejerce de nodo central, es responsable de crear la red que servirá como base
para que los nodos se comuniquen entre ellos, y de ser la interfaz para la conexión del
sistema a Internet.
• Como corresponde al protocolo WiFi, la comunicación entre dispositivos se debe
realizar por el punto de acceso. Es por ello que el propio router dispone de interfaz
para acceso inalámbrico. Esto se representa por medio de líneas discontinuas.
• Por su proximidad al router, el nodo Multimedia podrá conectarse con cable al router,
por lo que esta conexión figura en línea continua.
Como hemos comentado en apartados anteriores, la conexión entre sí de todos los nodos
permitirá que desde un nodo se pueda actuar o enviar peticiones de lectura en otro nodo, o
hacer consultas a Internet.
7
4. Proyecto
4.1 Tareas y tiempo de desarrollo
Los costos del proyecto, en cuanto a horas se refieren, tratan de esquematizar el tiempo
requerido por cada una de las tareas a realizar, así como de identificar donde se sobreponen
dichas tareas para logar una reducción significativa en el costo total del proyecto.
Las tareas requeridas para completar el proyecto son las siguientes:
• Estudio de la distribución de los nodos. En función de cada uno de los entornos
domésticos que se quieran “domotizar”, tendremos que hacer un estudio previo
del número de nodos a utilizar, la ubicación de los mismos y las tareas de control
que llevarán a cabo cada uno de ellos. Debemos encontrar la solución óptima que
dé cobertura a todo el hogar utilizando el menor número posible de nodos, de
forma que logremos una reducción del costo total.
• Configuración de Raspberry Pi. Instalación del sistema operativo Raspbian,
configuración de la conectividad inalámbrica mediante WiFi e instalación del
software de control por voz Jasper modificado en cada uno de los nodos.
• Incorporación de sensores. Los sensores de temperatura, presencia y luminosidad
serán incorporados a los nodos. Previamente, también debemos configurar la
plataforma Raspberry Pi determinando los puertos de entrada y salida que serán
utilizados por cada uno de estos componentes, el procesamiento de los datos
recogidos y las decisiones a tomar en función de dichos datos. De igual modo,
debemos realizar un cableado adecuado de los componentes en función de la
futura ubicación del nodo en el entorno doméstico, que ya fue fijada durante el
estudio de la distribución de los nodos.
• Incorporación de los actuadores. En función de las tareas de control que tenga
asignadas un determinado nodo, tendremos que incorporar un número de
actuadores adecuados, por ejemplo, un relé para el control de las luces,
apertura/cierre de calefactores, etc.
8
• Configuración de la interfaz de usuario. Debemos incorporar los elementos
necesarios para el control por voz, es decir, micrófonos y altavoces teniendo en
cuenta, de nuevo, la ubicación del nodo. Por otro lado, desarrollaremos en HTML
la aplicación que también permitirá al usuario controlar el sistema.
En el siguiente esquema se reflejan las dependencias que hay entre cada una de las tareas
y que, de forma directa, establecerán un orden de ejecución de las mismas.
Figura 4 – Diagrama de dependencias de las tareas
Como podemos observar, solamente tenemos dos tareas independientes que son las dos
primeras, mientras que el resto dependen de estas dos. Por tanto, antes de pasar a la
instalación de los sensores, los actuadores o la configuración de la interfaz de usuario,
debemos haber realizado el estudio de la distribución y la configuración de la Raspberry
previamente. No obstante, la programación de la aplicación en HTML sí que es independiente
del resto de tareas.
A continuación detallamos una estimación de las horas de dedicación que conlleva cada
una de las tareas en el caso de un único nodo:
Tarea Tiempo dedicación (h) Estudio distribución 5 (Variable)
Configuración RP 3 Sensores 5
Actuadores 5 Configuración IU 2 + 3
Tabla 1 – Estimación de tiempo de realización de cada tarea
9
De los datos reflejados en la tabla anterior cabe destacar algunos detalles. En primer lugar,
la tarea del estudio de la distribución de los nodos depende el entorno doméstico en cuestión
y los m2 que tenga éste. En consecuencia, hemos estimado un tiempo medio de 5 horas, que
es variable. Por otro lado, la instalación del resto de elementos que complementan a la
Raspberry, es decir, sensores, actuadores, altavoces y micrófono, no sólo conlleva la
incorporación de los mismos sino que puede necesitar de servicios de albañilería para la
instalación de cables, por lo que tiene una dependencia del tiempo que lleven estos servicios.
En el caso de la configuración de la IU, se ha diferenciado entre el tiempo de instalación de
micrófono y altavoces y el tiempo de programación de la aplicación HTML que será común
para todos los nodos.
Finalmente, denominando N al número de nodos que necesitaremos para la domotización
del entorno doméstico, el costo en horas del proyecto serán:
𝑪𝑪𝑯𝑯𝑯𝑯𝑯𝑯𝑯𝑯𝑯𝑯 = 𝟓𝟓 + (𝟑𝟑 + 𝟓𝟓 + 𝟓𝟓 + 𝟐𝟐) · 𝑵𝑵 + 𝟑𝟑 = 𝟖𝟖 + 𝟏𝟏𝟓𝟓 · 𝑵𝑵
4.2 Coste
A continuación se desglosa el presupuesto y modelo, con la referencia online adjunta, de
cada componente necesario para el funcionamiento de un nodo básico de la red tal y como
vienen descritos en la Figura 1.
[0] RASPBERRY PI TIPO B (27,4 €)
http://es.rs-online.com/web/p/processor-microcontroller-development-
kits/7568308/?cm_mmc=ES-PPC-0411-_-google-_-2_Raspberry-_-
raspberry+pi+modelo+b_Exact&gclid=CMGfyoK9274CFbShtAodskQA7g
[1] SENSOR DE TEMPERATURA MCP9800A3T-M/OT (0,87€)
http://www.microchipdirect.com/ProductDetails.aspx?Category=MCP9800
[2] TSL2561 LIGHT SENSOR (4,37€)
http://www.adafruit.com/products/439
[3] PIR MOTION SENSOR (2,2€)
http://hk-ll-technology.en.made-in-china.com/product/jbAJdSHvkVkc/China-Dual-Rectangular-Wired-PIR-Motion-Detector-New-Detector.html
10
[4] ALTAVOZ (JACK) (1,84€)
http://sunwe88.en.made-in-china.com/product/YvXQHAOJhrcC/China-Portable-
Mini-Speaker-for-iPod-MP3-iPad-Mobile-Phone-SW-S601-.html
[5] MICROFONO USB OMNIDIRECCIONAL (0,73€)
http://szjjts.en.made-in-china.com/product/iSZnexKAnRWF/China-Omni-
Directional-USB-Echo-Cancelling-Skype-Microphone-Conference-Room-Sound-System-
Microphone.html
[6] ADAPTADOR WIFI (1,62€)
http://ogemraywireless.en.made-in-china.com/product/VMeJHApLajYi/China-Super-Mini-150Mbps-External-Wireless-WLAN-USB-Dongle.html
[7] RELAY GEN PURPOSE SPDT 10A 12V (0,814€)
http://www.digikey.es/product-detail/en/1461069-5/PB1321-ND/3318145
[8] MICRO SD CARD (0,72€)
http://shengxinjiade.en.made-in-china.com/product/YKLQaOguVUcx/China-Low-Price-Micro-SD-Card-with-Adapter-Class4-6-10-SXJD-A4-.html
El presupuesto total para cada nodo, teniendo en cuenta los precios y cantidades de cada
unidad de los componentes, se resume en la siguiente tabla:
COMPONENTES UNIDADES PRECIOS TOTALMICROFONO 1 0,73 0,73
S. TEMPERATURA 1 0,87 0,87S.PRESENCIA 1 6,97 6,97
S. LUZ 1 4,37 4,37RELÉ 3 0,814 2,442
ADAP. WIFI 1 1,62 1,62RPI 1 27,4 27,4
ALTAVOZ 1 1,84 1,84MICRO SD 1 0,72 0,72
TOTAL(€) = 46,962
Tabla 2 – Coste por nodo de la red (€)
Por otro lado, para algunos de los componentes hemos buscado otros proveedores
alternativos, además de los escogidos, pero los precios son algo más elevados como se puede
observar en el anexo.
11
Como hemos explicado anteriormente, un sistema total incluiría además de los nodos
básicos, algún otro nodo con ciertas modificaciones. Con intención de realizar el presupuesto
del diagrama de ejemplo de aplicación que se observa en la Figura 2, deberíamos obtener
también el presupuesto de una pinza amperimétrica y de un sistema de almacenamiento
adicional.
DISCO DURO EXTERNO DE 500 GB (40.98 €)
http://www.amazon.es/Toshiba-StorE-Basics-HDTB105EK3AA-externo/dp/B005X7AXW0/ref=sr_1_3?ie=UTF8&qid=1401986963&sr=8-3&keywords=disco+duro+externo
PINZA AMPERIMÉTRICA (10.65 €)
http://www.ebay.es/itm/110913996654?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_4261wt_952
Con todo esto, el coste total para el ejemplo de aplicación anterior sería el formado por 8
nodos básicos a los que se le sumaría los dos componentes anteriores.
COMPONENTES UNIDADES PRECIOS TOTALNODO BÁSICO 8 46,962 375,696
ALMACENAMIENTO MULTIMEDIA 1 40,98 40,98PINZA AMPERIMÉTRICA 1 10,65 10,65
TOTAL(€) = 427,326
Tabla 3 – Coste de ejemplo de aplicación
4.3 Posibles expansiones
El proyecto DUSTIN nace inicialmente como un sistema inteligente doméstico, pero su
implementación podría expandirse a otros ámbitos:
• Entorno industrial, como fábricas y cadenas de montaje.
• Oficinas y sedes empresariales.
• Edificios y centros de la administración pública.
En general, DUSTIN es un sistema que podría integrarse en cualquier lugar donde la rápida
gestión de los dispositivos, la facilidad de acceso y el ahorro energético sean esenciales en la
actividad diaria.
12
Para ello, probablemente se necesitase un estudio y una adaptación de las capacidades de
DUSTIN que se ajustasen a cada caso concreto, pudiendo aumentar el presupuesto necesario
para establecer la red. Sin embargo, ésta podría mantener sus características de escalabilidad y
sencillez de manejo.
4.4 Prototipo
Intentamos desarrollar un primer prototipo de un nodo del sistema de cara a estudiar su
funcionalidad y como primera aproximación al diseño del sistema global. El prototipo consistía
en una Raspberry Pi con el sistema operativo Raspbian, el sistema de control por voz Jasper y
librerías Python para el control de las entradas y salidas del dispositivo. A la Raspberry Pi se
conectarían dos LEDs (uno rojo y otro verde) de manera que simulasen un sistema de
iluminación independiente. No conseguimos llegar a ningún resultado satisfactorio con el
prototipo debido a una serie de problemas.
El primer paso en el diseño del nodo fue la instalación de Jasper. Conseguimos instalarlo
sin problemas, pero a la hora de interactuar con él había conflictos con los drivers de sonido.
Tras mucho investigar, solucionamos este problema y conseguimos interactuar con la
Raspberry pero, cada vez que le enviábamos una orden a Jasper, éste interpretaba que
queríamos conectarnos a la aplicación Spotify, provocando un error y obligándole a cerrarse.
Decidimos desactivar la integración con Spotify de Jasper para evitar estos errores, de manera
que nos permitiese interactuar con él. Con este parche, conseguimos realizar algunas
interacciones básicas con el sistema.
Jasper está programado para funcionar a través de un adaptador WiFi y no a través de un
cable Ethernet, como lo teníamos nosotros conectado a Internet. Esto supuso un nuevo
problema, porque para ciertos métodos, el sistema consultaba Internet a través de un
adaptador WiFi inexistente, lo que hacía que el sistema diese error una vez más.
Intentamos comentar todos los métodos que accedían a Internet y programamos dos
nuevas acciones para Jasper, cuya única función era utilizar la librería Python de entrada y
salida, previamente instalada, para encender o apagar un LED rojo en función de la orden y el
estado del LED. Las aplicaciones que utilizan la librería de entrada-salida de Python necesitan
permisos root de Linux para funcionar. Cuando nos disponíamos a probar Jasper con estas
nuevas órdenes, el sistema se cerró por falta de permisos. Decidimos ejecutar a Jasper como
superusuario para realizar las pruebas y el sistema se cerró inesperadamente. Esto produjo
13
que se dañaran los servicios de red, el sistema volvía a buscar adaptadores WiFi inexistentes y
los driver de audio dejaron de funcionar. Decidimos reinstalar todo otra vez, incluido el
sistema operativo, para ver si habíamos cometido algún error en la configuración de los
parámetros de red, obteniendo el mismo resultado.
En conclusión, de cara a conseguir un prototipo funcional del nodo tendremos que
solucionar todos los problemas de compatibilidad del sistema Jasper. Deberemos desactivar la
integración de Jasper con WiFi o utilizar exactamente el mismo hardware recomendado por los
creadores (micrófono, adaptador de red y altavoces) de cara al correcto funcionamiento del
control por voz. Para este prototipo no disponíamos ni adaptador de red WiFi, ni ningún
micrófono con compatibilidad certificada con Raspberry Pi.
14
5. Manual de usuario
Con DUSTIN puedes almacenar tus archivos de música y cualquier tipo de audio en el disco
duro para que pueda reproducirse en cualquier lugar de tu casa, en el momento que tú
prefieras.
DUSTIN es tan sencillo como llegar a tu casa y darle una orden hablada. Él escuchará tus
palabras y te responderá a la vez que ejecutará la acción que deseas.
DUSTIN te permite controlar las luces de tu hogar, la temperatura de tu casa o el encendido
de cualquier aparato que tú conectes a la red, desde cualquier habitación, para ayudarte con el
ahorro doméstico y ofrecerte comodidades.
DUSTIN puede acceder directamente al consumo energético de tu casa, para permitirte un
control más preciso y seguro de cuánto estás consumiendo en tu día a día. Tan sólo pregúntale
o configúralo para que te informe si estás sobrepasando el límite que consideres, y DUSTIN se
comunicará contigo.
DUSTIN tiene conexión a Internet. Si tienes algún aparato en casa
accesible por WiFi o deseas conectarte a servicios online como Spotify,
DUSTIN podrá utilizarlos si lo deseas.
Además, con la aplicación móvil de DUSTIN puedes acceder con tu Smartphone desde
cualquier lugar para comprobar la temperatura de tu casa o comprobar si te has dejado alguna
luz encendida. Si deseas encender o apagar algo, DUSTIN lo hará por ti con sólo tocar la
pantalla de tu teléfono.
5.1 Ejemplo de comandos de voz
P.- Dustin, ¿podrías decirme la temperatura de esta habitación?
D.- La temperatura en el cuarto son veinticuatro grados. ¿Desea que la modifique?
P.- No, gracias.
P.- Dustin, ¿sabes si hay alguien en el baño?
D.- No. Puedes usarlo.
15
P.- Dustin, ¿me pones música en la cocina, por favor?
D.- Sí, claro. ¿Alguna playlist en especial?
P.- La de Temazos.
D.- Sabia elección. Que disfrutes.
P.- Dustin, ¿qué nivel de luz tenemos en el salón?
D.- Hay poca luz.
P.- Vale, pues enciende la lámpara de la mesita.
D.- Estupendo. Ahora el nivel de luz es alto.
P.- Dustin, ¿qué tiempo hace hoy?
D.- Quince grados con lluvia. No te dejes el paraguas.
P.- Dustin, me voy de casa. ¿Podrías apagarme las luces?
D.- Por supuesto. Hasta luego.
5.2 Ejemplo de aplicación móvil
Figura 5 – Aplicación móvil
16
6. Bibliografía
• http://jasperproject.github.io/ -- Jasper
• https://pypi.python.org/pypi/RPi.GPIO -- librería Python GPIOs
• http://www.alsa-project.org/main/index.php/Main_Page -- drivers de audio
• http://www.raspberrypi.org/downloads/
• http://moodle.upm.es/titulaciones/oficiales/ -- presentación de Sensores y
Actuadores. Asignatura ELCO.
• https://github.com/jasperproject -- Proyecto Jasper en GitHub.
17
7. Anexos
7.1 Otros modelos de componentes
ADAPTADOR WIFI (11,55€)
http://es.rs-online.com/web/p/wireless-
adapters/7603621/?searchTerm=7603621&relevancy-
data=636F3D3126696E3D4931384E525353746F636B4E756D6265724D504E266C753D656E26
6D6D3D6D61746368616C6C26706D3D5E5C647B367D247C5E5C647B377D247C5E5C647B3130
7D2426706F3D313426736E3D592673743D52535F53544F434B5F4E554D424552267573743D3
73630333632312677633D4E4F4E4526
ALTAVOZ (8,23€)
http://www.amazon.es/Conceptronic-C08-168-Altavoz-stereo-
por%C3%A1til/dp/B0065GDKZ0/ref=sr_1_sc_4?s=electronics&ie=UTF8&qid=1401721225&sr=1
-4-spell&keywords=altavo
PIR (6,97€)
http://www.digikey.com/product-detail/es/EKMC1601111/255-3074-ND/2601868
MICROFONO (18,90€)
http://www.amazon.es/Cablematic-PN26021402463113095-Micr%C3%B3fono-
USB/dp/B007G5QSTE/ref=pd_sim_sbs_e_8?ie=UTF8&refRID=0GDQG9N61JMZEQ8ED0W6
18