Equa ion Chap e 1 Sec ion 1
T abajo Fin de G ado
en Ingenie ía de las Tecnologías de Telecomunicación
Con ol domó ico de un sis ema de iego, median e
OpenHAB y Fiwa e, pa a el aho o del consumo de
agua y ene gía
Au o : José An onio Pozo P io
Tu o : Ma ía Te esa A iza Gómez
Dp o. de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2025
iii
T abajo Fin de G ado
en Ingenie ía de las Tecnologías de Telecomunicación
Con ol domó ico de un sis ema de iego, median e
OpenHAB y Fiwa e, pa a el aho o del consumo de
agua y ene gía
Au o :
José An onio Pozo P io
Tu o :
Ma ía Te esa A iza Gómez
P o eso i ula
Dp o. de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2025
T abajo Fin de G ado: Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o
del consumo de agua y ene gía
Au o :
José An onio Pozo P io
Tu o :
Ma ía Te esa A iza Gómez
El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es miemb os:
P esiden e:
Vocales:
Sec e a io:
Acue dan o o ga le la cali icación de:
Se illa, 2025
El Sec e a io del T ibunal
ii
A mi amilia
A mis maes os
ix
Ag adecimien os
En p ime luga , me gus a ía ag adece a mis pad es y a mi he mana po odo el apoyo que he ecibido de su
pa e du an e mi ca e a uni e si a ia, que an o en los buenos como en los malos momen os me han escuchado
y dado su consejo.
También me gus a ía ag adece a mi u o a del p oyec o, Ma ía Te esa, po la ayuda p es ada y po la ce canía
que me ha demos ado a lo la go de su desa ollo.
Po úl imo, deseo eco da a odos los miemb os de mi amilia que nos han dejado y ag adece les po los
momen os que he i ido jun o a ellos.
José An onio Pozo P io
Se illa, 2025
5.1.4 Consul a egis os de los senso es 51
5.1.5 Consul a egis o del mo o 52
5.1.6 Consul a pe il 53
5.1.7 Es ablece limi es 54
5.1.8 Consul a p ecio de la luz 55
5.1.9 Consul a p onós ico del iempo 56
5.1.10 Con ola ac uado es 57
5.1.11 Fiche os de con igu ación 58
5.2 Aplicación Openhab 58
5.3 Resumen 62
6 Conclusiones y líneas u u as 63
Anexo A: Ins alación de Fiwa e O ion usando Docke 64
Anexo B: Con igu ación del ESP32 66
Anexo C: Con igu ación de la base de da os 69
Anexo D: Cons ucción del sis ema 72
Re e encias 75
x ii
ÍNDICE DE TABLAS
Tabla 2-1. Ca ac e ís icas del Leno o Legion 5 P o 7
Tabla 2-2. Ca ac e ís icas del ESP32 8
Tabla 2-3. Ca ac e ís icas del módulo DTH11 10
Tabla 2-4. Ca ac e ís icas del módulo MH del senso de luz 10
Tabla 2-5. Ca ac e ís icas del módulo de la humedad del suelo 11
Tabla 2-6. Ca ac e ís icas del módulo de ni el de agua 12
Tabla 2-7. Ca ac e ís icas del módulo del elé 12
Tabla 2-8. Ca ac e ís icas del mo o de agua 13
Tabla 4-1. Pe iciones espondidas po Es adoMo o Con olle 40
Tabla 4-2. Pe iciones espondidas po Limi esCon olle 40
Tabla 4-3. Pe iciones espondidas po Lec u asSenso esCon olle 41
Tabla 4-4. Pe iciones espondidas po Usua iosCon olle 41
Tabla 5-1. Í ems de los senso es 59
Tabla 5-2. Í ems de los lími es 59
Tabla 5-3. Í ems de los ac uado es 60
ÍNDICE DE FIGURAS
Figu a 1-1. Esquema de la a qui ec u a del Sis ema 3
Figu a 2-1. Leno o Legion P o 5 8
Figu a 2-2. Placa ESP32 8
Figu a 2-3. Pun o de Acceso Numcom 9
Figu a 2-4. Redmi No e 13 9
Figu a 2-5. Placa P o oboa d 9
Figu a 2-6. Módulo DTH11 10
Figu a 2-7. Módulo MH del senso de luz 11
Figu a 2-8. Módulo de la humedad del suelo 11
Figu a 2-9. Módulo de ni el de agua 12
Figu a 2-10. Módulo del elé 12
Figu a 2-11. Po a pilas 4xAA 13
Figu a 2-12. Pilas AA 13
Figu a 2-13. Mo o de agua 13
Figu a 2-14. Resis encias, leds y cables 14
Figu a 2-15. Mul íme o 14
Figu a 2-16. Soldado Eléc ico 14
Figu a 2-17. OpenHAB 15
Figu a 2-18. Fiwa e O ion 15
Figu a 2-19. MongoDB 15
Figu a 2-20. Docke 16
Figu a 2-21. Máquina Vi ual y Ubun u 16
Figu a 2-22. Sp ing 16
Figu a 2-23. And oid S udio 17
Figu a 2-24. Pos g eSQL 17
Figu a 2-25. A duino 17
Figu a 2-26. Windows 11 P o 17
Figu a 2-27. C++ 18
Figu a 2-28. JSON 18
Figu a 2-29. REST 18
Figu a 2-30. SQL 19
Figu a 2-31. HTTP 19
Figu a 2-32. Ja a 19
Figu a 3-1. Pines ESP32 22
xix
Figu a 3-2. Con igu ación del Wi i 22
Figu a 3-3. En ia los da os de los senso es 23
Figu a 3-4. Función pa a ob ene los lími es 25
Figu a 3-5. Función de no i icación del es ado del ai e acondicionado 26
Figu a 3-6. Bloque de depu ación 27
Figu a 3-7. En idades Fiwa e 29
Figu a 3-8. A ibu o de una en idad Fiwa e 29
Figu a 3-9. Ejemplo de susc ipción Fiwa e 30
Figu a 4-1.Clase ipo modelo (Es adoMo o ) 35
Figu a 4-2. Clase ipo eposi o io (E en osMo o Reposi o y) 37
Figu a 4-3. Clases de in e az e implemen acion (Es adoMo o Se ice y Es adoMo o Se iceImpl) 39
Figu a 4-4. Documen ación de Swagge 42
Figu a 4-5. Tabla usua ios 43
Figu a 4-6. Tabla limi es 44
Figu a 4-7. Tabla limi es_ho as_ iego 44
Figu a 4-8. Tabla lec u as_senso es 44
Figu a 4-9. Tabla es ado_mo o 45
Figu a 4-10. Tabla e en os_mo o 45
Figu a 4-11. Diag ama ER 45
Figu a 5-1. Diag ama de casos de uso 47
Figu a 5-2. Inicio de sesión 48
Figu a 5-3. Ba a de aplicación 49
Figu a 5-4. Regis o 50
Figu a 5-5. Consul a alo es ac uales 51
Figu a 5-6. Consul a egis o de los senso es 52
Figu a 5-7. Consul a egis o del mo o 53
Figu a 5-8. Consul a pe il 54
Figu a 5-9. Consul a lími es 55
Figu a 5-10. Consul a p ecio de la luz 56
Figu a 5-11. Consul a p onós ico del iempo 57
Figu a 5-12. Con ola ac uado es 58
Figu a 5-13. Lib e ías del iche o build.g adle 58
Figu a 5-14. Í ems de OpenHAB 61
Figu a 5-15. Reglas de OpenHAB 62
Figu a 0-1. Desca ga Docke 64
Figu a 0-2. Con enedo apagado 65
Figu a 0-3. Con enedo encendido 65
Figu a 0-1. Desca ga de la e sión de A duino 66
Figu a 0-2. Con igu ación de la U l de A duino 66
Figu a 0-3. Ges o de placas 67
Figu a 0-4. Mon aje del sis ema 67
Figu a 0-5. Esquema del sis ema 68
Figu a 0-1. Nue o p oyec o And oid S udio. 72
Figu a 0-2. Inicio del Se ido Res 73
Figu a 0-3. Ins ala OpenHAB desde la página o icial 73
Figu a 0-4 Inicia OpenHab 74
xxi
No ación
AgIoT
Ag icul u al In e ne o Things
OpenHAB
Open Home Au oma ion Bus
JSON
Ja aSc ip Objec No a ion
IoT
In e ne o Things
SQL
S uc u ed Que y Languaje
REST
Rep esen a ional S a e T ans e
BBDD
Base de Da os
PC
Pe sonal compu e
USB
Uni e sal Se ial Bus
UART
Uni e sal Asynch onous Recei e /T ansmi e
POJO
Plain Old Ja a Objec s
JPA
Ja a Pe sis ence API
API
Applica ion P og amming In e aces
FK
Fo eing Key
JDBC
Ja a Da abase Connec i i y
UTF-8
8-bi Unicode T ans o ma ion Fo ma
UTC
Coo dina ed Uni e sal Time
DAL
Da a Access Laye
REE
Red Eléc ica Española
xxiii
1
1 INTRODUCCIÓN
1.1 Mo i ación
Cuando mencionamos In e ne de las Cosas (IoT) nos es amos e i iendo a una ed de elemen os ísicos que
es án in eg ados con senso es, so wa e y conec i idad de ed, de o ma que pueden ecopila y compa i da os
[1]. Los elemen os pueden i desde bombillas a obo s lo que pe mi e una g an di e sidad de casos pa a los que
se puede usa el IoT [2]. Es a di e sidad ha p o ocado que el IoT se di ida en dis in as amas, en las que
des acan:
• IoT Indus ial (IIoT): Aplicado a maquina ia y p ocesos au oma izados.
• IoT de Consumo: Aplicado en la domó ica y disposi i os in eligen es pa a el hoga .
• IoT en Ag icul u a (AgIoT): En ocado en moni o eo ambien al, iego in eligen e y ges ión au oma izada
de cul i os. Una ama muy impo an e que pa a 2026, se espe a que el me cado global de IoT ag ícola
supe e los $ 18.1 mil millones [3]
Es e p oyec o se cen a en el AgIoT, especí icamen e en la au oma ización de in e nade os en ocado en el
aho o ene gé ico, donde senso es y ac uado es abajan en conjun o pa a man ene las condiciones óp imas de
c ecimien o sin in e ención humana cons an e y educi el consumo de ene gía el máximo posible. Además,
pa a mejo a el bene icio de las emp esas dedicadas a la ag icul u a es e p oyec o ambién pe mi e ob ene el
p ecio de la ene gía de mane a sencilla pa a que se pueda decidi cuándo en a án en uso los ac uado es.
1.2 Obje i os Gene ales
Es e abajo iene como obje i os:
- Analiza el uncionamien o de OpenHAB.
- Usa el con ex b oke Fiwa e O ion pa a conec a las ecnologías usadas en el p oyec o.
- Mos a el clima ac ual.
- Mos a el p ecio de la luz ac ual.
- Ins ala senso es y ac uado es con A duino y comunica al b oke Fiwa e.
- C ea un se ido REST.
- C ea un clien e mó il.
- Conec a la base de da os con el se ido REST.
An es de se un d agón, hay que su i como una
ho miga.
- P o e bio chino-
Recu sos u ilizados
8
Figu a 2-1. Leno o Legion P o 5
2.1.2 Placa ESP32
Es la placa que maneja los senso es y ac uado es, además, es compa ible con A duino IDE. Algunas de sus
ca ac e ís icas écnicas son:
Ca ego ía
De alles
Mic ocon olado
X ensa® dual-co e 32-bi LX6 (240 MHz)
Memo ia Flash
4 MB
RAM
512 KB
Conec i idad
Wi-Fi 802.11 b/g/n (2.4 GHz) + Blue oo h 4.2 (BLE y Classic)
In e aces I/O
34 GPIO (12 bi s ADC, 2 DAC, UART, SPI, I2C, PWM, e c.)
P o ocolos Compa ibles
MQTT, HTTP, TCP/IP, LoRa (con módulos ex e nos)
Consumo
Modo sleep: ~5 µA / Ac i o: ~160 mA (Wi-Fi/BT en uso)
Tensión de Alimen ación
3.3V ( ango ecomendado: 2.2V - 3.6V)
Rango de Tempe a u a
-40°C a +125°C (indus ial)
Dimensiones
25 mm x 18 mm (ESP32-WROOM-32)
Cable de Alimen ación
Tipo C
Tabla 2-2. Ca ac e ís icas del ESP32
Figu a 2-2. Placa ESP32
9
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
2.1.3 Pun o de Acceso WIFI
Pun o de acceso WIFI que pe mi e el es ablecimien o de la ed local y de es a o ma una comunicación en e
los elemen os so wa e del p oyec o. Especí icamen e ha sido el ú e nucom wi eless 300mbps
Figu a 2-3. Pun o de Acceso Numcom
2.1.4 Telé ono Mó il
Es el disposi i o And oid usado pa a la ejecución de la aplicación And oid que pe mi e al usua io la ges ión y
el con ol del in e nade o. En es e caso se ha usado el disposi i o simulado de And oid S udio Pixel 4 XL API
35 y un disposi i o ísico And oid: Redmi No e 13.
Figu a 2-4. Redmi No e 13
2.1.5 Placa P o oboa d
La placa p o oboa d (o placa de p uebas) es un disposi i o en elec ónica que pe mi e mon a y p oba ci cui os
empo ales sin necesidad de solda . Es á compues a po una ma iz de o i icios in e conec ados eléc icamen e
median e columnas, buses y ilas, acili ando el ápido mon aje de componen es como esis encias, leds y cables.
En es e p oyec o se ha usado pa a uni los elemen os del ha dwa e con el ESP32.
Figu a 2-5. Placa P o oboa d
Recu sos u ilizados
10
2.1.6 Módulo DTH11
Con ine el senso DTH11 que pe mi e medi la humedad ambien al y empe a u a con una p ecisión básica
(±2°C y ±5% HR). U iliza un p o ocolo de comunicación se ial de un solo cable y es ideal pa a p oyec os IoT y
domó icos donde no se equie a al a exac i ud.
Pa áme o
Especi icación
Rango de Tempe a u a
0°C a 50°C (±2°C)
Rango de Humedad
20% a 80% HR (±5%)
Alimen ación
3V a 5.5V DC
Salida
Señal digi al
Uso ípico
In e nade os, es aciones me eo ológicas, domó ica
Tabla 2-3. Ca ac e ís icas del módulo DTH11
Figu a 2-6. Módulo DTH11
2.1.7 Módulo MH del senso de luz
Con iene un o o esis o LDR (Ligh Dependen Resis o ) que mide la in ensidad lumínica ambien al. Su
esis encia a ía in e samen e con la luz: disminuye en ambien es b illan es y aumen a en la oscu idad. Se usa
comúnmen e en sis emas au omá icos po su bajo cos o y ácil in eg ación con mic ocon olado es.
Pa áme o
Especi icación
Rango de de ección
0 a 100,000 lux
Vol aje ope a i o
3.3V a 5V DC
Salida
Analógica (ADC) o digi al
Respues a espec al
~550 nm (Simila al ojo humano)
Aplicaciones
Con ol de luces, ala mas, ag icul u a
Tabla 2-4. Ca ac e ís icas del módulo MH del senso de luz
11
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 2-7. Módulo MH del senso de luz
2.1.8 Módulo de la humedad del suelo (HW-80 + HW-103)
Es á o mado po el senso HW-80 que mide la humedad del suelo median e dos elec odos que de ec an
cambios en la conduc i idad eléc ica según el agua p esen e. Además, del con e ido HW-103 que ans o ma
es a señal analógica en un alo digi al (0-1023 ADC) pa a su lec u a en los mic ocon olado es.
Pa áme o
Especi icación
Vol aje ope a i o
3.3V - 5V DC
Salida
Analógica (HW-80) / Digi al (HW-103, ADC)
Rango de de ección
0% (seco) - 100% (húmedo)
Co osión
Elec odos no p o egidos ( ida ú il limi ada)
Aplicaciones
Riego au omá ico, in e nade os, ja dine ía
Tabla 2-5. Ca ac e ís icas del módulo de la humedad del suelo
Figu a 2-8. Módulo de la humedad del suelo
Recu sos u ilizados
12
2.1.9 Módulo de ni el del agua
Es á o mado po un senso de ni el de agua esis i o que de ec a la p esencia y el ni el del agua median e
unos elec odos expues os, que miden los cambios en la conduc i idad del medio. Al en a en con ac o con el
agua, se cie a el ci cui o en e los elec odos y se gene a una señal analógica que p opo ciona el ni el. Como
iene los elec odos expues os es muy suscep ible a la co osión.
Pa áme o
Especi icación
Vol aje ope a i o
3.3V - 5V DC
Salida
Señal analógica (0-1023 en ADC de A duino)
De ección
Po con ac o di ec o (elec odos sume gidos)
Ma e ial
Elec odos me álicos sin p o ección (cob e/ace o)
Aplicaciones
Tanques, sis emas de iego, ala mas de inundación
Tabla 2-6. Ca ac e ís icas del módulo de ni el de agua
Figu a 2-9. Módulo de ni el de agua
2.1.10 Módulo del elé
Es un in e up o elec omecánico con olado po señales de bajo ol aje. Ac i a o desac i a ci cui os median e
un elec oimán que mue e un con ac o in e no.
Pa áme o
Especi icación
Vol aje de con ol
3.3V - 5V DC
Ca ga máxima
10A 250V AC / 10A 30V DC
Aplicaciones
Domó ica, con ol de mo o es, sis emas IoT
Tabla 2-7. Ca ac e ís icas del módulo del elé
Figu a 2-10. Módulo del elé
13
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
2.1.11 Po a pilas 4xAA
Po a pilas pa a 4 pilas AA que p opo ciona á el ol aje pa a el uncionamien o del mo o de agua.
Figu a 2-11. Po a pilas 4xAA
2.1.12 Pilas
Son la uen e de alimen ación del mo o de agua.
Figu a 2-12. Pilas AA
2.1.13 Mo o de agua
Es el enca gado de suminis a el agua a las plan as del in e nade o. El mo o usado en es e p oyec o bombea
agua a un lujo de 25 ml po segundo.
Pa áme o
Especi icación
Vol aje
DC3-5 V
Co ien e
100-200 mA
Ele ación
0,3-0,8 m
Flujo
1,2-1,6 l/min
Aplicaciones
Riego au omá ico, uen es deco a i as
Tabla 2-8. Ca ac e ís icas del mo o de agua
Figu a 2-13. Mo o de agua
Recu sos u ilizados
14
2.1.14 Leds, cables y esis encias
Los leds son componen es que se iluminan cuando pasa co ien e eléc ica en pola idad di ec a, es deci , desde
el ánodo a + al cá odo a -.
Los cables conec an los leds a la uen e de alimen ación, ansmi iendo la co ien e necesa ia. Pa a e i a daños,
se usan esis encias en se ie con el led, con un alo calculado según la ley de Ohm, en es e p oyec o son de
220Ω pues la uen e ESP32 da 3,7V de alimen ación.
Se han usado 3 ipos de cables pa a la ealización de es e p oyec o, cables macho-hemb a, cables macho-
macho y cables hemb a-hemb a, que han pe mi ido ala ga las dis ancias en e los elemen os.
Figu a 2-14. Resis encias, leds y cables
2.1.15 Mul íme o
Es un ins umen o po á il que mide magni udes eléc icas ac i as, como la ensión (V) y la co ien e (A), y
pasi as, como la esis encia (Ω). Funciona median e pun as de p ueba que se conec an al ci cui o.
Figu a 2-15. Mul íme o
2.1.16 Soldado Eléc ico
Es una he amien a que gene a calo en su pun a (en e 200°C y 450°C) al pasa co ien e a a és de una
esis encia in e na, undiendo el es año pa a uni componen es elec ónicos. El calo se con ola median e una
ule a que indica la empe a u a que a a alcanza .
Figu a 2-16. Soldado Eléc ico
15
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
2.2 Recu sos So wa e
Se en iende como ecu sos so wa e a los p og amas o componen es lis os pa a usa que han acili ado el
desa ollo, la ges ión y la ejecución del p oyec o.
2.2.1 OpenHAB
OpenHAB pe mi e in eg a los elemen os IoT, los senso es, los ac uado es y los lími es es ablecidos po el
usua io en una in e az uni icada. Además, pe mi e pe sonaliza eglas pa a la ges ión de los elemen os y es
compa ible múl iples p o ocolos.
Figu a 2-17. OpenHAB
2.2.2 Fiwa e O ion Con ex B oke
Es el agen e que si e de in e media io en e los elemen os del sis ema y que median e no i icaciones y
susc ipciones no i ica siemp e los úl imos alo es de las en idades al es o de componen es median e mensajes
JSON.
Figu a 2-18. Fiwa e O ion
2.2.3 MongoDB
Es la base de da os que pe mi e la pe sis encia de las úl imas en idades que Fiwa e ha ecibido y las man iene
pa a que cuando se einicie el sis ema Fiwa e man enga las úl imas en idades. Es o pe mi e que el es o de los
elemen os puedan ob ene de Fiwa e las úl imas e siones de las en idades.
Figu a 2-19. MongoDB
Recu sos u ilizados
16
2.2.4 Docke
Ha se ido pa a aloja a Fiwa e O ion jun o a MongoDB median e un con enedo de so wa e que iene los
dos p og amas. Pa a e su ins alación di íjase al Anexo A: Ins alación de Fiwa e O ion usando Docke .
Un con enedo es una unidad es ánda de so wa e que empaque a el código y odas sus dependencias pa a
que la aplicación se ejecu e de o ma ápida y iable de un en o no in o má ico a o o [4].
Figu a 2-20. Docke
2.2.5 Máquina Vi ual/Linux
Se ha usado la máquina i ual VMwa e con el OS Ubun u pa a ejecu a sob e Linux el se ido de Sp ing y
la base de da os SQL, es o pe mi e el uncionamien o de g an pa e del p oyec o.
Figu a 2-21. Máquina Vi ual y Ubun u
2.2.6 Sp ing
Es un amewo k Ja a pa a el desa ollo de aplicaciones, es de código Abie o y se ha usado pa a la c eación
del se ido REST.
Figu a 2-22. Sp ing
17
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
2.2.7 And oid S udio
Es el en o no de desa ollo o icial pa a aplicaciones And oid y es el que se ha usado pa a la c eación de la app
de con ol del in e nade o
Figu a 2-23. And oid S udio
2.2.8 Pos g eSQL
Es una base de da os SQL que pe mi e consul as complejas y es compa ible con JSON po eso se ha usado
pa a almacena los alo es que nos in e esan de las en idades que moni o izamos.
Figu a 2-24. Pos g eSQL
2.2.9 A duino
Es un IDE basado en C++ y se usa pa a la p og amación de mic ocon olado es. Conc e amen e, en es e
p oyec o se ha usado el mic ocon olado ESP32 y nos ha pe mi ido p og ama las unciones que ealiza á el
ESP32.
Figu a 2-25. A duino
2.2.10 Windows 11 P o
Es el sis ema ope a i o base donde se ha desa ollado el p oyec o, pues en él se han ins alado Docke ,
OpenHAB, And oid S udio...
Figu a 2-26. Windows 11 P o
Disposi i o y Con ex B oke
24
3. A con inuación, se comp ueba si es á ac i a la bande a de con ol manual. Si es á ac i a, el p oceso
e mina aquí; de lo con a io, se pasa al úl imo paso.
4. Po úl imo, se de e mina el es ado que debe ía ene el mo o (encendido si la humedad es meno que
el mínimo con igu ado, o apagado en caso con a io) y se compa a con el es ado ac ual. Si no coinciden,
se cambia el es ado y se no i ica al con ex b oke .
En segundo luga , enemos las comp obaciones pa a de e mina el es ado del ai e acondicionado.
1. P ime o, el código e i ica si el con ol manual del ai e es á desac i ado.
2. Si se cumple es a condición, se e alúan las condiciones ambien ales: el ai e se encende á si la
humedad es á ue a de los lími es con igu ados (po debajo del mínimo o po encima del máximo) o si
la empe a u a supe a los umb ales es ablecidos. Si el es ado ac ual del pin del ai e no coincide con el
eque ido, se ac ualiza el pin, se no i ica al con ex b oke y se egis a el cambio en los logs.
3. Si el con ol manual supe a el iempo pe mi ido, se desac i a au omá icamen e y se egis a un log
de que ha expi ado.
Po úl imo, enemos las comp obaciones pa a de e mina el es ado de las luces.
1. P ime o se e i ica si el con ol manual de las luces es á desac i ado.
2. Si es así, se de e mina si las luces deben encende se compa ando los alo es del senso de
luminosidad con los lími es con igu ados. Si el es ado ac ual del pin es dis in o del eque ido, se
ac ualiza el pin, se no i ica al con ex b oke y se egis a el e en o en los logs.
3. Si el con ol manual excede el iempo máximo pe mi ido, se desac i a y se egis a un log indicando
que ha expi ado.
3.1.3.4 Bloque pa a ob ene del con ex b oke
Es e bloque es á o mado po las 4 unciones que ob ienen los da os del con ex b oke , es deci , ob ene : los
lími es, y el es ado del mo o , las luces y el ai e acondicionado. Las 3 úl imas unciones son iguales, excep o el
endpoin al que hacen la solici ud y el pin en el que gua dan los da os. Po o o lado, la unción de los lími es,
aunque muy pa ecida iene di e encias más signi ica i as, así que oy a explica la unción pa a ob ene los
lími es y el mo o en de alle.
La unción pa a ob ene el es ado del mo o consul a el es ado ac ual del mo o en el con ex b oke pa a
sinc oniza el disposi i o ísico con el es ado egis ado en el se ido .
1. P ime o se e i ica la conexión Wi-Fi, si no se cumple, se de iene. Si hay conexión, se ealiza una
pe ición HTTP GET al endpoin con igu ado.
2. Si la espues a es exi osa, p ocesa el payload del JSON ecibido: se ex ae el alo del a ibu o es ado
y, si di ie e del es ado ac ual del mo o , ac ualiza el pin ísico, se ac i a el indicado de con ol manual,
se egis a el iempo de inicio y se gua da el nue o es ado. Todo es o se egis a en los logs.
3. Si hay e o es, se no i ica en los logs.
4. Finalmen e, cie a la conexión HTTP.
La unción pa a ob ene los lími es se enca ga de ob ene y ac ualiza los lími es de con igu ación del
in e nade o desde FIWARE O ion.
1. P ime o e i ica la conexión Wi-Fi y, si es á ac i a, ealiza una pe ición HTTP GET al endpoin .
2. Si la espues a es exi osa, p ocesa el payload JSON ecibido:
a. Se limpian los a ays que almacenan las ho as y minu os de iego.
25
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
b. Se ex ae y se asignan los alo es de los lími es desde el JSON a la es uc u a “limi es”,
incluyendo:
i. Consumo máximo de agua.
ii. Ho as p og amadas de iego, almacenando ho as y minu os en a ays sepa ados.
iii. Rangos de humedad ambien al.
i . Rangos de humedad del suelo.
. Rangos de los ni eles de luz.
i. Rango de empe a u as.
ii. Volumen mínimo de agua.
3. Si la ope ación es exi osa, se egis a un log de con i mación; y en caso de e o , se egis a un log con
el e o especí ico. Finalmen e, cie a la conexión HTTP.
Figu a 3-4. Función pa a ob ene los lími es
Disposi i o y Con ex B oke
26
3.1.3.5 Bloque de no i icación al con ex b oke
Es e bloque es á compues o po 3 unciones análogas: la unción pa a no i ica el es ado del mo o , la unción
pa a no i ica el es ado de las luces y la unción pa a no i ica el es ado del ai e acondicionado. La única
di e encia en e las unciones es el endpoin al que se en ía, así que se a a explica la unción pa a no i ica el
es ado del ai e acondicionado, ya que el uncionamien o es el mismo pa a el es o de las unciones que
con o man es e bloque.
La unción pa a no i ica el es ado del ai e acondicionado se enca ga de ac ualiza el es ado del ai e
acondicionado en el con ex b oke .
1. P ime o, se e i ica si hay conexión Wi-Fi; si no hay conexión, la unción e mina.
2. Si hay conexión, se inicia una pe ición HTTP al endpoin p ede inido y se con igu a el encabezado
pa a en ia los da os en o ma o JSON.
3. Luego, se cons uye un payload con el es ado del ai e ( ue o alse) y un me ada o que indica el o igen
del da o ("A duino"). Se usa el mé odo HTTP PATCH pa a en ia es a in o mación al se ido
FIWARE.
4. Si la espues a es exi osa, se egis a un mensaje de con i mación en los logs; en caso de e o , se
egis a el p oblema con los de alles especí icos. Finalmen e, cie a la conexión HTTP pa a libe a
ecu sos.
Figu a 3-5. Función de no i icación del es ado del ai e acondicionado
3.1.3.6 Bloque de manejo de las susc ipciones
Es e bloque es á compues o po la unción que maneja las no i icaciones que le llegan al se ido web
con igu ado. Es a unción p ocesa las no i icaciones POST en an es que p o ienen del con ex b oke pa a
ac ualiza el es ado de los disposi i os o de los lími es del in e nade o. Siguiendo es os pasos:
1. Como p ime paso, se ealiza la ecepción y alidación de los da os median e los siguien es subpasos:
a. Se comp ueba que sea el mé odo HTTP POST.
b. Se p ocesa el cue po de la pe ición, pa a ello:
i. Se lee el cue po en o ma o JSON (se e .a g("plain")).
ii. Se alida que el JSON es é bien o mado (usa S a icJsonDocumen <1024>).
iii. Se echazan pe iciones mal o madas con código 400 Bad Reques .
2. Una ez se ha comp obado que el mensaje es co ec o, se il an las no i icaciones p opias median e
una unción que de ec a y desca a ac ualizaciones que el p opio A duino en ió al con ex b oke .
Es o se consigue compa ando el campo de me ada os que con iene el o igen de la no i icación.
27
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
3. Después de desca a las no i icaciones p opias, se p ocesan el es o de las no i icaciones:
a. Si la no i icación con iene el a ibu o “es ado”, ac ualiza el pin GPIO co espondien e, ac i a
el con ol manual del disposi i o y egis a el iempo de inicio.
b. Si la no i icación es de ipo "Limi es", ac ualiza odos los pa áme os ecibidos, limpiando y
ellenando los a eglos de ho as y minu os de iego.
4. Po úl imo, en ía una espues a HTTP, al elemen o que hizo la pe ición:
a. En ía 200 OK si odo se p ocesó co ec amen e.
b. En ía 405 Me hod No Allowed si no es una pe ición POST.
3.1.3.7 Bloque de depu ación
En es e bloque se explica cómo se ha log ado c ea los elemen os de depu ación del código, es deci , cómo se
ha conseguido c ea es ni eles de egis os y cómo log a que apa ezcan po el moni o se ial.
Pa a implemen a un sis ema de egis os lexible con es ni eles de p io idad (ERROR, INFO, DEBUG), se
ha c eado un enum LogLe el donde cada ni el incluye a los an e io es (DEBUG mues a odo, ERROR solo lo
c í ico). Las mac os LOG_ERROR, LOG_INFO y LOG_DEBUG imp imen mensajes en el moni o se ial
únicamen e si es án habili adas y si el ni el ac ual es igual o supe io al del mensaje.
Además, la unción que ecibe los mensajes de la salida se ial pe mi e con ola el sis ema en iempo eal:
posibili a ac i a /desac i a egis os y cambia el ni el de de alle median e comandos po el moni o se ial, lo
que acili a la depu ación sin necesidad de modi ica el código.
Figu a 3-6. Bloque de depu ación
3.2 Con ex B oke
Como ya se ha explicado an e io an e io men e, el con ex b oke de es e p oyec o es Fiwa e O ion. Los da os
que ecibe FIWARE deben es a en o ma o JSON y se dis inguen po en idades que ienen cada una su p opia
URL. Pa a la ealización del p oyec o se han usado las dos unciones p incipales de FIWARE: las en idades en
el endpoin / 2/en i ies/ (más la en idad especí ica) y las no i icaciones en el endpoin / 2/subsc ip ion.
Ambos endpoin complemen an a la URL base donde es á Fiwa e que en es e p oyec o ha sido
h p://192.168.1.113:1026/ en el OS Windows. Pa a los elemen os que se ejecu an en Windows (como
OpenHAB), se puede sus i ui la IP po localhos .
Pa a pe sis i el úl imo alo de las en idades, se enlaza Fiwa e con MongoDB, que es una BBDD que es á en
el mismo con enedo DOCKER.
Disposi i o y Con ex B oke
28
3.2.1 En idades
Los da os ecopilados po los senso es del in e nade o se en ían al O ion Con ex B oke de Fiwa e, donde se
almacenan y o ganizan en en idades que ep esen an cada componen e del sis ema. Cada en idad se iden i ica
uní ocamen e po su id y ype, y con iene a ibu os con los alo es medidos o con igu ados, jun o con me ada os
que desc iben su o igen. Pa a es e p oyec o, las en idades cla e son:
• La en idad del senso , que con iene los alo es de los senso es y es á compues a po :
o Id Senso Da a1 y Type Senso :
o A ibu os: humedad_ambien al, humedad_suelo, luz, ni el, empe a u a_C, empe a u a_F.
▪ Cada a ibu o iene un campo de me ada os acío.
• La en idad del mo o , que con iene el es ado del mo o y es á compues a po :
o Id Mo o Da a1 y Type Mo o :
o A ibu o: es ado, una a iable de ipo boolean que indica el es ado del mo o .
▪ El a ibu o iene un campo de me ada os que es una a iable de ipo ex o con un alo
que indica el o igen.
• La en idad de los lími es, que con iene los alo es de los lími es y es á compues a po :
o Id Limi es:1 y Type Limi es:
o A ibu os: emp_min, emp_max, humedad_amb_min, humedad_amb_max, luz_max,
luz_min, ho as_ iego, humedad_suelo_max, olumen_agua_min y consumo_agua_max.
Todos es os a ibu os son de ipo Numbe , excep o ho as_ iego que es una S uc u edValue.
▪ Cada a ibu o iene un campo de me ada os que es una a iable de ipo ex o con un
alo que indica el o igen.
• La en idad del ai e acondicionado, que con iene el es ado del ai e acondicionado y es á compues a po :
o Id Ai eAcondicionado y Type Ai eAcondicionado:
o A ibu o: es ado, una a iable de ipo boolean que indica el es ado del ai e acondicionado.
▪ El a ibu o iene un campo de me ada os que es una a iable de ipo ex o con un alo
que indica el o igen.
• La en idad de las luces, que con iene el es ado de las luces y es á compues a po :
o Id Luces y Type Luces:
o A ibu o: es ado, una a iable de ipo boolean que indica el es ado de las luces.
▪ El a ibu o iene un campo de me ada os que es una a iable de ipo ex o con un alo
que indica el o igen.
Como se puede obse a en la igu a 3-7 apa e del id y el ype, los a ibu os ienen su p opia es uc u a
compues a po :
• El campo ype que indica el ipo de da o (Numbe , Boolean, S uc u edValue).
• El campo alue que indica el alo ac ual.
• El campo me ada a que indica in o mación adicional, en es e caso el o igen de los da os. El campo
me ada a a su ez, es á compues o po un campo ype y un campo alue.
29
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 3-7. En idades Fiwa e
De o a o ma, si que emos consul a solo una en idad solo enemos que hace una pe ición GET añadiendo su
id al inal del endpoin , po ejemplo, / 2/en i ies/Limi es:1 pa a consul a los lími es donde Limi es:1 es el id de
la en idad. Además, se pueden ob ene solo los a ibu os de la en idad, siguiendo con el ejemplo an e io queda ía
/ 2/en i ies/Limi es:1/a s/consumo_agua_max, y si añadimos alue solo de ol e á el alo del a ibu o.
Figu a 3-8. A ibu o de una en idad Fiwa e
Pa a elimina una en idad se debe hace una pe ición DELETE especi icando el id de la en idad que que emos
elimina . Aho a se mues a un ejemplo usando el comando cu l de Linux:
cu l -X DELETE
'h p://192.168.1.113:1026/ 2/en i ies/Limi es:1/a s/consumo_agua_ma
x'
3.2.2 Susc ipciones
Las susc ipciones son un mecanismo median e el cual Fiwa e no i ica a los disposi i os susc i os a una en idad
cada ez que la en idad sea ac ualizada. En la no i icación que en ía Fiwa e se encuen a odo el JSON de la
en idad ac ualizada, es deci , se ía lo mismo que el esul ado que de uel e Fiwa e cuando hacemos GET a esa
en idad.
Cada susc ipción se almacena en una lis a que se puede obse a en el endpoin / 2/subsc ip ion, de o ma que
si se en ía una pe ición GET a la URL de uel e odas las susc ipciones.
Disposi i o y Con ex B oke
30
Cada susc ipción cons a de una se ie de campos, que oy a esumi (si se quie e más in o mación isi a [5]):
1. id: Es el iden i icado gene ado au omá icamen e pa a la susc ipción.
2. desc ip ion: Tex o c eado po el usua io que indica el p opósi o de la susc ipción (ej: no i ica cambios
al a duino).
3. expi es: Es la echa de caducidad de la susc ipción (en o ma o ISO 8601).
4. s a us: Es el es ado ac ual de la susc ipción (ac i e, expi ed, paused).
5. en i ies: De ine qué en idades deben se moni o eadas:
a. idPa e n: es el pa ón egex pa a il a po ID (ej: "Limi es:.*" cub e odos los IDs que
empiezan con "Limi es:").
b. ype: es el ipo de en idad a susc ibi (ej: "Limi es").
c. condi ion: son condiciones adicionales:
i. a s: Son los a ibu os especí icos a obse a (si es á acío, se moni o izan odos).
ii. no i yOnMe ada aChange: Si es e campo es ue, se no i ican cambios an o en alo es
como en me ada os.
6. imesSen : Es el núme o o al de no i icaciones en iadas.
7. las No i ica ion: Es la echa de la úl ima no i icación exi osa.
8. a s: Son los a ibu os especí icos a inclui en la no i icación ( acío = odos).
9. onlyChangedA s: Si es e campo es alse, se en ía el es ado comple o de la en idad; si es ue, solo los
a ibu os modi icados.
10. a sFo ma : Es el o ma o de los da os (no malized = es ánda FIWARE, keyValues = simpli icado).
11. h p + u l: Es el endpoin del se ido que ecibi á las no i icaciones.
12. las Failu e + las Failu eReason: Es la Fecha y el mo i o del úl imo allo.
13. las Success + las SuccessCode: Es la Fecha y el código HTTP de la úl ima no i icación exi osa.
14. co e ed: Si es e campo es ue, indica que la susc ipción es á siendo p ocesada po un se ido ede ado.
15. h o ling: Es el iempo mínimo (en segundos) en e no i icaciones consecu i as. Ejemplo: 5 = no en ía
más de una no i icación cada 5 segundos, incluso si hay múl iples cambios.
Figu a 3-9. Ejemplo de susc ipción Fiwa e
31
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Pa a gene a una susc ipción se debe manda una pe ición POST a la URL de Fiwa e jun o al endpoin que se
ha nomb ado al inicio de es e subapa ado y se siguen las ecomendaciones de la guía de Fiwa e O ion [6].
Aquí se mues a un ejemplo de cómo hace una susc ipción median e el comando cu l:
cu l -iX POST h p://192.168.1.113:1026/ 2/subsc ip ions
-H "Con en -Type: applica ion/json"
-d '{
"desc ip ion": "No i icación al backend cuando cambia el es ado
del mo o ",
"subjec ": {
"en i ies": [
{
"id": "Mo o Da a1",
" ype": "Mo o "
}
],
"condi ion": {
"a s": ["es ado"]
}
},
"no i ica ion": {
"h p": {
"u l":
"h p://192.168.1.152:9000/in e nade o/mo o /es ado/cambia ",
"qs": "mo i o= iwa e"
},
"a s": ["es ado"],
"a sFo ma ": "keyValues"
},
" h o ling": 1
}'
Pa a elimina una susc ipción se debe hace un DELETE a la URL donde se hizo el POST más el id de la
susc ipción que que emos elimina .
Las no i icaciones se en ían como mensajes POST a la URL que se haya de inido en el campo “u l” de la
susc ipción.
Disposi i o y Con ex B oke
32
33
4 SERVIDOR WEB Y BASE DE DATOS
La mejo mane a de p edeci el u u o es in en a lo.
- Alan Kay-
n es e capí ulo se a a explica el uncionamien o del se ido web, ubicado en la máquina i ual con
di ección IP 192.168.1.155 y en el pue o 9000; y el esquema de la base de da os que se usa en es e
p oyec o. Pa a ello se de alla án los mé odos más impo an es y las clases que se han implemen ado.
4.1 Clases
En es a sección se de allan las clases Ja a c eadas pa a el se ido web, ubicadas en la denominada u a
p incipal ( in e nade o s c main ja a com g eenhouse). Las clases es án di ididas en las siguien es pa es:
4.1.1 P incipal
Es la clase Regis oIn e nade oApplica ion, que con iene el mé odo main del p og ama. Es e es el p ime
mé odo que se llama al ejecu a el p og ama. Ano ada con @Sp ingBoo Applica ion, combina es
con igu aciones cla e [7]:
• @EnableAu oCon igu a ion: Con igu a au omá icamen e beans y dependencias.
• @Componen Scan: Escanea componen es (con olado es, se icios, eposi o ios) en el paque e
com.g eenhouse y subpaque es.
• @Con igu a ion: Pe mi e de ini beans adicionales.
Además, @EnableScheduling habili a la ejecución pe iódica de a eas [8]. El mé odo main() inicia la
aplicación usando Sp ingApplica ion. un(), le an ando el se ido embebido (Tomca ) y ca gando oda la
con igu ación.
4.1.2 Con igu ación
En el subdi ec o io con ig de la u a p incipal se encuen an las clases que con igu an se icios. En es e
p oyec o solo se encuen a la clase Swagge Con ig, que con igu a Swagge , un se icio pa a gene a la
documen ación. En el iche o se han con igu ado el í ulo, la e sión que apa ece en la in e az de Swagge .
4.1.3 Modelos
En el subdi ec o io model de la u a p incipal se encuen an las clases que ep esen an la es uc u a de da os
del p oyec o, es deci , son clases POJO. Es as clases de inen:
• Las en idades que modelan elemen os eales (ej: Mo o , Senso , Limi es).
• Las elaciones con la base de da os median e ano aciones (@En i y, @Table, @Column) pa a mapea
ablas en Pos g eSQL.
• Los a ibu os y las alidaciones median e ano aciones como @No Null, @Size, o o ma os especí icos
(@Da eTimeFo ma ).
E
Se ido Web y Base de Da os
40
40
4.1.6 Con olado es
En el subdi ec o io con olle de la u a p incipal se encuen an las clases que de inen el compo amien o del
se ido cuando se ecibe una pe ición en la URL que de inen. Su p opósi o p incipal es ecibi pe iciones HTTP,
delega la lógica a los se icios y de uel en las espues as es uc u adas en el o ma o que se necesi e, en es e
caso JSON.
Cada clase de modelado iene su p opia clase ja a que si e de con olado .
4.1.6.1 Con olado del Mo o
Es á compues o po los con olado es de los e en os y del es ado del mo o . Es as clases son:
• E en osMo o Con olle que iene como u a base /in e nade o/mo o /e en os y ges iona los e en os
de ope ación del mo o . Solo iene el mé odo de espues a a un GET a es e endpoin / y ob iene odos
los e en os del mo o o denados c onológicamen e.
• Es adoMo o Con olle que iene como u a base in e nade o/mo o /es ado y con ola el es ado ac ual
del mo o . Tiene con igu ado las espues as a los siguien es mé odos:
Mé odo HTTP
Endpoin
Desc ipción
GET
/
Consul a el úl imo es ado egis ado del mo o .
POST
/cambia
Cambia el es ado del mo o median e un JSON y egis a el
mo i o, po de ec o, “ iwa e”.
Tabla 4-1. Pe iciones espondidas po Es adoMo o Con olle
4.1.6.2 Con olado de los lími es
Es á compues o po el con olado que co esponde a su clase modelo. Es a clase es Limi esCon olle que
iene como u a base /in e nade o/limi es y que ges iona la con igu ación de lími es ambien ales y de iego pa a
el in e nade o.
Mé odo HTTP
Endpoin
Desc ipción
GET
/
Ob iene los lími es ac uales con igu ados en el
sis ema, median e indCu en Limi s del se icio.
GET
/usua io/{usua ioId}
Ob iene los lími es especí icos de un usua io po
su ID, median e el indCu en Limi sByUsua ioId
del se icio.
POST
/usua io/{usua ioId}
C ea nue os lími es pa a un usua io, median e el
sa e del se icio.
PUT
/usua io/{usua ioId}
Ac ualiza lími es exis en es de un usua io,
median e el upda eLimi s del se icio.
POST
/ iwa e-callback
Recibe no i icaciones de FIWARE pa a ac ualiza
lími es.
POST
/ac ualiza -ho as- iego/{usua ioId}
Ac ualiza ho as de iego pe mi idas pa a un
usua io, median e el ac ualiza Ho asRiego del
se icio.
Tabla 4-2. Pe iciones espondidas po Limi esCon olle
41
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
4.1.6.3 Con olado de los senso es
Es á compues o po la clase Lec u asSenso esCon olle que iene como u a base /in e nade o/senso es y que
ges iona las lec u as de senso es del in e nade o.
Mé odo
HTTP
Endpoin
Desc ipción
POST
/ iwa e-callback
Recibe da os de senso es desde FIWARE y los almacena en la base de
da os, median e el mé odo gua da DesdeNo i icacion(payload) del
se icio.
GET
/ul ima
Ob iene la úl ima lec u a egis ada de los senso es, median e el mé odo
ob ene Ul imaLec u a() del se icio.
GET
/his o ial
Recupe a el his o ial comple o de lec u as de senso es, median e el
mé odo ob ene His o ial() del se icio.
GET
/ esumen-hoy
De uel e 12 lec u as del día ac ual median e el mé odo
ob ene ResumenHoy() del se icio.
GET
/ esumen-
ul imos-dias
Ob iene p omedios dia ios del núme o de días con da os que se indica
en el pe iodo, median e el mé odo ob ene ResumenUl imosDias( S ing
pe iodo) del se icio.
Tabla 4-3. Pe iciones espondidas po Lec u asSenso esCon olle
4.1.6.4 Con olado usua ios
Es á compues o po la clase Usua iosCon olle que iene como u a base /in e nade o/usua ios y que ges iona
el egis o, la au en icación y la ges ión de usua ios del sis ema.
Mé odo HTTP
Endpoin
Desc ipción
GET
/
Ob iene odos los usua ios egis ados en el sis ema, median e el
mé odo indAll() del se icio.
GET
/{id}
Ob iene un usua io especí ico po su ID (excluye da os sensibles
como con aseña), median e el mé odo indById(id) del se icio.
GET
/login
Au en ica un usua io median e nomb e de usua io y con aseña,
median e el mé odo login(nomb eUsua io, con aseña) del se icio.
POST
/ egis o
Regis a un nue o usua io ( alida duplicados de nomb e/email),
median e los mé odos exis eNomb eUsua io(), exis eEmail(),
egis a Usua io(usua io) del se icio.
GET
/{nomb eUsua io}
/exis e
Ve i ica si un nomb e de usua io ya es á en uso, median e el
mé odo exis eNomb eUsua io(nomb eUsua io) del se icio.
GET
/email/{email}/exi
s e
Ve i ica si un email ya es á egis ado, median e el mé odo
exis eEmail(email) del se icio.
PATCH
/{id}/con asena
Ac ualiza la con aseña de un usua io exis en e, median e el mé odo
ac ualiza Con asena(id, nue aCon asena) del se icio.
Tabla 4-4. Pe iciones espondidas po Usua iosCon olle
Se ido Web y Base de Da os
42
42
Figu a 4-4. Documen ación de Swagge
43
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
4.2 Fiche os de con igu ación
En es e apa ado se de allan los iche os de con igu ación del se ido web. Hay dos ipos de iche os de
con igu ación los que con igu an las dependencias del p oyec o (.xml) y los que con igu an las p opiedades de
algunos elemen os (.p ope ies).
Los iche os de o igen p ope ies se encuen an den o del subdi ec o io esou ces que es á en la u a
in e nade o s c main esou ces. En es e p oyec o solo se ha usado un iche o de es e ipo llamado applica ion y
con iene:
• La con igu ación de la BBDD de allando el ipo de BBDD que en es e caso es Pos g eSQL, la URL
pa a la conexión (jdbc:pos g esql://localhos :5432/ egis o_in e nade o), las c edenciales y el
con olado que se usa.
• Las p opiedades de Hibe na e (JPA) que se con igu an. Se ac i a el mos a consul as SQL pa a
mos a las consul as en el se ido y o ma oSQL pa a mejo a legibilidad. Se de ine la es a egia de
ac ualización de la BBDD y el dialec o que se usa pa a habla con la misma.
• El pue o de la aplicación en es e caso el 9000.
• La con igu ación de la URL donde se a a ejecu a el swagge (h p://localhos :9000/swagge -ui.h ml)
Po o o lado, el iche o de las dependencias se encuen a al inicio de la u a en el subdi ec o io in e nade o y
se llama POM. Es e iche o con iene las ecnologías usadas y las dependencias necesa ias pa a el co ec o
uncionamien o del p oyec o.
4.3 BBDD
En es e apa ado se a a explica la es uc u a de la BBDD, es deci , el nomb e de es a, las ablas que con iene
y la elación en e ellas. Se ha con igu ado una base de da os Pos g eSQL que es un sis ema de bases de da os
elacional de código abie o. El nomb e de la BBDD es egis o_in e nade o. Pa a e cómo se ha con igu ado
la BBDD consul e el Anexo C: Con igu ación de la base de da os. La BBDD es á compues a po las siguien es
ablas:
4.3.1 Tabla usua ios
Es la abla que almacena la in o mación de los usua ios del sis ema. Además, iene una elación 1:N con
lími es. Sus elemen os son:
Figu a 4-5. Tabla usua ios
4.3.2 Tabla limi es
Es la abla que con iene la con igu ación de los pa áme os ambien ales y de iego del in e nade o. Tiene una
elación 1:N con limi es_ho as_ iego. Sus elemen os son:
Se ido Web y Base de Da os
44
44
Figu a 4-6. Tabla limi es
4.3.3 Tabla limi es_ho as_ iego
Es la abla que con iene las ho as pe mi idas pa a el iego au omá ico y iene una FK a limi es. Sus elemen os
son:
Figu a 4-7. Tabla limi es_ho as_ iego
4.3.4 Tabla lec u as_senso es
Es la abla que con iene los egis os de los da os leídos po los senso es. Sus elemen os son:
Figu a 4-8. Tabla lec u as_senso es
4.3.5 Tabla es ado_mo o
Es la abla que con iene el es ado ac ual del mo o y el consumo de agua. Sus elemen os son:
45
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 4-9. Tabla es ado_mo o
4.3.6 Tabla e en os_mo o
Es la abla que man iene el egis o de los cambios de es ado del mo o .
Figu a 4-10. Tabla e en os_mo o
A con inuación, se mues a el diag ama ER de la base de da os:
Figu a 4-11. Diag ama ER
Se ido Web y Base de Da os
46
46
47
5 INTERFAZ DE USUARIO Y FUNCIONALIDAD
¿Qué somos las pe sonas sino máquinas muy e olucionadas?
- Ma in Minsky -
n es e capí ulo se a a explica el uncionamien o de las dos in e aces de usua io diseñadas en es e
p oyec o. Po un lado, enemos la aplicación And oid y po o o lado enemos la aplicación OpenHAB,
ambas pe mi en ges iona el in e nade o, pe o cada una iene en ajas e incon enien es.
5.1 Aplicación And oid
G acias a la aplicación And oid llamada ETSINa u a, el usua io inal pod á e el es ado ac ual del in e nade o
y con ola el mo o de iego. Además, se pod á con igu a los lími es po los que se igen las ope aciones de
con ol au omá ico incluyendo la elección de las ho as de iego según se haya c eído con enien e después de e
el p ecio y el p onós ico del iempo median e las uncionalidades que se o ecen. Po úl imo, el usua io pod á
ob ene los egis os del in e nade o pa a analiza la e olución del mismo. Pa a comunica se con el se icio
REST, se usan los endpoin s de inidos en el pun o 4.
A con inuación, se mues an los casos de uso que iene la aplicación y una explicación de cómo unciona cada
uno.
Figu a 5-1. Diag ama de casos de uso
E
In e az de usua io y uncionalidad
48
48
5.1.1 Inicio de sesión
En es e apa ado se explica el uncionamien o y los elemen os que con o man el caso de uso “Inicio de Sesion”
de la aplicación And oid. Es e caso de uso consis e en una pan alla con dos campos a ellena el usua io y la
con aseña, además de dos bo ones “Accede ” y “Regis a se”.
Pa a implemen a es a unción se han necesi ado los siguien es iche os:
• MainAc i i y.ja a: Es a clase es la ac i idad p incipal de la aplicación y maneja el inicio de sesión de
usua ios. Con iene los campos pa a ing esa usua io y con aseña, y ealiza una pe ición HTTP GET a
un se ido pa a alida las c edenciales. Si el inicio de sesión es exi oso, mues a un ex o Toas con
“Inicio de sesión exi oso” y edi ige a MainUsua ios en iando los da os del usua io. También incluye
un bo ón pa a edi igi a la ac i idad de egis o (Regis oAc i i y) y maneja e o es de conexión con
mensajes Toas .
• ac i i y_main.xml: De ine la in e az de usua io de la ac i idad p incipal, que incluye:
o Campos de ex o (Edi Tex ) pa a usua io y con aseña.
o Bo ones pa a inicia sesión (Accede ) y egis a se (Regis a se).
o Un ondo pe sonalizado (@d awable/ ondo_inicio) y es ilos pa a los elemen os ( ex o en
neg i a, colo es semi anspa en es, e c.).
Figu a 5-2. Inicio de sesión
Además de es e caso de uso en es e apa ado ambién se a a inclui la explicación de los iche os que pe mi en
las ac i idades de los usua ios en el es o de los casos de uso que necesi an p ime o que se inicie sesión.
• MainUsua ios.ja a: Es a clase ep esen a la ac i idad p incipal del usua io después del inicio de
sesión, implemen ando un menú de na egación la e al y una ba a de he amien as. Ges iona la
na egación en e di e en es agmen os (inicio, pe il, p ecios de elec icidad, lími es, ac uado es,
g á icas y e en os del mo o ) u ilizando el componen e Na iga ion, es os agmen os co esponden a
un caso de uso cada uno. Recibe los da os del usua io en o ma o JSON desde la ac i idad de login y
los pasa a los agmen os co espondien es. También incluye un bo ón de cie e de sesión en el menú
supe io que edi ige al usua io de uel a a la pan alla de inicio de sesión.
• ac i i y_main_usua ios.xml: De ine la es uc u a isual de la pan alla p incipal de la aplicación,
u ilizando un D awe Layou como con enedo p incipal. Incluye:
o Un Coo dina o Layou que con iene una AppBa con Toolba pe sonalizada y un con enedo
de agmen os que mues a el con enido dinámico según la na egación.
49
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
o Un Na iga ionView (menú la e al) que mues a las opciones de na egación de inidas en el
a chi o de menú (@menu/menu_na ) y un encabezado pe sonalizado (@layou /na _heade ).
o Con igu ación de na egación median e el g a o de inido en @na iga ion/usua io_na iga ion,
pe mi iendo la ansición luida en e las di e en es secciones de la aplicación.
• con en _usua ios.xml: Es e a chi o ac úa como con enedo secunda io pa a los agmen os den o de
la ac i idad p incipal.
• app_ba _usua ios.xml: De ine la es uc u a de la ba a de aplicación y el con enedo p incipal pa a la
na egación en e agmen os en la ac i idad MainUsua ios.
Figu a 5-3. Ba a de aplicación
5.1.2 Regis o
En es e apa ado se explica el uncionamien o y los elemen os que con o man el caso de uso “Regis o”. Es e
caso de uso mues a los campos a ellena pa a egis a un usua io nue o en la BBDD y dos bo ones: uno pa a
cancela el egis o y o o pa a con i ma lo.
Pa a su implemen ación se han necesi ado los siguien es iche os:
• Regis oAc i i y.ja a: Es a clase ges iona el p oceso de egis o de nue os usua ios en la aplicación.
Con iene los campos a ing esa : nomb e de usua io, con aseña y email. Se alida que odos es én
comple os an es de en ia una pe ición POST al se ido con los da os en o ma o JSON. Se mues a
un diálogo de p og eso du an e la solici ud y maneja an o la espues a exi osa (mos ando un mensaje
y ce ando la ac i idad) como los e o es. También incluye un bo ón pa a cancela el egis o y ol e
a la pan alla an e io .
• ac i i y_ egis o.xml: De ine la in e az de usua io pa a el egis o, man eniendo el diseño isual
cohe en e con la pan alla de inicio de sesión (mismo ondo y es ilo). Incluye:
o T es campos de ex o (Edi Tex ) pa a usua io, con aseña (con enmasca amien o) y email, cada
uno con su e ique a (Tex View) co espondien e.
o Dos bo ones ("Con i ma Regis o" y "Cancela Regis o") con es ilos simila es a los de inicio
de sesión.
o Diseño lineal e ical con má genes y alineación cen ada, op imizado pa a usabilidad en
disposi i os mó iles.
In e az de usua io y uncionalidad
56
56
o ex oHo asSeleccionadas: Lis a las ho as elegidas po el usua io.
Figu a 5-10. Consul a p ecio de la luz
5.1.9 Consul a p onós ico del iempo
En es e apa ado se explica el uncionamien o y los elemen os que con o man el caso de uso “Consul a
p onós ico del iempo”. Es e caso de uso mues a dos campos pa a ellena con la ciudad y el país del que
que emos el clima y un bo ón pa a en ia la pe ición.
Pa a su implemen ación se han necesi ado los siguien es iche os:
• OpenWea he Se ice.ja a: In e az Re o i que de ine el endpoin ("da a/2.5/ o ecas "), pa a ob ene
da os me eo ológicos de OpenWea he Map. U iliza una pe ición GET con pa áme os como ciudad,
unidades (mé icas), idioma (español) y la API key ob enida c eando un usua io en OpenWea he .
Re o na un JsonObjec con la espues a.
• TiempoF agmen .ja a: F agmen o que mues a p e isiones me eo ológicas de 3 días (hoy, mañana y
pasado) como máximo usando la API de OpenWea he Map. Pe mi e busca po ciudad/país, p ocesa la
espues a JSON pa a ex ae empe a u a, desc ipción e iconos del clima ( / / ), y o ganiza los
da os po anjas ho a ias. Usa la URL ("h ps://api.openwea he map.o g/") y el OpenWea he Se ice
pa a hace la pe ición a la OpenWea he .
• Wea he Response.ja a: Clase modelo que pe mi e pa sea la espues a JSON de OpenWea he Map.
Con iene clases anidadas pa a mapea campos del JSON, es o acili a el acceso a da os como
empe a u a ( emp), condición climá ica (main) y desc ipción (desc ip ion).
• agmen _ iempo.xml: Diseño del agmen o con Cons ain Layou y un Linea Layou e ical.
Incluye:
o Dos Edi Tex pa a ciudad y país.
o Un bo ón "Busca clima" que ac i a la consul a.
o Un Tex View pa a mos a esul ados.
57
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 5-11. Consul a p onós ico del iempo
5.1.10 Con ola ac uado es
En es e apa ado se explica el uncionamien o y los elemen os que con o man el caso de uso “Con ola
ac uado es”. Es e caso de uso mues a un ex o que ep esen a el es ado del mo o y un in e up o que pe mi e
cambia lo.
Pa a su implemen ación se han necesi ado los siguien es iche os:
• Ac uado esSe ice.ja a: In e az Re o i que de ine los endpoin s pa a in e ac ua con el sis ema de
ac uado es del in e nade o. Incluye dos mé odos p incipales:
o ge Es adoMo o : Ob iene el es ado ac ual del mo o median e una pe ición GET.
o cambia Es adoMo o : En ía un comando pa a modi ica el es ado del mo o (encende /apaga )
usando POST, acep ando un mapa de da os como payload y un pa áme o de mo i o.
• Ac uado esF agmen .ja a: F agmen o que con ola el es ado del mo o del in e nade o. Mues a el
es ado ac ual (Encendido/Apagado) en un Tex View y pe mi e modi ica lo median e un Swi ch. U iliza
Re o i pa a comunica se con el se icio REST, manejando las in e acciones del usua io en la
aplicación pa a e i a ac ualizaciones no deseadas, es deci , ene en cuen a cuando se inicia el
in e up o pa a que no se cambie el es ado al po de ec o al inicia el agmen o y se en íe al se icio
REST. Además, incluye la lógica pa a sinc oniza el es ado del swi ch con el se ido y mues a
no i icaciones Toas pa a con i ma cambios.
• Es adoMo o Reques .ja a: Clase modelo que ep esen a una solici ud de cambio de es ado del mo o .
Con iene dos campos: acción un booleano que indica si se debe encende ( ue) o apaga ( alse) el mo o
y mo i o un S ing que desc ibe la azón del cambio.
• agmen _ac uado es.xml: Diseño del agmen o, o ganizado en un Linea Layou e ical cen ado.
Con iene:
o ex oEs adoMo o : Mues a el es ado ac ual del mo o .
o swi ch_mo o : In e up o pa a con ol manual del mo o .
In e az de usua io y uncionalidad
58
58
Figu a 5-12. Con ola ac uado es
5.1.11 Fiche os de con igu ación
Pa a pode usa odos los elemen os y que el p oyec o uncione co ec amen e se deben con igu a dos iche os
especiales, pues son los iche os de con igu ación del p oyec o:
• And oidMani es .xml: A chi o de con igu ación p incipal que de ine la es uc u a básica de la
aplicación And oid. Decla a los pe misos necesa ios (INTERNET y ACCESS_NETWORK_STATE),
las ac i idades p incipales (MainAc i i y como ac i idad de lanzamien o, MainUsua ios y
Regis oAc i i y), y con igu a aspec os globales como el icono de la aplicación, ema y con igu ación
de segu idad de ed. También especi ica que la aplicación es compa ible con diseño RTL (Righ - o-
Le ).
• build.g adle: A chi o de con igu ación de G adle que ges iona las dependencias y opciones de
compilación del p oyec o. Es ablece las e siones mínimas (24) y obje i o (35) del SDK, con igu a el
en o no de Ja a ( e sión 11), y decla a las dependencias cla e como Volley pa a pe iciones HTTP,
Ma e ial Design Componen s, Na iga ion Componen s, Re o i pa a APIs REST, y MPAnd oidCha
pa a g á icos. Incluye ambién dependencias pa a es ing (JUni y Esp esso).
Figu a 5-13. Lib e ías del iche o build.g adle
5.2 Aplicación Openhab
La aplicación OpenHAB es un so wa e que median e canales conec a los í ems de inidos en él y median e
eglas de inimos cómo se a a ac ua cuando ocu a un e en o. La unción de es a aplicación es pe mi i que a
u u o se puedan conec a disposi i os IOT, sin necesidad de modi ica la aplicación And oid, de mane a ápida
y sencilla ag egándolos como un í em ex a.
Lo p ime o que se ha de inido ha sido el canal de donde a a escucha los elemen os que en es e caso es la
di ección y el pue o de FIWARE (h p://localhos :1026/ 2/en i ies/). Después de enlaza con FIWARE, se usa
59
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
es e canal de enlace en las eglas que se han pe sonalizado pa a los í ems del p og ama. Los í ems los podemos
clasi ica en 3 ipos, los alo es de los senso es, los alo es de los lími es y los ac uado es.
• Senso es: son los í ems que ep esen an a los senso es.
Nomb e
Tipo
E ique a
Ca ego ía
O ionHumedadAmbien al
Numbe
Humedad Ambien e
humidi y
O ionLuz
Numbe
Luz
ligh
O ionTempe a u aC
Numbe
Tempe a u a °C
empe a u e
O ionTempe a u aF
Numbe
Tempe a u a ºF
empe a u e
O ionHumedadSuelo
Numbe
Humedad Suelo
humidi y
O ionNi el
Numbe
Ni el
wa e
Tabla 5-1. Í ems de los senso es
• Lími es: son los í ems que ep esen an los lími es odos son edi ables, excep o las ho as de iego
Nomb e
Tipo
De alles
Limi eTempMin
Numbe
Lími e de la empe a u a mínima en ºC
Limi eTempMax
Numbe
Lími e de la empe a u a máxima en ºC
Limi eHumedadAmbMin
Numbe
Lími e de la humedad ambien al mínima
en %
Limi eHumedadAmbMax
Numbe
Lími e de la humedad ambien al máxima
en %
Limi eHumedadSueloMin
Numbe
Lími e de la humedad del suelo mínima
en %
Limi eHumedadSueloMax
Numbe
Lími e de la humedad del suelo máxima
en %
Limi eLuzMin
Numbe
Lími e de la luz mínima en %
Limi eLuzMax
Numbe
Lími e de la luz máxima en %
Limi eConsumoAguaMax
Numbe
Lími e del consumo de agua po iego en
li os
Limi eVolumenAguaMin
Numbe
Volumen de agua mínimo necesa io pa a
pode encende el mo o
Limi esHo asRiego
S ing
Ho as en las que se puede encende el
mo o (no edi ables).
Tabla 5-2. Í ems de los lími es
In e az de usua io y uncionalidad
60
60
• Ac uado es: son los í ems que ep esen an un ac uado
Nomb e
Tipo
De alles
Mo o Es ado
Swi ch
Es el ac uado que con ola el mo o de
iego
LucesEs ado
Swi ch
Es el ac uado que con ola la iluminación
Ai eEs ado
Swi ch
Es el ac uado que con ola la clima ización
Tabla 5-3. Í ems de los ac uado es
Pa a con ola el uncionamien o de es os í ems se han de inido las siguien es eglas:
• Lec u a_Elemen os es la egla que si e pa a ac ualiza los es ados cada 30 segundos consul ando
FIWARE (Mo o , Senso es, Luces, Ai e).
o De alle: Realiza pe iciones HTTP GET al canal pa a ob ene los da os de senso es (humedad,
luz, empe a u a, ni el), los es ados de ac uado es (ON/OFF) .
• Ac ualiza Limi es es la egla que se ejecu a al modi ica cualquie lími e ( emp, humedad, luz, agua).
Se hacen las siguien es comp obaciones:
o Rangos cohe en es (min < max), Valo es po cen uales (0-100%) y Ho as de iego no acías.
o Se igno an ac ualizaciones con me ada os o igen: "openhab".
• Acciona Luces es la egla que con ola las LucesEs ado.
o Acción: En ía es ado (ON/OFF) a FIWARE ia PUT al cambia LucesEs ado incluyendo los
me ada os de o igen pa a e i a bucles.
o Endpoin : h p://localhos :1026/ 2/en i ies/Luces/a s/es ado.
• Acciona Ai e es la egla que con ola el Ai eEs ado
o Usa PUT pa a en ia el es ado al canal + Ai eAcondicionado/a s/es ado.
• Acciona Mo o es la egla que con ola Mo o Es ado.
o Usa POST pa a en ia es ado al canal + Mo o Da a1/a s.
• Inicio es la egla que se enca ga de ca ga odos los da os al a anca OpenHAB.
o Consul a: Ob iene alo es ac uales de senso es y lími es de FIWARE.
Además de es as eglas enemos un sc ip de Py hon que cuando se ecibe una no i icación desde FIWARE
cambia el o ma o al JSON que puede lee OpenHAB. Es e iche o implemen a un se ido Flask, en Docke ,
que ac úa como in e media io pa a ecibi no i icaciones y ac ualiza í ems en OpenHAB. El se ido escucha
en el pue o 5000 y de ine una u a /no i y que acep a solici udes POST. Cuando ecibe da os en o ma o JSON,
ex ae alo es especí icos (como lími es de consumo de agua, humedad, empe a u a, e c.) de un dicciona io
llamado MAPA_ITEMS, que mapea a ibu os ecibidos a nomb es de í ems en OpenHAB. Luego, en ía es os
alo es a OpenHAB median e solici udes HTTP POST a su API REST. La di ección de OpenHAB es á
con igu ada pa a unciona en un en o no Docke (hos .docke .in e nal).
61
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 5-14. Í ems de OpenHAB
In e az de usua io y uncionalidad
62
62
Figu a 5-15. Reglas de OpenHAB
5.3 Resumen
En es e apa ado se edac a un esumen y una compa ación de las dos in e aces de usua io que enemos.
Po un lado, enemos la aplicación mó il que pe mi e el egis o e inicio de sesión de los usua ios y pe mi e
obse a los his ó icos de los elemen os de la base de da os. Además, pe mi e es ablece las ho as de iego
pe mi idas y mi a el clima. Aunque solo pe mi e con ola el mo o .
Po o o lado, enemos la in e az de OpenHAB que, aunque pe mi e edi a los lími es del sis ema, no pe mi e
modi ica las ho as de iego pe mi idas ni consul a los his ó icos. Sin emba go, o ece en ajas en e a la
aplicación mó il, como la capacidad de con ola disposi i os IoT eales (po ejemplo, luces y ai e
acondicionado). En es e p oyec o, es os elemen os se simulan median e LEDs, pe o en un en o no eal pod ían
ges iona se di ec amen e a a és de canales de OpenHAB, simpli icando su con igu ación en compa ación con
una implemen ación pe sonalizada en la aplicación mó il.
63
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
6 CONCLUSIONES Y LÍNEAS FUTURAS
El a e desa ía a la ecnología y la ecnología inspi a al a e.
-John Lasse e –
l desa ollo del p oyec o aunque di e so, iene a ios aspec os que se pueden mejo a . En es e apa ado se
saca án las conclusiones y se nomb a án las u u as líneas de mejo as que se pueden implemen a sob e
el p oyec o.
El mundo ac ual es á e olucionando a g an elocidad, y con ello las ecnologías y las o mas en las que es án
p esen es en nues a ida. Cada ez los p ocesos son más au omá icos y es án con olados desde la dis ancia.
Como se ha demos ado en es e p oyec o median e la implemen ación de un sis ema de iego y con ol de un
in e nade o, se puede con ola odo desde un mó il lo que pe mi e una espues a ins an ánea a los cambios.
Es e p oyec o ha esul ado se de bajo cos e pues solo ha necesi ado de los senso es, los ac uado es y la placa
ESP32.
Además, se ha demos ado que es posible conec a Fiwa e O ion Con ex B oke con OpenHAB, aunque
OpenHAB no p opo cione una in eg ación na i a o di ec a. Es o se ha log ado median e eglas, que pe mi en la
au oma ización de los elemen os del p oyec o, y bindings con igu ados con las URLs de Fiwa e, que pe mi en
ob ene y ac ualiza los alo es de los elemen os.
Po o o lado, la aplicación And oid ha demos ado que podemos conec a nos a la REE, pa a ob ene los
p ecios de la elec icidad a iempo eal, y con OpenWea he , que pe mi e ob ene el p onós ico del iempo.
Ambas conexiones jun o con las condiciones ambien ales del in e nade o que nos o ece la aplicación nos
pe mi en decidi que lími es que emos es ablece pa a el in e nade o. Po úl imo, podemos ob ene en o ma de
g á icas los egis os empo ales del in e nade o pa a es udia cómo mejo a la e iciencia de es e.
Como líneas de in e és pa a u u as mejo as se encuen an los siguien es apa ados:
1. Segu idad:
a. Ac ualiza el paso de mensajes usando el p o ocolo HTTPS.
b. Implemen a mecanismos que ga an icen la au en i icación de los usua ios y el ci ado de las
comunicaciones, pa a e i a que un usua io no au o izado pueda cambia los da os de algún
elemen o.
2. Funcionalidad:
a. Op imiza el uso de los me ada os en u u as e siones pa a e i a bucles de mensajes y mejo a
la e iciencia de las en idades.
b. Añadi en los elemen os del sis ema la opción de modi ica la di ección del se ido de mane a
dinámica y añadi la opción pa a que el adminis ado pueda elimina in o mación de la base
de da os desde la aplicación And oid.
E
Anexo A: Ins alación de Fiwa e O ion usando Docke
64
64
ANEXO A: INSTALACIÓN DE FIWARE ORION
USANDO DOCKER
En es e anexo se explican los pasos a segui pa a ins ala y pone en uncionamien o Fiwa e O ion usando
Docke y MongoDB como base de da os pa a Fiwa e.
Pa a ins ala Docke , se necesi a: un p ocesado de 64 bi con SLAT, 4GB de RAM, ene ac i ado la
i ualización en la BIOS y Windows 11 64-bi : Home o P o e sión 22H2 o mayo [11].
Los pasos a segui pa a ins ala Docke son:
1. Nos di igimos a la página p incipal de Docke (h ps://www.docke .com/) y elegimos el OS donde
nos que emos ins ala Docke . En es e caso se ha elegido Windows-AMD64
Figu a 0-1. Desca ga Docke
2. El siguien e paso es ejecu a el iche o .exe que ins ala á Docke en es a u a po de ec o, C: P og am
Files Docke Docke . A pa i de es e momen o seguimos las ins ucciones del ins alado y de la guía
de Docke [11].
Una ez que enemos ins alado Docke p ocedemos a desplega el con enedo de Fiwa e, que con iene al O ion
y a MongoDB. Pa a log a es o, se necesi a lo siguien e:
1. C eamos el iche o docke -compose.yaml que con iene los elemen os de nues o con enedo . A
con inuación, se mues a el iche o:
e sion: "3.8"
se ices:
o ion:
image: iwa e/o ion
hos name: o ion
con aine _name: iwa e-o ion
depends_on:
- mongo-db
ne wo ks:
- iwa e-ne
expose:
- "1026"
po s:
65
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
- "1026:1026"
command: -dbURI mongodb://mongo-db:27017/o ion -logLe el
DEBUG
mongo-db:
image: mongo:4.4
hos name: mongo-db
con aine _name: db-mongo
ne wo ks:
- iwa e-ne
expose:
- "27017"
po s:
- "27017:27017"
command: --nojou nal
olumes:
- mongo-db:/da a/db
ne wo ks:
iwa e-ne :
d i e : b idge
olumes:
mongo-db:
d i e : local
2. Una ez que enemos el iche o, en la e minal de Docke ejecu amos el siguien e comando, indicando
la u a has a el docke -compose:
docke -compose up -d . iwa e docke -compose.yaml
3. Una ez que enemos el con enedo en la in e az g á ica le damos al play pa a inicia y a s op pa a
de ene
Figu a 0-2. Con enedo apagado
Figu a 0-3. Con enedo encendido
Una ez que enemos odo ins alado y con igu ado si pulsamos en el nomb e del elemen o pod emos obse a
los logs de es e y e lo que ocu e.
Anexo D: Cons ucción del sis ema
72
72
ANEXO D: CONSTRUCCIÓN DEL SISTEMA
En es e anexo se de alla án los pasos a segui pa a consegui la pues a en ma cha del sis ema.
En p ime luga , debemos accede a es e eposi o io Gi Hub h ps://gi hub.com/jospozp i1/TFG y
desca ga nos las ca pe as o los .zip como se p e ie a, que con ienen los códigos de los p og amas.
Una ez engamos los iche os amos a i usándolos de uno en uno:
• Docke con iene el iche o docke -compose y la ca pe a iwa e-openhab-b idge. Usando el Docke -
compose y siguiendo los pasos del Anexo A se ins ala á en Docke el con enedo pa a el Con ex
B oke . En la ca pe a se encuen an los iche os necesa ios pa a el puen e que conec a con OpenHab,
pa a ello nos si uamos en la ca pe a y ejecu amos “docke build - iwa e-openhab-b idge”.
• Codigo_TFG con iene el código necesa io pa a el uncionamien o del esp32. Una ez que hemos
seguido los pasos del Anexo B y enemos con igu ado odos los elemen os ísicos, conec amos el esp32
y con igu amos el id y la con aseña del wi i, así como la ip que se le asigna al esp32 de mane a que
concue de con nues a ed wi i. Po úl imo, con igu amos la zona ho a ia en el código y lo ca gamos a
nues o esp32.
• S c es la ca pe a que con iene odas las clases .ja a y los layou s necesa ios pa a la ejecución de la
aplicación And oid. Pa a su uso, en And oid S udio se c ea un p oyec o Emp y Views Ac i i y, con
nomb e In e nade o y quedando el package como com.dam.in e nade o y se selecciona lenguaje
JAVA y lenguaje de con igu ación G oo y DSL. A con inuación, se mues a un ejemplo de c eación
de un p oyec o:
Figu a 0-1. Nue o p oyec o And oid S udio.
Una ez c eado el p oyec o sus i uimos los elemen os de la ca pe a s c po los nues os y añadimos
en el build.g adle las lib e ías que apa ecen en la Figu a 5 13. Lib e ías del iche o build.g adle. Po
úl imo, modi icamos las di ecciones ip del se ido po la di ección ip de nues o se ido .
• TFG con iene los iche os necesa ios pa a la ejecución del se ido Res y la base de da os. En p ime
luga , seguimos los pasos del Anexo C y una ez engamos con igu ado la base de da os, modi icamos
el iche o p ope ies que se encuen a en la siguien e u a TFG in e nade o s c main esou ces si
que emos hace algún cambio. Además, modi icamos en los iche os de implemen ación de los
se icios la ip del Con ex B oke po nues a ip. Po úl imo, se inicia el se ido mo iéndonos a la
ca pe a de in e nade o desde la e minal e in oduciendo el siguien e comando “m n sp ing-
boo : un”.
73
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
Figu a 0-2. Inicio del Se ido Res
Pa a ob ene la aplicación de OpenHAB debemos desca ga nos de la página o icial de OpenHAB la e sión
disponible pa a Windows (S able ac ualmen e la 4.3.5).
Figu a 0-3. Ins ala OpenHAB desde la página o icial
Una ez nos hemos ez desca gado el zip y ex aído se pulsa en el s a de Windows y se inicia Openhab como
se indica en la Figu a 0 4. Inicia OpenHab. Una ez iniciado la aplicación, nos conec amos a la di ección ip (o
al localhos ) y a su pue o y c eamos el usua io y la con aseña y en la u a openhab use da a me emos la ca pe a
jsondb disponible en gi que con iene las eglas y los í ems usados.
Anexo D: Cons ucción del sis ema
74
74
Figu a 0-4 Inicia OpenHab
75
Con ol domó ico de un sis ema de iego, median e OpenHAB y Fiwa e, pa a el aho o del consumo de agua y ene gía
REFERENCIAS
[1]
ibm, «¿Qué es el In e ne de las cosas (IoT)? | IBM,» [En línea]. A ailable: h ps://www.ibm.com/mx-
es/ opics/in e ne -o - hings. [Úl imo acceso: 2025 06 19].
[2]
O acle, «O acle España,» [En línea]. A ailable: h ps://www.o acle.com/es/in e ne -o - hings/. [Úl imo
acceso: 2025 06 19].
[3]
ma ke sandma ke s, «Ag icul u e IoT Ma ke Size & Sha e Indus y G ow h Analysis 2032,» [En línea].
A ailable: h ps://www.ma ke sandma ke s.com/Ma ke -Repo s/io -in-ag icul u e-ma ke -
199564903.h ml. [Úl imo acceso: 06 05 2025].
[4]
Docke , «Wha is a Con aine ? | Docke ,» [En línea]. A ailable: h ps://www.docke .com/ esou ces/wha -
con aine /. [Úl imo acceso: 07 05 2025].
[5]
Fiwa e-O ion, «FIWARE NGSI 2 O ion API Speci ica ion - Fiwa e-O ion,» [En línea]. A ailable:
h ps:// iwa e-o ion. ead hedocs.io/en/mas e /o ion-api.h ml#subsc ip ion. [Úl imo acceso: 08 05 2025].
[6]
Fiwa e-O ion, «API Walk h ough - Fiwa e-O ion,» [En línea]. A ailable: h ps:// iwa e-
o ion. ead hedocs.io/en/mas e /use /walk h ough_api 2.h ml#subsc ip ions. [Úl imo acceso: 08 05
2025].
[7]
Sp ing, «Using he @Sp ingBoo Applica ion Anno a ion :: Sp ing Boo ,» [En línea]. A ailable:
h ps://docs.sp ing.io/sp ing-boo / e e ence/using/using- he-sp ingboo applica ion-anno a ion.h ml.
[Úl imo acceso: 08 05 2025].
[8]
Sp ing, «Task Execu ion and Scheduling :: Sp ing F amewo k,» [En línea]. A ailable:
h ps://docs.sp ing.io/sp ing- amewo k/ e e ence/in eg a ion/scheduling.h ml#scheduling-enable-
anno a ion-suppo . [Úl imo acceso: 08 05 2025].
[9]
O acle, « Ja a Pe sis ence API,» [En línea]. A ailable:
h ps://www.o acle.com/ja a/ echnologies/pe sis ence-jsp.h ml. [Úl imo acceso: 09 05 2025].
[10]
Sp ing, «Sp ing Da a,» [En línea]. A ailable: h ps://sp ing.io/p ojec s/sp ing-da a. [Úl imo acceso: 09 05
2025].
[11]
Docke , «Windows | Docke Docs,» [En línea]. A ailable:
h ps://docs.docke .com/desk op/se up/ins all/windows-ins all/. [Úl imo acceso: 18 05 2025].
Re e encias
76
76