IoT es un concepto que está ganando gran atención en la industria. Con un una previsión de mercado creciente para los próximos años y con la promesa de formar parte de nuestras vidas cada vez más y más.
El objetivo de esta presentación es acercar IoT a los asistentes, presentar las tecnologías que les permitan construir en sus propias casas un proyecto IoT totalmente funcional y las ideas que les permitan dar los siguientes pasos y crear nuevos proyectos más complejos e interesantes.
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
IoT con Java y JavaFX
1. IoT con Java y JavaFX
Adrián Romero
https://pixabay.com/es/hong-kong-ciudad-urbana-rascacielos-1990268/
https://pixabay.com/es/bordo-circuitos-centro-de-control-911636/
2. “Internet of Things” (IoT) es un
término que describe como
objetos físicos se conectan a una
red, a Internet, y pueden ser
descubiertos, monitorizados,
controlados e interactuar con ellos.
https://pixabay.com/es/red-iot-internet-de-las-cosas-782707/
3. Para 2020 se estiman más de 20.000
millones de dispositivos conectados y
activos según Gartner
Casi 24.000 millones según Ericsson
Más de 30.000 millones según Statista
https://www.gartner.com/en/newsroom/press-releases/2017-02-07-gart
ner-says-8-billion-connected-things-will-be-in-use-in-2017-up-31-percent
-from-2016
https://www.ericsson.com/en/mobility-report/internet-of-things-forecast
https://www.statista.com/statistics/471264/iot-number-of-connected-de
vices-worldwide/
5. Zigbee y Z-Wave son protocolos
propietarios de red inalámbrico para
redes personales
Bajo consumo, corto alcance y bajo
ancho de banda
Topología de red en malla, seguros
Zigbee: Philips, Xiaomi, IKEA Trådfri,
OSRAM y muchos más
Z-Wave: Belkin WEMO, GE, D-Link, …
6. LoRa / LoRaWAN es un protocolo de
red inalámbrico. Propietario
Largo alcance, entre 2km y 10km
Bajo consumo, muy bajo ancho de
banda
Topología en estrella
DEVICE
DEVICE
DEVICE
GATEWAY
GATEWAY
SERVER
7. THE THINGS NETWORK tiene
como misión construir una red
LoRaWAN global y abierta
Cualquiera puede contribuir
añadiendo un gateway
Cualquiera puede usarla
registrando un dispositivo
Organizado en comunidades
https://www.thethingsnetwork.org/
9. CoAP es un protocolo abierto tipo
REST sobre UDP, Bluetooth…
GET, lee el estado de un
dispositivo. PUT, establece el
estado de un dispositivo
Distribuido
Librerías: Eclipse Californium
(Java), aiocoap (Python)
Cliente: Copper (Cu) para Firefox
IKEA Trådfri Gateway
PROXY
CoAP
SERVER
SERVER
CLIENT
CoAP
CoAP
CoAP
10. MQTT es un protocolo abierto de
publicación / suscripción
extremadamente ligero sobre TCP
Centralizado, un “broker” gestiona las
publicaciones y suscripciones
Se publican mensajes en base a
“topics”, un texto separado por niveles:
micasa/dormitorio/temperatura
Los mensajes tienen las opciones:
“QoS” y “Persistent”
Las conexiones puede configurar un
mensaje “Last will”
MQTT
BROKER
11. Brokers: Mosquitto, Mosca, HiveMQ,
VerneMQ, ...
Azure IoT Hub, Google Cloud IoT y
Amazon AWS IoT disponen de pasarela
MQTT as sus servicios
Clientes: MQTT.fx, MyMQTT, MQTTLens,
…
Librerías: Eclipse Paho (Java, Python, JS,
GoLang, C, C#, ...)
12. ESP8266 de EspressIf
Microcontrolador con Wifi
Fácil de programar. Amplia variedad de
IDEs y librerías.
Disponible en multitud de formatos e
incluido en muchos productos listos para
usar
Barato, muy barato
14. Node-RED https://nodered.org/ es una
herramienta libre de desarrollo de
bloques para IoT
Aplicación web desarrollada en NodeJS
Multitud de nodos disponibles: MQTT,
HTTP, eMail, Twitter, …
Node-RED Library: https://flows.nodered.org/
Colección de nodos y flujos creados por
la comunidad. Por ejemplo el panel de
control node-red-dashboard
15. HelloIoT https://github.com/adrianromero/helloiot es un
panel de control para MQTT e IKEA
Trådfri
Desarrollado en Java y JavaFX
Multiplataforma. Windows, macOS, Linux,
Android,y ARM (Raspberry Pi)
Open source. GPLv3
16. JavaFX es una plataforma de aplicaciones cliente
para Java
Soporte Windows, macOS, Linux, Android, iOS, ARM
(Raspberry Pi)
Incluye una extensa colección de componentes
gráficos
Definición declarativa de interfaces gráficos, FXML
Diseñador visual, Scene Builder
Hojas de estilo en cascada, CSS
Open source
Componentes de terceros: ControlsFX, TilesFX,
Medusa, CalendarFX, FXyz3D
17.
18. RASPBERRY Pi ZERO W (zero.local)
RESIDENTIAL
ROUTER
NGINX
MOSQUITTO MQTT
BRIDGE HTTP MQTT
LET’S ENCRYPT
DUCKDNS
RASPBERRY Pi 3 MODEL B (analytics.local)
TELEGRAF
INFLUXDB
TELEGRAF
GRAFANA
Infraestructura del proyecto
de demostración