martes, 8 de marzo de 2016

FASE 8. THINGSPEAK, PLATAFORMA IOT



ThingSpeak es una solución abierta para los productos y servicios del Internet de las Cosas. Permite de una forma muy simple crear gráficas, publicar tweets, entre otras cosas.
Una vez registrados, se crea un nuevo canal .


Como se puede ver arriba,  se tendrán dos campos, “iiotestado” muestra si el parking está lleno o no indicándolo a través de twitter. Por otro lado en “iiotprecio” se suponía que a través de un tweet indicaría los cambios de precio.

En la pestaña API KEY se pueden ver las llaves necesarias tanto para escribir como para leer a través de ThingSpeak.

Para ver las gráficas generadas habría que seleccionar en las vistas, dependiendo de si son públicas o privadas.
 

En la parte superior en Apps, pueden encontrarse funciones muy interesantes. Una de las utilizadas es ThingTweet. ThingTweet es una aplicación integrada dentro de ThingSpeak para actualizar Twitter a través de la propia plataforma. Como Twitter necesita autenticación vía OAuth y los dispositivos que normalmente se usan en ThingSpeak son de bajo nivel, la plataforma se usa como proxy para comunicarse con Twitter. De esta forma el dispositivo se puede comunicar con Twitter usando pequeñas llamadas a la API.

Para comenzar a usar ThingTweet es necesario entrar a la cuenta de ThingSpeak e ir al apartado de ThingTweet dentro de Apps. Una vez ahí se pulsa en Link Twitter Account, lo que redirecciona a Twitter para que se autentique y además autorizar a la plataforma para usar la cuenta. Una vez autorizado se redirecciona de nuevo a ThingTweet, donde se genera una clave (API Key) que se usará dentro de Arduino para mandar mensajes. Con esta clave se podrán mandar paquetes HTTP de tipo POST con la información que se desea entablar con la plataforma. En el siguiente enlace se puede ver el ejemplo completo.

https://github.com/iiotUHU/iiot/tree/master/ThingSpeak

La información que se intentará mandar tendrá la estructura de la URL siguiente:

https://api.thingspeak.com/update.json?api_key=XXXXXXXXXXXX&field1=10

Para construir el paquete se hará de la siguiente manera, donde se genera el encabezado del paquete HTTP con la información que se mandará:

String data = "api_key= XXXXXXXXXXXX &field1="+tsData;
client.print("POST https://api.thingspeak.com/update.json HTTP/1.1\n");
client.print("Connection: close\n");
client.print("Content-Type: application/json\n");
client.print("Content-Length: ");
client.print(data.length());
client.print("\n\n");

El paquete contiene la dirección de la API de ThingSpeak que se conecta con Twitter, la clave antes mencionada y el parámetro o parámetros que se configuran para mandar el mensaje a Twitter.


 


Otra de la que se ha hecho uso es TimeControl donde se ha creado un aviso periódico a través de Twitter.  




En React es posible responder a un evento que entra en la plataforma. Las “reacciones” creadas son las que se pueden ver a continuación:


El ejemplo que se va a explicar es el caso de vacío con el siguiente funcionamiento. Cuando en el campo “iiotestado” se inserte el valor 30,  a través de ThingTweet se enviará un aviso por Twitter. Como se puede ver a continuación el sistema creado, es lo bastante intuitivo como para que cualquier persona sin grandes conocimientos técnicos pueda programarlo.