Post on 21-Apr-2017
29 de Marzo de 2017Arduino Madrid
¿Plataforma casera para IoT? ¡Es posible y barato!
José Manuel García García (@semagarcia)GFT
29 de Marzo de 2017Arduino Madrid
Sema GarcíaArquitecto JavaScript
9 y 10 de febrero#T3chFest2017
¿Qué es eso deIoT?
29 de Marzo de 2017Arduino Madrid
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
29 de Marzo de 2017Arduino Madrid
¿Quéengloba…
… a eso de IoT?
29 de Marzo de 2017Arduino Madrid
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
Sensorhumedad
Monitorizaciónremota
Sensordepresencia
Smartdelivery
Gestión energética
9 y 10 de febrero#T3chFest2017
Seguridad
SmartApps
Sensorpresencia
Luces
Temperatura
Limpieza
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
Domótica /SmartHome
29 de Marzo de 2017Arduino Madrid
Domótica y SmartHomeRedes de control y Automatización (protocolos)
ü inBusü X10ü KNX/EIBü ZigBeeü OSGiü LonWorksü UPnPü Otros…
29 de Marzo de 2017Arduino Madrid
Domótica y SmartHomeProtocolo X10
ü Fácil manejo y sencillo de instalarü Compatibilidad (no importa fabricante ni antigüedad)
29 de Marzo de 2017Arduino Madrid
Domótica y SmartHomeProtocolo X10
(Instalación real)
29 de Marzo de 2017Arduino Madrid
Domótica y SmartHomeProtocolo X10
9 y 10 de febrero#T3chFest2017
“Walk upanduseanything”
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
1 pizca de domótica1 cucharada de IoT
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
Raspberry Pi 2
Arduino Intel Edison
Tessel 2
Intel Galileo
BeagleBone
29 de Marzo de 2017Arduino Madrid
- µ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
29 de Marzo de 2017Arduino Madrid
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)
29 de Marzo de 2017Arduino Madrid
- 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
29 de Marzo de 2017Arduino Madrid
Intel Edison
- Dual core Atom CPU 500MHz- 1 GB DDR3 RAM- 4 GB eMMC flash- MCU 100MHz- WiFi: Broadcom 43340 802.11 a/b/g/n
dual-band- Bluetooth 4.0 (BLE)- 40 pines GPIO- 2xUART, 2xI2C, 1xSPI, 1I2S- 1xUART, 1xUSB OTG
29 de Marzo de 2017Arduino Madrid
Sensores de entorno
29 de Marzo de 2017Arduino Madrid
Sensores médicos
29 de Marzo de 2017Arduino Madrid
+ Alto nivel: expansion boards
¿Y cómo operar y trabajar con ellos?
Bajo nivel: pines GPIO
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
Cylon.JSA JS framework for robotics, physical computing & IoT
29 de Marzo de 2017Arduino Madrid
Cylon.JS | Plataformas
29 de Marzo de 2017Arduino Madrid
Cylon.JS
> npm install cylon-firmatacylon-gpiocylon-i2c
> node example.js
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
Johnny-Five
> npm install –g node-gyp> npm install johnny-five
> node example.js
29 de Marzo de 2017Arduino Madrid
Y sólo es JavaScript…
29 de Marzo de 2017Arduino Madrid
… JavaScript también molapara IoT… ¡y lo sabes!
Así que…
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
La elección…
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
La elección…
29 de Marzo de 2017Arduino Madrid
¿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:
29 de Marzo de 2017Arduino Madrid
LibreríasBajo nivel - mraa
Esta librería se centra en trabajar a nivel de pins:
29 de Marzo de 2017Arduino Madrid
LibreríasAlto nivel – upm (useful packages & modules)
Esta librería trabaja con objetos más abstractos (sensores):
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
SensoresLuz
29 de Marzo de 2017Arduino Madrid
SensoresLed
29 de Marzo de 2017Arduino Madrid
SensoresTouch Sensor
29 de Marzo de 2017Arduino Madrid
SensoresTemperatura
29 de Marzo de 2017Arduino Madrid
SensoresPulsador
29 de Marzo de 2017Arduino Madrid
SensoresBuzzer
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
SensoresGas
29 de Marzo de 2017Arduino Madrid
SensoresÁngulo rotación
29 de Marzo de 2017Arduino Madrid
SensoresDisplay LCD
29 de Marzo de 2017Arduino Madrid
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…
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
¿Y qué es node?- Plataforma construida sobre el
motor V8 de Google Chrome.- Single-threaded.- Non blocking I/O, event based,
altamente escalable.- Desarrollo rápido, menos boilerplate- REPL- TypeScript- JavaScript isomórfico o universal- NPM, Maven, NuGet, CocoaPods…
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
V8(MOTORJS)
EventQueue WorkerThreads
EventLoop
Libuv(AsynchronousI/O)
Operación(Sistemaoperativo)
NodeJSBindings(NodeJS API)(JavaScript)
App
Blockingop.
Callback
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
Asincronía de JavaScriptAsincronía & Event-based
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
Esta debería ser laimagenrealdeloqueocurre
29 de Marzo de 2017Arduino Madrid
9 y 10 de febrero#T3chFest2017
29 de Marzo de 2017Arduino Madrid
Nuestro servidor en JS
29 de Marzo de 2017Arduino Madrid
Ahora ya sí… ¡Demo final!
29 de Marzo de 2017Arduino Madrid
https://github.com/semagarcia/t3chfest2017-iot-platform
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid
29 de Marzo de 2017Arduino Madrid