INTRODUCCIÓN AL INTERNET DE LAS COSAS
CONSTRUYENDO UN PROYECTO DE IOT
Alvaro Everlet
[email protected]
@aeverlet
Javier Pastor
[email protected]
@javipstor
Nov 2013
CONSTRUYENDO UN PROYECTO DE IOT
INTRODUCCIÓN AL IOT
1.
2. CONSTRUYENDO UN PROYECTO DE IOT
3. DISPOSITIVOS
4. PLATAFORMA
5. FRONTEND
6.
7. DEMOS
INTEGRACIÓN
CONSTRUYENDO UN PROYECTO DE IOT
INTRODUCCIÓN AL IOT
1.
2. CONSTRUYENDO UN PROYECTO DE IOT
3. DISPOSITIVOS
4. PLATAFORMA
5. FRONTEND
6.
7. DEMOS
INTEGRACIÓN
INTRODUCCIÓN AL IOT
DE DONDE VIENE
1999 Kevin Ashton inventa “Internet of Things”
INTERNET OF THINGS
El IoT es el mundo en el que cada objeto tiene una identidad virtual propia y
capacidad potencial para integrarse e interactuar de manera independiente en la
Red con cualquier otro individuo, ya sea una máquina (M2M) o un humano.
INTRODUCCIÓN AL IOT
NUESTRO MUNDO ESTÁ CAMBIANDO
Estamos sufriendo una transformación donde “things” hablan con otros “things” y
estas conversaciones están creando nuevos modelos de negocio, productos y
compañías.
Hace 20 años, Internet se usaba principalmente como herramienta para buscar
información. En los últimos 10 años hemos vivido una nueva forma de uso de
Internet, donde todo se ha convertido en social, transaccional y móvil.
¿QUÉ SERÁ LO SIGUIENTE?
Internet of Things.
El número de cosas conectadas a internet sobrepasó en 2008 el número de
habitantes del planeta. Se estima que habrá 50.000 millones de dispositivos
conectados en 2020.
CIFRAS
Según un estudio de CISCO, solo este año el volumen de negocio de las cosas
conectadas a internet ascenderá a 475.000 millones de euros.
El IoT representaría un negocio mundial de 10.900 billones de euros en 5 años por
la mayor productividad, ahorro de costes y nuevos mercados para las empresas.
INTRODUCCIÓN AL IOT
POR QUÉ AHORA
Ahora convergen múltiples factores:
a. Popularización de placas de HW libre
b. Abaratamiento de sensores
c. Mejora comunicaciones
d. Plataformas IoT
INTRODUCCIÓN AL IOT
EJEMPLOS
extraídos de postscapes.com
Termostatos inteligentes
Baby check
Tracking deportivo
Recordatorio pastillas
Tracking de objetos (perdidos)
Domótica
Pastillas inteligentes
Enchufes conectados
Vigilancia no intrusiva
INTRODUCCIÓN AL IOT
CASOS DE USO INDUSTRIALES
SMART CITY
SMART ENERGY
SMART OIL & GAS
SMART AGRICULTURE
SMART BUILDINGS
SMART RETAIL
SMART BANKING
SMART CONSUMER PRODUCTS
SMART LOGISTICS
INTRODUCCIÓN AL IOT
TENDENCIAS Y LOCURAS
Good night lamp (kickstarter)
L8 smartlight (kickstarter)
Smart egg container
@domokunM2M
INTRODUCCIÓN AL IOT
PASOS A SEGUIR
Una cosa (thing)
Dotarlo de electrónica
Conectarlo
INTRODUCCIÓN AL IOT
HOMENAJE A LOS DEVELOPERS
CONSTRUYENDO UN PROYECTO DE IOT
INTRODUCCIÓN AL IOT
1.
2. CONSTRUYENDO UN PROYECTO DE IOT
3. DISPOSITIVOS
4. PLATAFORMA
5. FRONTEND
6.
7. DEMOS
INTEGRACIÓN
CONSTRUYENDO UN PROYECTO DE IOT
PROJECT STACK
FRONTEND
CUSTOM IT
SYSTEMS
PRESENTATION
(MONITOR & REPORT)
Internet
PLATFORM
Internet
Connectivity
HARDWARE
(DB & MIDDLEWARE
APPLICATION
& RULE ENGINE)
SENSORS & ACTUATORS
(THINGS)
Users
CONSTRUYENDO UN PROYECTO DE IOT
INTEGRATION
Custom
FRONTEND
Custom interface
Dashboard &
control panel
Users
Custom
Servers
IT
HTTPS
PUSH/PULL
Webservices
HTTPS
REST
Webservices
REST API
SECURITY
BIG DATA
STORAGE
PROJECT &
DEVICE
MANAGEMENT
EVENT
PROCESSING
BUSINESS
RULES
LOGS & DEBUG
REST API
HTTP
3G / Ethernet
HTTP
3G / Ethernet
HTTP
3G / Ethernet
RS 485
Gateway
RS 485
Gateway
HTTP
3G / Ethernet
RS 485
Gateway
CONNECTED
DEVICES & PRODUCTS
Gateway
Zigbee /
Radio
Zigbee /
Radio
Zigbee /
Radio
Custom
Reporting &
data download
CONTROL
PANEL
HTTPS
Web interface
EXTERNAL
COMMUNICATION
MODULE
HTTP
API
HTTP
API
HTTP
API
Other APIs
EXTERNAL
APIS
CONSTRUYENDO UN PROYECTO DE IOT
COMPLEJO O POTENTE?
PROPONGO UNA VUELTA RÁPIDA POR LOS ELEMENTOS DE UN
PROYECTO DE INTERNET DE LAS COSAS SIGUIENDO UN EJEMPLO
SMART PARKING (CASO DE USO DE UNA SMART CITY)
CONSTRUYENDO UN PROYECTO DE IOT
DISPOSITIVOS
Tienen sensores acptando información en bruto. Ej: Detector magnético de parking
Tienen actuadores para controlar cosas. Ej: Panel LED de señalización en las calles
Tienen conectividad a Internet. Ej: Wifi, ethernet o un modem 3g integrado
PLATAFORMA
Almacena la información en bruto: BD que puede ser consultada para análisis de BI
Contiene y ejecuta toda la lógica de la aplicación: reglas, alarmas, etc.
Proporciona la gestión de dispositivos y su software. Ej: provisión de dispositivos,
habilitar o deshabilitar dispositivos, cambiar su firmware, etc.
FRONTEND
Para hacer una aplicación usable, el frontend proporciona la interfaz con el usuario
final. Ej: un panel de control personalizado, dashboard, informes, etc.
INTEGRACIÓN
Para proporcionar el verdadero potencial de la conectividad a Internet la plataforma se
integra con otros sistemas de información haciendo PUSH o PULL hacia o desde CRMs,
ERPs o cualquier API HTTP disponible. Ej: IOC de IBM, Dropbox, Zoho, Twitter, etc.
CONSTRUYENDO UN PROYECTO DE IOT
INTRODUCCIÓN AL IOT
1.
2. CONSTRUYENDO UN PROYECTO DE IOT
3. DISPOSITIVOS
4. PLATAFORMA
5. FRONTEND
6.
7. DEMOS
INTEGRACIÓN
DISPOSITIVOS
SENSORES & ACTUADORES
Los sensores toman información en bruto
que lee un dispositivo. Pueden medir
temperatura, presencia, viento, campos
magnéticos, flujos de líquidos, calidad del
aire, propiedades de los líquidos,
vibraciones, posiciones geográficas,
altitud, presión y un largo etc.
Los actuadores permiten la interacción
con el mundo físico. Pueden abrir puertas,
mostrar mensajes, layencender luces,
enviar señales, controlar un flujo de
líquidos, controlar el aire acondicionado,
encender y apagar motores, etc.
CONECTIVIDAD
En los proyectos de IoT los dispositivos se
conectan a Internet para interactuar.
Conectividad autónoma (Standalone)
Modems 3G / GPRS embebidos en el
dispositivo
Dispositivo + Pasarela
Comunicación dispositivo-pasarela serie
(ej. RS232 or RS485) o radio (ej. 868MHz)
Red de sensores + Pasarela
Comiunicación local por WIFI o ethernet
entre dispositivos y pasarela.
COMMUNICATION PROTOCOL
Los dispositivos interactúan con Carriots
con un protocolo estándar HTTP / HTTPS
en la capa de Internet y JSON o XML en la
capa de aplicación (REST API)
3G / Ethernet
3G / Ethernet
Gateway
HTTP
HTTP
Zigbee
RS 485
Gateway
DISPOSITIVOS
EJEMPLO DE ENVÍO DE TRAMA: información de plaza de parking
HTTP request
POST /streams HTTP/1.1!
Host: api.carriots.com!
Accept: application/json!
User-Agent: place_524@smartparking!
Content-Type: application/json!
carriots.apikey:98346673a637...5a0d83045425407ab4!
Content-Length: 182!
Connection: close!
!
Data (PAYLOAD)
{!
"protocol":"v2",!
"at":"now",!
"device":"place_524@smartparking",!
"data":{"parking":"on"},!
"checksum":"2c0766329b4d4b3beb08...97ae7b7de2160be"!
}
1: HTTP request
REST API URL (POST request)
JSON FORMAT
SECURITY (APIKEY)
Validación por checksum (HMAC)
Carriots automatic data timestamping
Dispositivo (Apikey debe tener permiso)
La información a mandar
DEVICE
REST API
2: REST API response
CONSTRUYENDO UN PROYECTO DE IOT
INTRODUCCIÓN AL IOT
1.
2. CONSTRUYENDO UN PROYECTO DE IOT
3. DISPOSITIVOS
4. PLATAFORMA
5. FRONTEND
6.
7. DEMOS
INTEGRACIÓN
PLATAFORMA
API REST
Siguiendo un estándarampliamente adoptado
en Internet, Carriots implementa una API REST
sobre HTTPS para:
• Recibir cantidades masivas de datos de los
•
dispositivos.
Interactuar con todas las entidades de
Carriots para construir paneles de control
personalizados, dasboards y e informes
Ej: Sensores de parking envían su estado (libre u
ocupado) a Carriots con una simple petición
HTTP. Un panel de control personalizado usa la
API REST para gestionar dispositivos.
ALMACENAMIENTO BIG DATA
Grandes cantidades de datos se almacenan en
una arquitectura de big data con estructura
schemaless. Proporciona a los proyectos de IoT
la flexibilidad de gestionar datos hetereogéneos
de diferentes dispositivos.
Ej: Temperatura, posición geografica, estado de
una plaza de parking, etc.
GESTIÓN DE DISPOSITIVOS Y PROYECTOS
Para cubrir cualquier requisito de un proyecto
Carriots propone una jerarquía lista para usar y
de uso flexible para la complejidad de cada caso
Actualización de firmware y configuración
remota de dispositivos también disponibles.
Ej: Ajustar la periodicidad del muestreo de los
sensores o especificar un mensaje por defecto
en un panel de señalización.
REST API
SECURITY
BIG DATA
STORAGE
PROJECT &
DEVICE
MANAGEMENT
EVENT
PROCESSING
BUSINESS
RULES
LOGS & DEBUG
REST API
CONTROL
PANEL
EXTERNAL
COMMUNICATION
MODULE
PLATAFORMA
LÓGICA DE NEGOCIO Y EVENTOS
La lógica del proyecto de IoT se aloja y se
ejecuta en la plataforma. Scripts de Groovy se
ejecutan (aislados y securizados) en el motor
SDK y se lanzan en base a eventos tratados
con una aproximación tipo if-then-else. Desde
scripts sencillos a complejas reglas.
Ej: If parking_sensor=“ocupado” then
parking_area.plazas -1.
If parking_area.plazas=0 then
display.mensaje=“Parking lleno”
SEGURIDAD
En todos los proyectos IoT la seguridad debe
formar parte de su diseño. La aproximación
de Carriots a este tema:
• Apikeys definen privilegios y visibilidad.
• HTTPS para cifrar conversaciones con la
• HMAC hash y contraseñas pre-
API REST.
• Cifrado personalizado o medidas
compartidas para firmar el mensaje.
adicionales de seguridad en el código de
los eventos.
LOGS & DEBUG
Mensajes de Log (accesibles desde
Comentarios de: Construyendo un proyecto de IOT - Introducción al Internet de las cosas (1)