1.-INTRODUCCIÓN
Dentro de las múltiples esferas en las que impacta la Internet de las cosas (IoT, por sus siglas en inglés), se encuentran la domótica e inmótica. También existen otras áreas como la salud, el ahorro energético, la logística, el transporte, el medio ambiente, la agricultura de precisión, la industria, etc.
El término de IoT fue empleado por primera vez en 1999 por el especialista británico del MIT de Auto ID Ashton para la descripción de un sistema en el que los objetos se conectan a Internet por medio de sensores, aludiendo los sistemas con etiquetas RFID, utilizadas en las cadenas de suministro de productos y, realizar la trazabilidad de los mismos de forma automática [1].
Existen varias definiciones de IoT, pero todas lo que si tienen en común son los escenarios de la IoT en los que la conectividad de la red y la capacidad de cómputo se proyectan hacia una gran cantidad de objetos, dispositivos, sensores y artículos de uso diario que no se consideran ordenadores [1,2].
El desarrollo e interacción de diferentes áreas tecnológicas, como la microelectrónica, la electrónica, las telecomunicaciones, la informática, la arquitectura y la automática, posibilitaron que surja la disciplina de casa inteligente y edificio inteligente (domótica e inmótica). Dentro de la domótica un área particularmente importante lo constituye la asistencia a discapacitados físicos en general.
Un sistema electrónico de apoyo a personas discapacitadas, se identifica con el sistema domótico mostrado en la figura 1 anterior en sentido general, aunque obviamente pudiera variar en algunos de sus requerimientos debido a las necesidades de la discapacidad.
Un sistema domótico, en sentido muy general, se puede representar por un diagrama de bloques como el que se muestra en la figura 1.
En el diagrama anterior los sensores se identifican con los elementos que convierten la variable física monitorizada en variables de voltaje o corriente. El procesador, al igual que en otros sistemas, se encarga de efectuar el algoritmo de procesamiento requerido por el sistema y obtener los resultados o información relativa a la variable que se monitoriza. Luego, dicha información se almacena en el bloque de memoria, y/o se muestra en un “display” ubicado en el bloque Interfaz de usuario. En esta propia interfaz, el usuario podrá interactuar con el sistema domótico. En el caso del bloque actuador, este es el encargado de accionar sobre la variable física monitorizada, o sobre un evento en cuestión. Por último es importante señalar que las conexiones entre estos bloques puede ser alámbrica, inalámbrica o mixta.
El sistema que se propuso en este trabajo tuvo el objetivo de apoyar a personas con discapacidades motoras, fundamentalmente, en miembros inferiores y con debilidades visuales no severas. Para esto se utilizaron dos de los sensores con que cuentan los dispositivos Android, en particular los “Smartphone”, sin usar el escudo (1Sheeld) para “Arduino” y que recientemente salió al mercado y brinda la posibilidad de usar dichos sensores, aunque añadiría un costo, un volumen, y un peso adicional al sistema.
El sistema presentado en el trabajo está formado por un “Arduino Nano”, un dispositivo Bluetooth v4.0 y un “Smartphone” con sistema Android. También cuenta con una APK (Android Aplication Package, por sus siglas en inglés) que corre en el “Smartphone” y el conjunto logra accionar remotamente equipos y sistemas en una vivienda en un radio de 50 metros, como son las luces, aire acondicionado, aperturas de puertas, equipos electrodomésticos, etc. En el diseño se utilizaron los sensores de proximidad y de aceleración del “Smartphone” y cuenta con la particularidad de ir notificando, a través de un mensaje de voz, las acciones que realiza el usuario.
El funcionamiento del sistema es sencillo y garantiza que se utilicen los potentes y versátiles sensores que están presentes en los móviles. El software que se utiliza presenta varios apartados donde cuenta con bloques funcionales que permiten utilizar varios elementos sensoriales del dispositivo. No sería adecuado adquirir un escudo “1Sheeld” [4] que quizás no se justifique para desarrollar una aplicación determinada, además de que se añadiría un costo, un volumen y un peso adicional, asimismo se podría incidir negativamente en la fiabilidad de la aplicación en cuestión.
2.- SISTEMA DE APOYO A DISCAPACITADOS
En el epígrafe se describe el diseño del sistema electrónico de apoyo a personas discapacitadas. Se presenta, y explica, su diagrama en bloques general y cada uno de los elementos que lo integran. El diseño fue realizado con un “Arduino Nano”, dos módulos relés KY-019, un módulo Bluetooth HC-05, una batería y un dispositivo “Android”. En la figura 2 aparece un diagrama en bloques que muestra todos los dispositivos que intervienen.
2.1.- DESCRIPCIÓN DEL HARDWARE
En el epígrafe se van a describir los diferentes elementos del hardware que utiliza en el diseño electrónico de dicha aplicación.
2.1.1 PLATAFORMA ARDUNINO NANO
El dispositivo que se utilizó para la recepción de las ordenes desde el dispositivo “Android”, para el manejo de los módulos Bluetooth HC-05 y los módulos relés KY-019, es un “Arduino Nano”. En la figura 3 se muestra una foto comparativa de la placa del “Arduino Nano 3.0” junto a una moneda de 1 CUC, siendo las dimensiones de la placa de 4.3 cm de largo por 1.78 cm de ancho. En esta misma figura se muestra el “pin out” de esta placa, obtenida del “Datasheet” de la firma Maxim.
Esta versión de “Arduino Nano 3.0” cuenta con un microcontrolador Atmel ATmega328 y tiene las siguientes especificaciones técnicas fundamentales, entre otras:
Nivel de voltaje lógico de operación: 5V
Voltaje de entrada recomendado: 7-12 V.
Cantidad de terminales de entrada salida digitales: 14 (6 de ellos son terminales de salidaPWM).
Cantidad de terminales de entrada analógicos: 8.
Corriente de CD por terminal de entrada salida: 40 mA.
El “Arduino Nano” se puede alimentar vía Mini-B USB, a través de una fuente de alimentación no regulada externa (a través del terminal 30) de 6-20 V, o por medio de una fuente regulada de 5 V externa por el termina 27 de la placa.
Entradas y salidas del “Arduino Nano”:
Serie: 0 (RX) y 1(TX). Usadas para recibir (RX) y transmitir (TX) los datos serie. Estos terminales pueden ser conectados a un conversor FTDI USB a TTL.
PWM: 3, 5, 6, 9, 10, 11. Suministran una salida de 8bit de modulación de ancho de pulso (PWM) con la función analogWrite().
SPI: 10 (SS), 11(MOSI), 13(SCK). Estos pines soportan comunicación SPI.
El “Arduino Nano” tiene 8 entradas analógicas, cada una de las cuales presenta 10 bit de resolución (esto es 1024 valores diferentes). Por defecto ellas miden desde tierra hasta 5 V, aunque es posible cambiar el rango superior usando la función analogReference().
Terminales especiales:
I2C: 4(SDA) y 5 (SCL). Soportan la comunicación I2C usando la librería Wirelibrary.
Hay un par de terminales en el “board” que son:
AREF. Voltaje de referencia para las entradas analógicas, utilizada con la función analogReference().
Reset. Se lleva a un nivel bajo para resetear el microcontrolador. Típicamente usado para adicionar un botón de “reset” a los escudos que están sobre el “board”.
Programación del “Arduino”.
El “Arduino Nano” puede ser programado con el software de “Arduino” bajado de la página oficial. Este “Ardunino” en ocasiones debe quemarse con un “bootloader” que permite que se pueda cargar un nuevo código sin el uso de un programador externo. En general ya vienen con este software de arranque.
2.1.2 MÓDULO BLUETOOTH HC-05
Es una tecnología propietaria abierta con el objetivo de intercambiar datos a distancias relativamente cortas, aunque en la actualidad existen las versiones Bluetooth v4.0 y 5.0 que tienen un alcance de 50 y 240 metros respectivamente. La versión que se utilizó en este trabajo es la 4.0 por medio de un dispositivo conectado al móvil y un v2.0 en el “Arduino Nano”. Como se puede ver, ya no es tan trivial acuñar que se trata de un estándar de corto alcance. Este estándar fue creado en 1994 por el distribuidor Ericsson. Es un transceptor de onda corta en la banda ISM desde 2400 a 2800 MHz desde dispositivos móviles o fijos, pudiéndose crear una red de área personal (PAN, por sus siglas en inglés) con altos niveles de seguridad.
El módulo HC-05 (v2.0) [5] se encuentra ubicado en una placa PCB que facilita su conexión con el microcontrolador y su manipulación para su configuración. El módulo HC-05 tiene como modos de trabajo: maestro y esclavo, lo que constituye una facilidad para las diferentes aplicaciones que se pudieran instrumentar con el mismo. En la figura 4 se muestra una foto de este módulo con su distribución de terminales.
Los parámetros de configuración del dispositivo se le introdujeron a través de comandos AT especiales [8]. Para pasar el módulo al modo AT 2, se le insertó un código para ello y se conectó el módulo a VCC, oprimiendo el interruptor que aparece en su PCB. La comunicación entre el módulo y el microcontrolador es UART RS232.
Con el módulo se pueden confeccionar redes (piconets) pudiendo comunicar varios dispositivos (hasta 8, un master y 7 esclavos) que pudieran ser, por ejemplo, varios “Arduinos” conectados a sensores con lo que se permitiría el intercambio de datos, comandos, etc.
Independientemente que el dispositivo cuenta con una gran cantidad de comandos AT para su configuración [8], los fundamentales a tener en cuenta, al menos para esta aplicación son: AT+ORGL que restaura los parámetros de fábrica, AT+ROLE=<Param> 0 (esclavo), 1(si es master) y 2 (esclavo-lazo, donde se comporta como repetidor); AT+UART=<Param1>,<Param2>,<Param3>, donde: Param1 se corresponde con el “baudrate” (10 valores posibles), Param2 se corresponde con el bit de parada (0 o 1) y el Param3 se corresponde con el bit de paridad (0, 1, 0 2); AT+CMODE=<Param>, para establecer el modo de conexión,donde si “Param”=0 el módulo se conecta a una dirección específica, si “Param”=1 el módulo se conectará a cualquier dirección y si Param=2 la conexión será tipo esclavo-lazo y el módulo se convierte en un repetidor de la información que le envíen; AT+POLAR=<Param>, para configurar el terminal de salida “State” para que este vaya a “1” o a “0” cuando el módulo se vincule a otro.
2.1.3 MÓDULO RELÉ KY-019
Los módulos KY-019 [6] son relevadores que se usan para conmutar cargas de potencia. Sus contactos se diseñan para conmutar cargas de hasta 10 A a 250 VAC 0 30 VCD, aunque es aconsejable utilizar niveles por debajo de estos valores. Sus entradas de control se encuentran aisladas con opto-acopladores para disminuir el ruido que pudiera interferir en el funcionamiento del circuito de control al conmutarse la carga. Esta señal de control pudiera provenir de cualquier circuito o dispositivo TTL o CMOS. El dispositivo es ideal para conmutar cargas de corriente de CA conectadas a la línea. El módulo es capaz de controlar varios equipos de alta corriente durante un tiempo prolongado. Su vida útil se determina por la cantidad de conmutaciones y este pudiera tener hasta 100 000 conmutaciones, por lo que para el uso que se le pretende dar sería un dispositivo duradero. En la figura 5 se muestra un módulo de un solo relé con su distribución de terminales.
Los terminales de tierra y VCC se conectarían a estos terminales del “Arduino Nano” y los terminales de control a un terminal de salida PWM del “Arduino”. Los terminales NO y C se conectarían en serie con la Línea y la carga. Los valores nominales de salida suelen ser compatibles con los de cualquier carga doméstica.
Dentro de las características del dispositivo se pueden citar las siguientes:
Voltaje de la bobina: 5V
Corriente de activación por relé: 15 a 20 mA.
3.- DISPOSITIVO ANDROID
En este epígrafe se describe el algoritmo utilizado para diseñar la aplicación (app) que debe correr en el dispositivo “Android” para que pueda gobernar los relés que se encuentran conectados al “Arduino Nano” a través de los comandos que envía por medio de la comunicación bluettooth que existe entre ellos. El algoritmo contempla el manejo de los sensores de proximidad y aceleración del dispositivo Android como ya se comentó. Con la activación del sensor de proximidad deberá activarse y desactivarse uno de los relés conectados al “Ardunino Nano” y que maneja una de las cargas y con el sensor de aceleración se deberá activar y desactivar el otro relé conectado a una segunda carga. Resultará interesante conocer en qué forma el algoritmo conoce en qué estado se encuentra cada relé.
3.1- PROGRAMA APPINVENTOR 2
El software App Inventor 2 (AI2) [9,10] es una herramienta de programación creada por el Instituto Tecnológico de Massachusetts (MIT) adoptada por Google que crea de forma sencilla aplicaciones para dispositivos Android.
Es importante señalar que el diseño de la aplicación se realiza a través de una página Web, siendo necesario instalar un software en la PC donde se desarrollará la APK. La herramienta consta de dos ambientes, o sesiones de desarrollo: uno para realizar el diseño de la pantalla del dispositivo “Android” y el otro es la sesión de bloques. La sección de diseño, además de ser la entrada de la herramienta, brinda la posibilidad de acceder a todos los proyectos desarrollados. Una vez abierto un proyecto se podrá entrar tanto a la sección de diseño como a la de bloques. En la sección de diseño es donde se pueden añadir los componentes que constituirán la “app” y configurarlos. En la sección de bloques es donde se programa la APK. En la figura 6 se muestra una pantalla con la sección de diseño.
En la sección editor de Bloques es donde se realiza la programación de las acciones que se realizan en la interfaz “Diseñador”. Esta programación se realiza mediante bloques que se encuentran en el editor de bloques. En la figura 7 se muestra una pantalla con el ambiente de programación de dicho editor. Con cada componente que se configure en el editor del Diseñador se añadirá un conjunto de bloques específicos que heredarán las características y propiedades que se le asignen en el “Diseñador”. En la figura 7 se muestra una pantalla con el ambiente de programación del editor de bloques.
En este caso se utiliza la memoria (Tiny BD) del dispositivo Android para guardar el último estado del sensor de proximidad que indicara la activación, o no, del relé.
En el caso del sensor de aceleración se configuró la App de manera que al iniciarse se hace cero la variable “Luz” (este es el sensor que activaría la lámpara de un recinto), luego se pasa a efectuar un lazo en el que se va alternando la activación, o no, del relé que acciona la lámpara en dependencia del estado en que haya quedado la última vez en que fue accionado.
En la figura 9 se muestra la sección de diseño del App Inventor 2 donde se observa la pantalla de la App que se ha diseñado. Como se advierte, en la pantalla que tendrá en el móvil aparecerá un ventilador y una lámpara, lo que hace alusión a los dispositivos domésticos que serían accionados por la App. Son los elementos que se conectan a cada uno de los módulos relés que se encuentran en el “Arduino”. En la parte inferior de la pantalla aparecen todos los elementos que son usados en la APK, como son los sensores de proximidad y de aceración, el notificador, el bluetooth, el sensor de sonido, el reloj, la Tiny BD y el conversor de texto a voz (“TextoAvoz”).
En la figura 10, se muestra una parte de las subrutinas del programa, en la sección de bloque, que atienden los sensores de proximidad y de aceleración.
4.- DISEÑO DEL CÓDIGO EN EL IDE DEL ARDUINO DE LA APLICACIÓN.
En este epígrafe se presenta el diagrama de flujo del código en el “Arduino Nano” que complementa la aplicación. El código, en resumen, lo que hace es activar o no el relé correspondiente en dependencia del carácter que se le envíe desde el dispositivo Android a través del estándar Bluetooth. Cada uno de estos eventos está asociado al sensor que se active en el móvil y al estado anterior en que se encontraba el relé. Esto hará que se encienda, o apague uno u otro equipo que se encuentre conectado a la salida de cada relé. En la figura 11 se muestra el diagrama de flujo que representa al código.
5.- Maqueta del sistema
A continuación se presentan las fotos de la maqueta del sistema electrónico inalámbrico de apoyo a personas discapacitadas y débiles visuales. En la figura 12 se muestra la foto del “Arduino Nano” donde se encuentran los accionamientos que se activan.
En la figura anterior se muestra el “Arduino Nano” en board, el módulo relé KY-019, el módulo Bluetooth HC-05, la batería de alimentación de la Placa y la lámpara. En la tapa de la maqueta se encuentra una toma de corriente que alimentará a otro dispositivo que se decida.
En la figura 13 se muestra la foto de la pantalla de la APK desarrollada en el “display” del dispositivo Android que en este caso es un móvil.
El funcionamiento del sistema es muy simple, lo que es apropiado para que sea la interfaz de una persona con discapacidad. Siendo el elemento principal de mando para el accionamiento, el móvil del usuario. El accionamiento del sensor de proximidad es tan simple como acercar la mano y ponerla frente al sensor a una distancia de unos 4 cm. En el caso del accionamiento del sensor de aceleración solamente sería necesario mover levemente el celular para indicar la acción deseada.
La comparación económica entre la variante con “Arduino Nano” propuesta y las variantes con “Arduino Uno” junto con el 1Sheeld se muestra en la tabla 1. Se debe señalar que los precios se tomaron de la empresa AliExpress China que son los más económicos.
Variante | Arduino (en USD) | Bluetooth (en USD) | Relés en(USD) | 1 Sheeld (en USD) | Total |
---|---|---|---|---|---|
Arduino Nano | 3.00 | 2.92 | 0.62 X 2 | ---- | 7.16 |
Arduino Uno + 1Sheeld | 15.45 | ---- | 0.62 X 2 | 62 | 78.69 |
De la tabla 1 anterior se observa que la variante propuesta es mucho más económica que la que utiliza “Arduino Uno” + 1Sheeld, e incluso si se usara el “Arduino Uno” solamente (se tendría que sumar además los relés y el Bluetooth en este caso), la variante que se presenta sigue siendo más barata. Esta última variante tendría un costo en componentes de 19.61 USD, además de que ocuparía un volumen mayor que la variante propuesta. Cabe señalar que si se utilizara, lo que sería lo más apropiado, el microcontrolador Atmega 328P, el módulo relé KY-019 y el módulo Bluetooth HC-05, el precio sería mucho menor ya que no se estaría usando la placa de desarrollo que por muy pequeña que fuera, tendría un costo mayor que el microcontrolador.
6.- PRUEBAS REALIZADAS
Se utilizó la maqueta anterior para realizar las pruebas pertinentes al diseño que se propuso.
Se tomó la maqueta que aparece en la figura 13 y se alimentó a la línea de corriente alterna tanto la lámpara, que se observa, cómo el tomacorriente que está en la tapa de la caja utilizada como maqueta. Luego se enlazó un móvil LG (figura 14) y desde una distancia de unos 15 metros se enlazaron los Bluetooths y se accionaron los sensores de proximidad y de aceleración del dispositivo Android.
Accionado el sensor de proximidad del móvil se conectó, y desconectó, un ventilador conectado a la toma de corriente de la tapa y con el sensor de aceleración se pudo accionar (apagar y encender) la lámpara que se encontraba en uno de los laterales de la caja.
7.- CONCLUSIONES
A modo de conclusiones del trabajo se tienen las siguientes:
Con la utilización de los sensores de proximidad y de aceleración de un móvil, con sistema operativo Android, que son sensores muy comunes y fáciles de utilizar en estos dispositivos, se obtuvo de forma sencilla, a bajo costo, de pequeño volumen y de bajo consumo, un sistema que apoya de forma eficiente y segura el desempeño de una persona con discapacidad motora en miembros inferiores en un ambiente doméstico.
Al sistema se le añadió la notificación, con mensajes de voz, de todas las acciones que va realizando el usuario, desde la conexión y desconexión del Bluetooth, así como todos los accionamientos; lo que hace que pueda ser usado por personas débiles visuales también.
El hecho de que no se utilice el 1Sheeld de “Arduino”, hace el sistema propuesto mucho más barato, menos voluminoso y más fiable, siendo la diferencia de precios de 71.53 USD. Además de que no sería adecuado usar la variante “Arduino” con “1 Sheeld” debido a que sólo se utilizan dos sensores que son los necesarios para esta aplicación en particular. De utilizarse, como normalmente se hace, sólo el microcontrolador en una placa de circuito impreso en lugar de la placa de desarrollo, el costo del diseño que se propone sería más baro aún que el valor que se menciona.