Descubriendo el IoT con ARTIK Cloud

Descubriendo el IoT con ARTIK Cloud

Guía paso a paso

La idea de esta serie de tutoriales la de familiarizarnos con ARTIK Cloud y cómo podemos trabajar con ella.

Vamos a diseñar un sistema capaz de leer tarjeta NFC estándar y guardar el histórico en ARTIK Cloud. Se me ocurren muchas aplicaciones que pueden tener como base este proyecto. Por ejemplo, un  sistema de control de presencia (cuando un alguien pasa la tarjeta por el lector se registra la hora), sistema de seguridad para bloquear puerta, …

En este primer tutorial, no vamos a usar ningún hardware específico.

ARTIK Cloud nos permite simular cualquier entrada de datos independientemente del hardware. Así si queremos desarrollar alguna aplicación para, por ejemplo, alguna pulsera cuantificadora (Fitbit, Samsung Gear, Jawbone, Pebel, …) ya no es necesaria tenerla.

¿Qué es ARTIK Cloud?

ARTIK Cloud es una plataforma abierta de intercambio de datos para Internet de las cosas (IoT), está diseñada para facilitar la interoperabilidad de los dispositivos y permitir nuevos tipos de datos.

Dicho de otra forma, ARTIK almacena y facilita el acceso a los datos que almacenamos desde distintas fuentes de datos (sensores, relojes, dispositivos …).

 

Veámoslo en un ejemplo.

Berta siempre sale con prisas de casa, muchas veces no sabe si ha apagado las luces al salir. Como apasionada a las nuevas tecnologías, tiene las luces de casa con Philips Hue, podría entrar en su móvil y apagarlas de una forma fácil. Pero gracias a las reglas que pueden escribirse en ARTIK Cloud, puede compartir los datos entre su Samsung Gear S2 y las bombillas de su casa, para que cuando esté fuera de casa las luces se apaguen.

Volviendo a nuestro caso, vamos a diseñar un sistema capaz de leer tarjeta NFC estándar y guardar el histórico en ARTIK Cloud. En próximas entregas usaremos este proyecto como base.

Pasos que vamos a dar:

  • Crear un tipo de dispositivo
  • Crear un dispositivo del tipo creado
  • Usar el simulador por línea de comandos.

Vamos a usar la plataforma ARTIK Cloud, así que vamos a necesitar un cuenta ARTIK Cloud.

Lo único que debemos de tener en cuenta aquí es que necesitamos indicar un email válido porque nos enviaran un email de activación.

Una vez que nos hayamos registrado y accedido a ARTIK Cloud tenemos que irnos a Cloud Developer.

Ahora vamos a crear un tipo de dispositivo (Device Types), en nuestro caso es un lector de tarjetas NFC.

Antes de seguir tenemos que tener claros unos conceptos:

  • Cada dispositivo en ARTIK Cloud corresponde a un tipo de dispositivo.
  • Un tipo de dispositivo tiene un manifiesto (Manifest) único que describe los datos que envía el dispositivo que cumple (o implementa) el manifest y los comandos que puede recibir.
  • El Manifest es cómo ARTIK Cloud puede aceptar cualquier datos de cualquier fuente y permite la interoperabilidad (sabe qué se envía y qué se puede hacer en los dispositivos).

Ahora clic en Device Types y clic en “+ New Device Type”.

Aquí debemos de poner el nombre de nuestro tipo de dispositivo (este nombre es para nuestro uso y lo podemos repetir) y un nombre único (para compartirlo con la comunidad, en el caso que queramos hacer esto).

 

Una vez creado el tipo de dispositivo tenemos que crear el archivo de Manifest.

ARTIK Cloud está diseñado para ser independiente de los datos enviados por dispositivos y aplicaciones. Para hacer que estos datos se puedan utilizar, ARTIK Cloud requiere lo que han llamado Manifiest. El Manifiest, que está asociado con un tipo de dispositivo, describe la estructura de sus datos.

 

Clic en “+ New Manifest” para definir el archivo Simple Manifest.

Tenemos que pasar por todos las pestañas.

En la primera pestaña “Device Fields

Los campos que ingresemos aquí ARTIK Cloud los usa para interpretar los mensajes de datos enviados por el dispositivo.

El field name debe de ser único (por dispositivo) y no puede contener espacios o caracteres especiales.

Si ARTIK Cloud reconoce el nombre del field name, por ejemplo temperatura, se autocompleta el “DATA TYPE” y el “UNIT OF MEASUREMENT”.

Las tarjetas NFC tienen un UID en hexadecimal el tipo de dato que más se le asemeja es un string.

En la siguiente pestaña, hay que definir las acciones del dispositivo.

Una Acción es un tipo específico de mensaje (un comando) que ARTIK Cloud envía a un dispositivo. Algunos ejemplos de acciones son encender o apagar un dispositivo, configurar texto o cambiar el valor del color.

En nuestro caso no es necesario que nada interactúe con nuestro lector de tarjetas NFC. Será el lector quién envía datos, por ahora, no los recibe.

Vamos a la última pestaña

Clic en Activate Manifest

Hasta aquí hemos hecho un tipo de dispositivo (nfcReader), con un manifest muy básico, que simulara la llegada de los datos que nuestro futuro lector de tarjetas NFC envía.

Creando la aplicación

Las aplicaciones pueden usar la API REST para trabajar con dispositivos creados por otros desarrolladores de ARTIK Cloud.

Nosotros no vamos hacer que interactúe nada con nuestro lector. Nuestro lector lee y envía a ARTIK Cloud. Así que por ahora no vamos hacer nada en esta sección.

Creando el dispositivo

Ahora vamos a crearnos una instancia de nuestro tipo de dispositivo y luego simularlo. Nuestro lector es muy básico, solo generará cadenas de texto aleatorias simulando ser UID de NFC válidas.

Debemos de irnos a dashboard de my cloud en ARTIK

Clic en Devices y  clic “New Device

 

Aquí en primera posición está el tipo de dispositivo que acabamos de crear. Hay muchos más tipos de dispositivos de otras compañías.

Elegimos el nuestro.

 

Le damos un nombre y lo añadimos.

Ahora solo nos falta arrancar el simulador.

Simulador

Antes de arrancar el simulador debemos de aceptar el uso de la API Console.

No he sido capaz de ver dónde se debe de aceptar estos términos y condiciones. En la ayuda de ARTIK Cloud (que por cierto, es muy buena) sólo indican el enlace. Por favor, si alguien lo descubre qué me lo diga en los comentarios 😉

Una vez aceptados los términos nos saldrá todas las peticiones que podemos hacer.

Por ahora nos vamos a centrar en la parte de Users, que es la primera.

Debemos de generar un token que nos de acceso para hacer las peticiones, en nuestro caso para que guarde nuestras UID.

Para conseguir el token de seguridad nos vamos a Get Current User Profile

Clic en  TRY IT!

Veamos los resultados:

Vamos a copiarnos la cadena que hay detrás de Bearer. Cuidado cada uno debe tener el suyo, este código es único, el mío difiere del vuestro.

Ahora vamos a descargarnos el simulador de dispositivos (Device Simulator). Es un archivo .jar que para ejecutarlo es necesario tener instalada la versión Java JDK v8 update 77 o superior.

El comando para ejecutarlo es:

 

 

java -jar device-simulator.jar -token=<user_token>

 

 

el user_token es la cadena que antes hemos copiado la que estaba detrás de Bearer y este código es único, atentos y no copieis.

 

Es necesario lanzar el comando desde la línea de comando.

Ups! Este fallo lo da porque no tengo el JDK actualizado.

 

Vamos a comprobarlo

Rápidamente, tenemos que irnos a Oracle y actualizar Java.

En mi caso y cuando escribo esto, esta es la última versión:

 

Ahora si podemos arrancar el simulador

Podemos introducir ? y ver la lista de comandos que admite.

Vamos a introducir ld (lo pongo en mayúsculas para que no haya confusión LD pero debemos de escribir los comando en minúsculas, aunque funcionen en mayúsculas) para listar los dispositivos

Podemos irnos al dashboard de my cloud en ARTIK y hacer clic en nuestro dispositivo y comprobar que tiene los mismo datos.

Para poder generar cadenas de texto ficticias, que representan las cadenas UID de las tarjetas NFC, vamos a generar lo que se conoce como scenerio.

Un scenerio es un comportamiento automático que simula el uso de nuestro dispositivo.

En nuestro caso, lo que queremos es simular que se leen tarjetas NFC.

Vamos a simular cadenas de texto de forma aleatoria.

Tirando de la ayuda, que antes hemos listado. Podemos ver que con gs se consigue generar un scenerio en función del Manifest

Para hacer esto ponemos en la línea de comando del simulador:

En mi caso:

 

gs 5485a0e6b6ec44a1afd9f626e61208b6 nfcreader_scenerios

 

Este comando generará un scenerio con nombre nfcreader_scenerios del dispositivo 5485a0e6b6ec44a1afd9f626e61208b6 (ojo que es el mío, el de vosotros es otro, no pongáis el mío. No, no me voy a cansar de decirlo 🙂 ) con la ayuda del Manifest que creamos antes.

El aspecto de este json es el siguiente:

La acción que hará el scenerio es:

cada 1000 ms hará una petición POST con un string aleatorio.

Ahora toca lanzar el simulador en modo automático.

Gracias a la ayuda podemos ver qué comando debemos escribir para poder ejecutar nuestro simulador con este comportamiento automático:

 

rs 5485a0e6b6ec44a1afd9f626e61208b6 nfcreader_scenerios

 

(Nuevamente ojito que el did 5485a0e6b6ec44a1afd9f626e61208b6 es el mío, el de vosotros es otro, no pongais el mío 😉 )

Para parar la ejecución podemos pulsar s + Intro o escribir stop y Intro
¿De verdad que esto ha enviado datos a la Cloud de ARTIK? Vamos a verlo en nuestro panel de ARTIK my cloud.

 

Vamos a verlo en Charts

 

Seleccionamos el dato que queremos visualizar

Y aquí están nuestras cadenas.

Otra manera de poder haber visto los datos es en la parte de Data Logs

 

Por ahora vamos a dejarlo aquí.

En esta primera entrada hemos tocado varios aspectos básicos (devices, devices type, manifest, applications …) que nos serán necesarios en todo proyecto que iniciemos con ARTIK. Hemos configurado nuestro primer tipo de dispositivo y hemos visto cómo se usa el simulador vía línea de comando (API Console), además de cómo crear simulaciones automáticas (scenerio).

 

Espero que os haya gustado.

 

¡Compartid!

Autor: Jawier Andrade

Share This Post On

2 Comentarios

  1. Increible, he conocido funciones que no sabía hasta ahora de Artik Cloud hasta ahora con tu tutorial, enhorabuena, deseando de leer la segunda parte.

    Post a Reply

Deja un comentario

A %d blogueros les gusta esto:
Bitnami