DIY Enfriador de mostos con ESP8266 (Arduino)
¿Quién se puede negar a la petición de un padre? Nadie. Mucho menos con sólo una semana de tiempo para finalizar el proyecto (incluidas las compras). Y es que aunque el código es realmente sencillo, que AliExpress cumpla con tu timeline no es tarea sencilla… por ello siempre utilizo Amazon 😀
Requerimientos del proyecto
Un sistema para controlar la temperatura de los mostos y los vinos en barriles de como mínimo 500 litros… para las botellas ya existen las neveras. No sobra decir que en Gran Canaria no se hace necesario aumentar las temperaturas de los caldos; sólo bajarla.
La solución a medida (hardware)
ESP-01 + DS18B20 + RELAY + Enfriador de cerveza (segunda mano) + Programar un poquito = Padre contento. Paso a describir que es lo que hace cada uno de los componentes:
ESP-01
- WiFi 802.11 b/g/n (cuando consiga que mi padre se pase a Android la utilizaré).
- MCU integrada de bajo consumo.
- ADC integrados de 10 bits.
- Stack TCP/IP integrado.
- Un montón de cosas más
DS18B20
- Termómetro digital con bus 1-Wire
RELAY
Dispositivo electromagnético que, estimulado por una corriente eléctrica muy débil, abre o cierra un circuito en el cual se disipa una potencia mayor que en el circuito estimulador.
Enfriador de cerveza
Enfriador de cerveza (bajo barra) con un compresor de 5/8 CV, 40 litros de capacidad en la cuba y bomba de agua 200 litros/hora.
La solución a medida (software)
Programación
Por ahora en C/C++ (Arduino). En el futuro extensible a Java (Android).
El turrón
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
/* Enfriador de mostos y vinos Enciende y apaga un enfriador de cerveza. La bomba de agua que incorpora dicho enfriador, hacer pasar el agua super enfriada por un serpentín instalado en el exterior de los barriles de acero inoxidable cuando la temperatura sube de un punto establecido. El circuito: - GPIO2: se encarga de realizar las lecturas del sensor de temperatura. - GPIO0: se encarga de abrir y cerrar el relé para enceder y apagar el enfriador. creado en 2017 por Jesús Guillén LICENCIA: CC BY NC SA > Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional https://www.canaryx.net/ */ // Librerías #include <ESP8266WiFi.h> // ¿Necesita explicación? #include <OneWire.h> // Librería propietaria de Dallas Semiconductor para 1-Wire. #include <DallasTemperature.h> // Librería para el dispostivo DS18B20 entre otros // Definiendo los GPIO que es gerundio #define ONE_WIRE_BUS 2 const int RELAYONE = 0; // Configurando que también es gerundio OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); // Variable que guarda la temperatura actual. float actualTemperature = 19.0; void setup() { // Por si enviamos mensajitos Serial.setDebugOutput(true); Serial.begin(115200); // Inicializando el sensor de temperatura sensors.begin(); // Inicializando el relé pinMode(RELAYONE, OUTPUT); } void loop() { if (actualTemperature <= 18.0) { // Paramos el enfriador digitalWrite(RELAYONE, LOW); } else { // Encendemos el enfriador. Por defecto se enciende al conectar digitalWrite(RELAYONE, HIGH); } // Comprobar la temperatura sacando una media y guardar el valor. temperatureCheck(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
/* Enfriador de mostos y vinos Enciende y apaga un enfriador de cerveza. La bomba de agua que incorpora dicho enfriador, hacer pasar el agua super enfriada por un serpentín instalado en el exterior de los barriles de acero inoxidable cuando la temperatura sube de un punto establecido. El circuito: - GPIO2: se encarga de realizar las lecturas del sensor de temperatura. - GPIO0: se encarga de abrir y cerrar el relé para enceder y apagar el enfriador. creado en 2017 por Jesús Guillén LICENCIA: CC BY NC SA > Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional https://www.canaryx.net/ */ // Variables long lastTemperatureCheck = 0; float lastTemperatureValue = 0.0; int N = 10; // Constantes // Las lecturas de esas temperatura significan que algo no ha ido bien. const float badTemperatureOne = -127.00; const float badTemperatureTwo = 85.00; // Con esto sacamos una media de 10 lecturas para obtener temperaturas más precisas float takeAveragedReading() { float sum = 0.0; for (int i = 0; i < N; i++) { do { sensors.requestTemperatures(); // Solicita las temperaturas sum += sensors.getTempCByIndex(0); // whatever code reads the sensor } while (lastTemperatureValue == badTemperatureOne || lastTemperatureValue == badTemperatureTwo); } return sum / N; } // Comprobamos la temperatura cada 60 segundos y la guardamos void temperatureCheck() { if (millis() >= (lastTemperatureCheck + 60000)) { lastTemperatureValue = takeAveragedReading(); actualTemperature = lastTemperatureValue; Serial.print("Temperature: "); Serial.println(actualTemperature); lastTemperatureCheck = millis(); } } |
La explicación
Como podéis ver, sólo por costumbre, he utilizado varios ficheros para el sketch. Si bien en este caso no se hace necesario dado que el código apenas supera el par de líneas, es mejor acostumbrarse a ser organizado con cualquier proyecto.
El conexionado es bastante simple:
A.- Se conecta a la corriente eléctrica. Evidentemente, antes de conectarlo, debemos llevar el Neutro a B1 y la Fase al Terminal Común (C) del relé. Finalmente desde el terminal Normalmente Abierto (NO) sacamos otro cable hacia B1. Con este esquema de conexiones podremos encender y apagar el enfriador de cerveza cuando la temperatura llegue a los límites que establezcamos previamente.
B1 y B2.- Se conectan entre sí.
C.- Se pega con cinta de aluminio al exterior de los barriles de acero inoxidable en los que hemos enrollado previamente el serpentín por el cual circula el agua fría que sale del enfriador de cerveza.
Isabel
¡Hola!
Me parecen muy interesantes tus publicaciones 🙂
¡Qué buena solución buscaste para enfriar el mosto!
Enhorabuena.
CanaryX
Muchas gracias Isabel 🙂 espero verte más por aquí.