Cómo resucitar un Pebble


El Pebble fue un reloj inteligente que presume de ser uno de los primeros relojes inteligentes que usaba pantalla de tinta electronica (primero en tonos de grises y luego mas adelante con pantalla a color ).

Este pionero reloj inteligente fue desarrollado por Pebble Technology Corporation, empresa que por cierto recaudó U$ 10.3 millones de dólares a través de una campaña de crowfonding (micromecenazgo) en Kickstarter; la cual comenzó el 11 de abril de 2012 y finalizó el 18 de mayo de 2012.

Todos los relojes Pebble podían conectarse a teléfonos tanto Android como iOS para mostrar notificaciones del teléfono ( mensajes de texto , llamadas entrantes, entradas en redes sociales ,etc ) desde la propia pantalla del reloj a modo de segunda pantalla.

En su momento existia una tienda de aplicaciones distribuia apps compatibles con Pebble de terceros desarrolladores tales como ESPN, Uber, Runkeeper y GoPro.

La empresa Best Buy inició la venta del reloj inteligente Pebble en julio del 2013 y este se agotó a los cinco días de iniciada la venta.Asimismo este reloj se siguió vendiendo en otras tiendas físicas así como en el sitio de Amazon a nivel global . Tal fue el exito del reloj que el 31 de diciembre de 2014 Pebble había alcanzado la venta de un millón de relojes inteligentes. En el 2015 Pebble lanzó al mercado el Pebble Time y el Pebble Time Steel en Kickstarter, recaudando U$ 20.3 millones de dólares de más de 75.000 patrocinadores; rompiendo récords de recaudación para ambos productos. En el 2016 Pebble canceló la fabricación del Peeble Time 2 y reembolsó a sus patrocinadores; citando problemas financieros.

El 7 de diciembre de 2016, Pebble anunció el cierre del compañía y que por tanto no proveería soporte oficial ni garantía a ningún dispositivo existente.​ Tanto la fuerza laboral como la propiedad intelectual de Pebble fueron adquiridas por Fitbit, una empresa de tecnología corporal especializada en fitness. El 14 de diciembre de 2016 se publicó el blog Pebble Dev para aclarar el cronograma de transición y los esfuerzos por hacer a Pebble OS y sus apps auto suficientes.​ La compra de Pebble Technology Corp. por parte de Fitbit se completó en diciembre de 2016 por un valor de U$ 23 millones de dólares. ​ Desgraciadamente Fitbit no tubo ningún interés en continuar con la fabricación y venta del smartwatch Pebble y este fantástico reloj fue abandonado a su suerte y actualmente no esta disponible la tienda de aplicaciones no hay posibilidad de ninguna actualización desde sus sitios «originales oficiales», pero afortunadamente existen opciones que vamos a a ver en este post.

ideas para poner en marcha un viejo Pebble

Por qué Rebble Web Services?

Parte de la inteligencia del Pebble se incorporaba al reloj y parte de ella se entregaba a través de servicios web. Originalmente, estos servicios web eran proporcionados por Pebble Technology, Corp. Sin embargo, Pebble Technology, Corp. detuvo sus operaciones y, después de algún tiempo, estos servicios web también desaparecieron. , lo cual hizo que los Pebble no funcionase dejandolo casi como un relojjnormal, pues las cosas que antes eran posibles, ya no son posibles. ¿Es hora de deshacerse de su Pebble ?

Pues no gracias a The Rebble Alliance que ha creado Rebble Web Services, para llenar el vacío dejado por la desaparición de Pebble Technology, Corp. La mayoría de los servicios que han desaparecido tienen reemplazos ahora. Sin embargo, hay una cosa que The Rebble Alliance no puede hacer: cambiar todos los Pebble para que utilicen los servicios web de Rebble. Esto necesita alguna acción por parte del usuario. No se preocupe porque vamos a ver cómo hacerlo …

Introducción a los servicios web de Rebble

Entonces, si tiene un reloj Pebble y quiere volver a comenzar a usarlo. ¡pues veamos como reanimarlo!

iOS

Primera parte: conecte el reloj al teléfono.

Nota: puede omitir esta parte si ya es usuario de Pebble. En su lugar, debe verificar si tiene la última versión de la aplicación Pebble instalada en su teléfono.

  • Conecte su Pebble al cable de carga USB enchufado. ¡Realmente no querrás que pierda energía en medio de una actualización de firmware! El reloj se enciende. Presione el botón izquierdo para cerrar la pantalla de carga.
  • Si ahora ve una esfera de reloj, significa que su Pebble todavía está configurado, tal vez por el propietario anterior, tal vez por usted. Si lo usó antes, ahora es el momento de anotar las carátulas del reloj y las aplicaciones que desea reinstalar después de que finalice este procedimiento.
  • Si ve un reloj, presione el botón central derecho, vaya a Configuración , luego a Sistema y elija Restablecimiento de fábrica . Esto puede tardar unos minutos.
  • Obtenga su iPhone e instale la aplicación Pebble de la tienda de aplicaciones . Luego, abre la aplicación.
  • Serás recibido por una página de Pebble Account . Simplemente toque Omitir en la esquina superior izquierda para continuar.
  • Elija su idioma para la entrada de voz.
  • Elige el tipo de Pebble que tienes. iOS luego solicita permiso para usar Bluetooth, toque Aceptar .
  • La aplicación comienza a buscar Guijarros cercanos. En breve debería ver su Guijarro, como Guijarroxxxx . Esta misma cuerda se puede ver en el Pebble, por lo que sabe que el teléfono ve el reloj correcto. Tócalo.
  • El reloj pide emparejarse. Presione el botón superior derecho. Toque Emparejar en el teléfono.
  • Si el Pebble tiene un firmware antiguo, ahora se actualizará automáticamente. Mantenga el reloj en el cable de carga y cerca del teléfono. Esto tardará unos minutos en completarse, después de eso, el reloj se reiniciará.
  • En la aplicación Pebble, elija el idioma de los menús, notificaciones y mensajes del reloj.
  • Muchos Pebbles necesitan usar una segunda conexión Bluetooth. Si tiene uno de esos, la aplicación ahora le pide que vuelva a emparejar el reloj. Toque Habilitar , presione el botón superior derecho del reloj para emparejar y toque emparejar en el teléfono.
  • Toque otorgar acceso y toque aceptar si desea que las notificaciones de su teléfono se envíen a su reloj.
  • Toque otorgar acceso y toque aceptar siempre si desea que su reloj y sus aplicaciones sepan dónde se encuentra.
  • Toque otorgar acceso y toque aceptar si desea que los elementos del calendario de los próximos días aparezcan en su reloj.
  • Si tiene un Pebble Time o más reciente: para habilitar la salud, toque Habilitar . Luego, toca Aceptar .
  • Si tienes un Pebble Time o más reciente: elige tu configuración de salud, luego toca Continuar , luego ingresa tu información y toca Completar .
  • Ya terminaste. Bueno, la parte de Pebble está lista. Toque listo .

Parte dos: conecte la aplicación Pebble a Rebble Web Services.

  • En el teléfono, abre la aplicación Pebble, toca Configuración , Ayuda y ACTUALIZA TU PEBBLE para asegurarte de que tu Pebble tenga el firmware más reciente.
  • En el teléfono, abra Safari y vaya a auth.rebble.io .
  • Se le recibe con varias formas de iniciar sesión. Elija una e inicie sesión. ¡ Recuerde sus credenciales de inicio de sesión! Volverá al sitio de Rebble y le dará la bienvenida. ¡ Ya está todo listo! Lea la página, luego toque el enlace Comenzar ahora en el primer párrafo.
  • Se le redirige a boot.rebble.io y se le saluda con ¡ Aquí vamos! Lea la página, luego toque el botón para cambiar a Rebble . Safari te pregunta si quieres abrirlo con Pebble. Toque Abrir .
  • Se abre la aplicación Pebble y muestra un cambio de configuración emergente . Toque Cambiar .
  • Ahora, espere al menos 15 segundos antes de continuar con el siguiente paso.
  • Mientras tanto, en la esquina superior izquierda, apareció un signo de exclamación amarillo. Tócalo.
  • Llega a una pantalla titulada Correcciones y Cierre de sesión . Toque iniciar sesión .
  • Llegas a una cuenta de Pebble en pantalla y te damos la bienvenida a Rebble . Toca ES HORA DE REBBLEAR .
  • ¡Listo! Vaya a Watchfaces , elija Get Watchfaces y busque e instale los watchfaces que le gusten en la tienda Rebble.

Android

Primera parte: conecte el reloj al teléfono.

Nota: puede omitir esta parte si ya es usuario de Pebble. En su lugar, debe verificar si tiene la última versión de la aplicación Pebble instalada en su teléfono.

  • Conecte su Pebble al cable de carga USB enchufado. ¡Realmente no querrás que pierda energía en medio de una actualización de firmware! El reloj se enciende. Presione el botón izquierdo para cerrar la pantalla de carga.
  • Si ahora ve una esfera de reloj, significa que su Pebble todavía está configurado, tal vez por el propietario anterior, tal vez por usted. Si lo usó antes, ahora es el momento de anotar las carátulas del reloj y las aplicaciones que desea reinstalar después de que finalice este procedimiento.
  • Si ve un reloj, presione el botón central derecho, vaya a Configuración , luego a Sistema y elija Restablecimiento de fábrica . Esto puede tardar unos minutos.
  • Obtén tu teléfono y descargue la aplicación Pebble de APKMirror . Abra el APK y habilite la instalación desde fuentes desconocidas si se lo solicita. Toque instalar en el cuadro de diálogo. Luego, abre la aplicación.
  • Serás recibido por una página de Pebble Account . Simplemente toque Omitir inicio de sesión dos veces para continuar.
  • Elige el tipo de Pebble que tienes.
  • La aplicación comienza a buscar Guijarros cercanos. En breve debería ver su Guijarro, como Guijarroxxxx . Esta misma cuerda se puede ver en el Pebble, por lo que sabe que el teléfono ve el reloj correcto. Tócalo.
  • Si el Pebble no aparece y estás en Android 10, ve a la página de configuración de bluetooth del teléfono, empareja el reloj y vuelve a intentarlo. (Si eso no ayuda, desemparejarlo allí nuevamente).
  • El reloj pide emparejarse. Presione el botón superior derecho. Toque Emparejar en el teléfono.
  • Si el Pebble tiene un firmware antiguo, buscará actualizaciones. Toque Continuar . Mantenga el reloj en el cable de carga y cerca del teléfono. Esto tardará unos minutos en completarse, después de eso, el reloj se reiniciará.
  • En la aplicación Pebble, elija el idioma de los menús, notificaciones y mensajes del reloj.
  • Para recibir notificaciones en su Pebble, toque Abrir pantalla de configuración . Habilita Pebble . Toque Permitir .
  • Si tiene un Pebble Time o más reciente: para habilitar la salud, toque Habilitar . Luego, toca Aceptar .
  • Si tienes un Pebble Time o más reciente: elige tu configuración de salud, luego toca Continuar , luego ingresa tu información y toca Completar .
  • Elige una esfera de reloj. luego toque la flecha en la esquina superior derecha.
  • No tomes aplicaciones todavía, toca la flecha en la esquina superior derecha.
  • Ya terminaste. Bueno, la parte de Pebble está lista. Toque listo .

Parte dos: conecte la aplicación Pebble a Rebble Web Services.

  • En el teléfono, abra un navegador decente (como Chrome) y vaya a auth.rebble.io .
  • Se le recibe con varias formas de iniciar sesión. Elija una e inicie sesión. ¡ Recuerde sus credenciales de inicio de sesión! Volverá al sitio de Rebble y le dará la bienvenida. ¡ Ya está todo listo! Lea la página, luego toque el enlace Comenzar ahora en el primer párrafo.
  • Se le redirige a boot.rebble.io y se le saluda con ¡ Aquí vamos! Lea la página, luego toque el botón para cambiar a Rebble . El navegador le pregunta si desea abrirlo con Pebble. Toque Abrir .
  • Si no se abre con Pebble, deberá usar otro navegador y reiniciar desde la primera viñeta de esta segunda parte.
  • Se abre la aplicación Pebble. Entonces sucederá una de tres cosas:
    • Aparecerá una pantalla de Rebble. Puede tener una ruleta naranja encima; puede ignorar esto con seguridad.
    • Aparecerá la antigua pantalla de inicio de sesión de Pebble. Si esto sucede, cierre la aplicación desde el conmutador de aplicaciones y ábrala nuevamente. Ahora debería aparecer una pantalla de Rebble.
    • Nada. Si esto sucede, toque «⋮» en la esquina superior derecha, luego toque Configuración . En este punto, ya sea:
      • Aparecerá una pantalla de Rebble, o
      • Nada interesante. En este caso, desplácese hacia abajo hasta CUENTA y asegúrese de haber cerrado la sesión. Si no es así, tóquelo para cerrar la sesión. Ahora, toque para iniciar sesión. Debería aparecer una pantalla de Rebble.
  • En cualquier caso, una vez que toque el botón en la pantalla Bienvenido a Rebble de la aplicación Pebble, ¡habrá terminado!
  • Si su Pebble se desconecta, simplemente toque el botón de conexión habitual.
  • ¡Listo! Ve a Watchfaces , toca el gran » + » rojo en la esquina inferior derecha y busca e instala los watchfaces que te gusten de la tienda Rebble.

Servicios meteorológicos y de dictado

Entonces, comenzó a usar los servicios web de Rebble, pero desea agregar el plan pago para los servicios de dictado y clima. Hay algunas cosas a considerar antes de ordenarlo:

  • En iOS, no es posible responder a los mensajes de texto. Esta es una limitación de iOS. Por lo tanto, el dictado NO agregará respuestas habladas a los mensajes de texto. A menos que hagas jailbreak a tu teléfono …
  • Los servicios meteorológicos son únicamente para la aplicación meteorológica nativa Pebble y para la información meteorológica en la línea de tiempo. Las pantallas de reloj y las aplicaciones de terceros que ofrecen información meteorológica tienen sus propios medios para obtener información meteorológica. No necesitas el plan pago de Rebble para ellos.
  • El pago lo gestiona Stripe, que solo ofrece el pago con tarjeta de crédito.
  • Su dinero ayudará a Rebble Alliance a mantener en funcionamiento todos los servicios web de Rebble (incluidos los gratuitos).

Dicho esto, estos son los pasos para agregar el plan:

  • En el teléfono, abra su navegador (Safari en iOS o Chrome en Android) y diríjase a Rebble Account .
  • Muy importante: ¡asegúrate de haber iniciado sesión con la misma cuenta que usaste cuando te cambiaste a Rebble por primera vez!
  • Elija su plan ($ 3.00 / mes o $ 33 / año).
  • Se le reenvía a Stripe. Ingrese la información de su tarjeta y finalice el pago.
  • Se le redirige al sitio de Rebble. La suscripción a Voice / Weather ahora debería estar activa .
  • En el último párrafo, toque repetir el enlace de configuración inicial . Luego, siga el resto del procedimiento de la parte 2 anterior.
  • Gracias por apoyar a Rebble. ¡En realidad!

En la aplicación Pebble, en Aplicaciones , la aplicación The Weather Channel ahora debería estar allí. Toque el botón de engranaje para configurarlo según sus necesidades.

Carga lateral de aplicaciones o esferas de reloj

En muy raras circunstancias, la instalación de esferas de reloj o aplicaciones a través de la tienda de aplicaciones dentro de la aplicación Pebble no funciona. En este caso, puede probar si la carga lateral de la esfera del reloj funciona.

  • En el teléfono, abra su navegador (Safari en iOS o Chrome en Android) y diríjase a la tienda de aplicaciones Rebble en la web .
  • Encuentra la esfera del reloj o la aplicación y tócala.
  • En la parte inferior, toca descargar pwb .
  • Abra el archivo con la aplicación Pebble.
  • Se abre la aplicación Pebble y solicita instalar la esfera del reloj o la aplicación. Toque Aceptar .

Ahora, la esfera del reloj o la aplicación se instala en el teléfono y en el reloj.

Resumen de pasos a seguir

En resumen para reanimar nuestro Pebble vamos a necesitar 4 apps:

  • Pebble AppStore BACKUP
  • Sideloader
  • Pebble
  • Pebble-Rebble

Peble AppStore Backup

Este programa no es mas que un repositorio donde poder descargar gratuitamente todas las esferas y aplicaciones disponibles que en su dia estuvieron disponibles para el Pebble.

Su mecánica de uso es bien sencilla: buscamos las app o esfera qeu nos interesa .Nos aseguramos que nos es compatible con nuestro modelo de Pebble , y en caso afirmativo nos la descargamos en local mediante el enlace «download PBW» que tendremos disponible al final de la explicación de cada app/esfera

Sideloader

Si la app anterior nos permitía descargar un fichero de esfera o app gracias a esta otra aplicación podemos instalar dicho archivo en nuestro reloj

Esta aplicación pues nos ayuda a abrir archivos .pbw, .pbl y .pbz en la aplicación oficial Pebble. Para comenzar, presione el botón Examinar archivos a continuación o abra un archivo Pebble compatible en su aplicación Archivos.

Pebble

Es la antigua aplicación que ya no esta disponible en google play y que por tanto habrá que descargarla como una apk desde un repositorio como por ejemplo https://pebble-time.uptodown.com/android

Esta app la necesitamos para sincronizar por bluetooth con el telefono aunque el resto de servicios ya no estén disponibles.

Peebble-Rebble

Gracias a The Rebble Alliance que ha creado Rebble Web Services, para llenar el vacío dejado por la desaparición de Pebble Technology, Corp. La mayoría de los servicios que han desaparecido tienen reemplazos ahora. 

Problemas comunes

No se puede agregar la esfera del reloj, la tienda dice que se agregó, pero no está en el teléfono del reloj

A veces, el casillero puede perder la sincronización con la realidad. Aunque esta situación debería resolverse por sí sola con el tiempo, es fácil de solucionar. Simplemente cargue la esfera del reloj (ver arriba). El casillero ahora ya no está desincronizado para esta esfera de reloj. Es posible que deba repetir esto para cada esfera de reloj o aplicación que muestre este comportamiento.

En Android (9.0+), las llamadas entrantes se muestran en el reloj como «Llamada desconocida»

Para corregir el «Llamador desconocido» o las notificaciones que faltan por completo en las llamadas entrantes para Pebble emparejadas con dispositivos Android 9.0, existe una solución con la aplicación Dialer for Pebble:

  • Instale la aplicación complementaria Dialer for Pebble y una aplicación respectiva para Pebble.
  • Abra la aplicación Pebble en su teléfono y vaya a Notificaciones . Luego, desactive las notificaciones para llamadas telefónicas.
  • Abra la aplicación Dialer for Pebble en su teléfono y habilite Call Popup para llamadas entrantes y salientes.
  • Asegúrese de que la aplicación Dialer for Pebble tenga permisos del sistema para acceder a Contactos, Registro de llamadas, Marcador y SMS en su teléfono.

Esto debería solucionar el problema. En caso de que Marcador para Pebble funcione de manera inconsistente, asegúrese de que se ejecute en segundo plano tanto en su Pebble ( Configuración y luego en la Aplicación en segundo plano ) como en su teléfono.

Me suscribí al plan de servicios Weather and Dictation, pero la aplicación Weather Channel y el dictado no están disponibles

Verifique su cuenta de Rebble y la información de pago.

  • Dirígete a la cuenta de Rebble
  • Mire la suscripción a la línea Voice / Weather . Si está activo , vuelva a pasar por boot.rebble.io .
  • Si está vencida, es posible que la tarjeta de crédito utilizada durante la suscripción no sea válida. Simplemente puede suscribirse nuevamente.
  • Si no está activo, es posible que haya iniciado sesión con una cuenta diferente a la que tenía cuando se suscribió por primera vez. Elimine las cookies de su navegador (por lo tanto, cierre la sesión) e inicie sesión en la cuenta de Rebble con la cuenta correcta. Luego, verifique su cuenta y la información de pago nuevamente.

Esta esfera del reloj ya no muestra información meteorológica o la información es incorrecta

Desafortunadamente, algunos servicios meteorológicos de uso frecuente se han retirado o han cambiado su API. Las esferas de reloj que usan esas API ahora ya no pueden obtener su información meteorológica. Vea si la esfera del reloj puede cambiar de API o elija otra esfera. Tenga en cuenta que esto no está relacionado con el plan de servicios de dictado y meteorología de Rebble.

El dictado no funciona: “Se produjo un error. Intentar otra vez.»

Abra la aplicación Pebble en su teléfono y vaya a Configuración . Toque Idioma de voz . Cámbielo a cualquier otro idioma. Luego, cámbielo de nuevo a su idioma preferido.

Necesito cambiar de cuenta, o eliminé y reinstalé la aplicación Pebble

Para cerrar sesión en el sitio web de Rebble, debe eliminar las cookies (para .rebble.io y auth.rebble.io ) de su navegador. Cómo hacerlo, depende del navegador. Ahora dirígete a la autenticación de Rebble e inicia sesión con la cuenta correcta.

Para configurar la aplicación Pebble para usar la cuenta en la que acaba de iniciar sesión, vuelva a pasar por boot.rebble.io .

Los eventos de mis calendarios no aparecen en la línea de tiempo ni en la vista rápida

Abra la aplicación Pebble en su teléfono y vaya a Aplicaciones . Toca el engranaje junto a Calendario . Aquí, puede elegir los calendarios desde los que aparecerán los eventos en su línea de tiempo.

Quiero agregar un Pebble o Pebble Steel original, pero el paso de actualización del firmware muestra «Migration Failed»

La pantalla de actualización también muestra No se pudo encontrar ningún firmware de migración para instalar. Para resolver esto, necesita un dispositivo con una aplicación Pebble que no se haya cambiado a Rebble. Puede usar otro dispositivo o eliminar Rebble de la aplicación Pebble visitando pebble://custom-boot-config/defaultdesde el navegador, o puede eliminar la aplicación Pebble de su teléfono y reinstalarla. Cuando vuelva a emparejar el reloj, ahora debería completar la actualización del firmware. Después de eso, puede comenzar a usar Rebble Web Services nuevamente, siguiendo la parte 2 anterior.

Cuando comienzo a cargar mi reloj, la pantalla comienza a encender y apagar la luz de fondo

Mientras está conectado al cable de carga, mantenga presionado cualquier botón del reloj hasta que aparezca un código de error en la pantalla. Suelta el botón. Ahora, deje que el reloj se cargue durante algún tiempo (al menos una hora). Finalmente, presione un botón para salir del código de error.

Consejos generales

  • Como muchos servicios en el reloj se implementan en el teléfono y en los servicios web, muchos problemas también se encuentran allí. Un reinicio de su teléfono tiene más posibilidades de solucionar problemas que un reinicio de su reloj. Casi nunca es necesario restaurar su reloj a la configuración de fábrica.
  • Si tiene problemas con el dictado, debe consultar el servicio meteorológico para descartar problemas con su suscripción. Si el clima funciona en Timeline oa través de la aplicación The Weather Channel, entonces su suscripción está funcionando bien.

Guia paso a paso de despliegue con Fiware


FIWARE

 La plataforma FIWARE surgió en el año 2014 aproximadamente a partir de las propuestas del Horizonte 2020 de la Unión Europea. Se trata de un intento de estandarizar una nube que permita conectar el IoT estando ya finalizado, aunque su desarrollo continúa siendo dirigido por la propia comunidad de FIWARE. Si estudiamos el interés en esta plataforma, encontramos que su inicio fue explosivo, debido a la gran aglomeración de empresas y noticias que generaron contenido y búsquedas en su planteamiento, desarrollo y lanzamiento, que después se vio reducido. Sin embargo, podemos empezar a observar un leve repunte en el interés por esta plataforma, ya que algunas empresas como Telefónica buscan convertirlo en el estándar de facto mediante su uso, que comenzó a impulsarse en 2015

Para lograr esta conectividad de elementos y a su vez permitir la adición de otras funcionalidades, el elemento principal de la nube de FIWARE es el llamado ORION Context Broker, un intermediario que permite la conectividad a todo tipo de elementos, bien mediante su API NGSI que emplea REST, o bien mediante agentes. Estos agentes no son más que módulos intermediarios que pueden traducir otros formatos o protocolos de comunicación a NGSI, de manera que se posibilita de esta forma la conectividad con otros dispositivos que no puedan establecer comunicaciones mediante REST.

Por otro lado, aplicaciones externas de desarrolladores pueden comunicarse con Orion a través de la API REST mencionada.

Todos los componentes de FIWARE son, según su propia nomenclatura, denominados Generic Enablers (GEs), dado que proveen nuevas características al sistema que otros componentes no pueden ofrecer: persistencia de los datos, comunicación, autenticación segura, etc. 2.2.1 Cosmos Uno de los GE disponibles en FIWARE es Cosmos destinado a permitir el análisis Big Data una vez que los datos han sido almacenados de manera persistente.

Cosmos permite el análisis de los datos mediante aplicaciones del tipo map&reduce, o mediante Apache Hive. 2.3 Docker Docker es un sistema de contenedores de software, que empaqueta el software en estos contenedores, de manera que contienen todo lo necesario para funcionar. Esto facilita el despliegue y mantenimiento de las aplicaciones, ya que para que la propia aplicación funcione evitamos requerir unas dependencias previas a la máquina host, provee de una capa a la vez de seguridad y de abstracción al aislar los contenedores del resto de dicha máquina, y evita la sobrecarga de necesitar ejecutar un sistema operativo completo sobre el host.

 FIWARE sobre Docker

 De los múltiples componentes que existen en la arquitectura de FIWARE, la siguiente imagen refleja cuales son aquellos que existen como contenedores en Docker, con un color oscuro los propios de FIWARE, y en un color más claro aquellos relacionados y que también existen y por tanto es viable emplearlos en un despliegue.

Como podemos comprobar, Orion está disponible, y a su vez sería necesario emplear un contenedor de MongoDB para poder desplegar Orion y tenerlo en funcionamiento.

En este proyecto emplearemos FIWARE como intermediario para conectar nuestro escenario IoT. La razón de uso de esta plataforma se encuentra en dos motivos principales:

  • Permitir conectar un escenario IoT completo, sean cuales sean los componentes que lo conforman. Si bien nuestro escenario puede ser suficientemente pequeño como para no requerir el uso de esta plataforma, es útil de cara a la conceptualización del trabajo, su uso en un escenario de mayor tamaño y para el propio aprendizaje.
  •  La no existencia de plataformas similares que no sean privadas, por tanto, la única alternativa abierta a su uso para todo el mundo.
  • En tercer lugar, emplearemos Docker como sistema de contenedores para desplegar los componentes de FIWARE que necesitemos emplear. De esta manera, conseguiremos:
    •  Ahorrar tiempo y dificultades en el despliegue y configuración de los GE de FIWARE.
    •  Facilitar la actualización o reemplazo de componentes desplegados en contenedores.

Finalmente, hemos podido observar como el análisis de datos está a la orden del día, aplicándose estas técnicas 12 Análisis de datos de un escenario FIWARE basado en Docker 12 a ámbitos cada vez más diversos

  Instalación

En primer lugar, instalaremos Docker

https://hub.docker.com/r/fiware/orion

Docker Compose le permite vincular un contenedor Orion Context Broker a un contenedor MongoDB en unos minutos. Este método requiere que instale Docker Compose.

Considere este método si desea probar Orion Context Broker y no quiere preocuparse por las bases de datos o no le importa perder datos.

Seguimos estos pasos:

  • Creamos un directorio en su sistema en el que trabajar (por ejemplo, c: / fiware).
  • Creamos un nuevo archivo llamado docker-compose.yml dentro del directorio con el siguiente contenido:
mongo:
   image: mongo:3.6
   command: --nojournal
 orion:
   image: fiware/orion
   links:
     - mongo
   ports:
     - "1026:1026"
   command: -dbhost mongo
  • Usando la línea de comandos y dentro del directorio que creamos, escribiremos:

C:\fiware>docker-compose up

NOTA IMPORTANTE: Dado que   puede dar problemas en la ejecución  de la imagen de docker especialmente al lanzar la imagen de fiware_orion_1 , es mejor desde el directorio de despliegue lanzar el siguiente comando:

$ docker-compose up –force-recreate orion

Con respecto a –nojournal, no se recomienda para producción, pero acelera el inicio del contenedor mongo y evita algunos problemas de condiciones de carrera si el contenedor Orion es más rápido y no encuentra la base de datos lista y lista.

Lo que he hecho con este método es descargar imágenes para Orion Context Broker y MongoDB desde el repositorio público de imágenes llamado Docker Hub: es entonces cuando ha creado dos contenedores basados en ambas imágenes.

  • Después de unos segundos, debería tener su Context Broker ejecutándose y escuchando en el puerto 1026 lo cual podemos comprobar si nos vamos a la url: http// localhost: 1026/version

También desde el interfaz gráfico de dockers debe aparecer corriendo el contenedor de fiware ejecutándose:

Si desea detener el escenario, debe presionar Control + C en el terminal donde se está ejecutando docker-compose, pero se perderían todos los datos que se estaban utilizando en Orion con este método.

Pruebas iniciales

Creemos ahora una entidad tipo práctica del tipo Medida al que el vamos asociar la temperatura y humedad de una habitación.

Debemos extremar las cabeceras (headers) cuando enviamos datos a Orión Content Bróker, pues el Key Host que viene por defecto en Postman no nos sirve, para lo cual deberemos crear otra key asociándola a “application/json”. Asimismo, de igual manera lo haremos con el atributo “Content-Type”.

Y este el código para crearlo en formato Json:

{

        «id»: «Practica»,

        «type»: «Medida»,

        «Temperatura»: {

            «type»: «Integer»,

            «value»: 25,

            «metadata»: {}

        },

        «Humedad»: {

            «type»: «Float»,

            «value»: 50,

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            }

        }

    }

Si queremos cambiar un valor se hará a través de la url http:// localhost:1026/v2/entities/Practica/attrs/    y cambiaremos el cuerpo y la cabecera

Es decir, en el código Json simplemente hemos eliminado el id y el tipo de la entidad y mantenido el resto:

    {       

        «Temperatura»: {

            «type»: «Integer»,

            «value»: 35,

            «metadata»: {}

        },

        «Humedad»: {

            «type»: «Float»,

            «value»: 51,

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            }

        }

    }

También podemos recuperar el valor directamente desde sin usr postman llamando directamente a http://localhost:1026/v2/entities/

Asimismo, podemos cambiar no solo el valor de un atributo, sino también el tipo de dato usando PUT:

Es precisamente este el formato que podríamos usar para enviar las muestras al Content-bróker de Fiware  desde el endpoint http://192.168.1.66:1026/v2/entities/

{       

        «Temperatura»: {

            «type»: «Float»,

            «value»: 26,

            «metadata»: {}

        },

        «Humedad»: {

            «type»: «Float»,

            «value»: 54,

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            }

        }

    }

RESUMEN DE PRUEBAS FINALES

Para probar el funcionamiento del sistema:

-Iniciamos Orion Content Broker

-Iniciamos el agente Postman

-Desde Postman  configuramos la url a http://192.168.1.66:1026/v2/entities/Practica/attrs/  , usaremos el método PUT y añadiremos  a headers las keys Accept y Content-type al valor application/json

Como posibles valores de prueba podemos usar los siguientes:

{       

        «Temperatura»: {

            «type»: «Integer»,

            «value»: 35,

            «metadata»: {}

        },

        «Humedad»: {

            «type»: «Float»,

            «value»: 51,

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            }

        }

    }

Podemos cambiar solo la temperatura:

{       

        «Temperatura»: {

            «type»: «Integer»,

            «value»: 99,

            «metadata»: {}

        }

    }

O también cambiar el valor de la humedad:

{   «Humedad»: {

            «type»: «Float»,

            «value»: 51,

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            }

        }

    }

-Desde un navegador Chrome con las extensiones json y refresh nos iremos a http://192.168.1.66:1026/v2/entities/   podemos comprobar que se ha actualizado

Solución final

Dado que   puede dar problemas en la ejecución de la imagen de docker especialmente al lanzar la imagen de fiware_orion_1 , es mejor desde el directorio de despliegue lanzar el siguiente comando:

$ docker-compose up –force-recreate orion

Una vez iniciados los dos servicios comprobaremos mediante el interfaz de docker que ya podemos empezar a trabajar

Lo siguiente es crear las entidades finales usando el siguiente código en Json:

{"id": "Practica",

        "type": "Medida",

        "Temperatura": {

            "type": "Float",

            "value": 25,

            "metadata": {}

        },

        "Wifi": {

            "type": "Float",

            "value": 50,

            "metadata": {}

        },

        "Temperaturaint": {

            "type": "Float",

            "value": 28,

            "metadata": {}

        },

        "Humedad": {

            "type": "Float",

            "value": 50,

            "metadata": {

                "accuracy": {

                    "type": "Float",

                    "value": 9

                }

            }

        }

    }

Como end-point desde  postman establecemos a http://localhost:1026/v2/entities/        

Para el body no debemos olvidar insertar el código RAW en formato JSON.

Es importante configurar el token Accept como aplication/json:

Una vez creado podemos comprobar el resultado si nos vamos a http://localhost:1026/v2/entities/

En caso de problemas de conectividad deberemos cerrar el cortafuegos o configurarlo para que acepte tráfico desde fuera de la red externa.

También desde Postman podemos recuperar las últimas medidas enviadas a Orion Content Bróker.

Y una vez definidas la entidades con el método PUT vamos a ir actualizando los datos  usando la url http://192.168.1.66:1026/v2/entities/Practica/attrs/

¡No debemos olvidarnos de los headers!!

Como hemos comentado, una vez tengamos el contenido del body actualizado le daremos al botón “Put”;

Podemos comprobar mediante la consola de Orión Content Bróker las entidades, así como diferentes datos almacenados en la BBD:

sh-4.2$ ls

anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

sh-4.2$ curl localhost:1026/v2/entities -s -S -H ‘Accept: application/json’ | python -mjson.tool

[

    {

        «Humedad»: {

            «metadata»: {

                «accuracy»: {

                    «type»: «Float»,

                    «value»: 9

                }

            },

            «type»: «Float»,

            «value»: 46

        },

        «Temperatura»: {

            «metadata»: {},

            «type»: «Float»,

            «value»: 26

        },

        «Temperaturaint»: {

            «metadata»: {},

            «type»: «Float»,

            «value»: 53.33

        },

        «Wifi»: {

            «metadata»: {},

            «type»: «Float»,

            «value»: -67

        },

        «id»: «Practica»,

        «type»: «Medida»

    }

]

sh-4.2$ curl localhost:1026/v2/types -s -S -H ‘Accept: application/json’ | python -mjson.tool

[

    {

        «attrs»: {

            «Humedad»: {

                «types»: [

                    «Float»

                ]

            },

            «Temperatura»: {

                «types»: [

                    «Float»

                ]

            },

            «Temperaturaint»: {

                «types»: [

                    «Float»

                ]

            },

            «Wifi»: {

                «types»: [

                    «Float»

                ]

            }

        },

        «count»: 1,

        «type»: «Medida»

    }

]

sh-4.2$ curl localhost:1026/v2/types?options=values -s -S -H ‘Accept: application/json’ | python -mjson.tool

[

    «Medida»

]

sh-4.2$ curl localhost:1026/v2/types/Room -s -S -H ‘Accept: application/json’ | python -mjson.tool

{

    «description»: «Entity type not found»,

    «error»: «NotFound»

}

sh-4.2$

   Sensor DHTXX

Para que esta práctica tenga sentido vamos a implementar un caso práctico de un sensor real basado en DHTX conectado a un ESP32 que será el que envié las medidas a ORION Content Broker que consistirán en las siguientes:

  • Temperatura exterior
  • Humedad exterior
  • Temperatura interior
  • Nivel señal wifi
  • Sensor Hall(opcional)

DHT11 y DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad usando además un único hilo para comunicar los datos vía serie, para lo cual ambos disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino, ESP8266 o el node MCU que usaremos.

Ambos son similares pero el DHT11 presenta una carcasa azul (es el que usaremos en la práctica), mientras que el sensor DHT22 es blanco, compartiendo además los mismos pines disponiendo de 4 patillas, de las cuales usaremos sólo 3: Vcc, Output y GND.  Como peculiaridad, la salida la conectaremos a una entrada digital, pero necesitaremos poner una resistencia de 10K entre Vic y el Pin Output, pero existen unos módulos que integran esta junto con los pines VCC, OUT y GND.

El DHT11 puede medir temperaturas entre 0 a 50, con una precisión de 2ºC, humedad entre 20 a 80%, con precisión del 5% y con una a frecuencia de muestreo de 1 muestras por segundo (1 Hz)

En clara superioridad con el dHT11, el modelo DHT22 tiene unas características mucho más profesionales.

  • Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
  • Medición de humedad entre 0 a 100%, con precisión del 2-5%.
  • Frecuencia de muestreo de 2 muestras por segundo (2 Hz)

Destacar que este tipo de sensores de temperatura (y, aún más, los sensores de humedad), son sensores con elevada inercia y tiempos de respuesta elevados. Es decir, al “lentos” para reflejar los cambios en la medición.

Conectar el DHT11   o el DHT22 a un Arduino o al Node MCU es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada digital de Arduino. Necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El esquema eléctrico queda como la siguiente imagen:

Los sensores DHT11 y DHT22 usan su propio sistema de comunicación bidireccional mediante un único hilo, empleando señales temporizadas por lo que en general, lo normal es que empleemos una librería existente para simplificar el proceso.

Conexión de DHT22 a Node MCU-32S

 Como vemos el circuito para conectar al Node MCU   el sensor de temperatura y humedad DHT11 no puede ser más sencillo, pues simplemente alimentaremos con 3.3v DC tanto el DHT11 como el Node MCU   en sus pines correspondiente     sin olvidar que la salida de datos del DH11pin datos) tenemos que conectarla al pin 5 del GPIO.

Respecto a la placa de desarrollo usada es la NodeMCU-32S basada en ESP32, placa que cuenta con conectividad WiFi + Bluetooth, CP2102 a bordo y llaves. Además, todos los pines de E / S del módulo ESP-WROOM-32 son accesibles a través de los encabezados de extensión. Gracias a los ricos recursos de código abierto, admite el desarrollo de varias formas, como los comandos Lua / AT / MicroPython / Arduino / IOT, etc., lo que le ayuda a crear prototipos rápidos de aplicaciones de IoT.

Algunas características de esta placa:

  • Módulo ESP-WROOM-32 integrado
  • CP2102 integrado, convertidor de USB a UART
  • Puerto USB para entrada de energía, programación de firmware o depuración UART
  • Cabezales de extensión de 2×19 pines, rompen todos los pines de E / S del módulo
  • 2x teclas, utilizadas como reinicio o definidas por el usuario
  • Especificaciones
  • Módulo WIFI: ESP-WROOM-32
  • Procesador: ESP32-D0WDQ6
  • Flash incorporado: 32 Mbit
  • Antena: antena PCB integrada
  • Interfaz periférica: UART / GPIO / ADC / DAC / SDIO / PWM / I2C / I2S
  • Protocolo WiFi: IEEE 802.11 b / g / n
  • Bluetooth: Bluetooth 4.2
  • Rango de frecuencia: 2.4G ~ 2.5G (2400M ~ 2483.5M)
  • Modo WIFI: Estación / SoftAP / SoftAP + Station
  • Fuente de alimentación: 5 V
  • Nivel lógico: 3,3 V
  • Dimensiones: 48,26 mm x 25,4 mm

En la siguiente imagen podemos ver el montaje realizado:

 Programar el  Node MCU-32S

Para instalar el firmware en el node MCU32S   lo primero es descargar e instalar el IDE de Arduino (Arduino IDE.).

Para instalar el paquete de la placa en Archivo -> Preferencias, agregue http://arduino.esp8266.com/stable/package_esp8266com_index.json al campo URL del Administrador de tableros adicionales.

Después instalaremos la plataforma esp8266 desde Tools -> Board -> Boards Manager.

(En caso de que la placa fuese un ESP32, habría que instalar manualmente el paquete de la placa siguiendo las instrucciones aquí: https://github.com/espressif/arduino-esp32/blob/master/README.md#installation-instructions).

Lo siguiente es descargue esta biblioteca como un archivo zip  aquí.

Instalamos la biblioteca zip descargada desde Sketch -> Incluir biblioteca -> Agregar biblioteca .ZIP.

Ahora ya podemos conectar el módulo ESP a su pc a usando un USB y seleccionado su puerto (y el un módulo ESP) en el menú Herramientas.

Es interesante destaca de que puede según los casos, tengamos que añadir una regla al Cortafuegos de Windows 10 para permitir el acceso desde el ESP32 al Content Server Bróker.

Por ultimo cargaremos el siguiente código en nuestro ESP32 personalizándolo con las características de nuestra red wifi y los datos que vayamos a enviar al Content Bróker:

IMPLEMENTACION EN ESP32

<ArduinoJson.h>

<WiFi.h>

<HTTPClient.h>

<SimpleTimer.h>

«DHT.h»

DHTTYPE DHT11   // DHT 11

const int DHTPin = 5;     // what digital pin we’re connected to

DHT dht(DHTPin, DHTTYPE);

const char* ssid = “MI_RED_WIFI»;

const char* password =”CLAVE_WIFI»;

const char* servidor2=»http://192.168.1.66:1026/v2/entities/Practica2/attrs/»;

const char* servidor=»http://192.168.1.66:1026/v2/entities/»;

float dato_temp = 0.0;

float dato_rssi = 0.0;

int dato_conor = 0;

float dato_hall = 0.0;

// the following variables are unsigned longs because the time, measured in

// milliseconds, will quickly become a bigger number than can be stored in an int.

unsigned long lastTime = 0;

// Timer set to 10 minutes (600000)

//unsigned long timerDelay = 600000;

// Set timer to 5 seconds (5000)

unsigned long timerDelay = 5000;

// ledPin refers to ESP32 GPIO 23

const int ledPin = 2;

LED 2

#ifdef __cplusplus

extern «C» {

#endif

uint8_t temprature_sens_read();

#ifdef __cplusplus

}

#endif

uint8_t temprature_sens_read();

void setup() {

 Serial.begin(115200);

  delay(4000); // Esperar para que se configure la consola.

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) { // Comprobar la conexión.

    delay(1000);

    Serial.println(«Conectando a la red WiFi…»);

  }

  Serial.print(«Conectado a la red WiFi: «);

  Serial.println(ssid);

  Serial.println(«DHT11 test!»);

  dht.begin();

 Serial.println(«DHT11 test OK !»);

}

void loop() {

delay(2000);

 // Reading temperature or humidity takes about 250 milliseconds!

   float h = dht.readHumidity();

   float t = dht.readTemperature();

 if (isnan(h) || isnan(t)) {

     Serial.println(«!Fallo al leer sensor  DHT !»);

      //return;

    }

   else

   {

  Serial.print(«Temperatura exterior: «);

    Serial.println(t);

      Serial.print(«Humedad exterior:»);

        Serial.println(h);

   }

  //tomar valor de la temperatura interior

  // Convierte de F a ºC

  dato_temp=(temprature_sens_read()-32)/1.8;

   Serial.print(«Temperatura interior :»);

  Serial.println(dato_temp);

// medir nivel señal wifi

 dato_rssi = 0;

 for (int i=0;i < 10;i++){

 dato_rssi += WiFi.RSSI();

 delay(20);

 }

 dato_rssi = dato_rssi/10;

Serial.print(«Nivel WIFI :»);

Serial.println(dato_rssi);

 //sensor Hall

 dato_hall=hallRead();

String quote = «\»»;

String mensaje=»{» +quote +»Humedad» +quote +»:{» +quote +»type» +quote +»:» +quote +»*» +quote +»,» +quote +»value» +quote +»:»;

mensaje +=h;

mensaje  +=»,» +quote +»metadata» +quote +»:{» +quote +»accuracy» +quote +»:{» +quote +»type» +quote +»:» +quote +»*» +quote +»,» +quote +»value» +quote +»:9}}},» +quote +»Temperatura» +quote +»:{» +quote +»type» +quote +»:» +quote +»*» +quote +»,» +quote +»value» +quote +»:»;

mensaje +=  t;

mensaje += «,» +quote +»metadata» +quote +»:{}},» +quote +»Temperaturaint» +quote +»:{» +quote +»type» +quote +»:» +quote +»*» +quote +»,» +quote +»value» +quote +»:»;

mensaje += dato_temp;

mensaje +=»,» +quote +»metadata» +quote +»:{}},» +quote +»Wifi» +quote +»:{» +quote +»type» +quote +»:» +quote +»*» +quote +»,» +quote +»value» +quote +»:»;

mensaje += dato_rssi;

mensaje += «,» +quote +»metadata» +quote +»:{}}}»;

//calculo longitud del mensaje

int  mm= mensaje.length()+38;

String longitud= (String) mm;

 //Send an HTTP POST request every 10 minutes

if ((millis() – lastTime) > timerDelay) {

    //Check WiFi connection status

    if(WiFi.status()== WL_CONNECTED){

     // Mostrar mensaje de exito y dirección IP asignada

     Serial.println();

     Serial.print(«Conectado a:\t»);

     Serial.println(WiFi.SSID());

     Serial.print(«IP address:\t»);

     Serial.println(WiFi.localIP());

     Serial.println();

     Serial.print(«**PRUEBA DE ENVIO DE GET:\t»);

     Serial.println(«»);

    //prueba de GET

    HTTPClient http;

    // Your Domain name with URL path or IP address with path

    http.begin(servidor);

    int httpResponseCode = http.GET(); //POST(salidajson);

     String payload = http.getString();

    Serial.println(«respuesta devuelta al comando HTTP.getString( Payload): «);

    Serial.println(payload);

    Serial.print(«HTTP Response code: «);

    Serial.println(httpResponseCode);

    Serial.println();

     http.end();

    delay(10000);

 Serial.print(«**PRUEBA DE ENVIO DE POST:\t»);

 Serial.println(«»);

   digitalWrite(ledPin, HIGH);

   // you’re connected now, so print out the data

   Serial.println();

   Serial.println(«Starting connection to server…»);

   http.begin(servidor2);

  Serial.print(«Enviando mensaje JSON: «);

  // Specify content-type header

  http.addHeader(«Accept», «application/json»);

  http.addHeader(«Content-Type», «application/json»);

  http.addHeader(«Content-Length»,longitud);

 Serial.print(«Longitud del mensaje=»);

 Serial.println(longitud );

 Serial.println(«Contenido del mensaje=»);

 Serial.println(mensaje );

int  httpResponseCode2 = http.POST(mensaje);

  Serial.print(«HTTP Response code: «);

  Serial.println(httpResponseCode2);

  String payload2 = http.getString();

  Serial.println(payload2);

  Serial.println();

  http.end();

  salidajson=»»;

 digitalWrite(ledPin, LOW);

 delay(10000);

    }

    else {

      Serial.println(«WiFi Disconnected»);

    }

    lastTime = millis();

  }

}

A continuación, mostramos un ejemplo de salida por consola del programa anterior funcionando:

Freeboard

Una vez que ya tenemos datos en la plataforma Fiware, necesitamos no solo que haga de conexión entre diferentes dispositivos, sino que buscamos ver y entender que nos están diciendo nuestros equipos. Hacer esto, hoy por hoy, requiere al menos un cierto manejo de lenguajes de programación como podría ser por ejemplo node-js. Sin embargo, hay quienes están trabajando porque esto no sea así como es el caso de Freeboard, un producto de Bug Labs, una Startup de Nueva York. “A damn-sexy, open source real-time dashboard builder/viewer for IOT and other web mashups”.

Freeboard seguramente no sea la plataforma de aplicaciones más sofisticada técnicamente que existe para el Internet de las Cosas pues estamos ante un panel web que podríamos decir “sencillo” y que muestra la información de los diferentes dispositivos que tengamos conectados en tiempo real.

Destacar también que es una plataforma Open Source, cuyo código fuente está disponible en GitHub donde allí tenemos el código fuente de la parte cliente.

Según sus fundadores, “Freeboard.io trata de convertir el Internet de las Cosas en un entorno mucho más sencillo, simple y accesible para todo el mundo”.

No necesitamos nada más para hacer funcionar tus dispositivos, aunque se podría potenciar mucho el sistema mediante la conexión por ejemplo con dweet.io o IFTTT.com, creando de una forma rápida y sencilla una robusta aplicación IoT. También podemos mezclar plataformas y dispositivos, levantando un excelente entorno desde donde controlar nuestros equipos.

Trabajar con ella es muy sencillo: Freeboard puede ejecutarse bien en un entorno cloud ( freeboard.io)   con  un plan gratuito con 30 días de duración. Una vez registrados podemos crear paneles indicadores configurados a nuestro gusto para visualizar la información, aunque primero habrá que añadir como fuente de datos(datasource) y sobre estos datos montar nuestro propio dashboard.

Otra forma de trabajar podría ser descargando o clonando el repositorio de Github, pero, aunque podría parecer trivial no se trata de abrir «index.html» simplemente en su navegador favorito pues tendremos que tener una servidor web (por ejemplo, Apache web server), tener node-js instalado y por supuesto tener Freeboard correctamente configurado especialmente todo lo relacionado con los CORS( Access-Control-Allow-Origin) donde por cierto la extensión de Chrome  “Allow Cors”  podría ser muy útil.

Como esta instalación podría ser problemática, lo más sencillo es cargar una imagen de docker con Freeboard pues así tendremos todo bien configurado y no tendremos ningún problema a la hora de ejecutar este entorno

No debemos por cierto antes de ejecutar dicha imagen de Freeboard de Docker instalar node-js, necesario para que todos los componentes funcionen correctamente.

Los pasos a seguir para hacer funcionar localmente Freeboad localmente:

  • Instalar node-js (si aún no lo tiene instalado)
  • Instalar Docker en la maquina
  • Crear  y ejecutar el contenedor de Freeboard(https://github.com/h6w/freeboard-docker  ) donde ejecutaremos el resto de contenedores Dockers, para lo cual simplemente desde el directorio desde line de comandos ejecutaremos:docker run --name myfreeboard -p 8080:80 -d tudorh/freeboard (este comando expondrá una instalación de Freeboard en  http://localhost:8080 )
  • Ahora nos iremos a Docker para comprobar que está corriendo en el puerto 8080 el servidor de Freeboard.
  • Ahora nos iremos a la dirección expuesta : http://localhost:8080/
  • Lo más importante es configurar antes de nada el Datasource que es de desde donde se obtendrá toda la información que se mostrará en el dashboard.
    • En Type seleccionaremos JSON
    • En Name elegiremos el nombre que deseemos
    • End headers añadiremos Accept: application/json
  • Una vez hecho esto pulsaremos en el símbolo de refresh en la parte superior y ya debería verse reflejado la hora de esa actualización.

Ahora pulsaremos en “ADD PANE” para crear el entorno donde mostraremos gráficamente las diferentes variables que queremos mostrar en nuestro panel:

  • Temperatura exterior
    • Humedad exterior
    • Temperatura interior
    • Nivel señal wifi
  • Temperatura exterior:

Lo ideal es usar un controlador tipo gauge definiendo el origen de datos, los valores mínimos –máximo así la unidad y el descriptivo.

Asimismo, Freeboard permite añadir un histórico usando el tipo Sparkline.

Por ejemplo, así se mostraría en tiempo real como fluctúa la temperatura exterior:

  • Temperatura interior:Lo ideal, igual que con la temperatura exterior es usar un controlador tipo gauge definiendo el origen de datos, los valores mínimos –máximo así la unidad y el descriptivo.
  • Señal wifi:Lo ideal, es usar un controlador tipo gauge definiendo el origen de datos, los valores mínimos –máximo así la unidad y el descriptivo.
  • Humedad:Lo ideal, es usar un controlador tipo gauge definiendo el origen de datos, los valores mínimos –máximo así la unidad y el descriptivo.

También podemos mostrar la misma información en modo texto:

Es interesante además de mostrar un histórico, de modo que al igual que se ha hecho con la temperatura exterior lo haremos con la humedad exterior usando el control Sparkline:

Para terminar, usaremos un Pointer para mostrar un valor de la humedad mas visible.

Con todos estos cambios pulsaremos en “SAVE FREEBORAD” para almacenar en un fichero Json en local todos los cambios realizados

El aspecto de como queda el panel es el siguiente:

Podemos comprobar que la información es actualizada con la fuente de datos, usando el monitor serie de Arduino:

Extensiones de Chrome

Sin tener instalado Freeboard, aparte de la herramienta Postman (fundamental para depurar los formatos de envió), hay dos herramientas muy interesantes para monitorizar las variables almacenadas en Fiware alimentado por los datos  que nos está enviando nuestra placa ESP32 y el sensor DHT11.

Las dos extensiones de Google Chrome que han resultado muy útiles son las siguientes:

Json Handle

Esta extensión es no solo un browser sino también un editor documentos JSON permitiendo ver de una sola vez de una manera muy visualmente atractiva los datos en nuestro caso de los diferentes sensores.

Easy Auto Refresh

Esta extensión permite recargar la página a intervalos definidos para refrescar los datos y poder mostrar los cambios, lo cual es muy útil para no tener que estar constantemente refrescando la  página desde obtenemos la información del Content bróker ( en nuestro caso http://192.168.1.66:1026/v2/entities/ )

  Información útil