{"id":2579,"date":"2019-12-13T20:48:27","date_gmt":"2019-12-13T20:48:27","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=2579"},"modified":"2019-12-13T22:22:42","modified_gmt":"2019-12-13T22:22:42","slug":"arduhome","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/","title":{"rendered":"ArduHome"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente?  ArduHome es el asistente que llevas esperando todo este tiempo. Pudiendo ser construido por ti mismo,  ArduHome llega para revolucionar el mercado de la dom\u00f3tica.<\/p>\n\n\n\n<p>\u00bfPero c\u00f3mo consigo mi ArduHome? En primer lugar, vamos a introducir en qu\u00e9 consiste. A rasgos generales, se trata de un asistente de voz inteligente con el que se pueden controlar muchas tareas, que facilitan la calidad de vida en el hogar.<br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Explicaci\u00f3n general<\/h2>\n\n\n\n<p>En cuanto a las funcionalidades que hemos implementado, la principal es el reconocimiento de voz. De esta dependen las restantes funcionalidades, ya que es el pilar central con el que podemos controlarlo todo. De esta forma, mediante distintos comandos de voz, podemos activar distintas tareas como el reproductor de m\u00fasica, encender luces o encender el ventilador. Adem\u00e1s, se han incorporado funcionalidades extra mediante una pantalla que muestra informaci\u00f3n referente a la temperatura y la humedad. As\u00ed mismo, tambi\u00e9n nos preocupamos por la salud del usuario e incorporamos sensor de ritmo cardiaco, adem\u00e1s de su seguridad, mediante el sensor de incendios y derrumbamiento de la vivienda.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Componentes empleados<\/h2>\n\n\n\n<p>A continuaci\u00f3n, se detallan los componentes empleados en el proyecto:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Geeetech Voice Recognition Module with microphone control voice board.<\/li><li>2W 8R 8 Ohm 28MM Speaker Loudspeakers Horn for VCD EVD Thick 5.6MM<\/li><li>10 Pcs TO-92 Triode Transistor BC547 BC557 NPN PBP Low Power Transistors<\/li><li>DFPlayer Mini MP3 Player Module MP3 Voice Audio Decoder Board For Supporting TF Card U-Disk IO\/Serial Port\/AD<\/li><li>Sensor DHT 11<\/li><li>Sensor de ritmo card\u00edaco KY-039<\/li><li>Sensor de detecci\u00f3n de incendios KY-036<\/li><li>Sensor de inclinaci\u00f3n KY-020<\/li><li>Motor<\/li><li>Buzzer<\/li><li>Leds x4<\/li><li>DSD TECH USB a TTL convertidor serie CP2102 con 4 PIN Dupont Cable<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Presupuesto<\/h2>\n\n\n\n<p>El precio de cada componente se detalla a continuaci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>x2 Arduino Uno -&gt; 19.99\u20ac c\/u Amazon<\/li><li>x1 Pack sensores -&gt; 7.99$ c\/u Banggood<\/li><li>x1 M\u00f3dulo de reconocimiento de voz -&gt; 18.99$ c\/u Banggood<\/li><li>x1 Pack 10 transistores -&gt; 1.83$ c\/u Banggood<\/li><li>x1 Adaptador SD para Arduino -&gt; 1.99$ c\/u Banggood<\/li><li>x1 Altavoz 8 ohmios 2W Arduino -&gt; 2.24$ c\/u Banggood<\/li><li>x1 Pack 120 cables -&gt; 5.99\u20ac c\/u Amazon<\/li><li>x1 Adaptador USB Serial -&gt; 7.99\u20ac c\/u Amazon<\/li><li>x1 Caja de cart\u00f3n duro -&gt; 7.50\u20ac c\/u Maxi China Alcorc\u00f3n<\/li><li>x1 L\u00e1mina de cart\u00f3n duro -&gt; 2.50\u20ac Maxi China Alcorc\u00f3n<\/li><li>x1 Pack herramientas para manejar los materiales (tijeras, pegamento, segueta, soldador, &#8230;) -&gt; Gratis<\/li><\/ul>\n\n\n\n<p>En total, el desembolso asciende a 53,81 \u20ac, dado que cont\u00e1bamos con los dos Arduino Uno.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Librer\u00edas utilizadas<\/h2>\n\n\n\n<p>Adem\u00e1s, hemos empleado las siguientes librer\u00edas, que explicaremos m\u00e1s adelante:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>LiquidCrystal<\/li><li>DFPlayerMini<\/li><li>SoftwareSerial<\/li><li>DHT<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Explicaci\u00f3n de las funcionalidades<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Reconocimiento de voz<\/h4>\n\n\n\n<p>La implementaci\u00f3n del reconocimiento de voz se realiza mediante el modulo de Geeetech anteriormente mencionado.&nbsp;<\/p>\n\n\n\n<p>Para la grabaci\u00f3n de los comandos de voz, se ha necesitado utilizar un micr\u00f3fono externo al que el m\u00f3dulo tra\u00eda por defecto, puesto que el componente vino defectuoso. Adem\u00e1s, se ha necesitado utilizar un USB serial para realizar la conexi\u00f3n con el ordenador, y poder utilizar el programa DockLight, mediante el que se introdujeron los mandatos. Esto se puede realizar hasta alcanzar un m\u00e1ximo de 15 comandos, distribuidos en 3 grupos de 5. En ello resid\u00eda una de las mayores complicaciones del proyecto, dado que el m\u00f3dulo \u00fanicamente permite activar un grupo de comandos de voz. Sin embargo, esto&nbsp;<\/p>\n\n\n\n<p>Como hemos comentado, esta es la pieza clave de nuestro proyecto.&nbsp;<\/p>\n\n\n\n<p>Una vez iniciada la ejecuci\u00f3n, ArduHome comenzar\u00e1 salud\u00e1ndonos. A partir de ah\u00ed, basta con indicarle la tarea que tiene que realizar.<\/p>\n\n\n\n<p>Las comandos de voz que ArduHome detectar\u00e1 son los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Luces<\/strong>: Tras indicarselo, ArduHome nos preguntar\u00e1 qu\u00e9 luces queremos modificar. Si dicha luz se encuentra encendida, se apagar\u00e1, y viceversa. Se ofrecen las siguientes opciones:<ul><li>Sal\u00f3n<\/li><li>Cocina<\/li><li>Habitaci\u00f3n<\/li><li>Garaje<\/li><li>Todas<\/li><\/ul><\/li><li><strong>M\u00fasica<\/strong>: ArduHome preguntar\u00e1 qu\u00e9 queremos que haga, en referencia al apartado m\u00fasica. En ese momento, podremos indicarle varias opciones:<ul><li>Play<\/li><li>Pausa<\/li><li>Siguiente<\/li><li>Anterior<\/li><li>Fiesta: En este caso, ArduHome seleccionar\u00e1 una canci\u00f3n aleatoria a su elecci\u00f3n y comenzar\u00e1 a encender y apagar las luces de la casa de igual manera aleatoria.<\/li><\/ul><\/li><li><strong>Ventilador<\/strong>: ArduHome activar\u00e1 o desactivar\u00e1 el ventilador en funci\u00f3n de c\u00f3mo se encuentre antes de la petici\u00f3n.<\/li><li><strong>Hola<\/strong>: Si saludamos a ArduHome, nos devolver\u00e1 el saludo y preguntar\u00e1 qu\u00e9 tal estamos.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Reproductor de m\u00fasica<\/h4>\n\n\n\n<p>El reproductor de m\u00fasica consta de un altavoz, un lector y una tarjeta microSD para almacenar los archivos de audio que queramos reproducir (en formato mp3). Es capaz de comenzar a reproducir una pista de audio mediante el comando de voz \u201cplay\u201d, pasar a la siguiente pista mediante el comando \u201csiguiente\u201d, volver a la pista anterior mediante el comando \u201canterior\u201d, y pausarla mediante el comando \u201cpausa\u201d. Adem\u00e1s, hemos implementado la funci\u00f3n de \u201cfiesta\u201d, mediante la cual comenzar\u00e1 a sonar m\u00fasica (de una pista elegida al azar) y las luces se encender\u00e1n de manera aleatoria.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Luces<\/h4>\n\n\n\n<p>La iluminaci\u00f3n del hogar se encuentra dividida en distintas estancias. De esta forma, podemos encender las luces correspondiente a cada habitaci\u00f3n de forma independiente mediante los comandos \u201cba\u00f1o\u201d, \u201csal\u00f3n\u201d, \u201chabitaci\u00f3n\u201d y \u201cgaraje\u201d . El sistema es capaz de reconocer si las luces est\u00e1n encendidas o apagadas, por lo que nos basta con decir el nombre de la estancia para que se apague si est\u00e1 encendida o viceversa. Adem\u00e1s, tambi\u00e9n se pueden activar todas las luces a la vez mediante el comando de voz \u201ctodas\u201d.&nbsp;<\/p>\n\n\n\n<p>El asistente nos dar\u00e1 retroalimentaci\u00f3n mientras realiza las tareas. Por ejemplo, dice \u201cencendiendo\u201d o \u201capagando\u201d justo antes de encender o apagar una luz. De forma an\u00e1loga, dice \u201cque empiece la fiesta\u201d si hemos escogido la opci\u00f3n de fiesta.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sensor de derrumbamiento<\/h4>\n\n\n\n<p>El sensor de derrumbamiento nos avisar\u00e1 si la casa se est\u00e1 derrumbando, por ejemplo por la acci\u00f3n de un terremoto o un fallo en los cimientos. Para detectarlo, se cuenta con un sensor que mide la inclinaci\u00f3n, de forma de que si la casa comienza a inclinarse se muestra un mensaje por pantalla que alerta del peligro de derrumbe.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sensor de incendios<\/h4>\n\n\n\n<p>El sensor de incendios alertar\u00e1 mediante el pitido de un buzzer cuando detecte que hay fuego en una distancia relativamente cercana.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sensor de temperatura y humedad<\/h4>\n\n\n\n<p>El sensor de temperatura y humedad detecta lo dicho en tiempo real, y lo muestra por la pantalla LCD implementada.<br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sensor de ritmo card\u00edaco<\/h4>\n\n\n\n<p>Situando el dedo en el sensor de ritmo card\u00edaco, es capaz de indicarnos en tiempo real nuestra frecuencia card\u00edaca, mostr\u00e1ndola mediante la pantalla LCD.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pantalla LCD<\/h4>\n\n\n\n<p>La pantalla LCD es el perfecto acompa\u00f1ante de la asistencia por voz. Mediante ella, ArduHome nos indica ciertos datos de la casa, como la temperatura o humedad actual, los indicadores de inclinaci\u00f3n y detecci\u00f3n de fuego, o nuestro ritmo card\u00edaco cuando sea necesario.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Librer\u00edas<\/h2>\n\n\n\n<p><strong>LiquidCrystal<\/strong><\/p>\n\n\n\n<p>Esta librer\u00eda se utiliza para poder tener manejo sobre la pantalla LCD de 16 pines que tenemos, y tener m\u00e1s accesibles sus funcionalidades, tales como la configuraci\u00f3n de la pantalla o la limpieza cuando se escriba algo. Es una librer\u00eda auxiliar que hemos incluido en nuestro proyecto, ya que programar nosotros incluso el c\u00f3digo de esta librer\u00eda ser\u00eda un trabajo m\u00e1s duro que el propio proyecto en s\u00ed.<br><\/p>\n\n\n\n<p><strong>M\u00e1s informaci\u00f3n<\/strong>: <a href=\"https:\/\/www.arduino.cc\/en\/Reference\/LiquidCrystal\">https:\/\/www.arduino.cc\/en\/Reference\/LiquidCrystal<\/a><br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>DFPlayerMini<\/strong><\/p>\n\n\n\n<p>Esta es otra librer\u00eda auxiliar en la que nos hemos apoyado para realizar toda la funcionalidad referida a la reproducci\u00f3n de audio. Como hemos comentado arriba, nuestra casa dom\u00f3tica tiene la opci\u00f3n de reproducirla, pararla, reproducir la siguiente canci\u00f3n o reproducir la anterior.<\/p>\n\n\n\n<p>Esta librer\u00eda nos permite utilizar funciones ya programadas que nos evitan perder tiempo en entenderlas y as\u00ed podemos probarlas y utilizarlas directamente.<\/p>\n\n\n\n<p><strong>Descarga:<\/strong> <a href=\"https:\/\/github.com\/DFRobot\/DFRobotDFPlayerMini\">https:\/\/github.com\/DFRobot\/DFRobotDFPlayerMini<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>SoftwareSerial<\/strong><\/p>\n\n\n\n<p>Por defecto, Arduino permite realizar comunicaciones seriales por hardware mediante los pines digitales 0 y 1. Mediante esta librer\u00eda, se permite simular dicho comportamiento por software, permitiendo utilizar pines diferentes para realizar el mismo comportamiento.<\/p>\n\n\n\n<p><strong>M\u00e1s informaci\u00f3n<\/strong>: <a href=\"https:\/\/www.arduino.cc\/en\/Reference\/SoftwareSerial\">https:\/\/www.arduino.cc\/en\/Reference\/SoftwareSerial<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>DHT<\/strong><\/p>\n\n\n\n<p>La librer\u00eda DHT permite manejar de manera m\u00e1s sencilla el m\u00f3dulo de detecci\u00f3n de humedad y temperatura.<\/p>\n\n\n\n<p><strong>Descarga:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"http:\/\/docs.google.com\/file\/d\/0B0hsUkhqWH97NnM5QWZlN0ZsYVE\/edit?usp=sharing\">http:\/\/docs.google.com\/file\/d\/0B0hsUkhqWH97NnM5QWZlN0ZsYVE\/edit?usp=sharing<\/a><\/li><li><a href=\"https:\/\/github.com\/adafruit\/DHT-sensor-library\">https:\/\/github.com\/adafruit\/DHT-sensor-library<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problemas encontrados<\/h2>\n\n\n\n<p>Al principio, cuando recibimos todos los componentes, intentamos grabar el audio, pero result\u00f3 que nos faltaba un componente fundamental, que era el adaptador USB serial para poder grabar los comandos. Adem\u00e1s de no disponer del USB serial, el micr\u00f3fono que nos mandaron no funcionaba, por lo que tuvimos que apa\u00f1arnos con uno de peor calidad, que montamos de manera independiente. Esto supuso el tener que pedir el nuevo componente y retrasar un poco m\u00e1s el trabajo.<\/p>\n\n\n\n<p>Una vez que conseguimos grabar el audio, estuvimos intentando probar varios sensores e implementar nuevas funcionalidades para nuestra casa dom\u00f3tica. Cuando nos dispusimos a esto, vimos que algunos sensores no funcionaban correctamente, o funcionaban de manera intermitente, por lo que tuvimos que eliminar ciertas funcionalidades que en un principio dese\u00e1bamos implementar.<\/p>\n\n\n\n<p>Tambi\u00e9n tuvimos problemas con la pantalla LCD, ya que la \u00fanica que dispon\u00edamos necesitaba de un conector especial que no ten\u00edamos (y que curiosamente no encontramos repuesto por Internet). Por ello, tuvimos que comprar m\u00e1s cables (un pack de 120) y conectar minuciosamente cada uno de los 16 pines que eran necesarios para nuestra pantalla.<\/p>\n\n\n\n<p>Hemos tenido problemas debido a que necesitamos muchas conexiones de pines por la gran cantidad de sensores, aunque al final lo hemos conseguido con dos Arduino Uno. Adem\u00e1s, como \u00edbamos trabajando en paralelo, juntar los diferentes c\u00f3digos de los sensores e integrar todo ha sido m\u00e1s dif\u00edcil de lo que pens\u00e1bamos.<\/p>\n\n\n\n<p>En \u00faltimo lugar, cabe mencionar que lo que m\u00e1s problemas nos ha causado ha sido el reconocimiento de voz. Por un lado, por distintos fallos con la importaci\u00f3n de librer\u00edas, adem\u00e1s de que en Internet tampoco hay mucha documentaci\u00f3n sobre esto. Por otro lado, la mala calidad del micr\u00f3fono y las veces que \u00e9ste nos fallaba, lo que hizo que el reconocimiento de voz se eternizara hasta que finalmente conseguimos grabar los comandos.&nbsp;<\/p>\n\n\n\n<p>El \u00faltimo gran problema est\u00e1, de nuevo, relacionado con los propios comandos de voz. El m\u00f3dulo utilizado \u00fanicamente permite activar un grupo de 5 comandos de manera simult\u00e1nea, por lo que, si esto acabase as\u00ed, ver\u00edamos muy limitadas las funcionalidades implementadas. En el \u00fanico manual del m\u00f3dulo que localizamos, se recomendaba realizar la activaci\u00f3n de grupos y la grabaci\u00f3n de comandos mediante Docklight, un programa externo. Sin embargo, para poder utilizar la totalidad de grupos de comandos y poder acceder a los 15 mandatos de voz, conseguimos comunicarnos con el m\u00f3dulo de voz en tiempo de ejecuci\u00f3n e indicarle mediante escrituras hexadecimales los diferentes cambios de grupos necesarios. Esto desemboc\u00f3 en un redise\u00f1o de la agrupaci\u00f3n de comandos, agrup\u00e1ndolos en diferentes secciones tem\u00e1ticas.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algunas im\u00e1genes del proceso<\/h2>\n\n\n\n<p>A continuaci\u00f3n se muestras algunas im\u00e1genes que hicimos durante el desarrollo del proyecto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/1-1024x768.jpeg\" alt=\"\" class=\"wp-image-2608\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/1-1024x768.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/1-300x225.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/1-768x576.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/1-1536x1152.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/1.jpeg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Imagen 1 &#8211; Montando las luces <\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/3-768x1024.jpeg\" alt=\"\" class=\"wp-image-2609\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/3-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/3-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/3-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/3.jpeg 1500w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption>Imagen 2 &#8211; Sensor de inclinaci\u00f3n con alarma (buzzer)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/5-1024x768.jpeg\" alt=\"\" class=\"wp-image-2612\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/5-1024x768.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/5-300x225.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/5-768x576.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/5-1536x1152.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/5.jpeg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Imagen 3 &#8211; Pantalla LCD con los 16 pines conectados manualmente <\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/4-1024x768.jpeg\" alt=\"\" class=\"wp-image-2610\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/4-1024x768.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/4-300x225.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/4-768x576.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/4-1536x1152.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/4.jpeg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Imagen 4 &#8211; Juntando todo <\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15-1024x768.jpeg\" alt=\"\" class=\"wp-image-2615\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15-1024x768.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15-300x225.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15-768x576.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15-1536x1152.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/WhatsApp-Image-2019-12-12-at-13.16.15.jpeg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Imagen 5 &#8211; Resultado final <\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Video explicativo<\/h2>\n\n\n\n<p>A continuaci\u00f3n, se incorpora un video resumen de los materiales necesarios para construir ArduHome y su funcionamiento:<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"ArduHome\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/baix3zkKmjU?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 elegir ArduHome? Comparativa con otras alternativas comerciales<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><img loading=\"lazy\" decoding=\"async\" width=\"1365\" height=\"770\" class=\"wp-image-2598\" style=\"width: 1366px\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome_why.jpg\" alt=\"\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome_why.jpg 1365w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome_why-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome_why-1024x578.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome_why-768x433.jpg 768w\" sizes=\"auto, (max-width: 1365px) 100vw, 1365px\" \/><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do it yourself<\/h2>\n\n\n\n<p>Est\u00e1 claro que no se puede competir tan f\u00e1cilmente con gigantes en el mercado como Google o Amazon&#8230; Pero lo mejor de este proyecto, \u00a1Es que puedes hacer t\u00fa mismo! A tu medida y seg\u00fan tus preferencias, mientras como nosotros, aprendes del proceso. Todo es mucho m\u00e1s enriquecedor cuando lo haces t\u00fa mismo y no te limitas a comprarlo para utilizarlo.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3digo<\/h2>\n\n\n\n<p>Por \u00faltimo, se adjunta el c\u00f3digo utilizado para implementar la funcionalidad de ambas placas Arduino:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ARDUINO 1 - RECONOCIMIENTO DE VOZ, RESPUESTAS A COMANDOS Y MP3\n\/\/Includes\n#include \"Arduino.h\"\n#include \"SoftwareSerial.h\"\n#include \"DFRobotDFPlayerMini.h\"\n\nSoftwareSerial myPlayerSerial(10, 11); \/\/DFPlayer\nSoftwareSerial myVoiceSerial(2, 3); \/\/Voice Module\nDFRobotDFPlayerMini myDFPlayer;\n\nint grupo_activo=1; \/\/Variabe que indica el grupo actual\n\n\/\/Leds\/\/\n\/\/In and Out\nint led1 = 5; \/\/Salon\nint led2 = 6; \/\/Cocina\nint led3 = 9; \/\/Bano\nint led4 = A2;  \/\/Garaje\n\n\/\/LDR\/\/\nint ldrPin=A0;\n\n\/\/Variables\nbyte com = 0;\nint luzSalon=0;\nint luzBano=0;\nint luzCocina=0;\nint luzGaraje=0;\n\n\nint ldrStatus;\n\nint fiesta=0;\n\nint pista_actual=10;\n\nint motor=12;\nint motorOn=0;\n\nint comAlarma=13;\nint alarma=0;\n\n\/\/Grupo 1\n\/\/Luces,musica,ventilador, alarma, hola\n\/\/Grupo 2\n\/\/Salon, ba\u00f1o, cocina, garaje encender todas(luces)\n\/\/Grupo 3 \n\/\/Play, pause, ant,sig, fiesta\n\nvoid importGroup(int n){\n   \n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write((byte)0x00);\/\/Waiting\n    delay(100);\n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write(0x37);\/\/Compact mode\n    delay(100);\n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write((byte)0x00);\/\/Waiting\n    delay(100);\n    if(n==1){\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x21);\/\/Import group 1\n    }\n    if(n==2){\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x22);\/\/Import group 2\n    }\n    else{\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x23);\/\/Import group 3\n    }\n}\nvoid fiestaHandler(){\n  if(fiesta==1){\n          if(random(2)==1){\n            digitalWrite(led1, HIGH);\n          }else{\n            digitalWrite(led1, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led2, HIGH);\n          }else{\n            digitalWrite(led2, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led3, HIGH);\n          }else{\n            digitalWrite(led3, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led4, HIGH);\n          }else{\n            digitalWrite(led4, LOW);\n          }\n          delay(500);\n  }else{\n    digitalWrite(led1, LOW);\n    digitalWrite(led2, LOW);\n    digitalWrite(led3, LOW);\n    digitalWrite(led4, LOW);\n    \n  }\n}\nvoid setup()\n{\n\n  Serial.begin(9600);\n  \n  \/\/ Set leds \/\/\n  pinMode(led1, OUTPUT); \n  pinMode(led2, OUTPUT);\n  pinMode(led3, OUTPUT); \n  pinMode(led4, OUTPUT); \n  pinMode(ldrPin,INPUT);\n  pinMode(motor, OUTPUT);\n  pinMode(comAlarma, OUTPUT);\n\n  randomSeed(analogRead(A2));\n  \n  myPlayerSerial.begin(9600);\n  Serial.println();\n  Serial.println(F(\"DFRobot DFPlayer Mini Demo\"));\n  Serial.println(F(\"Initializing DFPlayer ... (May take 3~5 seconds)\"));\n\n  if (!myDFPlayer.begin(myPlayerSerial)) { \n    Serial.println(F(\"Unable to begin:\"));\n    Serial.println(F(\"1.Please recheck the connection!\"));\n    Serial.println(F(\"2.Please insert the SD card!\"));\n    while(true);\n  }\n  Serial.println(F(\"DFPlayer Mini online.\"));\n\n  myDFPlayer.volume(30);  \/\/0-30\n  myDFPlayer.play(6);\n  delay(1500);\n  myDFPlayer.pause();\n\n  \/\/Voice recognition\n  myVoiceSerial.begin(9600);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write((byte)0x00);\/\/Waiting\n  delay(100);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write(0x37);\/\/Compact mode\n  delay(100);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write((byte)0x00);\/\/Waiting\n  delay(100);\n  importGroup(1);\n  \n}\n\nvoid loop()\n{\n  \n  myVoiceSerial.listen();\n  ldrStatus=analogRead(ldrPin);\n\n\n  while(grupo_activo==1){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n       myDFPlayer.play(8); \/\/\u00bfQu\u00e9 luz quieres cambiar?\n       delay(1500);\n       myDFPlayer.pause();\n            \n       grupo_activo=2;\n       myVoiceSerial.listen();\n       importGroup(2);\n      \n    }\n    if(com==0x12){\n      myDFPlayer.play(9);\n      grupo_activo=3;\n      myVoiceSerial.listen();\n      importGroup(3);\n      \n    }\n    if(com==0x13){\n      if(motorOn==1){\n        Serial.print(\"Ventilador no\");\n        digitalWrite(motor, LOW);\n        motorOn=0;\n      }else{\n        Serial.print(\"Ventilador\");\n        digitalWrite(motor, HIGH);\n        motorOn=1;\n      }\n    }\n\n    if(com==0x15){\n      myDFPlayer.play(6); \/\/Play - Hola qu\u00e9 tal\n      delay(1500);\n      myDFPlayer.pause();\n      \n    }\n  }\n\n  \n  \n  while(grupo_activo==2){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n      Serial.print(\"Luz salon\");\n            if(luzSalon==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Salon encendida\");\n              digitalWrite(led1, HIGH);\n              luzSalon=1;\n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Salon apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led1, LOW);\n              luzSalon=0; \n              \n            }\n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x12){\n      \/\/Luz Bano\n            if(luzBano==0){     \n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Bano encendida\");\n              digitalWrite(led3, HIGH);\n              luzBano=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Bano apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led3, LOW);\n              luzBano=0; \n                         \n            }\n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x13){\n      \/\/Luz Cocina\n  \n            if(luzCocina==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Cocina encendida\");\n              digitalWrite(led3, HIGH);\n              luzCocina=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Cocina apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led3, LOW);\n              luzCocina=0; \n              \n            }\n            \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n      \n    }\n    if(com==0x14){\n      \/\/Luz garaje      \n            if(luzGaraje==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Garaje encendida\");\n              digitalWrite(led4, HIGH);\n              luzGaraje=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Garaje apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led4, LOW);\n              luzGaraje=0; \n              \n            }\n  \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n      \n    }\n    if(com==0x15){\n      \/\/Encender todas      \n            \n              myDFPlayer.play(5); \/\/Activado\n              delay(1500);\n              myDFPlayer.pause();\n              \n              \/\/Encender luces\/\/\n              Serial.write(\"Todas\");\n              digitalWrite(led1, HIGH);\n              digitalWrite(led2, HIGH);\n              digitalWrite(led3, HIGH);\n              digitalWrite(led4, HIGH);\n              luzSalon=1;\n              luzBano=1;\n              luzCocina=1;\n              luzGaraje=1;\n              \n              grupo_activo=1;\n              myVoiceSerial.listen();\n              importGroup(1);\n    }\n  }\n\n  \n  \n  while(grupo_activo==3){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n      \/\/Play m\u00fasica   \n            myDFPlayer.play(pista_actual);\n\n      \n    }\n    if(com==0x12){\n      \/\/Pausar m\u00fasica\n            myDFPlayer.pause();     \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x13){\n          \/\/Pone la canci\u00f3n anterior \n          Serial.print(\"Anterior\");\n            if(pista_actual&gt;10){\n              pista_actual--;\n            }else{\n              pista_actual=13;\n            }\n            myDFPlayer.play(pista_actual);\n      \n    }\n    if(com==0x14){\n      \n            Serial.print(\"Siguiente\");\n            if(pista_actual&lt;13){\n              pista_actual++;\n            }else{\n              pista_actual=10;\n            }\n            myDFPlayer.play(pista_actual);\n      \n    }\n    if(com==0x15){\n      \n      if(fiesta==0){\n        Serial.print(\"Fiesta\");\n        myDFPlayer.play(7);\n        delay(2000);\n        myDFPlayer.play(random(10,14));\n        fiesta=1;\n        \n      }else{\n        Serial.print(\"Fiesta fuera\");\n        myDFPlayer.pause();\n        fiesta=0;\n        grupo_activo=1;\n        myVoiceSerial.listen();\n        importGroup(1);        \n      }\n\n    }\n    fiestaHandler();\n  }\n        delay(1000);\n      \n}\n#include \"SoftwareSerial.h\"\n#include \"DFRobotDFPlayerMini.h\"\n\nSoftwareSerial myPlayerSerial(10, 11); \/\/DFPlayer\nSoftwareSerial myVoiceSerial(2, 3); \/\/Voice Module\nDFRobotDFPlayerMini myDFPlayer;\n\nint grupo_activo=1; \/\/Variabe que indica el grupo actual\n\n\/\/Leds\/\/\n\/\/In and Out\nint led1 = 5; \/\/Salon\nint led2 = 6; \/\/Cocina\nint led3 = 9; \/\/Bano\nint led4 = A2;  \/\/Garaje\n\n\/\/LDR\/\/\nint ldrPin=A0;\n\n\/\/Variables\nbyte com = 0;\nint luzSalon=0;\nint luzBano=0;\nint luzCocina=0;\nint luzGaraje=0;\n\n\nint ldrStatus;\n\nint fiesta=0;\n\nint pista_actual=10;\n\nint motor=12;\nint motorOn=0;\n\nint comAlarma=13;\nint alarma=0;\n\n\/\/Grupo 1\n\/\/Luces,musica,ventilador, alarma, hola\n\/\/Grupo 2\n\/\/Salon, ba\u00f1o, cocina, garaje encender todas(luces)\n\/\/Grupo 3 \n\/\/Play, pause, ant,sig, fiesta\n\nvoid importGroup(int n){\n   \n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write((byte)0x00);\/\/Waiting\n    delay(100);\n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write(0x37);\/\/Compact mode\n    delay(100);\n    myVoiceSerial.write(0xAA);\n    myVoiceSerial.write((byte)0x00);\/\/Waiting\n    delay(100);\n    if(n==1){\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x21);\/\/Import group 1\n    }\n    if(n==2){\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x22);\/\/Import group 2\n    }\n    else{\n      myVoiceSerial.write(0xAA);\n      myVoiceSerial.write(0x23);\/\/Import group 3\n    }\n}\nvoid fiestaHandler(){\n  if(fiesta==1){\n          if(random(2)==1){\n            digitalWrite(led1, HIGH);\n          }else{\n            digitalWrite(led1, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led2, HIGH);\n          }else{\n            digitalWrite(led2, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led3, HIGH);\n          }else{\n            digitalWrite(led3, LOW);\n          }\n          if(random(2)==1){\n            digitalWrite(led4, HIGH);\n          }else{\n            digitalWrite(led4, LOW);\n          }\n          delay(500);\n  }else{\n    digitalWrite(led1, LOW);\n    digitalWrite(led2, LOW);\n    digitalWrite(led3, LOW);\n    digitalWrite(led4, LOW);\n    \n  }\n}\nvoid setup()\n{\n\n  Serial.begin(9600);\n  \n  \/\/ Set leds \/\/\n  pinMode(led1, OUTPUT); \n  pinMode(led2, OUTPUT);\n  pinMode(led3, OUTPUT); \n  pinMode(led4, OUTPUT); \n  pinMode(ldrPin,INPUT);\n  pinMode(motor, OUTPUT);\n  pinMode(comAlarma, OUTPUT);\n\n  randomSeed(analogRead(A2));\n  \n  myPlayerSerial.begin(9600);\n  Serial.println();\n  Serial.println(F(\"DFRobot DFPlayer Mini Demo\"));\n  Serial.println(F(\"Initializing DFPlayer ... (May take 3~5 seconds)\"));\n\n  if (!myDFPlayer.begin(myPlayerSerial)) { \n    Serial.println(F(\"Unable to begin:\"));\n    Serial.println(F(\"1.Please recheck the connection!\"));\n    Serial.println(F(\"2.Please insert the SD card!\"));\n    while(true);\n  }\n  Serial.println(F(\"DFPlayer Mini online.\"));\n\n  myDFPlayer.volume(30);  \/\/0-30\n  myDFPlayer.play(6);\n  delay(1500);\n  myDFPlayer.pause();\n\n  \/\/Voice recognition\n  myVoiceSerial.begin(9600);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write((byte)0x00);\/\/Waiting\n  delay(100);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write(0x37);\/\/Compact mode\n  delay(100);\n  myVoiceSerial.write(0xAA);\n  myVoiceSerial.write((byte)0x00);\/\/Waiting\n  delay(100);\n  importGroup(1);\n  \n}\n\nvoid loop()\n{\n  \n  myVoiceSerial.listen();\n  ldrStatus=analogRead(ldrPin);\n\n\n  while(grupo_activo==1){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n       myDFPlayer.play(8); \/\/\u00bfQu\u00e9 luz quieres cambiar?\n       delay(1500);\n       myDFPlayer.pause();\n            \n       grupo_activo=2;\n       myVoiceSerial.listen();\n       importGroup(2);\n      \n    }\n    if(com==0x12){\n      myDFPlayer.play(9);\n      grupo_activo=3;\n      myVoiceSerial.listen();\n      importGroup(3);\n      \n    }\n    if(com==0x13){\n      if(motorOn==1){\n        Serial.print(\"Ventilador no\");\n        digitalWrite(motor, LOW);\n        motorOn=0;\n      }else{\n        Serial.print(\"Ventilador\");\n        digitalWrite(motor, HIGH);\n        motorOn=1;\n      }\n    }\n\n    if(com==0x15){\n      myDFPlayer.play(6); \/\/Play - Hola qu\u00e9 tal\n      delay(1500);\n      myDFPlayer.pause();\n      \n    }\n  }\n\n  \n  \n  while(grupo_activo==2){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n      Serial.print(\"Luz salon\");\n            if(luzSalon==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Salon encendida\");\n              digitalWrite(led1, HIGH);\n              luzSalon=1;\n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Salon apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led1, LOW);\n              luzSalon=0; \n              \n            }\n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x12){\n      \/\/Luz Bano\n            if(luzBano==0){     \n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Bano encendida\");\n              digitalWrite(led3, HIGH);\n              luzBano=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Bano apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led3, LOW);\n              luzBano=0; \n                         \n            }\n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x13){\n      \/\/Luz Cocina\n  \n            if(luzCocina==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Cocina encendida\");\n              digitalWrite(led3, HIGH);\n              luzCocina=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Cocina apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led3, LOW);\n              luzCocina=0; \n              \n            }\n            \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n      \n    }\n    if(com==0x14){\n      \/\/Luz garaje      \n            if(luzGaraje==0){\n              myDFPlayer.play(5); \/\/Encendiendo\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Garaje encendida\");\n              digitalWrite(led4, HIGH);\n              luzGaraje=1;\n              \n            }\n            else{\n              myDFPlayer.play(2); \/\/Apagando\n              delay(2000);\n              myDFPlayer.pause();\n              Serial.print(\"Garaje apagada\");\n  \n              \/\/Apagar luz\/\/\n              digitalWrite(led4, LOW);\n              luzGaraje=0; \n              \n            }\n  \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n      \n    }\n    if(com==0x15){\n      \/\/Encender todas      \n            \n              myDFPlayer.play(5); \/\/Activado\n              delay(1500);\n              myDFPlayer.pause();\n              \n              \/\/Encender luces\/\/\n              Serial.write(\"Todas\");\n              digitalWrite(led1, HIGH);\n              digitalWrite(led2, HIGH);\n              digitalWrite(led3, HIGH);\n              digitalWrite(led4, HIGH);\n              luzSalon=1;\n              luzBano=1;\n              luzCocina=1;\n              luzGaraje=1;\n              \n              grupo_activo=1;\n              myVoiceSerial.listen();\n              importGroup(1);\n    }\n  }\n\n  \n  \n  while(grupo_activo==3){\n    com = myVoiceSerial.read();\n    \n    if(com==0x11){\n      \/\/Play m\u00fasica   \n            myDFPlayer.play(pista_actual);\n\n      \n    }\n    if(com==0x12){\n      \/\/Pausar m\u00fasica\n            myDFPlayer.pause();     \n            grupo_activo=1;\n            myVoiceSerial.listen();\n            importGroup(1);\n\n      \n    }\n    if(com==0x13){\n          \/\/Pone la canci\u00f3n anterior \n          Serial.print(\"Anterior\");\n            if(pista_actual&gt;10){\n              pista_actual--;\n            }else{\n              pista_actual=13;\n            }\n            myDFPlayer.play(pista_actual);\n      \n    }\n    if(com==0x14){\n      \n            Serial.print(\"Siguiente\");\n            if(pista_actual&lt;13){\n              pista_actual++;\n            }else{\n              pista_actual=10;\n            }\n            myDFPlayer.play(pista_actual);\n      \n    }\n    if(com==0x15){\n      \n      if(fiesta==0){\n        Serial.print(\"Fiesta\");\n        myDFPlayer.play(7);\n        delay(2000);\n        myDFPlayer.play(random(10,14));\n        fiesta=1;\n        \n      }else{\n        Serial.print(\"Fiesta fuera\");\n        myDFPlayer.pause();\n        fiesta=0;\n        grupo_activo=1;\n        myVoiceSerial.listen();\n        importGroup(1);        \n      }\n\n    }\n    fiestaHandler();\n  }\n        delay(1000);\n      \n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ARDUINO 2 - PANTALLA LCD Y LECTURA DE SENSORES\n\/\/ Includes sensor de temperatura y humedad\n#include &lt;dht.h&gt;\n\n\/\/ Includes pantalla lcd\n#include &lt;LiquidCrystal.h&gt;\n\n\nLiquidCrystal lcd(7,8,9,10,11,12);  \/\/ set the LCD address to 0x27 for a 16 chars and 2 line display\n\ndht DHT;\n\n#define DHT11_PIN 13\n\n\/\/ Sensor cardiaco\nint sensor_pin = 0;\ndouble alpha = 0.75;\nint period = 20;\ndouble refresh = 0.0;\n\n\n\n\/\/ Sensor inclinacion\nint SENSORINCLINACION = 5;      \nint ESTADO;                 \n\n\/\/ Motor\nint MOTOR = 2;    \nint buzzer = 4;      \/\/ selecciona el pin para el zumbador\n\n\/\/ Sensor temperatura y humedad\nint valorSensor = 0;  \/\/ variable para almacenar el valor proveniente del sensor\n\nvoid setup(){\n  \n Serial.begin(9600);\n \/\/ declarar buzzer como una SALIDA:\n pinMode(A1,INPUT);\n  pinMode(buzzer, OUTPUT);\n\n  pinMode(MOTOR,OUTPUT);\n  pinMode(SENSORINCLINACION, INPUT);  \n\n\n}\n\n\nvoid loop()\n{\n\n  static double old_value=0;\n  static double old_refresh=0;\n\n   lcd.begin(16,2);\n\n    \/\/ Ritmo cardiaco\n  int beat = analogRead(A1);\n  double value = alpha * old_value + (0 - alpha) * beat;\n  refresh = value - old_value;\n  old_value=value;\n  old_refresh=refresh;\n\n  \/\/ Inclinacion\n  ESTADO = digitalRead(SENSORINCLINACION); \n  int chk = DHT.read11(DHT11_PIN);\n  if(DHT.temperature&gt;32) {\n    digitalWrite(MOTOR,HIGH);\n  } else {\n    digitalWrite(MOTOR,LOW);\n  }\n  valorSensor = analogRead(A0);\n\n  \/\/ Humedad y temperatura\n  lcd.setCursor(0,0);\n  lcd.print(\"Temperature = \");\n  lcd.print(DHT.temperature);\n  \n  lcd.print(\"Fuego = \");\n  if(valorSensor &lt; 650) {\n    lcd.print(\"positivo  \");\n    digitalWrite(buzzer, HIGH);\n  } else {\n    lcd.print(\"negativo  \");\n    digitalWrite(buzzer, LOW); \n  }\n  \n  lcd.setCursor(0,1);\n  lcd.print(\"Humidity = \");\n  lcd.print(DHT.humidity);\n  \n   if (ESTADO == HIGH) {\n   lcd.print(\"   Peligro derrumbe\");\n  } else {\n    lcd.print(\"   Sin peligro\");\n  } \n\n  \n  delay(1300);\n  for(int i=0;i&lt;19;i++) {\n  lcd.scrollDisplayLeft();\n  }\n  delay(1300);\n\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Latido: \");\n  lcd.setCursor(0,1);\n  lcd.print(beat\/10);\n  lcd.print(\"  \");\n  delay(1300);\n  \n  \n}<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Autor\u00eda<\/h2>\n\n\n\n<p>Este proyecto ha sido realizado por:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Carlos Colmenero G\u00f3mez-Cambronero<\/li><li> \u00c1lvaro L\u00f3pez Sierra<\/li><li> Pablo Bayona Gonz\u00e1lez <\/li><li> Sergio Ar\u00e9valo Gil <\/li><\/ul>\n\n\n\n<p>Alumnos del Doble Grado en Dise\u00f1o y Desarrollo de Videojuegos e Ingenier\u00eda de Computadores de la Universidad Rey Juan Carlos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente?  ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome DIY llega para revolucionar el mercado de la dom\u00f3tica.<\/p>\n","protected":false},"author":1,"featured_media":2603,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[96,8,98,100,99],"class_list":["post-2579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos","tag-arduhome","tag-arduino","tag-asistente","tag-domotica","tag-virtual"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ArduHome - Proyectos con Arduino.<\/title>\n<meta name=\"description\" content=\"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ArduHome - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-13T20:48:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-13T22:22:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Administrador de la red\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Administrador de la red\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/\"},\"author\":{\"name\":\"Administrador de la red\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\"},\"headline\":\"ArduHome\",\"datePublished\":\"2019-12-13T20:48:27+00:00\",\"dateModified\":\"2019-12-13T22:22:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/\"},\"wordCount\":2114,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2019\\\/12\\\/arduhome.jpg\",\"keywords\":[\"ArduHome\",\"Arduino\",\"asistente\",\"domotica\",\"virtual\"],\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/\",\"name\":\"ArduHome - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2019\\\/12\\\/arduhome.jpg\",\"datePublished\":\"2019-12-13T20:48:27+00:00\",\"dateModified\":\"2019-12-13T22:22:42+00:00\",\"description\":\"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2019\\\/12\\\/arduhome.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2019\\\/12\\\/arduhome.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/arduhome\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ArduHome\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\",\"name\":\"Administrador de la red\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"caption\":\"Administrador de la red\"},\"sameAs\":[\"https:\\\/\\\/blogs.etsii.urjc.es\"],\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/etsiiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ArduHome - Proyectos con Arduino.","description":"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/","og_locale":"es_ES","og_type":"article","og_title":"ArduHome - Proyectos con Arduino.","og_description":"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2019-12-13T20:48:27+00:00","article_modified_time":"2019-12-13T22:22:42+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg","type":"image\/jpeg"}],"author":"Administrador de la red","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Administrador de la red","Tiempo de lectura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/"},"author":{"name":"Administrador de la red","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211"},"headline":"ArduHome","datePublished":"2019-12-13T20:48:27+00:00","dateModified":"2019-12-13T22:22:42+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/"},"wordCount":2114,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg","keywords":["ArduHome","Arduino","asistente","domotica","virtual"],"articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/","name":"ArduHome - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg","datePublished":"2019-12-13T20:48:27+00:00","dateModified":"2019-12-13T22:22:42+00:00","description":"\u00bfAlguna vez has so\u00f1ado con tener una casa inteligente? ArduHome es el asistente que llevas esperando todo este tiempo. ArduHome llega para revolucionar el mercado de la dom\u00f3tica.","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2019\/12\/arduhome.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/arduhome\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"ArduHome"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211","name":"Administrador de la red","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","caption":"Administrador de la red"},"sameAs":["https:\/\/blogs.etsii.urjc.es"],"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/etsiiadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/2579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=2579"}],"version-history":[{"count":9,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/2579\/revisions"}],"predecessor-version":[{"id":2618,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/2579\/revisions\/2618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/2603"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=2579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=2579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=2579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}