Intel Galileo – Enviar datos a un sitio web usando NodeJS

Espero en unos días publicar un tutorial más completo sobre el uso de NodeJS en Intel Galileo.

Por el momento les presento este código de prueba.

var request = require('request'); //Referencia a la librería "request" de nodejs
var i = 0; //variable para contar
var timer = {};
test();
function test(){
   i++;
   var busqueda='costa rica makers';
   var url= 'http://www.google.com/';
   url += '?q=' + busqueda;
   url += '&veces=' + i; //un parametro adicional cualquiera

   request(url , function (error, response, body){
      if (!error && response.statusCode == 200) { //EXITO
         console.log(body);
      } else { //ERROR
         console.log(response);
         console.log(error);
      }
   timer = setTimeout(test,2000); //VOLVER A LLAMAR EN 2 SEGUNDOS
 });
}

Configurando nodeJS y la librería Request

Para que el script anterior funcione, la libreria request debe estar disponible. Digamos que creamos una carpeta particular para la prueba: ~/nodejs_test01 ( o lo que es lo mismo /home/root/nodejs_test01/)

Para esto es necesario instalar la libreria usando la utilidad npm, pero para esto es necesario tambien que el Galileo tenga la fecha y hora correctas.

Entonces, ejecute estos pasos en el linux del Galileo:

date 1029114114
El comando anterior, configura la fecha del galileo a OCT-29-2014, a las 11:41 de la mañana. Si su fecha/hora fuera el primero de diciembre de 2014 a las 3:30pm podria ejecutar esto:  date 1201153014  donde los cuatro primeros caracteres son DIC-01, los siguientes cuatro caracteres son 15:30, y el ultimo juego de dos caracteres es el año 2014.

npm install request
Esta operación puede tardar varios minutos, básicamente descarga la libreria del repositorio de NPM

wget http://costaricamakers.com/wp-content/uploads/2014/10/test_request.js
Esto descarga el programa test_request.js en la carpeta seleccionada.

Ejecutando el programa

Para ejecutar el programa, primero almacénelo en la carpeta de pruebas que hicimos “~/nodejs_test01/request_test.js”

Luego ejecute el siguiente código:

node request_test.js

Listo, el programa empezará a llamar al sitio web de google con la pregunta “costa rica makers”

Para detener el programa utilice las teclas CTRL+C

Intel Galileo – hacer una llamada al web usando wget

Uno de los retos interesantes que uno enfrenta en IoT es hacer llamadas desde nuestras pequeñas computadoras IoT a la Internet.

La llamada más básica es posiblemente lo que se conoce como el HTTP GET; que básicamente es hacer una solicitud a un sitio web usando un URL.

Un ejemplo de una llamada de este tipo es cuando ponemos en la dirección de nuestro navegador algo como “http://www.costaricamakers.com/?s=Internet“.

En una llamda como esta estamos haciendo una solicitud al servidor “www.costaricamakers.com” y le pasamos un parámetro s=Internet; el cual el servidor en nuestro caso entiende como una solicitud para realizar una búsqueda “?s” usando el término “Internet“. Esto genera una respuesta del servidor con el resultado de la búsqueda.

En nuestro caso, teniendo un computador “Intel Galileo” existen varias formas de ejecutar una solicitud HTTP GET.

Una de las más simples que he encontrado es el comando de linux “wget”.

wget http://www.costaricamakers.com/?s=Internet -O respuesta.txt

En el ejemplo anterior, wget haría la solicitud y guardaría el resultado en un archivo, en este caso el archivo llevaría el nombre “respuesta.txt”, en el directorio actual. También se puede especifica una ruta completa para el archivo donde se colocará el contenido de la respuesta.

Para más información:

  1. http://es.m.wikipedia.org/wiki/GNU_Wget

 

Happy Making!

#DAL2014 – Enriqueciendo el sistema de transporte y vialidad en Costa Rica

En nuestra reciente participación en dos equipos conformados por Jonathan Guevara, Gerardo Mora, Heiner Alvarado, Lorenzo Quirós y José Núñez, en el evento Desarrollando America Latina 2014; realizamos un prototipo para un conjunto de soluciones para mejorar el control y la toma de decisiones en lo que respecta a transporte público y vialidad en Costa Rica.

Una de las soluciones consiste en un sistema de detección de vehículos circulantes en las vías de tránsito que permite determinar los niveles de flujo de tránsito y a la vez habilita la implementación de semáforos inteligentes de bajo costo.

La segunda solución trata del monitoreo de las rutas de autobus, para determinar el cumplimiento de las rutas, así como el conteo de personas que entran y salen de un autobus.

El siguiente mapa ilustra la captura de datos de las rutas así como de cantidad de vehículos.

Uno de los principales objetivos de la inciativa es el desarrollo de una plataforma de “consumo” de dispositivos computacionales de captura y generacion de datos de bajo costo y alto valor; que facilite no solo la implementación de nuevos servicios y sistemas de captura, sino el análisis y la publicación de información de alto valor resultante de dichos datos.

image
Un agradecimiento especial a la gente de Dreams Agency Digital, por su interés en nuestro proyecto y por la entrevista y el video que hicieron al respecto; y a la organización del DAL2014 y sus patrocinadores por esta excelente oportunidad de compartir ideas y de crear soluciones.