Google Sheets | IoT | Monitoreo

A través  de este articulo explicaremos como es posible capturar variables mediante cualquier dispositivo o sensor del mercado que cuente con protocolo Modbus y llevarlas a través de la red celular o una red wifi hasta una hoja de calculo de google sheets 

El primer paso es crear una hoja de calculo en blanco en nuestro  Google Sheets. Después de creado le damos  nombre. Adicionamos la columnas: fecha , timestamp, name, valor y fecha update.

La url de la hoja generada será algo como: https://docs.google.com/spreadsheets/d/1XZV5r3KzkZLAd_MT7okRhZn3lDEm04MdHGd4O0P_DKg/edit#gid=0 donde (1XZV5r3KzkZLAd_MT7okRhZn3lDEm04MdHGd4O0P_DKg) es el sheet_id

Damos clic a Extensiones/Apps Script y pegamos el siguiente script donde reemplazamos nuestro sheet_id y sheet_name.

Pegamos el siguiente script. reemplazamos sheet_id y el sheet_name por nuestro sheet_id generado

var sheet_id = "sheet_id";
var sheet_name = "sheet_name";

function doPost(e) {
 
  var parsedData;

  try {
    parsedData = JSON.parse(e.postData.contents);
  }
  catch(f){
   return ContentService.createTextOutput("Error in parsing request body: " + f.message);
  }

  if (parsedData !== undefined){
   
    var ss = SpreadsheetApp.openById(sheet_id);
    var sheet = ss.getSheetByName(sheet_name);

    /*
    Formato esperado
    {"phase1-volt":[{"value":0,"timestamp":1707826069000},{"value":120,"timestamp":1707826070000} ],"phase2-volt":[{"value":0,"timestamp":1707826069000}],"phase3-volt":[{"value":0,"timestamp":1707826069000}]}'
    */

    // Barrer Objetos
    for (const variable in parsedData)
    {
      if(typeof parsedData[variable] === 'object')
      {
        for (const i in parsedData[variable])
        {
          var timestamp=  new Date(parsedData[variable][i].timestamp);
          var date_now = Utilities.formatDate(new Date(), "America/Bogota", "yyyy/MM/dd hh:mm:ss a"); // gets the current date

          // Adicionar columna
          sheet.appendRow([timestamp, parsedData[variable][i].timestamp, variable, parsedData[variable][i].value, date_now]);
        }
      }
    } 
  }
}

Después de insertado el script procedemos a generar su implementación.  

  • Damos clic en el botón «Nueva implementación» .
  • Nombramos la implementación.
  • Seleccionamos el tipo: Aplicación web 
  • Damos Acceso a cualquier usuario 
  • Procedemos con la implementación  
  • Permitimos la implementación.

Al final de la implementación se nos dará una URL  para poder transmitir la información. 

En el siguiente video podemos ver todo el procedimiento completo.

Configuración SerIoT

El gateway SerIoT es un potente equipo capaz de interrogar diferentes equipos y sensores , extraer información de valor, almacenarla y enviarla a diferentes plataformas . Este equipo posee una interfaz web de configuración, por la cual se configura las variables a capturar y su forma de transmisión.

Para mas información consulta el manual de usuario (SERIOT V6 Manual).  

Gateway Modbus

El SerIoT permite el monitoreo de varios dispositivos simultáneamente, por lo tanto, el primer paso es la creación de un dispositivo 

Adición de variables de interés de acuerdo a la documentación del equipo o sensor a interrogar. 

Adicionar condición de operación sobre la variable. El equipo permite establecer ciertos criterios para la transmisión como puede ser ciertos limites de operación. Para más información remítase al manual de usuario (SERIOT V6 Manual).

Después de haber establecido las variables que vamos a monitorear es hora de establecer los parámetros de conexión  y la estructura de la información a enviar.

Como se puede observar hemos establecido  la url   https://script.google.com/macros/s/AKfycby5htu2rkcDtmSjezmASLjuxCylgh9gIWAZacpQdkAF3GZgjjS33bWFazQjpj23BRI6/exec   en el puerto 443 . Ya con esa información el equipo esta listo para enviar información a Google Sheets .

En el siguiente video puedes ver la configuración completa. 

Tabla Dinamica

para ver la información un poco mas ordenada por la fecha de ingreso podemos acudir a las tablas dinámicas. En el siguiente video vemos de una manera fácil como podemos , a partir de los datos recolectados insertar una tabla dinámica en nuestra hoja de calculo. 

Como hemos podido observar, se pudo capturar información de valor , procesarla y enviarla correctamente a una hoja de calculo de una manera fácil