[IoT] Introducción al “Internet de las Cosas” con la Intel Galileo

Introducción

IoT acrónimo utilizado para referirnos a Internet of Things o lo que es lo mismo en nuestro idioma, el Internet de las Cosas es un término sin duda de moda. La leemos y se habla comunmente referenciando varias temáticas relacionadas con la tecnología.

Pero… ¿Qué es el Internet de las Cosas?

Internet de las Cosas

Vivimos en un mondo cada vez más conectado. Es habitual que muchos
cuenten con teléfono conectado a la red pero a su vez es habitual tener
tambien tablet, ordenador y otros elementos básicos conectados. Cada día
estamos rodeados de más tecnología interconectada entre sí. Elementos
cotidianos en nuestra vida diaria comienzan a estar conectados e
identificados. Esto permite un mayor control y gestión del usuario sobre
el conjunto de su vida digital.

Para los desarrolladores nos abre un mundo de posibilidades en un
abanico de sectores gigantescos que hasta ahora eran imposibles o
estaban fuera del alcance de muchos de nosotros.

En el artículo de hoy, vamos a analizar la Intel Galileo, que es
Windows para IoT y a crear nuestro primer proyecto básico para ella.

¿Te apuntas?

¿Intel Galileo?

La Intel Galileo es una placa Open Hardware basado en el procesador Quark SoC X1000 de 32bits de Intel con una velocidad de 400MHz.
Cuenta con conector Ethernet, un zócalo para microSD, puerto serie
RS-232, USB Host, un puerto mini PCI Express y 8 MByte NOR Flash.

Además la placa es compatible con el IDE de Arduino y con las Arduino
Shields pero basado en un procesador Intel aportando una serie de
posibilidades extras que veremos a continuación.

NOTA: La Galileo incluye pines compatibles con una amplia gama de protectores Arduino Uno R3.

 

Intel Galileo

 

Preparando el entorno

Antes de compenzar a trabajar con la Galileo debemos preparar nuestro
entorno, tanto el equipo de desarrollo como la propia Galileo.

Preparando el equipo de desarrollo

En nuestro equipo de desarrollo necesitaremos los siguientes prerrequisitos:

  • Una cuenta Microsoft para registrarnos en el programa de desarrollo Windows para el Internet de las Cosas en Connect.
  • Visual Studio 2013.

NOTA: Cualquier versión de Visual Studio 2013
esta soportada incluida la versión Express. Si cuentas con la versión
Express necesitas instalar Nuget Package Manager. Visual Studio 2015 aun
no esta soportado.

Lo primero que debemos hacer es registrarnos en de desarrollo Windows para IoT en Microsoft Connect. Una vez registrados, procederemos a la descarga de WindowsDeveloperProgramforIOT.msi:

Descarga de WindowsDeveloperProgramforIOT.msi

Tras descargar instalaremos Windows Developer Program for IoT que nos
añadirá las herramientas y plantillas necesarias para poder trabajar
con la Intel Galileo:

Instalamos Windows Developer Program for IOT

Entre el conjunto de opciones instaladas, al final de proceso veremos que contamos con la herramienta Galileo Watcher:

Galileo Watcher

Esta herramienta nos permite detectar la placa que tengámos conectada a la misma red.

Para acceder de forma remota a la palca e interactuar con ella será necesario también utilizar Telnet. Es una característica incluida en Windows, tan solo debemos verificar que este activada.

Para ello, nos dirigimos a Inicio y hacemos clic en Panel de Control. Nos dirigimos a Programas y características y hacemos clic sobre la opción Activar o desactivar las características de Windows.

Habilitar Telnet

En el listado de características de Windows seleccionamos la opción Cliente Telnet y aceptamos.

Preparando la Intel Galileo

Necesitaremos los siguientes prerrequisitos:

  • Una tarjeta microSD de al menos 16GB.

Comenzamos descargando los paquetes necesarios:

Descargamos apply-BootMedia.cmd y  Microsoft Windows for Intel Galileo

Tras la descarga de los ficheros necesarios vamos a preparar la tarjeta microSD. Comenzamos formateándola en FAT32.

A continuación, abrimos una línea de comandos con privilegios de Administrador. Escribiremos:

cd /d %USERPROFILE%Downloads
apply-bootmedia.cmd -destination {YourSDCardDrive} -image {.wimFile downloaded above} -hostname mygalileo -password admin

NOTA: YourSDCardDrive es la unidad de la tarjeta SD en la máquina de desarrollo.

16 Tarjeta SD

Conectando con la Galileo

Una vez preparada la microSD estamos listos para conectar con la
placa. Podemos utilizar varias herramientas para la comunicación con la
misma, Galileo Watchet y Telnet.

Conectando y arrancando la Galileo

Adaptador USB a 10/100Mbps

Tras preparar la tarjeta microSD en el paso anterior la insertaremos
en la Galileo. Proporcionaremos energía a la placa con su adaptador de
corriente y la conectaremos a nuestro equipo de desarrollo utilizando en
adaptador de USB a 10 / 100Mbps.

Una vez conectado debemos esperar a que termine el arranque de Windows en la Galileo.

NOTA: El arranque de Windows en la Galileo es un
proceso que puede llegar a tardar hasta aproximadamente 2 minutos
aunque normalmente es más rápido. Durante este proceso podemos observar
que el LED de la tarjeta microSD parpadea frecuentemente. Cuando el LED
deje de parpadear con frecuencia, nos indicará que el proceso se
completo.

Conexión con la Galileo

Galileo Watcher

Tras el arranque de la placa en nuestro equipo de desarrollo podremos
ver más información de la misma en la herramienta Galileo Watcher:

Información de la Galileo desde la herramienta Galileo Watcher

La herramienta es muy sencilla de utilizar. Mediante un  menu contextual nos permite realizar acciones como:

  • Copiar dirección MAC: Nos permite copiar al Clipboard la dirección MAC de la Galileo.
  • Copiar dirección IP: Nos permite copiar al Clipboard la dirección IP de la Galileo.
  • Abrir Telnet: Nos abre una sesión Telnet con la placa.
  • Abrir navegador: Además de ejecutar Windows, cuenta con un pequeño servidor Web.
  • Recurso compartido red: Al contar con Windows, contamos con la posibilidad de tener el recurso compartido C$.
Menu contextual Galileo Watcher

Telnet

La herramienta Galileo Watcher nos permite abrir una conexión Telnet con la Galileo. Los parámetros de la conexión son:

  • Username: Administrator
  • Password: admin

NOTA: No es la única vía para acceder a la Galileo utilizando Telnet.

Telnet

Abrir navegador

Tenemos tres opciones incluidas en esta opción:

  • Task List: Listado de procesos Windows en ejecución.
  • File List: Listado de ficheros.
  • Memory Statistics: Uso de memoria.
WebServer

Recurso compartido de red

Al contar con Windows, contamos con la posibilidad de tener el recurso compartido C$. Los parámetros para conectar son:

  • Username:myGalileo Administrator
  • Password: admin
Acceder a recursos compartidos de la Galileo

NOTA: myGalileo es el nombre de la placa. En caso de problemas de conexión, utilizaremos la IP de la misma.

Una vez conectado podemos acceder al sistema de archivos de la
Galileo como a cualquier recurso compartido C$ de un sistema Windows.

Conexión Recursos compartidos

Nuestro primer “Hola Mundo”

Llegado a este punto es hora de pasar a la acción creando nuestro primer proyecto. Abrimos Visual Studio y nos dirigimos a las plantillas dentro de la categoría Visual C++. Tendremos una nueva categoría Windows for IoT donde encontraremos una plantilla Galileo Wiring App que nos permitirá crear Apps para la Galileo:

Hola Mundo!

El proyecto por defecto nos incluye el siguiente código:

void loop()
{
    // TODO: Add your code here
 
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
    Log(L"LED OFFn");
    delay(1000);               // wait for a second
    digitalWrite(led, HIGH);   // turn the LED on by making the voltage HIGH
    Log(L"LED ONn");
    delay(1000);               // wait for a second
}

El proyecto por defecto (y el “Hola Mundo” habitual) en la Galileo consiste en hacer parpadear un simple LED conectado en el Pin 13.

El código es muy sencillo, cada segundo se modifica el voltaje del Led para hacerlo parpadear.

Llega el momento del despliegue. Antes de desplegar debemos
asegurarnos de verificar una correcta configuración. En las propiedades
del proyecto nos dirigimos al apartado de Debugging.

En el valor de la propiedad Remote Server Name
debemos establecer el nombre de nuestra placa, recordad que podemos
verlo facilmente con la herramienta Galileo Watcher. Además, podemos
configurar facilmente donde desplegaremos la aplicación modificando el
valor de la propiedad Working Directory.

Propiedades del despliegue

Tras desplegar se nos pedirán credenciales y Visual Studio realizará
el despliegue. Podemos verficar el mismo accediendo a los recursos
compartidos de la placa.

Podéis descargar el sencillo ejemplo realizado a continuación:

También podéis acceder al código fuente directamente en GitHub:

Ver GitHub

Y hasta aquí llegamos en esta introducción con la Galileo. En futuras
entradas veremos aplicaciones más complejas, como correr aplicaciones
.NET en la misma y otras opciones. Recordar que cualquier tipo de duda o
sugerencia la podéis dejar en los comentarios de la entrada.

Más información

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *