Raspberry Pi + NodeJS + Sheetsu + Google Spreadsheet = Measure Internet Speed & Log

Hola a todos,

Hoy les compartiré mi ultima ñoñada, la cual consiste en utilizar mi Raspberry Pi junto con NodeJS para realizar un speedTest, medir el ancho de banda de Bajada y Subida, conocer la IP Púlica que me asigna mi ISP y al final guardarlo en un SpreadSheet de Google.

Trataré de que no sea un post largo.

Está demás que mencione que debemos tener andando el Raspberry Pi con acceso a Internet, es necesario tener instaldo NodeJS y su gestor de paquete npm. Con npm instalar los paquetes “resquest” y “speetest-net”

Se debe crear un SpreadSheet, ya que este funcionara como nuestra “tabla” donde guardaremos la información. Debe tener las siguientes columnas.

node_spreadsheet

Acceder al servicio https://sheetsu.com con tu cuenta de google y crear un api con el SpreadSheet que acabamos de crear. Solo tenemos que copiar la URL del SpreadSheet y pegarlo en Sheetsu para crear un API REST y poder enviar datos desde NodeJS.

node_sheetsu

Al final nos mostrará la URL del API que se genero y si accedemos a la URL desde el navegador haciendo un GET, traeremos todos los registros en formato JSON (en mi caso que ya tengo registros)

node_sheetsu2

node_sheetsu3

En la documentación de Sheetsu pueden consultar toda la magia que se puede hacer.

El código de NodeJS es el siguiente:

node_app

Aquí les comparto el raw:

https://raw.githubusercontent.com/rafavg77/Scripts/master/linux/network/publicip_bandwidth/app.js

La funcionalidad es realmente sencilla, ya que utilizamos la librería “speedtest-net” para realizar un speedtest como si entráramos a la pagina de http://www.speedtest.net/ pero con la ventaja que nos devuelve los resultados en un JSON. En caso de regresar información realiza una petición POST hacia nuestro API REST en Sheetsu pasando los resultados del Speedtest y  ¡Vualá!.

Como pilón se hace un gráfica.

node_chart

Espero les pueda servir, Saludos.

 

 

Deja una respuesta:

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s