jsdayes 2017 - ¿plataforma casera?

69
¿Plataforma casera para IoT? ¡Es posible y barato! José Manuel García García (@semagarcia) Madrid, 13 de Mayo de 2017

Upload: jose-manuel-garcia-garcia

Post on 22-Jan-2018

171 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: JSDayES 2017 - ¿Plataforma casera?

¿Plataforma casera para IoT? ¡Es posible y barato!José Manuel García García (@semagarcia)Madrid, 13 de Mayo de 2017

Page 2: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Sema GarcíaArquitecto JavaScript

Page 3: JSDayES 2017 - ¿Plataforma casera?
Page 4: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

<Hacker />Dícese de aquella/aquel que siente talpasión por la tecnología que es capaz de llevarla al límite con el fin de mejorarla.

Page 5: JSDayES 2017 - ¿Plataforma casera?

9 y 10 de febrero#T3chFest2017

¿Qué es eso deIoT?

Page 6: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Internet of Things es la interconexión digital de objetos cotidianos con Internet, permite el intercambio automático de información con otros

dispositivos o centros de control sin intervención humana.

El término IoT representa por tanto una colección de ideas, dispositivos y procesos

Cada thing es representada por un dispositivo o sensor

Page 7: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

¿Quéengloba…

… eso de IoT?

Page 8: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Tipos de “things”ü Una planta ü Un cocheü Una camisetaü Un frigoríficoü Un cepillo de dientesü Un jugueteü Unas zapatillasü Un despertador y una máquina de caféü Contenedor de basuraü Una plaza de parking

Page 9: JSDayES 2017 - ¿Plataforma casera?

Distanciacaminada

Ritmo cardíaco

Recorridos

Sensorrespiración

Page 10: JSDayES 2017 - ¿Plataforma casera?

9 y 10 de febrero#T3chFest2017

Seguridad

SmartApps

Sensorpresencia

Luces

Temperatura

Limpieza

Page 11: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SmartCities

Page 12: JSDayES 2017 - ¿Plataforma casera?

Sensorhumedad

Monitorizaciónremota

Sensordepresencia

Smartdelivery

Gestión energética

Page 13: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Domótica /SmartHome

Page 14: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Domótica y SmartHomeRedes de control y Automatización (protocolos)

ü inBusü X10ü KNX/EIBü ZigBee

üOSGiü LonWorksü UPnPü Otros…

Page 15: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Domótica y SmartHomeProtocolo X10

ü Fácil manejo y sencillo de instalarü Compatibilidad (no importa fabricante ni antigüedad)

Page 16: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Domótica y SmartHomeProtocolo X10

(Instalación real)

Page 17: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Domótica y SmartHomeProtocolo X10

Page 18: JSDayES 2017 - ¿Plataforma casera?

9 y 10 de febrero#T3chFest2017

“Walk upanduseanything”

Page 19: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 20: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 21: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

¼ de Hardware1 pizca de domótica1 cucharada de IoT

Page 22: JSDayES 2017 - ¿Plataforma casera?

9 y 10 de febrero#T3chFest2017

Page 23: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Raspberry Pi 2

Arduino Intel Edison

Tessel 2

Intel Galileo

BeagleBone

Page 24: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

- µcontrolador: ATmega2560- Velocidad de reloj: 16MHz- Pines digitales I/O: 54 (15 proveen salida PWM)- Pines analógicos de entrada: 16- Corriente máxima por pin: 16mA- Memoria flash: 256Kb- SRAM: 8kb- EEPROM: 8 Kb- Pines para comunicación SPI- Pines para I2C

Arduino

Page 25: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Raspberry Pi

- SoC: Broadcom BCM2837- CPU: 4xARM Cortes-a53, 1.2GHz- GPU: Broadcom VideoCore IV- RAM: 1GB LPDDR3 (900MHz)- Bluetooth: BT 4.1 Classic, BLE- Storage: microSD- Networking: 10/100 Ethernet, 2.4GHz 802.11n- GPIO: 40-pin header- Ports: 1 HDMI, 3.5mm conector audio/video,

4 USB, Ethernet, Camera Serial Interface (CSI),Display Serial Interface (DSI)

Page 26: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

- SOC: Sitara AM5728 2x1.5Ghz ARM Cortex-A15- RAM: 2GB DDR3- 4GB 8-bit eMMC on-board flash storage- 2D/3D GPU- 2xARM Cortex-M4 µcontrollers (MCUs)- 2xGigabit Ethernet- 3xUSB 3.0- eSATA, HDMI Video, microSD card, I/O Audio,

157 pines GPIO, 7xUARTs, SPI/I2C/CAN- 2x700-MHz C66 digital signal processors (DSPs)

BeagleBoard-X15

Page 27: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Intel Edison

- Dual core Atom CPU 500MHz- 1 GB DDR3 RAM- 4 GB eMMC flash- MCU 100MHz- WiFi: 802.11 a/b/g/n dual-band- Bluetooth 4.0 (BLE)- 40 pines GPIO- 2xUART, 2xI2C, 1xSPI, 1I2S- 1xUART, 1xUSB OTG

Page 28: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Sensores de entorno

Page 29: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Sensores médicos

Page 30: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

+ Alto nivel: expansion boards

¿Y cómo operar y trabajar con ellos?

Bajo nivel: pines GPIO

Page 31: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

9 y 10 de febrero#T3chFest2017

Page 32: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Cylon.JSA JS framework for robotics, physical computing & IoT

Page 33: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Cylon.JS | Plataformas

Page 34: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Cylon.JS

> npm install cylon-firmatacylon-gpiocylon-i2c

> node example.js

Page 35: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 36: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

9 y 10 de febrero#T3chFest2017

Page 37: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Johnny-Five

> npm install johnny-five

> node example.js

Page 38: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Y sólo es JavaScript…

Page 39: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

… JavaScript también molapara IoT… ¡y lo sabes!

Así que…

Page 40: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

La elección…

Page 41: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 42: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

La elección…

Page 43: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

¿Cómo interactúo con mis sensores?Librerías

- Los sensores son I/O, o bien escribo o bien leo de ellos.- Los sensores son digitales (on/off) o analógicos (0/1024).- I2C, bus serie de datos (bus maestro-esclavo).

A saber:

Page 44: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

LibreríasBajo nivel - mraa

Esta librería se centra en trabajar a nivel de pins:

Page 45: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

LibreríasAlto nivel – upm (useful packages & modules)

Esta librería trabaja con objetos más abstractos (sensores):

Page 46: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresLuz

Page 47: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 48: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresLed

Page 49: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresTouch Sensor

Page 50: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresTemperatura

Page 51: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresPulsador

Page 52: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresBuzzer

Page 53: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresCalidad aire / Gas

Page 54: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresÁngulo rotación

Page 55: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

SensoresDisplay LCD

Page 56: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Componente PrecioIntel edison + board 78€

Base Shield 8.90€S. Temperatura 2.90€

S. Gas 6.90€S. Luz 1.90€Buzzer 2.90€Total 101.50€

SensoresLa pastuqui…

Page 57: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

9 y 10 de febrero#T3chFest2017

Page 58: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

9 y 10 de febrero#T3chFest2017

Page 59: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

¿Y qué es node?- Plataforma construida sobre el

motor V8 de Google Chrome

- Single-threaded

- Non blocking I/O

- Event based

- Desarrollo rápido, menos boilerplate

- REPL

Page 60: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 61: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

V8(MOTORJS)

EventQueue WorkerThreads

EventLoop

Libuv(AsynchronousI/O)

Operación(Sistemaoperativo)

NodeJSBindings(NodeJS API)(JavaScript)

App

Blockingop.

Callback

Page 62: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 63: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

9 y 10 de febrero#T3chFest2017

Page 64: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Nuestro servidor en JS

Page 65: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Y ahora… ¡Demo time!

Page 66: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

https://github.com/semagarcia/JSDayES2017-iot-platform

Page 67: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 68: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia

Page 69: JSDayES 2017 - ¿Plataforma casera?

13 de Mayo de 2017, MadridSema - @semagarcia