fbpx
Home Ciencia Cervecera De Plaato a ThingSpeak

De Plaato a ThingSpeak

by vinnymoy
De Plaato a ThingSpeak

El día de hoy llegamos con un proyecto técnico en el cual conectaremos un Airlock Plaato al sistema ThingSpeak.

Antecedentes y equipo necesario

En este post pretendemos conectador un Airlock Plaato y llevar todos sus datos a la plataforma ThingSpeak. De forma similar como hicimos tiempo atrás con el hidrómetro Tilt, como puedes ver dando clic aquí: De Tilt, Google Sheets a ThingSpeak.

Lo primero que debes tomar en cuenta es que el Plaato sí o sí necesita una conexión USB para alimentación. Es decir, no funciona con baterías. También considera que para conectarse y poder usar sus datos requieres de una conexión wifi que funcione a 2.4 GHz (la mayoría de redes Wifi, aunque hay routers que también trabajan a 5 GHz, como el de mi casa); y que la red NO puede ser de tipo WPA & WPA2 Entreprise, como justamente me pasó y me tardé medio día en encontrar en la información oficial este pequeño gran detalle. Este tipo de seguridad es fácil de identificar, porque es la típica configuración de usuario – contraseña, que se tiene en empresas o en la universidad, como es mi caso. Si es que este es tu problema tendrás que valerte de algún tipo de router o red intermedia, para generar tu propia red y así saltarte esta autenticación; yo lo hice conectando un router a mi raspberry pi. Un lío, pero es lo que hay.

Después de una corta configuración, que te la mostraré luego, el objetivo de este proyecto es enviar los datos a la plataforma ThingSpeak, de la que ya hemos hablado con anticipación en el proyecto anterior.

En resumen, ThingSpeak, es un sistema de análisis de datos online basado en Matlab. ¿Y para qué me puede servir esto? Primero, porque desde ThingSpeak puedes almacenar, enviar y procesar los datos no de 1 ni de 10 sensores, sino de centenares, puedes crear tu propia App, y así integrar sensores Tilt, Plaato, Arduinos, Pt100, y casi cualquier cosa que se pueda conectar a internet. De hecho, esta plataforma es un sistema para IoT. ¿Suena interesante? Lo es.

Plaato
Plaato

Este proyecto tiene por objetivo conectar 1 Plaato, y recibir sus datos a un canal de ThingSpeak, aprovechando que la compañía tiene ya por default sus datos en la nube mediante la plataforma Blynk. Por esto, el procedimiento es considerablemente más simple que el proyecto del Tilt. Para esto necesitarías:

  1. 1 Plaato.
  2. Cuenta en ThingSpeak (gratuita con limitaciones).
  3. Un teléfono móvil para la primera configuración.

Configurando el Plaato

Como lo he dicho anteriormente, primero tienes que tener claro que la red wifi a la que te conectes no cuente con las limitaciones mencionadas. Superado esto, tendrás que descargar en tu teléfono la aplicación oficial (iOs y Android) y conectar el Plaato a una fuente USB. Debes crear una nueva sesión y seguir las instrucciones que son francamente sencillas y ya esta.

Solamente considera que si cambias de red, o te llevas en Plaato a otro sitio tendrás que llevarlo a punto de fábrica y repetir el procedimiento.

Las instrucciones completas puedes verlas en el siguiente video:

Configuración del Plaato

Con estos pasos, tendrás los datos del sensor en su App. Además deberás realizar unas pequeñas configuraciones referentes al batch, como por ejemplo los litros de mosto que fermentan, la densidad inicial, y pocas cosas más.

App de Plaato
App de Plaato

En este punto podríamos quedarnos ahí. Pero no. Nosotros queremos los datos en ThingSpeak.

Plaato en la nube a través de Blynk

Un pequeño y enorme detalle que encontré casi por casualidad en una noticia sobre emprendimiento es que Plaato realizó su proyecto utilizando la plataforma Blynk. Detallazo. Esta es una aplicación rusa a la que deberías darle un ojo, ya que nos permite crear nuestras propias apps para iOs y Android de forma gratuita. Aunque, lo que realmente es interesante

Plataforma Blynk
Plataforma Blynk

Y aunque esta plataforma sea realmente interesante, lo que sirve para nuestro objetivo es recordar que la conexión Plaato – Servidor Blynk – App, hace que tengamos los datos disponibles en la nube. Con esto, Plaato nos da la información de cómo tener los datos mediante una función GET, con el siguiente formato:

GET http://plaato.blynk.cc/auth_token/get/pin

Nos percatamos así que lo primero que necesitaremos es el “auth_token”. Sin embargo, la forma de obtenerlo es tremendamente precaria. Deberás realizar todos los pasos anteriores y luego enviar un correo electrónico a support@plaato.io, con el asunto “Auth token”, y dar tu nombre de usuario. Días después (4 en mi caso), recibirás una respuesta con el código.

Plaato. Auth Token
Plaato. Auth Token
Plaato. Auth Token
Plaato. Auth Token

Otra cuestión es saber qué valores puede tomar “pin”, ya que Blynk utiliza un sistema de pins viruales, que representan los datos que podemos obtener. Todos los pines disponibles son:

Plaato. Pines virtuales
Plaato. Pines virtuales

También hay forma de obtener los datos históricos a través de un archivo csv, aunque solamente recibirás los datos V102, V103 y V106, mediante un cambio en la función GET:

GET http://plaato.blynk.cc/auth_token/data/pin

OJO: Un detalle que debes observar, y que es importante, es que el Plaato NO ENTREGA LA TEMPERATURA DEL MOSTO, sino la temperatura ambiente, cuidado con esa confusión.

Con estos datos, si por ejemplo, en la barra de navegación de mi browser escribo la dirección:

http://plaato.blynk.cc/e337c70MI_CODIGO_BORRADO_POR_SEGURIDADda80cef6/get/v106

Recibiré la siguiente información, que corresponde a la densidad específica de mi plaato, que es prácticamente 1.008:

Plaato. Respuesta V106
Plaato. Respuesta V106

ThingSpeak

Evidentemente lo primero será crearnos una cuenta gratuita, para lo cual conviene utilizar o crear una de MathWorks, ya que ThingSpeak es un servicio de esta empresa y el tener una cuenta de ella nos da acceso a más herramientas.

Luego, lo primero será crear un canal. En este sistema, un canal representa un sensor, que puede tener 8 datos distintos (Fields) y uno extra que representa el Timestamp (Marca de tiempo, es decir fecha y hora a la que se accedió al dato).

Nuevo canal
Nuevo canal

Después de crear el canal procedemos a crear los campos. Para nuestro caso dejamos en blanco el primer campo y activamos los demás. Aunque solamente nos interesará conocer los BPM, temperatura ambiente, densidad inicial, densidad específica, ABV y el volumen total de CO2. Guardamos el canal y pasamos al siguiente paso.

Campos creados en el canal ThingSpeak
Campos creados en el canal ThingSpeak

Nos vamos a la pestaña APPS, y entramos en Matlab Analysis, dando clic en Custom (no starter code). Así, pasamos a darle un nombre cualquiera al script y pasaremos a copiar el siguiente código en la sección Matlab Code.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Ingreso datos de configuración
token = 'e3_TU CODIGO AUTH TOKEN_cef6'; %Token dado por Plaato
channelID = 1_TU CANAL_5; % Channel ID del canal de ThingSpeak
writeKey = 'GB_TU WRITE KEY_52N'; % Write API Key del canal de ThingSpeak
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Datos que se solicitarán a Plaato. La información de todos los pines
%disponibles está en: https://plaato.zendesk.com/hc/en-us/articles/360003235097-GET-value

pin2 = "v102"; %Burbujas por minuto
pin3 = "v103"; %Temperatura ambiente
pin5 = "v105"; %Densidad inicial (en grados Oechsle g/cm3)
pin6 = "v106"; %Densidad específica (en grados Oechsle g/cm3)
pin7 = "v107"; %ABV
pin19 = "v119"; %Volumen total de CO2 producido durante el batch
pin = [pin2; pin3 ;pin5; pin6 ;pin7 ;pin19];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Captura de datos de Plaato en la plataforma Blynk.
 for ii=1:length(pin)
    url = ['http://plaato.blynk.cc/' token '/get/' pin{ii}];
    temp = webread(url);
    data{ii} = temp ;  
    x = class(temp);
    tf = strcmp(x,'double');
    if tf == 1
         data{ii} = sprintf('%.0f',temp);
    end 
    data{ii} = str2double(data{ii});
 end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Generación de fecha, día y hora de la toma del último dato.
tStamp = datetime('now','TimeZone','local','Format','dd-MM-yyyy HH:mm ZZZZ');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Envío al canal ThingSpeak
thingSpeakWrite(channelID,{data{1},data{2},data{3},data{4},data{5},data{6}},'Fields',[1,2,3,4,5,6],'WriteKey',writeKey,'TimeStamp',tStamp);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

NOTA 10/07/2020: El código mostrado no se encuentra aún optimizado, por lo cual, posteriormente iré subiendo correcciones. Sin embargo funciona correctamente. Si encuentras alguna falla, o tienes una sugerencia no dudes en contactarnos a través de los comentarios.

De este código es importante que cambiemos 5 datos por cada cerveza que estemos monitoreando:

  1. token
  2. channelID
  3. writeKey
Token

Es el valor ya mencionado, dado por Plaato.

Channel ID y WRITE API KEY

En este caso, la información se la encuentra en un lado del MATLAB ANALYSIS. Ahí se encuentran los datos que requerimos, y que deberemos copiarlos en nuestro código al inicio.

Información del canal
Información del canal
TimeControl

Para terminar, iremos hasta el final del MATLAB ANALYSIS y añadiremos una App llamada TimeControl.

TimeControl
TimeControl

Ahí, seleccionaremos una frecuencia recurrente de 20 minutos, y en acción debe quedar seleccionado en Matlab Analysis, y el Code to Execute el nombre del que creamos, en mi caso PLAATO1. Con esta acción pretendemos que ThingSpeak ejecute el código que anteriormente programamos de forma recurrente.

TimeControl
TimeControl

Guardamos y finalmente damos clic en Save and Run.

Save and Run
Save and Run

De Plaato a ThingSpeak: visualización

Hecho todo esto podemos ir a la pestaña Channels, en el que se visualizarán los datos que el sensor automáticamente envía.

Visualización de datos
Visualización de datos

Se puede observar todos los datos que internamente se están guardando en el canal ThingSpeak.


Con todo esto hemos conseguido el objetivo inicial de conectar y visualizar los datos obtenidos por un Plaato en ThingSpeak.

Nuestro siguiente proyecto será conectar el airlock Plaato y el hidrómetro Tilt, que están en ThingSpeak, hacia un Raspberry Pi para poder realizar un control personalizado de temperatura.


¿Te ha gustado este proyecto? ¿Crees que debamos corregir algo? ¿Te parece útil saber cómo usar de forma alternativa los datos de sensores como el Plaato? Cuéntanos más en los comentarios.


Related Articles

2 Comentarios

freddy cabrera 14 de julio de 2020 - 15:23

El uso del sensor PLAATO no l veo tan provechoso con respecto al hidrómetro Tilt.

Responder
vinnymoy 14 de julio de 2020 - 15:42

Hola Freddy.

Realmente voy a hacer un post comparándolos uno a uno porque cada uno tiene sus fortalezas y sus debilidades. Pero te puedo decir que la gran ventaja que le veo al Tilt sobre el Plaato es que puede medir la temperatura del mosto, mientras que el Plaato mide la temperatura del ambiente, aunque este mide la cantidad de CO2 y eso te puede ser muy útil en un fermentador isobárico.

Responder

Leave a Comment