febrero 5, 2025

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

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 

Configuración 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

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. 

 

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

function doPost(e) {
 
 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);
    var data = [];

    /*
    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 date_sampler= Utilities.formatDate(new Date(parsedData[variable][i].timestamp), "America/Bogota", "yyyy/MM/dd hh:mm:ss a"); 
          var date_now = Utilities.formatDate(new Date(), "America/Bogota", "yyyy/MM/dd hh:mm:ss a"); // gets the current date

          // Adicionar fila a la matriz de datos
           data.push([date_sampler, parsedData[variable][i].timestamp, variable, parsedData[variable][i].value, date_now]);

        }
      }
    } 

      // Insertar datos en la hoja de cálculo en una sola operación
     if (data.length > 0) {
       sheet.getRange(sheet.getLastRow() + 1, 1, data.length, data[0].length).setValues(data);
     }
  }
}    


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).  

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 .

 

Tabla Dinamica

para ver la información un poco mas ordenada por la fecha de ingreso podemos acudir a las tablas dinámicas. 

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 

Video Tutorial

Share on:
Facebook
Pinterest
WhatsApp
Recent posts

Medirco

Creemos que siempre se pueden hacer las cosas mejor. Con pasión por lo que hacemos, le ayudamos en la selección y adquisición de medidores y equipos complementarios para una gestión energética óptima de sus instalaciones.
We recommend
Featured posts