jsdayes 2017 - ¿plataforma casera?
TRANSCRIPT
¿Plataforma casera para IoT? ¡Es posible y barato!José Manuel García García (@semagarcia)Madrid, 13 de Mayo de 2017
13 de Mayo de 2017, MadridSema - @semagarcia
Sema GarcíaArquitecto JavaScript
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.
9 y 10 de febrero#T3chFest2017
¿Qué es eso deIoT?
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
13 de Mayo de 2017, MadridSema - @semagarcia
¿Quéengloba…
… eso de IoT?
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
Distanciacaminada
Ritmo cardíaco
Recorridos
Sensorrespiración
9 y 10 de febrero#T3chFest2017
Seguridad
SmartApps
Sensorpresencia
Luces
Temperatura
Limpieza
13 de Mayo de 2017, MadridSema - @semagarcia
SmartCities
Sensorhumedad
Monitorizaciónremota
Sensordepresencia
Smartdelivery
Gestión energética
13 de Mayo de 2017, MadridSema - @semagarcia
Domótica /SmartHome
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…
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)
13 de Mayo de 2017, MadridSema - @semagarcia
Domótica y SmartHomeProtocolo X10
(Instalación real)
13 de Mayo de 2017, MadridSema - @semagarcia
Domótica y SmartHomeProtocolo X10
9 y 10 de febrero#T3chFest2017
“Walk upanduseanything”
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
¼ de Hardware1 pizca de domótica1 cucharada de IoT
9 y 10 de febrero#T3chFest2017
13 de Mayo de 2017, MadridSema - @semagarcia
Raspberry Pi 2
Arduino Intel Edison
Tessel 2
Intel Galileo
BeagleBone
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
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)
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
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
13 de Mayo de 2017, MadridSema - @semagarcia
Sensores de entorno
13 de Mayo de 2017, MadridSema - @semagarcia
Sensores médicos
13 de Mayo de 2017, MadridSema - @semagarcia
+ Alto nivel: expansion boards
¿Y cómo operar y trabajar con ellos?
Bajo nivel: pines GPIO
13 de Mayo de 2017, MadridSema - @semagarcia
9 y 10 de febrero#T3chFest2017
13 de Mayo de 2017, MadridSema - @semagarcia
Cylon.JSA JS framework for robotics, physical computing & IoT
13 de Mayo de 2017, MadridSema - @semagarcia
Cylon.JS | Plataformas
13 de Mayo de 2017, MadridSema - @semagarcia
Cylon.JS
> npm install cylon-firmatacylon-gpiocylon-i2c
> node example.js
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
9 y 10 de febrero#T3chFest2017
13 de Mayo de 2017, MadridSema - @semagarcia
Johnny-Five
> npm install johnny-five
> node example.js
13 de Mayo de 2017, MadridSema - @semagarcia
Y sólo es JavaScript…
13 de Mayo de 2017, MadridSema - @semagarcia
… JavaScript también molapara IoT… ¡y lo sabes!
Así que…
13 de Mayo de 2017, MadridSema - @semagarcia
La elección…
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
La elección…
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:
13 de Mayo de 2017, MadridSema - @semagarcia
LibreríasBajo nivel - mraa
Esta librería se centra en trabajar a nivel de pins:
13 de Mayo de 2017, MadridSema - @semagarcia
LibreríasAlto nivel – upm (useful packages & modules)
Esta librería trabaja con objetos más abstractos (sensores):
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresLuz
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresLed
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresTouch Sensor
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresTemperatura
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresPulsador
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresBuzzer
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresCalidad aire / Gas
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresÁngulo rotación
13 de Mayo de 2017, MadridSema - @semagarcia
SensoresDisplay LCD
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…
13 de Mayo de 2017, MadridSema - @semagarcia
9 y 10 de febrero#T3chFest2017
13 de Mayo de 2017, MadridSema - @semagarcia
9 y 10 de febrero#T3chFest2017
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
13 de Mayo de 2017, MadridSema - @semagarcia
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
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
9 y 10 de febrero#T3chFest2017
13 de Mayo de 2017, MadridSema - @semagarcia
Nuestro servidor en JS
13 de Mayo de 2017, MadridSema - @semagarcia
Y ahora… ¡Demo time!
13 de Mayo de 2017, MadridSema - @semagarcia
https://github.com/semagarcia/JSDayES2017-iot-platform
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia
13 de Mayo de 2017, MadridSema - @semagarcia