Post on 14-Jun-2015
description
Taller Internet de las cosas y
Cosm"Vivir en un mar de datos: del Big Data
a la Smart Society"6 y 7 de Noviembre 2012
"Vivir en un mar de datos: del Big Data a la Smart Society "6 y 7 de Noviembre 2012 Fundación Telefónica.
Taller práctico IoT y CosmManos a la obra
InstalaciónArduinoInstalación programas básicos
Descargando Arduino IDE● IDE = Entorno Integrado de Desarrollo● Puede descargarse libremente● Sitio Web: www.arduino.cc● Dirección de descarga: http://arduino.
cc/en/Main/Software● Existe versión para Windows, Linux y Mac● Descargar la correspondiente.
Pasos adicionales● Para instalar el controlador en Windows si
no funciona correctamente la primera vez:http://arduino.cc/en/Guide/UnoDriversWindowsXP
● Controlador para el cable FTDI (USB-Serie):http://www.ftdichip.com/Drivers/VCP.htm
Nanode RFDiferencias con Arduino
Arduino vs Nanodes
Arduino UNO● Versión Arduino
Básica● Se programa
usando el puerto USB
● Tiene posibilidad de usar shields (por ejemplo GPRS)
● No tiene conexión de red nativa
Nanode Versión 5● Conexión Ethernet● Chip ENC28J60
muy barato● El USB sólo se usa
para corriente● Se requiere un
cable extra FTDI● Usa la librería
Ethercard
Nanode RF● Es el que vamos a
utilizar● Dispone de
conexión Ethernet y por radio
● Montaje en superficie más optimizado
● Puede incorporar más elementos
ConfiguraciónArduinoConfiguración parámetros básicos
Parámetros Arduino IDE● Hay que elegir el tipo de placa adecuado:
Tools -> Board -> Arduino UNONanode RF es compatible con Arduino UNO
● Miramos en Tools -> Serial Port y vemos los puertos que hay. Pinchamos el cable y elegimos en Tools -> Serial Port uno de los que aparecen nuevos que tenga tty en el nombre
Primer ejemplo: Blink● Es el programa más básico● Se carga desde File -> Example-> 1. Basics● En la linea led = 13; cambiamos 13 por 5 o 6● Conectamos el cable y pulsamos la flecha
(Upload) para subir el programa● ¿Que ocurre en el Nanode RF?
Estructura del programa● Comentarios con //
o entre /* */● setup(): sentencias
que sólo se tienen que ejecutar una vez el principio
● loop(): bucle principal que se ejecuta todo el tiempo
/*Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); }void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second}
Pequeños cambiosArduino se puede programar una y otra vez¿Porque no probar a ...● Cambiar el número 13 por otro● Copiar las lineas● Cambiar 1000 por otros valores?
¿Qué ocurre? Vamos a investigarlo!
Conexión en Red
Conceptos de redesPara conectar hacen falta cuatro datos al menos:● Dirección IP: Identificador único● Máscara de red: sería el "prefijo" de la zona● Puerta de enlace: sería la salida de la red● DNS: páginas amarillas en Internet
No necesitaremos configurarlos, el protocolo DHCP se encargará de ello
Red en Nanode/Arduino● Para que Arduino entienda cómo trabajar
con la tarjeta de red, necesitamos instalar una librería
● La descargamos desde : https://github.com/jcw/ethercard
● La descomprimimos en la carpeta libraries dentro de la carpeta de Arduino
● Cambiamos el nombre para que se llame ethercard (sin más)
Ejemplo 2: Cliente DHCP● Lo cargamos desde File-> Examples ->
ethercard-> TestDHCP● Debemos cambiar un número de la línea
que pone mymac = [0x74...]● Se cambian los números a la derecha de la
0x, por números del 0-9 (o HEX si sabemos)● La MAC es una dirección única por equipo● Si tuviéramos dos iguales NO funciona!
Pruebas monitor serie● Quitamos el cable ethernet, cargamos el
programa en Arduino y observamos el monitor serie ¿Qué mensaje aparece? ¿Qué puede estar pasando?
● Conectamos el cable ethernet, reseteamos el Nanode y observamos la dirección IP. ¿Por qué funciona en esta ocasión?
CosmCreación de usuarios y funcionalidades básicas
CosmCreación de usuario
Cosm.com
1/20"Vivir en un mar de datos: del Big Data a la Smart Society "
6 y 7 de Noviembre 2012 Fundación Telefónica.
Alta nuevo usuario
Usuario y envio mail
Correo de Confirmación
Página de inicio
1/20"Vivir en un mar de datos: del Big Data a la Smart Society "
6 y 7 de Noviembre 2012 Fundación Telefónica.
CosmFeed, Datastream & Datapoint
Feed, Datastream & Datapoint● Feed "Environment (aka "feed")" / Feed
IDContexto específico en el que medimos algo y generamos datos. Ej.: una casa, un coche, un AQE, etc.
● Datastream/ ID alfanumérico dentro del feedRepresenta a un dispositivo (o sensor) de captación de datos que se encuentra dentro del ambiente anteriormente definido en un feed.
● DatapointDato en un momento específico del tiempo, que puede consultarse de forma individual.
Feed "Environment ("aka feed")
https://cosm.com/feeds/72220 es la dirección del Feed con ID= 72220
Datastream & Datapoint
CosmMi consola
Console, Keys & Debug ● Console La consola te permite monitorizar tus propios datos en
tiempo real así como los datos de otras personas.
● Keys Claves para autorizar a los dispositivos a crear nuevos datos. Con esta clave le estamos autorizando a escribir datos en nuestra cuenta de forma automática y así garantizar su origen.
● Debug te permite ver en tiempo real el número de llamadas al API que estás haciendo y las peticiones individuales HTTP con todo detalle.
Api Keys
Apps, Settings & Logout
●Apps La ventana de Apps presenta programas que permiten
interactuar con Cosm de diversas formas utilizando su API.
●Settings Desde la ventana Settings podremos cambiar al configuración de nuestro perfil.
●Logout Esta opción sirve para cerrar la sesión.
CosmCreación dispositivo y feed
Crear primer dispositivo
Dispositivo Arduino
Parámetros Arduino
Etiquetas Arduino
Dispositivo creado!
API Key y Feed - Copiar
Feed Creado!
Ejemplo 3: PachubeTest
Parámetros Arduino Cosm
Comprobación Envío Cosm
Datos enviados!
Ejemplo 4: Envio Cosm (II) ● Vamos a continuación cargar el ejemplo.
● Al pulsar el botón "+" y pulsar la tecla Enter se incrementará el valor en Cosm en 30.
● Echemos un ojo al código.
Ejemplo 4: Envio Cosm (II)
void setup ()
void loop ()
Cargamos el código y abrimos el Serial Monitor
Nuestro datastream en Cosm
Debug en Cosm
Volvemos al Serial Monitor
Nuestro datastream en Cosm
Ejemplo 4: Envio Cosm (II)
● Podemos cambiar este valor por otro y comprobar lo que ocurre.
● Podemos también reiniciar la placa, dándole al botón de reset y observar qué ocurre.
Reset
Vemos Reset en Cosm
Disparadores en CosmTriggers: permiten lanzar acciones cuando se cumplen unas determinadas condiciones
Triggers
Trigger con twitterEnvía un tweet desde tu cuenta cuando se lanza un disparador, al superar alguno de los valores configurados. Son avisos que se enviarán desde tu cuenta de Cosm con el mensaje que configuremos. Si vamos al caso de AQE, cuando se superen las alertas de NO2 ambientales, recibiremos un tweet indicándonos este hecho.
Trigger con HTTP postPermiten interactuar con páginas enviando formularios de datos complejos. Por lo general será lo que utilicemos para varias de las aplicaciones de Cosm que interactúan con terceros.
Ejemplo 5: Reset + Trigger● Sabemos que cuando la placa se reinicia
vuelve a cero● Configuraremos un trigger en Cosm para
que envíe un tuit cada vez que se reinicie.● Cargaremos el programa ejemplo 5 y
conectaremos el Nanode a la corriente, sin ordenador
● ¿Funciona igual?
Ejemplo 5: Reset + Trigger
Crea un disparador
Dale el valor que lanza la alerta
Este es el tuit que mandará
¡Hecho!
En Cosm nos aparece
Reset y ¡ tuit!
AppsProgramas que permiten interactuar con Cosm utilizando su API
AplicacionesTwitter statsURL: http://apps.pachube.com/twitterstats/Hace un Twitter feed donde cada datastream son followers, following (friends), list, send tweets y te permite ver la evolución en el tiempo... Utilizando Graph Builder puedes obtener visualizaciones de los datos por tiempos y periodos, personalizar colores y grosor de trazo en la gráfica y embeberlos en una página web. Para embeberlos copias pegas el link que te dan al insertar imagen desde url y así te aparecerá un gráfico png. Tutorial completo: https://cosm.com/docs/quickstart/twitter.html
AplicacionesPachtweetURL: http://apps.pachube.com/pachtweet/Primero debes seguir en twitter a @pachtweet y mandarle un mensaje abierto; luego debes enviarle por mensaje directo una key y una vez te confirma que tiene el key puedes modificar los datos de tu datastream con mensajes de twitter, poniendo set feedID numero, numero, numero cada número entre comas es un datastream del feed por orden.
PachudialURL: http://apps.pachube.com/scaredycat/Genera de manera muy sencilla una visualización de datos de uno de tus datastream en código html está pensada para ponerse en página web. Un ejemplo de uno de mis data stream:
AplicacionesEarth BrowserURL: http://apps.pachube.com/earth_browser/Permite encontrar valores de datos en tiempo real desde Pachube localizados a lo largo del planeta. Puedes superponer nuevas búsquedas personalizando los colores para obtener visualizaciones más complejos.
SMS AlertURL: http://apps.pachube.com/alert/Se configura como opción del trigger HTTP post y se mete un url que te da la página al meter tu número de teléfono. Cuando el dato alcanza el valor determinado, llega un sms al móvil indicado al principio.
Aplicaciones
Pachube TrailsURL: http://apps.pachube.com/trails/Cuando se define un feed, se le ponen los parámetros que lo identifican. Si es algo móvil, se pone en el feed que es de tipo "mobile" y entonces se le crean dos datastreams más que son longitud y latitud. No aparecen como gráficos, pero si que aparecen cuando se le llama desde el API.Te permite embeber en tu sitio web un mapa en tiempo real de cualquier feed movil de Pachube que contenga información de geolocalización. Esta construido sobre el API de CloudMade? Web Map Lite. Hay varios ejemplos en el link del app.
MashupsPruebas y ejemplos
Muchas Gracias!