scieee Open visual document viewer

Sistema de desarrollo e integración continua Over-The-Air para microcontroladores IoT

García Ortega, Pablo

Abstract

Este Trabajo de Fin de Grado busca desarrollar un sistema de integración continua OTA para dispositivos IoT. El objetivo es garantizar la actualización, de manera automática, de los dispositivos en el momento que se produzca el lanzamiento de nuevas versiones de firmware. El sistema consta de los microcontroladores ESP32 que hacen de dispositivos IoT y una Raspberry Pi 4 que actúa como nodo central. La conexión se efectua mediante una red WiFi para proporcionar la comunicación local entre los dispositivos asi como conexión con los servidores que almacenen el versionado del firmware. El trabajo realizado demuestra que el sistema es eficaz a la hora de actualizarse Over-The-Air tanto con o sin la intervención de un usuario.

Full text

Equa ion Chap e 1 Sec ion 1 T abajo Fin de G ado G ado en Ingenie ía de las Tecnologías de Telecomunicación Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT Au o : Pablo Ga cía O ega Tu o : Samuel Yanes Luis Dp o. Ingenie ía Elec ónica 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 Sis ema de desa ollo e in eg ación con inua O e - The-Ai pa a mic ocon olado es IoT Au o : Pablo Ga cía O ega Tu o : Samuel Yanes Luis P o eso Sus i u o In e ino Dp o. Ingenie ía Elec ónica Escuela Técnica Supe io de Ingenie ía Uni e sidad de Se illa Se illa, 2025 T abajo Fin de G ado: Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT Au o : Pablo Ga cía O ega Tu o : Samuel Yanes Luis 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 A mi amilia, po es a a mi lado en odo momen o. A Ma a po anima me a segui . A Samuel po pode colabo a con él en es e p oyec o. Pablo Ga cía O ega Se illa, 2025 ÍNDICE DE TABLAS Tabla 1. Capas del modelo OSI 3 Tabla 2. A qui ec u a del p oyec o 9 Tabla 3. P oceso ac ualización OTA 16 Tabla 4. Endpoin s de la API REST del mic ocon olado 18 Tabla 5. Endpoin s de la API REST del nodo cen al 19 x ii ÍNDICE DE FIGURAS Figu a 1. A qui ec u a de la ed 1 Figu a 2. ESP32 WROOM 32 2 Figu a 3. ATMEL 2560 2 Figu a 4. Senso es acionamien o 4 Figu a 5. Senso es IoT pa a domó ica 4 Figu a 6. Esquema de la in eg ación comple a 8 Figu a 7. Con igu ación del IDE pa a ESP32 13 Figu a 8. Pla o mIO Build y Upload 13 Figu a 9. Diag ama de bloques de los modulos del i mwa e 14 Figu a 10. Esquema ac ualización OTA 15 Figu a 11. Diag ama de lujo ac ualizacion OTA po web 17 Figu a 12. Con igu ación del dominio en Cloud la e 20 Figu a 13. Es uc u a de iche os del nodo cen al 21 Figu a 14. Descub imien o se icios mDNS 23 Figu a 15. Lee los pines del ESP32 24 Figu a 16. Pe icion POST a /w i e con cu l 25 Figu a 17. Encendido del led as pone el pin 14 a 1 25 Figu a 18. Ob ención de la e sion del i mwa e del ESP32 26 Figu a 19. Web con igu ación Ac ualización OTA 26 Figu a 20. Ac ualizando i mwa e po OTA usando la web 26 Figu a 21. C ea ama y hace commi pa a nue a e sión 27 Figu a 22. Nue o ag y exi o del pipeline de c eacion de la build 27 Figu a 23. A e ac o del nue o i mwa e 28 Figu a 24. Desca ga ul imo i mwa e desde Gi lab 28 Figu a 25. Lis ado de odos los ESP32 en la web 29 Figu a 26. Ve e sión del i mwa e en la web 30 Figu a 27. Ve es ado de pines en la in e az web 31 Figu a 28. Cambio de es ado de pin usando la web 32 Figu a 29. Selecciona el i mwa e pa a ac ualiza ia web 32 Figu a 30. Fi mwa e ac ualizado co ec amen e a a es de la web 33 Figu a 31. Comp oba los con aine s desplegados en el nodo cen al 34 Figu a 32. Desca ga el ul imo i mwa e al nodo cen al 34 Figu a 33. Ac ualización de odos los disposi i os IoT desde el nodo cen al 35 1 INTRODUCCIÓN os sis emas basados en In e ne o Things (IoT) han expe imen ado un c ecimien o exponencial en la úl ima década, impulsados po la necesidad de op imiza el con ol y la ges ión de en o nos indus iales, come ciales y esidenciales [1]. En 2023 exis ían 15.900 millones de disposi i os IoT uncionando globalmen e, y es á p oyec ado supe a los 32.100 millones en 2030 [2]. Es e aumen o en el uso de disposi i os IoT se debe a que los mic ocon olado es son disposi i os pequeños, po en es, de bajo consumo y con una conec i idad (WiFi, BLE, 5G) [3], haciendolos ú iles en mul iples ámbi os. El obje i o p incipal de es e T abajo de Fin de G ado es desa olla e implemen a un sis ema de ac ualización emo a y au omá ica sin necesidad de conexión ísica al disposi i o IoT ( e igu a 1). A la ez que se p opo ciona una in e az pa a descub i los disposi i os conec ados a la ed local pa a ac ualizaciones O e -The-Ai (OTA). Figu a 1. A qui ec u a de la ed 1.1 Que son los sis emas embebidos: mic ocon olado es y sus usos Los sis emas embebidos cons i uyen la base ecnológica de la au oma ización mode na, in eg ando ha dwa e especializado y so wa e op imizado pa a ejecu a a eas especí icas en disposi i os que aba can desde elec odomés icos in eligen es has a sis emas obó icos indus iales. En es e ecosis ema, los mic ocon olado es eme gen como componen es c í icos, mien as que los ci cui os in eg ados WiFi habili an capacidades de conec i idad a anzadas. L El so wa e es un g an a e, siemp e puede se mejo ado. - Bill Ga es - In oducción 2 1.1.1 Qué son los mic ocon olado es Un mic ocon olado ( e igu as 2 y 3) es un ci cui o in eg ado que consolida en un único chip una unidad cen al de p ocesamien o (CPU), memo ia de acceso alea o io (RAM), memo ia no olá il (ROM/Flash), y pe i é icos de en ada/salida (E/S). A di e encia de los mic op ocesado es de p opósi o gene al, es os disposi i os es án diseñados pa a aplicaciones embebidas donde la e iciencia ene gé ica, el cos o educido y la in eg ación ísica son p io i a ios [4] [5]. 1.1.1.1 A qui ec u a in e na y componen es cla e La a qui ec u a ípica de un mic ocon olado IoT con ci cui o WiFi in eg ado iene una CPU po en e, debido a la sob eca ga compu acional que gene a una pila TCP/IP comple a. Po ello es necesa io u iliza mic ocon olado es como los basados en a qui ec u as ARM Co ex-M (ej. STM32F4) o RISC- V (ej. ESP32-C3). Los mic ocon olado es ambién disponen de memo ias in eg adas como la RAM pa a almacena da os de acceso ápido (ej. 520 KB en ESP32-WROOM-32) o la memo ia lash que almacena i mwa e y con igu aciones (ej. 4 MB en ESP32-WROOM-32) [6]. Se dispone ambién de pe i é icos especializados ales como: • Con e so es analógico-digi ales (ADC). Pe mi en lee señales analógicas, como la salida de un senso de empe a u a, y con e i las en alo es digi ales que puede p ocesa el mic ocon olado . • GPIOs, son los pines de en ada/salida del mic ocon olado que pueden usa se, po ejemplo, pa a ac i a o desac i a elés que pe mi en encende o apaga luces de mane a emo a o au oma izada. • PWM. Gene an señales moduladas que pe mi en egula la elocidad de un mo o o la in ensidad de un LED. • SPI/I2C. Son in e aces de comunicación que pe mi en conec a el mic ocon olado con disposi i os ex e nos como senso es de empe a u a, memo ias o pan allas. Es os componen es pe mi en a los mic ocon olado es in e ac ua di ec amen e con el en o no ísico median e senso es y ac uado es, p ocesa da os localmen e, y oma decisiones au ónomas sin dependencia de sis emas ex e nos [5]. 1.1.2 Ci cui o in eg ado WiFi en IoT Los ci cui os in eg ados WiFi pa a IoT, como el ESP32 de Esp essi Sys ems, in eg an capacidades de conec i idad inalámb ica siguiendo el modelo OSI (Open Sys ems In e connec ion), pe mi iendo la in e ope abilidad con edes IP [7] [8]. Figu a 3. ATMEL 2560 Figu a 2. ESP32 WROOM 32 3 3 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 1.1.2.1 Capas del modelo OSI en Comunicaciones IoT El modelo OSI es un ma co concep ual uni e sal que desc ibe cómo los da os se ans ie en a a és de una ed, di idiendo la comunicación en sie e capas independien es (Ve abla 1). Es e modelo se aplica como e e encia en la mayo ía de los sis emas de comunicación de ed, aunque la implemen ación conc e a de cada capa puede a ia según la ecnología inalámb ica u ilizada y el mic ocon olado especí ico. Capa OSI Función p incipal Ejemplo en ESP32 (WiFi/BLE) Física (1) T ansmisión y ecepción de bi s po el medio ísico ( adio, cable, e c.) Modulación de señales en 2.4 GHz (WiFi 802.11 b/g/n, BLE 2.4 GHz) Enlace (2) O ganización de da os en amas, con ol de acceso al medio, co ección de e o es P o ocolo MAC 802.11, con olado de enlace BLE Red (3) En u amien o de paque es, di eccionamien o IP Sopo e de IP 4/IP 6; BLE suele usa di eccionamien o p opio T anspo e (4) Comunicación ex emo a ex emo, con ol de lujo y e o es TCP/UDP; L2CAP (BLE) Sesión (5) Ges ión de sesiones de comunicación Manejada po p o ocolos de aplicación (MQTT, HTTP, e c.) P esen ación (6) T aducción, ci ado y comp esión de da os Ci ado TLS/SSL, codi icación de da os Aplicación In e az di ec a con el usua io o aplicación, p o ocolos de al o ni el HTTP, MQTT, CoAP, WebSocke , e c. Tabla 1. Capas del modelo OSI In oducción 4 1.1.2.2 Ven ajas de la In eg ación WiFi en Mic ocon olado es La in eg ación de WiFi en SoCs (Sys em-on-Chip) como el ESP32 elimina la necesidad de modulos ex e nos que auemen a ian an o el cos e como el amaño [9]. Es o ha impulsado su adopción en aplicaciones como senso es de es acionamien o in eligen e ( e igu a 4) que epo an disponibilidad median e APIs REST (Rep esen a ional S a e T ans e ) [10]. Figu a 4. Senso es acionamien o 1.2 Raspbe y Pi (Rpi): Qué es y cómo se u iliza en IoT La RPi es un sis ema embebido de placa única, compac o y de bajo cos e, diseñado o iginalmen e pa a enseña in o ma ica y p og amación, pe o que se ha con e ido en una pla a o ma muy popula pa a p oyec os IoT, au oma ización y p o o ipado A anzado [11]. G acias a su po encia y e sa ilidad, la RPi se emplea ecuen emen e como hub domó ico, pe mi iendo con ola luces, senso es ( e igu a 5) y elec odomés icos in eligen es desde una única pla a o ma cen alizada. Figu a 5. Senso es IoT pa a domó ico 5 5 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 1.2.1 Qué es la Rpi A di e encia de los mic ocon olado es adicionales, la Rpi unciona como un minio denado comple o: in eg a un mic op ocesado , memo ia RAM (desde 512 MB has a 8 GB según el modelo), almacenamien o median e a je a mic oSD, y múl iples pue os de en ada/salida como USB, HDMI, E he ne , además de conec i idad inalámb ica (WiFi y Blue oo h en la mayo ía de los modelos ecien es) [12]. Es o le pe mi e ejecu a sis emas ope a i os basados en Linux (como Raspbe y Pi OS), acili ando el desa ollo de aplicaciones complejas y el uso de lenguajes de p og amación como Py hon, C++ o Ja a [11]. 1.2.1.1 A qui ec u a y componen s cla e Las di e en es e sions de RPi emplean p ocesado es ARM de 32 o 64 bi s y RAM con su icien e po encia pa a a eas de p ocesamien o de da os, ision a i icial o se ido es web. U iliza una a je a mic oSD pa a el sis ema ope a i o y los da os, lo que acili a la ac ualización y el espaldo del so wa e. Dispone de pue os USB pa a pe i é icos, HDMI pa a ideo, E he ne y/o WiFi pa a ed, y pines GPIO pa a in e ac ua con senso es, ac uado es y o os disposi i os elec ónicos. 1.3 El p oblema a esol e : p og amación emo a de los mic ocon olado es Uno de los p incipales p oblemas de los sis emas IoT es su ges ión, especialmen e cuando se a a de disposi i os desplegados en g andes can idades y ubicados en zonas de di ícil acceso. A medida que las implemen aciones IoT aumen an en escala, la ac ualización y man enimien o de es os disposi i os se con ie e en un desa ío signi ica i o [14]. Las ac ualizaciones de i mwa e son esenciales pa a co egi e o es, soluciona ulne abilidades de segu idad o añadi nue as uncionalidades du an e la ida ú il de un disposi i o conec ado [15]. Sin emba go, cuando los disposi i os es án ins alados en luga es emo os o de di ícil acceso, el acceso ísico esul a cos oso o incluso imposible [16]. Es e p oblema se magni ica po las limi aciones inhe en es a muchos disposi i os IoT: es icciones de memo ia, capacidad de ba e ía y ancho de banda disponible, lo que complica aún más el p oceso de ac ualización [15]. Además, la al a de mecanismos de ac ualización es anda izados puede conduci a p ác icas de segu idad de icien es [17]. Todo es o hace que la ac ualización manual di ec a muchas eces sea imposible y que no haya o ma de conec a se ísicamen e al disposi i o con un o denado pa a ac ualiza el i mwa e u ilizando p og amas especializados como JTAG [18]. De la necesidad de ac ualiza emo amen e los disposi i os nace las ac ualizaciones OTA. 1.3.1 P og amación emo a y la necesidad de OTA (O e -The-Ai ) Las ac ualizaciones OTA pe mi en la dis ibución inalámb ica de i mwa e ac ualizado a odos los disposi i os de un sis ema IoT, incluso aquellos ubicados en luga es de di ícil acceso [16]. Pa a p opo ciona es e ipo de ac ualizaciones el disposi i o IoT pe mi e la ca ga de o ma inalámb ica de un nue o i mwa e. Es o implica que dispone de el del ha dwa e necesa io pa a p opo ciona conec i idad inalámb ica y de un so wa e adecuado pa a pe mi i la subida y pos e io ca ga en el disposi i o del nue o i mwa e. Exis en dos ap oximaciones di e en es a la ho a de abo da el p oceso de ac ualización OTA: 1. Ac ualización OTA de pa ición única: Implica ac ualiza di ec amen e el i mwa e pa a eemplaza la e sión exis en e. Aunque es simple de implemen a , puede gene a iempos de inac i idad signi ica i os du an e la ins alación y p esen a iesgos si la ac ualización alla [19]. 2. Ac ualización OTA de pa ición dual A/B: U iliza dos pa iciones que pueden almacena independien emen e di e en es e siones del i mwa e, o eciendo mayo segu idad al man ene siemp e una e sión uncional del sis ema [19]. Es e mecanismo se undamen a en la duplicación de las pa iciones c í icas del sis ema (como boo y sys em) [20] In oducción 6 1.4 Obje i os del P oyec o y equisi os El obje i o del P oyec o es c ea un sis ema de in eg ación con inua donde los nue os i mwa es desa ollados se compilen en la nube y sean usados po un nodo cen al pa a ac ualiza OTA y de mane a au oma ica los mic ocon olado es. A su ez que c eamos una in e az web pa a que un usua io pueda conec a se y ealiza ope aciones manuals sob e los ESP32. Pa a ealiza es o end emos equisi os que deben implemen a se en el mic ocon olado , o os en la Rpi y o os en el ges o de eposi o ios. Los equisi os son los siguien es: • Publicación de los se icios del mic ocon olado median e mDNS: Es e equisi o se cen a en la capacidad de los disposi i os ESP32 de anuncia los se icios que o ecen den o de una ed local, u ilizando el p o ocolo mDNS (Mul icas DNS). mDNS pe mi e que los disposi i os se descub an en e sí en la ed sin necesidad de un se ido DNS cen alizado. • Requisi o de lec u a de pines: Es e equisi o es ablece la necesidad de pode consul a el es ado ac ual de los pines de en ada/salida digi al del mic ocon olado ESP32 a a és de la ed. Es o pe mi e moni o iza emo amen e el es ado de senso es o in e up o es conec ados al disposi i o. • Requisi o de esc i u a de pines: Es e equisi o de ine la necesidad de pode modi ica el es ado (al o/bajo) de los pines de salida digi al del mic ocon olado ESP32 a a és de la ed. Es o es undamen al pa a con ola ac uado es como LEDs, elés u o os disposi i os conec ados al ESP32, pe mi iendo una in e acción emo a con el en o no ísico. • Requisi o de ob ene la e sión del i mwa e en uncionamien o: Es e equisi o de ine la necesidad de pode modi ica el es ado (al o/bajo) de los pines de salida digi al del mic ocon olado ESP32 a a és de la ed. Es o es undamen al pa a con ola ac uado es como LEDs, elés u o os disposi i os conec ados al ESP32, pe mi iendo una in e acción emo a con el en o no ísico. • Requisi o de ac ualización OTA del i mwa e: Es e equisi o de ine la capacidad del sis ema pa a ac ualiza el i mwa e del mic ocon olado ESP32 de o ma inalámb ica, conocido como OTA. Es o pe mi e desplega nue as e siones del i mwa e a los disposi i os sin necesidad de acceso ísico, lo cual es especialmen e ú il pa a disposi i os desplegados en ubicaciones emo as o de di ícil acceso. • Requisi o de in eg ación con inua del i mwa e de los mic ocon olado es: Es e equisi o se e ie e a la implemen ación de p ác icas de In eg ación Con inua (CI) pa a el desa ollo del i mwa e de los ESP32. Es o implica au oma iza el p oceso de compilación y empaque ado del i mwa e cada ez que se ealizan cambios en el código uen e. • Requisi o de ac ualización de odos los mic ocon olado es de la ed: Es e equisi o es ablece la necesidad de un mecanismo pa a ac ualiza el i mwa e de mane a coo dinada o masi a en odos los ESP32 que o man pa e del sis ema. Es o necesi a un sis ema de ges ión que pueda o ques a el despliegue de ac ualizaciones a múl iples disposi i os simul áneamen e. • Requisi o de docke ización de los se icios del nodo cen al: Es e equisi o se en oca en la in aes uc u a del backend o nodo cen al que in e ac úa con los disposi i os ESP32. Especi ica que los se icios que componen es e nodo cen al (se ido web y API) deben se empaque ados y desplegados u ilizando con enedo es Docke . 7 7 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT Me odología 14 2.2.2.3 Código del i mwa e del ESP32 El código del i mwa e del ESP32 es á disponible en el eposi o io de Gi Lab del p oyec o. Es e i mwa e implemen a un se ido REST pa a ges iona los pines GPIO del mic ocon olado y habili a ac ualizaciones OTA median e la lib e ía Elegan OTA. En p ime luga , el i mwa e ealiza la con igu ación y conexión a la ed WiFi, gene ando au omá icamen e un hos name único basado en los úl imos dígi os de la di ección MAC del disposi i o. Es o acili a an o la iden i icación como el acceso al ESP32 den o de la ed local. Una ez conec ado, el disposi i o inicia un se ido REST u ilizando la lib e ía WebSe e , exponiendo a ios endpoin s: `/ ead` pe mi e consul a el es ado de odos los pines GPIO con igu ados como salidas, `/w i e` ac ualiza el es ado de es os pines a pa i de una pe ición JSON, y `/ ese ` einicia el mic ocon olado de o ma emo a. Además, el endpoin `/ e sion` p opo ciona in o mación sob e la e sión y la echa de compilación del i mwa e. Pa a la comunicación en e clien e y se ido , u ilizamos el o ma o JSON median e la lib e ía A duinoJson, lo que acili a la in eg ación con aplicaciones ex e nas y sis emas de moni o ización. El código ambién implemen a la ges ión de u as no encon adas, de ol iendo mensajes de e o de allados pa a acili a la depu ación. La uncionalidad de ac ualización OTA se implemen a g acias a la lib e ía Elegan OTA, que añade una in e az web embebida y callbacks pa a moni o iza el p og eso, ges iona e o es y einicia au omá icamen e el disposi i o as una ac ualización exi osa. Po úl imo, el i mwa e in eg a mDNS pa a anuncia el disposi i o en la ed local bajo un nomb e legible, como ` g-io -XXXX.local`, acili ando su descub imien o y acceso sin necesidad de conoce la di ección IP. Todo el ciclo p incipal de ejecución (`loop`) es á diseñado pa a se no bloquean e, u ilizando la unción `millis()` en luga de `delay()`, lo que asegu a la capacidad de espues a del se ido web y del sis ema OTA en odo momen o. Todo lo an e io compond ía los bloques del i mwa e de nues o mic ocon olado ( e igu a 9). Figu a 9. Diag ama de bloques de los modulos del i mwa e 15 15 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 2.2.3 Funcionamien o de OTA: pa iciones y p oceso de ac ualización El p oceso de ac ualización OTA no consis e simplemen e en en ia nue o código a un disposi i o; equie e una a qui ec u a obus a que ga an ice la in eg idad del sis ema incluso an e allos du an e la ac ualización ( e Figu a 10). Figu a 10. Esquema ac ualización OTA 2.2.3.1 Pa iciones de memo ia y su unción El mecanismo de ac ualización OTA en el ESP32 equie e una con igu ación especí ica de la memo ia lash del disposi i o, que incluye al menos dos pa iciones de aplicación y una pa ición de da os dedicada a OTA. Es a es uc u a es esencial pa a ga an iza la iabilidad y segu idad del p oceso de ac ualización emo a del i mwa e [30]. Las dos pa iciones de aplicación, comúnmen e denominadas `o a_0` y `o a_1`, pe mi en aloja di e en es e siones del i mwa e. Mien as el sis ema ejecu a el i mwa e desde una de es as pa iciones, la o a queda disponible como des ino pa a la nue a e sión du an e una ac ualización. Es e en oque posibili a que el disposi i o siga uncionando no malmen e mien as se esc ibe la nue a imagen en la pa ición inac i a, e i ando in e upciones en el se icio [31]. Po su pa e, la pa ición de da os OTA almacena in o mación c í ica que indica al boo loade cuál de las pa iciones de aplicación debe u iliza se du an e el a anque. T as comple a una ac ualización, el sis ema puede e i ica la in eg idad de la nue a imagen an es de modi ica la con igu ación de a anque pa a que el disposi i o u ilice la pa ición ac ualizada. Si se de ec a algún allo, es posible implemen a mecanismos de ollback [30], de ol iendo el sis ema a la e sión an e io de i mwa e y asegu ando así la obus ez y la ecupe ación an e e o es en el p oceso de ac ualización Me odología 16 2.2.3.2 P oceso de ac ualización OTA y ollback El p oceso de ac ualización OTA es á diseñado pa a ga an iza la segu idad y la iabilidad del disposi i o du an e la ins alación de nue as e siones de i mwa e. Es e mecanismo ( e abla 3) ap o echa la a qui ec u a de doble pa ición y el uso de una pa ición de da os OTA, pe mi iendo que el sis ema pueda ecupe a au omá icamen e una e sión an e io en caso de allo [30]. Así, se minimiza el iesgo de deja el disposi i o inope a i o as una ac ualización de ec uosa. Paso Acción p incipal Obje i o Resul ado espe ado 1 Iden i icación de la pa ición inac i a Selecciona el des ino segu o pa a la nue a ac ualización sin a ec a la ope ación ac ual Se de e mina cuál de las pa iciones es donde se debe aloja la nue a ac ualización 2 Desca ga y esc i u a de la nue a imagen T ans e i el i mwa e ac ualizado al disposi i o y almacena lo de o ma segu a La nue a e sión del i mwa e se gua da en la pa ición inac i a mien as el sis ema sigue ope a i o 3 Ve i icación de in eg idad Comp oba que la imagen desca gada no es á dañada ni ha sido al e ada Solo se p ocede si la imagen es álida; si no, se abo a la ac ualización 4 Ac ualización de la pa ición de da os OTA Indica al boo loade que debe a anca desde la nue a pa ición en el siguien e einicio El sis ema queda p epa ado pa a p oba la nue a e sión en el p óximo a anque 5 Reinicio del disposi i o Aplica el cambio de i mwa e ca gando la nue a imagen El disposi i o a anca desde la nue a pa ición con el i mwa e ac ualizado 6 Au odiagnós ico del nue o i mwa e Ve i ica que la nue a e sión unciona co ec amen e y que los se icios c í icos es án ope a i os Si el diagnós ico es exi oso, se alida la ac ualización; si alla, se inicia el ollback 7 Validación o ollback au omá ico Ga an iza la iabilidad del sis ema, es au ando la e sión an e io en caso de allo El disposi i o ma ca la nue a e sión como es able o, si hay p oblemas, e ie e au omá icamen e a la e sión p e ia Tabla 3. P oceso ac ualización OTA 2.2.3.3 La lib e ia Elegan OTA La lib e ía Elegan OTA se usa pa a implemen a el p oceso de ac ualización OTA en disposi i os IoT. Es a solución p opo ciona an o APIs como in e aces web que pe mi en ges iona el p oceso de ac ualización OTA sin necesidad de implemen a manualmen e odos los pasos écnicos eque idos po el mecanismo es ánda [32]. Elegan OTA au oma iza y simpli ica el p oceso de ac ualización OTA al inclui un se ido web embebido que expone una in e az g á ica accesible desde la u a `/upda e` ( e igu a 11). A a és de es a in e az, el usua io puede ca ga ácilmen e un nue o i mwa e o a chi os del sis ema de iche os, sin eque i conocimien os a anzados de edes o manejo de pa iciones. Además, la lib e ía o ece APIs 17 17 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT especí icas que pe mi en inicia y con ola el p oceso de ac ualización OTA di ec amen e desde el código del disposi i o, in eg ándose con los p incipales amewo ks de desa ollo pa a ESP32, como A duino IDE y Pla o mIO. Ademas o ece los endpoin s /o a/s a y /o a/upload pa a ac ualiza el i mwa e di ec amen e ia API. Figu a 11. Diag ama de lujo ac ualizacion OTA po web 2.2.4 P og amación del ESP32-WROOM-32. Mic ose ido REST Un se ido REST es una implemen ación de se icios web que implemen a los p incipios a qui ec ónicos de inidos po Roy Fielding en el año 2000 [33]. En el con ex o IoT, es os se ido es ac úan como in e media ios pa a la comunicación en e disposi i os, aplicaciones y sis emas en la nube. Me odología 18 2.2.4.1 Endpoin s de nues a API En el i mwa e de nues os ESP32 enemos con igu ada la API con una se ie de endpoin s básicos ( e abla 4) que unidos a los que p opo ciona la lib e ía Elegan O a pe mi en la con igu ación necesa ia pa a nues o P oyec o: Endpoin Mé odo Función / e sión GET Ob iene la e sion y la echa del ul imo commi /o a/s a GET Inicializa la ac ualización OTA /o a/upload POST Sube el bina io del i mwa e a usa en la ac ualización OTA / ead GET Lee y de uel e el es ado ac ual de los pines del disposi i o /w i e POST Modi ica el es ado de un pin especi ico en el disposi i o Tabla 4. Endpoin s de la API REST del mic ocon olado 2.2.5 P og amación del ESP32-WROOM-32 – mul icas DNS (mDNS) mDNS es un p o ocolo diseñado pa a acili a la esolución de nomb es en edes locales sin depende de un se ido DNS cen alizado [23]. U iliza el pue o 5353 y la di ección mul icas 224.0.0.251, pe mi iendo que los disposi i os conec ados a la misma ed puedan anuncia su p esencia y descub i a o os sin necesidad de con igu aciones adicionales, lo que se conoce como “Ze o-con igu a ion ne wo king”. Es a ca ac e ís ica esul a especialmen e ú il en en o nos IoT, donde es habi ual que nue os disposi i os deban in eg a se y comunica se au omá icamen e con el es o del Sis ema [34]. Po ejemplo, al implemen a mDNS en un ESP32, se puede asigna un nomb e de hos legible, como “senso - empe a u a.local”, en luga de ene que eco da una di ección IP numé ica. Además, el ESP32 puede anuncia los se icios que o ece, como un se ido web o una API REST, lo que pe mi e que o os disposi i os o aplicaciones en la ed local lo descub an y accedan a sus unciones sin in e ención manual. Así, si un usua io conec a un nue o mic ocon olado a la ed, pod á localiza lo ácilmen e desde su o denado o sma phone simplemen e accediendo a “senso - empe a u a.local” en el na egado , sin necesidad de busca la IP o modi ica la con igu ación de ed. Es a uncionalidad simpli ica eno memen e la in eg ación y ges ión de disposi i os en edes IoT. 19 19 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 2.3 Rpi: API REST La API del nodo cen al del sis ema debe p opo ciona a ias uncionalidades c í icas: • Descub imien o de disposi i os: U ilizando mDNS pa a encon a odos los disposi i os ESP32 en la ed local. • Ac ualización de los i mwa es: subida de los bina ios a los mic ocon olado es. • Lec u a/esc i u a de pines: comunicación con los ESP32 pa a lee y esc ibi el es ado de sus pines. El siguien e a chi o mues a que la API REST ( e abla 5), hecha en Py hon median e la lib e ía Fas Api, que se dedica a descub i los disposi i os y a ejecu a a eas de ac ualización median e los siguien es endpoin s: Endpoin Mé odo Función /io -de ices GET Lis ado de disposi i os de ec ados / e sion/{ip} GET Consul a y de uel e la e sion del i mwa e del disposi i o /upda e- i mwa e/{ip} POST Inicia ac ualización OTA del disposi i o especi icado ecibiendo el bina io del nue o i mwa e / ead/{ip} GET Lee y de uel e el es ado ac ual de los pines del disposi i o seleccionado /w i e/{ip} POST Modi ica el es ado de un pin especi ico en el disposi i o co espondien e Tabla 5. Endpoin s de la API REST del nodo cen al 2.4 Rpi: in e az Web El on end del sis ema cen al de ac ualización OTA es á diseñado como una página web es á ica que p opo ciona una in e az pa a la ges ión de disposi i os y ac ualizaciones en la ed local. Es a in e az pe mi e isualiza odos los disposi i os descubie os, consul a in o mación ele an e como la e sión ac ual del i mwa e o el nomb e de cada disposi i o, y ges iona el p oceso de ac ualización. Pa a log a es a uncionalidad, se ha u ilizado un iche o HTML como base pa a la es uc u a de la página, mien as que el iche o Ja aSc ip se enca ga an o de la in e acción dinámica con el DOM como de la comunicación con el backend a a és de la unción na i a e ch, que pe mi e ealiza pe iciones de ed y ac ualiza la in e az en iempo eal según los disposi i os de ec ados. El desa ollo del on end se ha ealizado u ilizando el IDE WebS o m, que acili a la edición, depu ación y o ganización del código, además de o ece he amien as a anzadas pa a la ges ión de p oyec os web. Todo el on end es á alojado en la Raspbe y Pi, que ac úa como se ido cen al en la a qui ec u a, pe mi iendo que cualquie usua io conec ado a la ed local pueda accede ácilmen e a la in e az desde su na egado , sin necesidad de ins ala so wa e adicional. Me odología 20 2.5 Rpi: Se ido web Pa a hace accesibles los se icios que o ece el nodo cen al ( on end y API REST) necesi amos un se ido web. Usamos Caddy [35] como se ido web uni icado pa a: • Se i el on end es á ico (HTML/CSS/JS). • Ac ua como p oxy in e so pa a la API REST del backend • Ges iona TLS au omá ico median e in eg ación con Cloud la e. G acias al uso de Caddy y su a chi o de con igu ación Caddy ile se simpli ica mucho el despliegue y ges ión de los se icios que ienen que o ece se a a és del se ido web. En nues o caso, usamos Cloud la e y su API pa a pode usa lo como se ido DNS y pode usa dominios TLD ( e igu a 12) y ce i icados TLS álidos en el en o no de nues a ed local. Figu a 12. Con igu ación del dominio en Cloud la e 2.6 Docke ización del nodo cen al La docke ización del nodo cen al ep esen a un a ance signi ica i o en la a qui ec u a de nues o sis ema de ac ualización OTA, especialmen e al implemen a se sob e una RPi. En es e con ex o, Docke no solo apo a po abilidad y aislamien o, sino que ans o ma la RPi en un e dade o se ido de se icios capaz de ges iona de o ma e icien e y segu a los p ocesos c í icos del sis ema. La RPi asume así el papel de nodo cen al, o ques ando la API, el on end y el se ido web, y pe mi iendo que cada uno de es os se icios se ejecu e en su p opio con enedo , comple amen e aislado de los demás. Es o p e iene con lic os de dependencias y acili a la ges ión de e siones, ya que cada se icio puede ac ualiza se, einicia se o e e i se de mane a independien e y con olada. Además, Docke Compose pe mi e de ini y ges iona con igu aciones complejas de múl iples con enedo es de o ma decla a i e. En de ini i a, la in eg ación de Docke en la RPi con ie e es e disposi i o en un nodo cen al obus o, lexible y ácilmen e ges ionable den o de nues o sis ema de ac ualización OTA. Pe mi e desplega , escala y man ene los se icios c í icos de mane a e icien e, asegu ando que el sis ema de ac ualización emo a sea iable y sencillo de ope a , incluso cuando el en o no e oluciona o equie e cambios ápidos en la in aes uc u a. 2.6.1 Con aine ización de los se icios Docke se enca ga de la c eación de los di e en es se icios. En nues o caso emenos el se icio esp32- o a-webse e que con igu a el se icio del se ido web con Caddy y esp32-o a.api que se enca ga de con igu a py hon y de pone en uncionamien o la API. En el docke -compose.yml podemos e como se con igu an los se icios y las edes que se usan. El se icio esp32-o a.api hace uso de la ed del an i ión pa a el descub imien o de nues os disposi i os IoT que se anuncian usando mDNS, es po eso que el ne wo k_mode es á como “hos ”. 21 21 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 2.6.2 Es uc u a de a chi os Todos los se icios se án mon ados con docke , asi que necesi amos ins ala lo en nues a Rpi siguiendo la documen ación o icial [36] . Con docke ins alado necesi amos clona odo el codigo de la aplicacion que se encuen a en el eposi o io h ps://gi lab.com/esp32-o a/app de gi lab. Una ez desca gado nos queda á una es uc u a de a chi os ( e igu a 13) que sepa a á la logica de la aplicación en los siguien es di ec o ios: Figu a 13. Es uc u a de iche os del nodo cen al • bin/: es a ca pe a con iene sc ip s que son necesa ios pa a la ac ualización au oma ica de los disposi i os IoT. • docke /: es e di ec o io con iene oda la con igu ación an o de docke como de los se icios que mon a (caddy como webse e y con igu acion pa a la API de Cloud la e). • public/: aqui emenos la in e az web que p opo ciona el se ido web a los usua ios. s c/: en es a ca pe a es á el código en py hon de nues a API. 2.7 In eg ación y en ega con inua (CI/CD) La in eg ación y en ega con inua ep esen an un pa adigma undamen al en el desa ollo de so wa e mode no, pe mi iendo a los equipos en ega alo de mane a más ápida y consis en e. 2.7.1 Fundamen os del CI/CD La in eg ación con inua (CI) es una p ác ica de desa ollo de so wa e en la que los desa ollado es in eg an ecuen emen e cambios de código en un eposi o io compa ido, donde cada in eg ación es e i icada median e una compilación au oma izada y p uebas pa a de ec a e o es ápidamen e [37]. Es a me odología su gió como espues a a los desa íos del desa ollo adicional, donde las in eg aciones manuales de código esul aban en p ocesos len os y p opensos a e o es, especialmen e en equipos g andes [38]. Po o o lado, la en ega con inua (con inuous deli e y o CD) es un en oque de ingenie ía de so wa e donde los equipos p oducen so wa e en ciclos co os, asegu ando que puede se libe ado de o ma con iable en cualquie momen o [39]. Es e en oque acili a la educción del cos e, iempo y iesgo del p oceso de implemen ación a a és de e siones más inc emen ales en aplicaciones de p oducción. Es impo an e dis ingui en e en ega con inua y despliegue con inuo: Mien as que la en ega con inua au oma iza las in eg aciones de código has a el pun o donde es á lis o pa a p oducción (pe o equie e ap obación manual pa a el despliegue), el despliegue con inuo au oma iza comple amen e el p oceso has a la implemen ación en p oducción [40]. Me odología 22 2.7.2 Implemen ación del CI/CD en nues o P oyec o Pa a la ges ió de las e sions del i mwa e del ESP32 in eg amos un pipeline CI/CD en Gi lab median el iche o de con igu ación .gi lab-ci.yml. Con es o conseguimos que cada ez que se gene e un ag en el P oyec o se c ee un a e ac o que con iene el bina io que ep esen a el nue o i mwa e que ue gene ado as la build del código. Es e a e ac o es pos e io men e desca gado y usado pa a la ac ualización de los ESP32 de mane a au oma ica. po nues o nodo cen al. 23 23 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 3 RESULTADOS EXPERIMENTALES s a sección p esen a los pun os p incipales y descub imien os ob enidos du an e la implemen ación del nues o p oyec o. Se desc iben los p ocedimien os ealizados, las p uebas e ec uadas y los da os ecogidos con el obje i o de e alia el uncionamien o de la a qui ec u a p opues a. 3.1 P uebas con el mic ocon olado Las p uebas que se an a ealiza ienen que con i ma el uncionamien o espe ado de nues o i mwa e del mic ocon olado ESP32 y cumpli con los equisi os uncionales siguien es pa a da po álido nues o i mwa e. 3.1.1 Requisi o de publicación de los se icios median e mDNS Nos conec amos a la sub ed donde es án conec ados nues os ESP32 y ejecu amos el commando ‘dns- sd -B’ que lis a á odos los ipos de se icio anunciados po mDNS ( e igu a 14). Figu a 14. Descub imien o se icios mDNS Como podemos e , se lis an las di e en es ins ancias que coinciden con el nomb e que le hemos dado y el ipo de se icio HTTP. E Los mic op ocesado es se es án me iendo en odo. En un u u o ce cano no hab á ningún acceso io -sal o una escoba, acaso- que no enga un p ocesado den o. - A hu C. Cla ke - Resul ados expe imen ales 30 3.3.2 Requisi o de ob ene la e sion del i mwa e en uncionamien o Pa a e la e sion pulsamos sob e el bo on ‘Ve e sión’ al lado del disposi i o cuya e sion que amos comp oba . Una ez hecho es o se ha á la pe icion necesa ia y se mos a á el esul ado en un popup ( e igu a 26) Figu a 26. Ve e sión del i mwa e en la web Podemos e en los paque es de la ed que se ealiza una pe ición al backend al endpoin / e sión seguido de la ip del disposi i o cuya e sión se quie e consul a y se pin a en el popup la espues a. 31 31 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 3.3.3 Requisi o de lee /esc ibi pines Pa a lee /esc ibi pines debemos pulsa en la pagina p incipal sob e el bo ón ‘lee pines’ asociado al disposi i o que que amos accede . Es o ab i á un popup donde se puede e el es ado de los pines ( e igu a 27) y se pueden modi ica los pines del 12 al 15. Figu a 27. Ve es ado de pines en la in e az web Pa a modi ica el es ado de los pines solo hay que pulsa sob e el bo ón ‘Cambia ’ al lado del pin que deseemos cambia de es ado ( e igu a 28). Es o ha á una llamada /w i e al backend seguido de la ip del disposi i o cuyo pin que emos cambia diciendole que cambie de es ado. Resul ados expe imen ales 32 Figu a 28. Cambio de es ado de pin usando la web Como podemos e al cambia el pin 12, que co esponde al LED ojo, es e se enciende. 3.3.4 Requisi o de ac ualiza el i mwa e La ac ualización del i mwa e se ealiza al pulsa sob e el bo ón ‘Ac ualiza i mwa e’ del disposi i o deseado. Cuando se hace es o se ab e un selec o de a chi os donde pondemos selecciona el bina io que que emos subi ( e igu a 29) pa a ac ualiza el disposi i o. Figu a 29. Selecciona el i mwa e pa a ac ualiza ia web 33 33 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT Una ez hecho es o se hace una pe ición al backend al endpoin upda e- i mwa e seguido de la ip del disposi i o que que emos ac ualiza y se manda como ‘Fo m Da a’ el bina io en la p opiedad ile pa a que el back haga las pe iciones pe inen es y p oceda a la ac ualización ( e igu a 30). Figu a 30. Fi mwa e ac ualizado co ec amen e a a es de la web En el caso de que la ac ualización diese un e o , el popup mos a ia el mensaje de que no se pudo ac ualiza , dando así eedback al usua io independien emen e del esul ado de la ope ación. Resul ados expe imen ales 34 3.4 P uebas del nodo cen al El nodo cen al es una Rpi con los se icios docke izados. Es el eje cen al de nues o p oyec o. 3.4.1 Requisi o de docke ización de los se icios del nodo cen al Nos conec amos al docke y haciendo uso del comando ‘docke ps’ ( e igu a 31) podemos comp oba si los se icios que de inimos en el iche o docke -compose.yml es án co ec amen e desplegados. Figu a 31. Comp oba los con aine s desplegados en el nodo cen al Tal y como es á especi icado en el docke -compose.yml hay dos se icios desplegados, el webse e con nomb e ‘esp32-o a.webse e ’ y el backend con nomb e ‘esp32-o a.api’. 3.4.2 Requisi o de ac ualización de odos los mic ocon olado es de la ed La ac ualización desde el nodo cen al iene dos pasos, p ime o la ejecución del sc ip download-las - i mwa e que consigue desca ga el ul imo i mwa e disponible desde Gi lab ( e igu a 32). Figu a 32. Desca ga el ul imo i mwa e al nodo cen al 35 35 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT Una ez enemos el ul imo i mwa e ca gado en el nodo cen al, solo enemos que ejecu a el sc ip upda e-all-de ices ( e igu a 33) que p ime o ob iene un lis ado de odos los disposi i os pa a pos e io men e hace las pe iciones necesa ias al back pa a ca ga en cada disposi i o el nue o i mwa e. Figu a 33. Ac ualización de odos los disposi i os IoT desde el nodo cen al Como podemos comp oba se ealiza la ac ualización de cada disposi i o y se mues a si la ac ualización ue exi osa o no con una elación inal de odos los disposi i os de la ed que ue on ac ualizados o no. Resul ados expe imen ales 36 37 37 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT 4 CONCLUSIONES Y MEJORAS FUTURAS s e abajo de in de g ado ha enido como obje i o p incipal desa olla y e alua un sis ema iable y e icien e de ac ualización OTA de mic ocon olado es con un nodo cen al como coo dinado del sis ema y haciendo uso de he amien as de in eg ación con inua pa a acili a el desa ollo del i mwa e de los mic ocon olado es ESP32. A su ez p opo cionamos una in e az web pa a ejecu a acciones de mane a manual sob e los mic ocon olado es del sis ema. 4.1 Resumen de los esul ados ob enidos A lo la go del abajo se han alcanzado los siguien es esul ados 4.1.1 Implemen ación y con igu ación de los mic ocon olado es Se han in eg ado con exi o los mic ocon olado es ESP32 en nues o sis ema de ac ualización OTA. La con igu ación del mic ose ido REST y la implemen ación de la lib e ia Elegan OTA ha pe mi ido an o la ges ion emo a de pines como la ac ualización OTA del i mwa e. Tambien median el uso de mDNS hemos conseguido anuncia el se icio de la API a la ed, de mane a que los ESP32 puedan se encon ados po o os usua ios de mane a sencilla. 4.1.2 Desa ollo de la API REST en el nodo cen al La c eación de una API en el nodo cen al ha sido cla e pa a la coo dinación de odos los elemen os que lo in eg an, o eciendo capacidades de ges ion mas po en es que si nos comunica amos di ec amen e con el se ido REST de los mic ocon olado es. La API in eg a descub imien o de los mic ocon olado es usando mDNS, ges ion de pines y ac ualización OTA del i mwa e. 4.1.3 C eación de la in e az web La in e az web pe mi e ges iona los ecu sos de la API del nodo cen al de una mane a isual, acili ando la in e acción con el sis ema po pa e del usua io. En la web se ha in eg ado lo necesa io pa a usa odos y cada uno de los endpoin s c eados en la API del nodo cen al. 4.1.4 In eg ación del se ido web G acias al se ido web Caddy hemos podido añadi una capa de segu idad a nues o sis ema usando Cloud la e y un dominio pa a consegui ci ado TLS en nues as comunicaciones HTTP. Apa e de es o el se ido web si e de o ma sencilla los a chi os de la in e az web y si e de p oxy in e so pa a edi igi las pe iciones a la API del nodo cen al. E La ciencia nunca esuel e un p oblema sin c ea o os diez más. - Geo ge Be na d Shaw - Conclusiones y mejo as u u as 38 4.1.5 Docke izacion de los se icios del nodo cen al Usando docke acili amos la in eg ación de cambios u u os en nues os di e en es se icios, ac ualizando nues os con enedo es y ejecu ando un solo commando end iamos los se icios ac ualizados y uncionando con la segu idad de que odo unciona á sin p oblemas. 4.1.6 In eg ación con inua en el desa ollo del i mwa e de los mic ocon olado es Se ha implemen ado un lujo de in eg ación con inua en Gi lab donde cada ez que se gene a un ag se gene a el bina io del i mwa e y se almacena de mane a que el nodo cen al puede desca ga lo y ac ualize los mic ocon olado es sin in e ención del usua io. 4.1.7 P uebas de uncionamien o Se han ealizado di e en es p uebas pa a de e mine el uncionamien o espe ado segun los equisi os. Se han es eado las ac ualizaciones OTA del i mwa e y la esc i u a y lec u a de pines an o di ec amen e sob e los mic ocon olado es como a a es de la web del nodo cen al. También se ha p obado la ejecución de sc ip s au oma icos pa a la ac ualización de los ESP32 y el co ec o uncionamien o de la in eg ación con inua. 4.2 Posibles mejo as Es os esu lados sien an las bases pa a u u as mejo as y ex ensions del sis ema, incluyendo in eg ación de ci ado ex emo a ex emo en los mic ocon olado es, ac ualizaciones de odos los disposi i os en pa alelo e incluso ope aciones mas complejas sob e el conjun o de ESP32. 4.2.1 Mejo as de segu idad Aunque la comunicación en e el clien e que usa la in e az web y el nodo cen al es án enc ip adas, se usa HTTPS, la comunicación con los mic ocon olado es no lo es á. La mejo a consis i ia en implemen a ce i icados i mados en los mic ocon olado es o incluso el uso de un unel VPN ubicando los mic ocon olado es en una ed que sepamos segu a comple amen e. 4.2.2 Ac ualización en pa alelo de odos los disposi i os Aho a mismo cuando se ejecu a una ac ualización global de odos los mic ocon olado es, se ejecu a de mane a secuencial sob e cada disposi i o pa a ene el con ol o al del p oceso. La ac ualización consis i ia en implemen a he amien as asinc onas pa a hace una ac ualización simul aneal de los mic ocon olado es, lo que educi ía mucho el iempo de ejecución de es as ac ualizaciones gene ales. 4.2.3 Mejo as en la in eg ación con inua La implemen ación que hemos hecho de la in eg ación con inua consis e simplemen e en la c eación de un a e ac o con el bina io esul an e de la build del código del mic ocon olado cuando se c ea un ag nue o. Se debe ían c ea di e en es pipelines pa a cada es ado del desa ollo del i mwa e, desde la implemen ación de nue as uncionalidades has a el despliegue en un en o no eal, cada una con sus p uebas especi icas e incluso gene ación de eleases dado el caso. 39 39 Sis ema de desa ollo e in eg ación con inua O e -The-Ai pa a mic ocon olado es IoT