tdse-tf_3-02

Controlador PID para derretidor de miel con control local via botones y remoto via WiFi
Index Commits Files Refs Submodules README
commit 4482cbb05c2e84f2707ad3c656b5ff690071bbf3
parent b6fa1078b8906de7563240e3a737e39c8674f84b
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Sun, 31 May 2026 21:29:08 -0300

Agregar primera parte de `memoria.md`

Diffstat:
Aimg/ds18b20.png | 0
Aimg/ds18b20_wiring.png | 0
Aimg/esp01s-pinout.jpg | 0
Aimg/esp01s.jpg | 0
Aimg/nucleo_f103rb.png | 0
Aimg/nucleo_f103rb_axo.png | 0
Amemoria.md | 222+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 222 insertions(+), 0 deletions(-)
diff --git a/img/ds18b20.png b/img/ds18b20.png
Binary files differ.
diff --git a/img/ds18b20_wiring.png b/img/ds18b20_wiring.png
Binary files differ.
diff --git a/img/esp01s-pinout.jpg b/img/esp01s-pinout.jpg
Binary files differ.
diff --git a/img/esp01s.jpg b/img/esp01s.jpg
Binary files differ.
diff --git a/img/nucleo_f103rb.png b/img/nucleo_f103rb.png
Binary files differ.
diff --git a/img/nucleo_f103rb_axo.png b/img/nucleo_f103rb_axo.png
Binary files differ.
diff --git a/memoria.md b/memoria.md
@@ -0,0 +1,222 @@
+<div align="center">
+
+<img src="img/logofiuba.png" width="100%">
+
+**UNIVERSIDAD DE BUENOS AIRES**  
+**Facultad de Ingeniería**  
+**TA134 - Taller de Sistemas Embebidos**
+
+# Controlador de derretidor de miel
+
+**Martin Klöckner** - [mklockner@fi.uba.ar](mailto:mklockner@fi.uba.ar)
+
+**Fecha:** 31/05/2026  
+**Cuatrimestre de cursada:** 2do cuatrimestre de 2025
+
+*Trabajo realizado entre marzo y mayo de 2026.*
+
+</div>
+
+## Resumen
+
+En el presente trabajo se diseña e implementa un sistema para el control de un
+derretidor eléctrico de miel, reemplazando el sistema original basado en un
+termostato de bulbo capilar por un sistema digital. Las principales
+características del sistema diseñado son:
+
+- Control de temperatura mediante PID con salida PWM sobre MOSFET.
+- Sensor digital de temperatura DS18B20.
+- Interfaz local con display, botones, luces indicadores y buzzer.
+- Control remoto vía Wi-Fi con interfaz web.
+- Reloj de tiempo real con batería de respaldo y temporizador programable.
+- Persistencia de parámetros incluso si se pierde la alimentación.
+
+Los resultados demuestran la conveniencia de utilizar un controlador digital por
+sobre uno analógico de los equipos comerciales existentes. En las siguientes
+secciones se describe el diseño, la implementación y los resultados de las
+pruebas realizadas.
+
+# Índice General
+
+- [1. Introducción general](#1-introducción-general)
+  - [1.1. Alcance](#11-alcance)
+  - [1.2. Trabajos similares y alternativas](#12-trabajos-similares-y-alternativas)
+- [2. Introducción específica](#2-introducción-específica)
+  - [2.1 Requisitos](#21-requisitos)
+  - [2.2 Casos de uso](#22-casos-de-uso)
+  - [2.3 Descripción de módulos principales](#23-descripción-de-módulos-principales)
+    - [2.3.1 Control principal](#231-control-principal)
+    - [2.3.2 Módulo remoto](#232-módulo-remoto)
+    - [2.3.3 Sensor de temperatura](#233-sensor-de-temperatura)
+
+# 1. Introducción general
+
+## 1.1. Alcance
+
+Un derretidor eléctrico de miel es un equipo diseñado para elevar la temperatura
+de la miel de forma controlada, con el fin de reducir su viscosidad y facilitar
+su manipulación en procesos como envasado, filtrado y bombeo. En la figura 1.1
+se muestra un ejemplo de un derretidor eléctrico de miel convencional.
+
+<img style="padding: 10px" src="img/derretidor_convencional.png" width="100%">
+<p align="center"><em>Figura 1.1: Derretidor de miel convencional.</em></p>
+
+Los equipos comerciales actuales utilizan un sistema de control basado en un
+termostato de bulbo capilar, los cuales ofrecen un control rudimentario, sin
+capacidad de programación, monitoreo remoto o registro de datos. Es por esto que
+el objetivo del trabajo es diseñar e implementar un controlador digital para un
+derretidor eléctrico de miel para tambores, reemplazando el sistema original
+basado en un termostato por un sistema digital con mayor control, que permita:
+
+- Control preciso de temperatura.
+- Interfaz de usuario local con display y botones.
+- Control y monitoreo remoto vía Wi-Fi.
+- Programación de ciclos de derretido con temporizador.
+- Persistencia de parámetros ante cortes de energía.
+- Indicación luminosa y sonora de estados.
+
+## 1.2. Proyectos similares y alternativas
+
+No se encontraron productos comerciales que integren todas las funcionalidades
+propuestas a un costo accesible en el mercado nacional. Los derretidores de miel
+comerciales existentes se limitan a sistemas basados en termostatos, con control
+on/off y sin display, conectividad y capacidad de programación.
+
+En el ámbito académico, se identificaron proyectos similares en cuanto al
+control de temperatura, como un [horno eléctrico para gastronomía](https://docs.google.com/document/d/1ypnhOz-Gx_ZRbwiI6vEn4dvr7_YqNVnpy5sfgalQAoA/edit)
+y un [horno para componentes SMD](https://docs.google.com/document/d/1rQf3P1D7NSb7egpnlkKMTvL_rzy9PuMcMBPcu7NxmQw/edit),
+ambos de la misma materia (Sistemas Embebidos, FIUBA). Sin embargo, ninguno
+aborda la combinación de control PID, conectividad Wi-Fi con interfaz web, y
+temporizador programable en el contexto de derretido de miel.
+
+# 2. Introducción específica
+
+## 2.1 Requisitos
+
+En la tabla 2.1 se listan los requisitos definidos para el proyecto, junto con
+su descripción detallada.
+
+| ID | Requisito                  | Descripción                                                                   |
+| :- | :------------------------- | :---------------------------------------------------------------------------- |
+| 1  | Control por botones        | El usuario puede establecer y modificar parámetros mediante 4 botones físicos |
+| 2  | Control remoto             | El usuario puede controlar el dispositivo de manera remota vía Wi-Fi          |
+| 3  | Programación de ciclos     | El usuario puede programar ciclos con hora de inicio y fin                    |
+| 4  | Curvas de temperatura      | El usuario puede definir perfiles de calentamiento (no implementado)          |
+| 5  | Display                    | El sistema muestra el estado actual en un display LCD 16x2                    |
+| 6  | LEDs indicadores           | El sistema tiene LEDs para indicar estado de operación                        |
+| 7  | Alarma sonora              | El sistema tiene un buzzer para eventos y alarmas                             |
+| 8  | Monitoreo en tiempo real   | El sistema muestra temperatura, set point y duty cycle                        |
+| 9  | Conectividad Wi-Fi         | El sistema se conecta a redes Wi-Fi para comunicación remota                  |
+| 10 | Registro de temperatura    | El sistema almacena registro de temperatura (no implementado)                 |
+| 11 | Límite de temperatura      | El sistema tiene un límite máximo de temperatura                              |
+| 12 | Persistencia de parámetros | El sistema recuerda la última configuración al encender                       |
+| 13 | Reloj de tiempo real       | El sistema mantiene la hora incluso sin alimentación                          |
+
+<p align="center"><em>Tabla 2.1: Requisitos del proyecto</em></p>
+
+## 2.2 Casos de uso
+
+A continuación en las tablas 2.2, 2.3, 2.4, 2.5 y 2.6 se ejemplifican algunos
+casos de uso del derretidor de miel para cada uno de los modos de operación del
+sistema.
+
+| Elemento            | Definición                                                                                                                                                                |
+| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Disparador          | Se quiere detener un ciclo de derretido de miel de manera remota                                                                                                          |
+| Precondiciones      | El sistema está en modo normal operando el calefactor                                                                                                                     |
+| Flujo principal     | El usuario interactúa con la interfaz remota seleccionando la opción detener calefactor, se detiene el calefactor y se cambia a modo de operación en reposo               |
+| Flujos alternativos | Se pierde la conexión con el sistema, en caso de ocurrir previo a seleccionar la opción el sistema sigue operando en modo normal, se reintenta la conexión con el usuario |
+
+<p align="center"><em>Tabla 2.2: Caso de uso modo normal</em></p>
+
+| Elemento            | Definición                                                                                                                                                                                                                                                                                                                                           |
+| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Disparador          | Se desea programar un ciclo de derretido para una hora y fecha especifica                                                                                                                                                                                                                                                                            |
+| Precondiciones      | El sistema está en modo reposo operando el calefactor                                                                                                                                                                                                                                                                                                |
+| Flujo principal     | El usuario interactúa con la interfaz remota seleccionando la opción programar ciclo, elije entre las opciones disponibles y guarda la configuración. Llegado el momento definido por el usuario se cambia a modo de operación normal, enciendo el calefactor                                                                                        |
+| Flujos alternativos | En caso de que se pierda la energía previo a iniciar el ciclo, luego de que se vuelva a energizar el sistema y vuelva a modo reposo (si no hay fallas) el ciclo configurado permanece guardado porque los parámetros se guardan en memoria no volátil, llegado el momento configurado por el ciclo se cambia a modo normal encendiendo el calefactor |
+
+<p align="center"><em>Tabla 2.3: Caso de uso modo reposo</em></p>
+
+| Elemento            | Definición                                                                                                                                                                                                    |
+| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Disparador          | El sistema se energiza                                                                                                                                                                                        |
+| Precondiciones      | El sistema se encontraba apagado, desenergizado                                                                                                                                                               |
+| Flujo principal     | El sistema inicializa todos los bloques, se comprueba que no haya ciclos de derretido predefinidos para el momento actual, en caso de que los haya se pasa a modo normal, si no los hay se pasa a modo reposo |
+| Flujos alternativos | Si no se encuentra una red Wi-Fi disponible se pasa a modo falla indicando el error                                                                                                                           |
+
+<p align="center"><em>Tabla 2.4: Caso de uso modo transición</em></p>
+
+| Elemento            | Definición                                                                                                                                                                                                      |
+| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Disparador          | No se detecta una medición de temperatura o resulta en una medición absurda                                                                                                                                     |
+| Precondiciones      | El sistema se encontraba en modo normal operando el calefactor                                                                                                                                                  |
+| Flujo principal     | Se notifica en pantalla, con indicadores y a través de la interfaz remota que se ha detenido la operación del calefactor por falla en sensor                                                                    |
+| Flujos alternativos | El usuario reconoce la falla y presiona un botón que permite verificar nuevamente la medición del sensor en caso de que sea correcto y los parámetros estén en valores normales se vuelve a la operación previa |
+
+<p align="center"><em>Tabla 2.5: Caso de uso modo falla</em></p>
+
+
+| Elemento            | Definición                                                                                                                                                                                                      |
+| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Disparador          | El usuario selecciona en el menú o a través de la interfaz remota la opción de calibrar el sensor                                                                                                               |
+| Precondiciones      | El sistema se encuentra en modo reposo por al menor 30 minutos                                                                                                                                                  |
+| Flujo principal     | Se notifica en pantalla, con indicadores y a través de la interfaz remota que se encuentra en modo calibración y se debe ingresar la temperatura actual del sensor                                              |
+| Flujos alternativos | El usuario decide cancelar la calibración del sensor, se vuelve al modo previo                                                                                                                                  |
+
+<p align="center"><em>Tabla 2.6: Caso de uso modo calibración</em></p>
+
+## 2.3 Descripción de módulos principales
+
+### 2.3.1 Control principal
+
+El control principal se implementa en la placa NUCLEO-F103RB, la cual se puede
+ver en la figura 2.3.1 la cual utiliza un
+microcontrolador ARM Cortex-M3 de 32 bits STM32F103RBT6 con una frecuencia de 64
+MHz. Este módulo ejecuta el firmware principal del sistema, compuesto por un
+ejecutor cíclico con una pauta establecida de que un tick nunca puede superar 1
+ms. Este ejecutar cíclico tiene asociado 8 tareas: system, buttons, buzzer,
+leds, menu, temp ctrl, temp sensor y remote. La comunicación entre tareas se
+realiza mediante eventos encolados y una estructura de datos compartida.
+
+<div style="text-align: center;">
+    <img style="padding: 10px" src="img/nucleo_f103rb_axo.png" height="350">
+    <img src="img/nucleo_f103rb.png" style="padding: 10px;" height="350">
+    <p align="center"><em>Figura 2.1: Placa NUCLEO F103RB</em></p>
+</div>
+
+### 2.3.2 Módulo remoto
+
+Para el control remoto se utilizó el módulo Wi-Fi ESP-01S basado en un
+microcontrolador Espressif ESP8266. Este se comunica a través de UART con la
+placa NUCLEO para intercambiar comandos con un formato especifico. Su elección
+se basó en su bajo costo, disponibilidad en el mercado local y capacidad para
+actuar como servidor web.
+
+El firmware del ESP-01S fue desarrollado utilizando las librerias de Arduino a
+traves de PlatformIO e implementa funciones como la conexión a una red Wi-Fi
+fija, un servidor HTTP en el puerto 80 para servir la interfaz web estática
+desde LittleFS, servidor WebSocket en el puerto 81 para comunicación
+bidireccional en tiempo real, y hace de puente serial entre el servidor web y la
+placa NUCLEO.
+
+<div style="text-align: center;">
+    <img src="img/esp01s.jpg" style="padding: 10px;" height="300">
+    <img src="img/esp01s-pinout.jpg" style="padding: 10px;" height="300">
+    <p align="center"><em>Figura 2.2: Modulo ESP-01S</em></p>
+</div>
+
+### 2.3.3 Sensor de temperatura
+
+Se utilizo como sensor de temperatura el sensor DS18B20 de Maxim Integrated el
+cual es un termómetro digital con interfaz OneWire que ofrece una precisión de
+0.5 °C en el rango de -10 °C a 85 °C. Se seleccionó por su bajo costo y por
+tener la precisión adecuada para la aplicación.
+
+La placa NUCLEO no es compatible con el protocolo OneWire por defecto pero se
+se implementó un "emulador" del protocolo utilizando el periférico UART de la
+NUCLEO cambiando dinámicamente el baud rate (9600 baud para reset, 96500 baud
+para transferencia de datos). Y dado que la NUCLEO lo permite, se utilizo DMA
+para la comunicación con el sensor, disminuyendo así el tiempo de bloqueo del
+ejecutor cíclico.
+