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?
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.
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:
Tras descargar instalaremos Windows Developer Program for IoT que nos
añadirá las herramientas y plantillas necesarias para poder trabajar
con la Intel Galileo:
Entre el conjunto de opciones instaladas, al final de proceso veremos que contamos con la herramienta 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.
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:
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.
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
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.
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:
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$.
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.
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.
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
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.
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:
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.
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:
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
- Windows Developer Program for IoT: Setup your PC
- Windows Developer Program for IoT:Setup your Intel Galileo
- Intel: Galileo
- Blog Jose Ángel Fernández: Preparar Visual Studio para Windows for IoT
- Blog Bruno Capuano: [#GALILEO] HowTo: Crear un SD booteable para trabajar en #Intel Galileo desde #VisualStudio
- Blog Bruno Capuano: [#GALILEO] Hola mundo desde #VisualStudio 2013