• No se han encontrado resultados

6.2 El componente “Device”

6.2.1 Servicio de Ubicaci ´on usando Bluetooth Low Energy

Para el proceso de ubicaci ´on y medici ´on de distancias, se utiliza un servicio que usa las capacidades de Bluetooth Low Energy (BLE) con la API de Android. ´Esta debe cap- turar los dispositivos BLE en la cercan´ıa, y mediante un c ´alculo especializado para el dis-

positivo se establece la distancia aproximada entre ambos. Por tanto, sirve como m ´etodo para obtener la ubicaci ´on de la persona en un edificio. Tambi ´en es utilizado para conocer la distancia entre la persona y un objeto inteligente.

El c ´alculo se hace mediante la captura de la intensidad de la se ˜nal (RSSI) del Beacon. Se utiliza una f ´ormula con una constante que var´ıa con el smartphone, y es enviado al Ambiente Virtual una vez haya atravesado cierto umbral de distancia, de acuerdo a las distancias prox ´emicas de Hall (1990). En la figura 27 se muestra el m ´etodo utilizado para calcular la distancia en Android.

Figura 27: M ´etodo para calcular la distancia entre dos objetos utilizando unos factores preestable- cidos, propios de la antena Bluetooth con el que el device cueta.

Sin embargo, se conoce que la intensidad de la se ˜nal y el c ´alculo de una distancia por este par ´ametro es inexacto y propenso a errores debido a obst ´aculos entre el emisor y el receptor. Para el prop ´osito de este trabajo se prob ´o en un ambiente controlado ya que s ´olo se pretende comprobar el funcionamiento del razonamiento, y no de las cuestiones de ubicaci ´on de forma precisa. De la misma manera, la b ´usqueda continua de Beacons por BLE consume energ´ıa y el tiempo de autonom´ıa del celular disminuye. Para evitar este problema es necesario establecer nuevos mecanismos en los que el dispositivo se quede esperando mensajes de Beacons, de manera que s ´olo se active el proceso de b ´usqueda en momentos clave para maximizar el ahorro de energ´ıa.

6.3 Smart Objects

Los Smart Objects sirven como entidades con capacidades de procesamiento y alma- cenamiento de informaci ´on que facilitan el control de aspectos del ambiente utilizando el control de pines digitales y anal ´ogicos. En el caso de este trabajo se utilizaron ´unicamente como controladores, sin embargo, es posible conectar una serie de sensores que permi- tan conocer factores del ambiente.

Figura 28: Ejemplo del control de pines digitales en Java con la librer´ıa Mraa4j para Intel Edison.

Su rol de control depende de la plataforma en la que est ´an desarrollados. Intel Edison ofrece herramientas para controlar sus pines digitales y anal ´ogicos con Node.js, una li- brer´ıa de JavaScript que ofrece una interfaz con librer´ıas nativas de su sistema operativo. Para el caso de Java se debe utilizar unwrapper que permita utilizar estas librer´ıas pero a un alto nivel.

Figura 29: Placa de desarrollo Intel Edison (2014).

Intel Edison, como se muestra en la figura 29 es compatible con una gama amplia de electr ´onicos que van desde sensores hasta actuadores con motores y relevadores, que son controlados utilizando protocolos de comunicaci ´on serial o con se ˜nales digitales.

Para el caso demostrativo de este trabajo se control ´o el encendido y apagado del LED de la placa. Con esto demuestra el estado en el que se encuentra el control. Sin em- bargo, es importante denotar que se pueden conectar otro tipo de electr ´onicos, sensores y actuadores, para interactuar con el ambiente de acuerdo al rol que desempe ˜nan.

Es importante que el dispositivo se registre en la red para una interacci ´on instant ´anea y libre de configuraci ´on atendida para su instalaci ´on sencilla y una comunicaci ´on sem ´antica. Su registro debe establecerse con un nombre arbitrario, pero exponiendo el tipo de Smart Object del cual se trata. En la figura 20 se muestra un diagrama que describe el flujo del registro.

De forma contraria a como lo hace SmartNavi, los Smart Objects deben suscribirse a los eventos de acuerdo al tema de inter ´es para ellos. En el caso del control de la ilu- minaci ´on, se ha establecido que el nombre del Topic “Lights” sirva para la comunicaci ´on a los elementos cuyo inter ´es reside en la iluminaci ´on. Ahora, si se publica un Topic con este t´ıtulo, solamente van a enterarse quienes est ´en registrados bajo este nombre. La co- municaci ´on se vuelve as´ıncrona, por lo que hay una mejora en el rendimiento energ ´etico y de carga en la red. La publicaci ´on del mismo se representa en la figura 20.

t ´opico “Lights” entonces esta entidad distribuye el mensaje a los suscriptores asocia- dos. Si tomamos por ejemplo la figura 21, el t´ıtulo del mensaje es “lightControl” con el contenido “on”, entonces el Smart Object se debe encargar de interpretar el comando e interactuar acorde a su plataforma. El ejemplo de este caso se puede ver ilustrado en el c ´odigo de la figura 28.

En el caso de este trabajo, fue utilizada la placa de desarrollo Intel Edison (29), y tuvo que emplearse una librer´ıa (Mraa4j), la cu ´al es una envoltura de una librer´ıa nativa para controlar los pines de entrad y salida digitales. En la figura 28 se muestra un ejemplo de una clase en Java para controlar los pines digitales.