Este Trabajo Fin de Grado presenta el diseño y desarrollo del módulo controlador del proyecto “Purify my Water”, un sistema de potabilización de agua modular, autónomo y autosuficiente, pensado para operar a pequeña escala en zonas remotas con escasez de recursos. El proyecto busca dar respuesta al desafío global de acceso a agua potable segura y asequible, en línea con el Objetivo de Desarrollo Sostenible 6.1.
El trabajo presenta el diseño de alto nivel de todo el sistema de potabilización, que se compone de una Unidad de Control Electrónico (ECU), un módulo de energía y diversos módulos de potabilización intercambiables que se adaptan a diferentes contaminantes del agua. Este se centra en el diseño y desarrollo de los componentes software clave de la ECU, implementados sobre un microcontrolador ESP32 y el framework ESP-IDF con FreeRTOS.
Los principales componentes desarrollados son:- Un sistema de comunicación intermodular robusto y eficiente basado en el bus CAN y el protocolo de transporte ISO-TP.- Un sistema de gestión de la configuración para almacenar y modificar de forma persistente los parámetros del sistema.- Un gestor de dispositivos encargado de descubrir y mantener un listado actualizado de los módulos conectados.- Un sistema de actualizaciones inalámbricas (OTA) que permite el mantenimiento y la mejora del software a distancia mediante una conexión Wi-Fi.
La metodología de desarrollo pone el foco en la calidad y la fiabilidad, empleando el Desarrollo Guiado por Pruebas (TDD), la integración Continua (CI) con GitHub Actions y herramientas de análisis de código como SonarQube y Clangtools. Para desacoplar el software del hardware y facilitar las pruebas, se ha recurrido al uso de capas de abstracción y a técnicas como el mocking y faking.
El proyecto supone una contribución técnica importante para la creación de una solución de potabilización asequible y escalable, con especial hincapié en la modularidad y la operación autónoma para minimizar el mantenimiento y la dependencia de cadenas de suministro.
ABSTRACT
This Final Degree Project details the design and development of the controller module for “Purify my Water,” a modular, autonomous, and self-sufficient water purification system designed for small-scale use in remote areas with limited resources. The project aims to address the global challenge of providing safe and affordable drinking water, aligning with Sustainable Development Goal 6.1.
The work presents the high-level design of the entire purification system, which is composed of an Electronic Control Unit (ECU), an energy module, and various interchangeable purification modules that adapt to different water contaminants. The core of this thesis is the design and development of the ECU’s key software components, built upon an ESP32 microcontroller and the ESP-IDF framework with FreeRTOS. Key developed components include: – An inter-modular communication system using the CAN bus and the ISO-TP protocol to ensure robust and efficient data exchange. – A centralized configuration management system for storing and modifying operational parameters persistently. – A device management system to discover and maintain a list of connected modules. – An Over-The-Air (OTA) update system that allows for remote software maintenance and improvements via a Wi-Fi connection. The development methodology emphasizes quality and reliability through TestDriven Development (TDD), Continuous Integration (CI) using GitHub Actions, and the use of analysis tools like SonarQube and Clang. To decouple software from specific hardware and facilitate testing, the design extensively uses hardware abstraction layers and techniques like mocking and faking.
The project represents a significant technical contribution towards creating an affordable, scalable, and effective solution for water purification in developing regions, with a strong focus on modularity and autonomous operation to minimize maintenance and the need for a constant supply chain
Este Trabajo Fin de Grado presenta el diseño y desarrollo del módulo controlador del proyecto “Purify my Water”, un sistema de potabilización de agua modular, autónomo y autosuficiente, pensado para operar a pequeña escala en zonas remotas con escasez de recursos. El proyecto busca dar respuesta al desafío global de acceso a agua potable segura y asequible, en línea con el Objetivo de Desarrollo Sostenible 6.1.
El trabajo presenta el diseño de alto nivel de todo el sistema de potabilización, que se compone de una Unidad de Control Electrónico (ECU), un módulo de energía y diversos módulos de potabilización intercambiables que se adaptan a diferentes contaminantes del agua. Este se centra en el diseño y desarrollo de los componentes software clave de la ECU, implementados sobre un microcontrolador ESP32 y el framework ESP-IDF con FreeRTOS.
Los principales componentes desarrollados son:- Un sistema de comunicación intermodular robusto y eficiente basado en el bus CAN y el protocolo de transporte ISO-TP.- Un sistema de gestión de la configuración para almacenar y modificar de forma persistente los parámetros del sistema.- Un gestor de dispositivos encargado de descubrir y mantener un listado actualizado de los módulos conectados.- Un sistema de actualizaciones inalámbricas (OTA) que permite el mantenimiento y la mejora del software a distancia mediante una conexión Wi-Fi.
La metodología de desarrollo pone el foco en la calidad y la fiabilidad, empleando el Desarrollo Guiado por Pruebas (TDD), la integración Continua (CI) con GitHub Actions y herramientas de análisis de código como SonarQube y Clangtools. Para desacoplar el software del hardware y facilitar las pruebas, se ha recurrido al uso de capas de abstracción y a técnicas como el mocking y faking.
El proyecto supone una contribución técnica importante para la creación de una solución de potabilización asequible y escalable, con especial hincapié en la modularidad y la operación autónoma para minimizar el mantenimiento y la dependencia de cadenas de suministro.
ABSTRACT
This Final Degree Project details the design and development of the controller module for “Purify my Water,” a modular, autonomous, and self-sufficient water purification system designed for small-scale use in remote areas with limited resources. The project aims to address the global challenge of providing safe and affordable drinking water, aligning with Sustainable Development Goal 6.1.
The work presents the high-level design of the entire purification system, which is composed of an Electronic Control Unit (ECU), an energy module, and various interchangeable purification modules that adapt to different water contaminants. The core of this thesis is the design and development of the ECU’s key software components, built upon an ESP32 microcontroller and the ESP-IDF framework with FreeRTOS. Key developed components include: – An inter-modular communication system using the CAN bus and the ISO-TP protocol to ensure robust and efficient data exchange. – A centralized configuration management system for storing and modifying operational parameters persistently. – A device management system to discover and maintain a list of connected modules. – An Over-The-Air (OTA) update system that allows for remote software maintenance and improvements via a Wi-Fi connection. The development methodology emphasizes quality and reliability through TestDriven Development (TDD), Continuous Integration (CI) using GitHub Actions, and the use of analysis tools like SonarQube and Clang. To decouple software from specific hardware and facilitate testing, the design extensively uses hardware abstraction layers and techniques like mocking and faking.
The project represents a significant technical contribution towards creating an affordable, scalable, and effective solution for water purification in developing regions, with a strong focus on modularity and autonomous operation to minimize maintenance and the need for a constant supply chain Read More


