Invisible o desaparece... (el Internet de los Cacharritos)

Parece mentira todos los cachivaches que somos capaces de conectar a Internet. Hace poco quise añadir mi báscula con WiFi a la red de casa (que está filtrada con MAC) y me encontré diecisiete dispositivos conectados. (Y tú estás pensando:  si conectaste la báscula, pocos me parecen).

gardenY es que el Internet de las Cosas, si es que la palabra "cosa" referido a "algo" se considerara medianamente respetable, se está convirtiendo en el "Internet de los Cacharritos": no hay cosas que más nos guste que un cachivache que se conecte a la WiFi: las luces, el termostato, interruptores, enchufes, la webcam de video vigilancia, la lavadora o el frigo, un espejo, la cámara de fotos, los sensores que monitorizan la presión que hay dentro de mi casa y por supuesto... la humedad de mis macetas!

mini

Tengo el honor (o la poca vergüenza) de decir que he utilizado varios modelos de Arduino (uno, mini, nano, lilypad...), alguna Raspberry Pi 2, varias placas de Intel como Galileo 1 y 2, Joule  (en un Hackthon que organizó Intel en la última edición del IoT World Congress) y Edison.

Creo que sería muy interesante comparar estas placas de desarrollo (y muchas más que hay en el mercado - #NoMeDaLaVida-) porque muchas veces termino usando una placa con muchísimas más características de las necesarias (y mucho más caras), cuando una mucho más simple me podría solucionar la necesidad de ese momento.

No te quiero influir sobre la placa que he elegido para conectarla a la lámpara, de hecho, tanto es así que hemos hecho el proyecto para dos versiones:

Yo he utilizado la Intel Edison, mientras que Juliet ha hecho exactamente lo mismo, utilizando la Raspberry Pi 2.

placas

En el caso de la Raspberry Pi 2, le hemos tenido que añadir dos adaptadores Bluetooth y WiFi, que la Edison trae de serie.

Empezar a usar cualquiera de las dos placas es muy sencillo. En concreto estas tienen unos talleres (Hands On Lab) en la web https://thinglabs.io/labs/ . Talleres que te explican paso por paso, de una forma sencilla, cómo desplegar código en estas placas de desarrollo y cómo utilizarlas.

Después de muchas, muchas pruebas, terminamos confeccionando este archivo.

capture

(De momento me centraré en cómo conectar con la lámpara via Bluetooth, y luego veremos la parte de la conexión con el WebJob).

Utilizamos esta librería de Playbulb que puedes ver cómo funciona con detalle en la web que incluye la documentación.

Pero si ves el fichero que estamos usando, está en nuestro repositorio, no cogemos el original. Y es que tuvimos que hacer algunas modificaciones (que explicaremos más adelante).

Siguiendo el ejemplo de la documentación:docu

Como verás en nuestro democandle.js, establecemos la conexión con la lámpara:  var pb = new Playbulb.PlaybulbCandle("PLAYBULB CANDLE");

Una de las modificaciones que hicimos en 'playbulb' es que nosotras escribimos el nombre de todos los dispositivos que encuentra la placa, y una pequeña traza de "connected!" cuando encuentra el que coincide con el nombre que le hemos pasado por parámetro al constructor.

pb.ready(function () { pbReady = true; } if (pbReady) { pb.setColor(1, 255, 0, 0); }

Y así de fácil es mandarle una orden, via Bluetooth, a la lámpara.

En este caso los parámetros de setColor son:  la saturación del color que le estamos enviando, Red, Green, Blue. Es decir, aquí:  pb.setColor(1, 255, 0, 0); la inicializamos en rojo cuando se conecta.

Claro, si le echas un vistazo al fichero democandle.js, no es tan sencillo como poner un color u otro. En realidad, el color nos lo está enviando el WebJob, a través de un servicio en Azure.

Para no perdernos, echemos un vistazo a la arquitectura con todos los elementos que hemos visto hasta ahora.

  • Consumo la API de Twitter desde el Azure WebJob.
  • Consulto a un Servicio Cognitivo llamado "Text Analytics" sobre el "sentiemiento" del Tuit.
  • Según ese sentimiento (o más bien la media de los sentimientos de la sesión) calculo un color que enviaré a una Intel Edison (o cualquier otra placa del estilo).
  • La placa, se conecta por bluetooth a la lámpara, gracias a una librería de NodeJS que hemos tenido que modificar un pelín para nuestro caso concreto y la configura de un color, según el funcionamiento que hemos explicado.

arquitectura_casi

Si quieres saber cómo hemos resuelto esta comunicación (?) entre el WebJob y la placa Intel Edison, no te pierdas el próximo post.

 

Isabel Cabezas
@isabelcabezasm
Technical Evangelist