BrewUNO - Automatización de la elaboración de cerveza casera


 Dificultad: Normal.

Tiempo aproximado: 2 hora (montaje).

Coste aproximado: Desde 30€.
 
Utilidad: Muy Útil.


Hoy hablamos de BrewUNO, un software de elaboración de cerveza, wifi, automatizado y low Cost con el que podrás controlar todos los pasos del macerado de tu elaboración así como los pasos del hervido. En su día ya hablamos de CraftBeerPi [link!] y las posibilidades que tiene, pues bien, BrewUNO, es más sencillo, sin tantos Plugin como CBP, pero con una interfaz más moderna y simple, donde además el montaje completo resulta sustancialmente más pequeño y más barato, lo cual lo hace óptimo para caseros que no tengan mucho espacio y que quieran dar un paso adelante en la automatización de su elaboración.

La parte que más me gusta de BrewUNO es la adaptación de cuatro botones físicos para cambiar los pasos de la elaboración, encender la bomba y cambiar la potencia del hervido, algo similar a las compactas que se venden hoy en día.

Es un software bastante completo y el más compacto DIY con wifi, que ademas puede trabajar como AP lo cual no es necesario tener wifi donde elaboramos. BrewUNO es ideal para los que tengan poco espacio, e incluso si se te ha roto la centralita de una microbrewery o maquina compacta, añadirle lo necesario de brewUNO para hacernos una nueva centralita en el habitáculo de la anterior.
Algunas características de BrewUNO:

- Interfaz adaptada a dispositivos móviles y navegadores web.
- Interfaz con estadísticas.
- Control PID para el mash.
- Configuraciones de pasos en macerado y hervido, temperatura, recirculación, adiciones de lúpulo...
- Configuración dentro te tu red Wifi y como AP (Punto de acceso sin necesidad de wifi).
- Sincronización NTP (con conexión a internet).
- Actualizaciones vía OTA.
- Display LCD.
- Máximo de 5 sondas de temperatura.
- Soporte limitado para tres hervidores.
-Disponible en varios idiomas: Portugués, Inglés, Español y Ruso.
Materiales necesarios:

- Placa de desarrollo: Wemos D1 mini V3.0 (basado en ESP8266 CH340). [eBay] [Aliexpress]

- Resistencia: 4k7 Ohms.[eBay] [Aliexpress]

- SSR (Relés de Estado Solido). [eBay] [Aliexpress]

- Disipador de SSR [eBay] [Aliexpress]

- Sondas de temperatura DS1820. [eBay] [Aliexpress]

- teclado Matriz. [Aliexpress

- PCF8574* I2C interfaz 8-bit IO placa de expansión. [Aliexpress]

- LCD Display 1602 24x4 con I2C. [eBay] [Aliexpress]

- Reles. Opcion 5v 10A para Arduino (de alto nivel*). [eBay] [Aliexpress]

 -Bomba 12V DC. [Aliexpress]

- Transformador 12V - 1A (5V también si fuera necesario). [Aliexpress]

-conectores GX12 - 4 pines. [Aliexpress]

Sobre la interfaz, PCF8574, hay que revisar el chip que viene, ya que el que esta preparado para el firmware es PCF8574T, si viene con el PCF8574AT, hay que cambiar una dirección de memoria a través del programa Code Vs y PlataformIO. En el archivo lcd.h, línea 12:


0x20 a 0x38: ver tabla:


Los relés de 5V de Arduino existen de dos tipos, bajo nivel (lógica 0) y alto nivel (lógica 1), en este caso tenemos que tener de alto nivel.

Esquemas de montaje de BrewUNO:
Un esquema bastante sencillo que puedes ir ampliando o reduciendo según tus necesidades:
- Como vemos podemos añadir hasta 5 sondas de temperatura, una bomba y tres hervidores.

 

 Esquema de la web del desarrollador [link!]

Si queremos solo lo básico para funcionar donde manejaríamos todo desde un pc/movil/tablet el esquema seria:


 

En el artículo de hoy, vamos a montar una versión lo más sencilla y compacta posible pero con todas las funciones, una sonda, una bomba para el recirculado y un hervidor. Todo lo más compacto posible:


El esquema simplificado seria este:

 


Montaje de BrewUNO:

Lo primero seleccionaremos una caja estanca para mecanizar con todos los dispositivos, en mi caso una caja estanca de 155 x 110, en la cual entra todo, pero recomendaría al menos la del siguiente tamaño disponible, o realizar una anexo con el SSR y el disipador en otra caja de 100x100, hay que tener en cuenta que el SSR nos generara calor y es conveniente instalarlo junto con un disipador, cuanto más compacto, más juntos los componentes y más calor generado sobre ellos.

 Realizaremos el marcado y corte para el display, un interruptor de encendido y apagado y la botonera de funciones.

 

 

Realizaremos el mecanizado de los conectores, en mi caso en la parte superior y con los conectores ya habituales de aviador, los cuales utilizo en todos los proyectos, para que elementos como la sonda de temperatura sea compatible con todos mis dispositivos DIY.

Mecanizaremos el interruptor de encendido con el cual encenderemos y apagaremos el Wemos, para que quede compacto el equipo utilice una sola fuente de alimentación de 12v DC para la bomba y para el wemos a través de un conversor de 12v a 5V (como los alimentadores de mechero de los coches para móviles):
Al alimentar el Wemos a través del puerto micro usb, y el resto de dispositivos a través del conector 5v y GND del wemos, al apagar el wemos, apagaremos todo. 

Colocaremos el resto de los elementos en la caja estanca y comenzaremos a realizar los cableados según el esquema:

En el conector de la botonera tenemos marcado cual es el GND, de tal manera que en orden quedarían:

P0-P1-P2-P3-GND:


El detalle de las conexiones del wemos seria:

WEMOS D1    >    SCL PCF8574
WEMOS D2    >    SDA PCF8574
WEMOS D3    >    INT PCF8574
WEMOS D5    >    INT RELE BOMBA
WEMOS D6    >    AMARILLO/VERDE DS18B20
WEMOS D7    >    + SSR HERVIDOR
WEMOS 3.3V    >    ROJO DS18B20
WEMOS 5V    >    CC BOMBA
WEMOS 5V    >    VCC PCF8574
WEMOS GND    >     GND PCF8574
WEMOS GND    >    GND MATRIZ BOTONERA
WEMOS GND    >    - SSR HERVIDOR
WEMOS GND    >    GND RELE BOMBA
WEMOS GND    >    NEGRO DS1B20


La entrada de alimentación y salida hacia el SSR, los sacaremos por los laterales:

 



 Instalación del Software de BrewUNO:

Flash Download Tool v3.8.5 [link!]

Ficheros Firmware 1.0.16 [link!]

- Ejecutar el programa Flash Download Tool

 

Marcar las opciones como en la captura, y seleccionar los ficheros "firmware" y "spiffs".




Finalizado, reiniciaremos el wemos (se quedará con un led azul fijo encendido):
- Accederemos a la wifi nueva que nos aparece "BrewUNO".
contraseña: brew-uno
Una vez conectados la Wifi, conectaremos a través del navegador con la IP: 192.168.4.1

Y accederemos al apartado wifi para configurar nuestra red Wifi, ya se escaneando las redes y seleccionándola o metiendo manual mente los parámetros:

Podemos dejarlo también como punto de acceso si no queremos conectarlo a nuestra red Wifi o no tenemos:


¿Como funciona BrewUNO?

Una vez dentro y configurada la conexión ya podemos empezar a trabajar con BrewUNO, la botonera funciona automáticamente sin necesidad de configuración como en la leyenda adjunta:


- Configuraremos el idioma deseado, y comenzaremos a configurar nuestro sistema:

Desde el apartado Brew Settings:

Configuraremos el Idioma, tiempo de ebullición, potencias y punto de ebullición, en mi hervidor tengo claro que es en 98:

 

Si tenemos conectadas las sondas de temperatura, automáticamente nos la detecta y únicamente tenemos que seleccionar la que queremos que lea la temperatura de la sonda que colocaremos en el hervidor.

Tenemos una opción de habilitar si calentamos el agua en un hervidor separado:

Realizaremos la configuración del PID:

Fundamentos del PID:  Controlador proporcional, integral y derivativo, calcula la desviación o error entre un valor medido y uno deseado, digamos que es el controlador para que si queremos poner el hervidor a una temperatura determinada (66ºC por ejemplo), vaya encendiendo y apagando la fuente de calor para ajustarse a la temperatura determinada sin pasarse.

kP: Ganancia proporcional; Mejora la velocidad de respuesta del sistema, reduce el error del sistema en régimen permanente, pero hace inestable del sistema.
kI: Acción integral:  reduce el error del sistema en régimen permanente, hace inestable el sistema, sube un poco la velocidad del sistema.
kD: Constante control derivativa: Mejora la estabilidad del sistema, baja un poco la velocidad del sistema, no afecta el régimen permanente.

Por defecto, ya nos viene con unos parámetros medios para realizar la prueba si funciona correctamente:
Los diferentes parámetros del PID cambian el comportamiento del controlador PID
Ziegler-nichols produce bastante sobreimpulso, no es la mejor opción para la elaboración de cerveza. A priori la mejor opción sería brewing:

rule: ziegler-nichols
P: 7.237315918538419
I: 0.32527262555228853
D: 40.25756979686996

rule: tyreus-luyben
P: 5.592471391597869
I: 0.05655308148806835
D: 39.50237728985797

rule: ciancone-marlin
P: 3.728314261065246
I: 0.3686423089592603
D: 20.482714150296722

rule: pessen-integral
P: 8.788169329653794
I: 0.49371737807043786
D: 58.80805040144268

rule: some-overshoot
P: 4.101145687171771
I: 0.18432115447963016
D: 60.83366102638127

rule: no-overshoot
P: 2.4606874123030624
I: 0.11059269268777809
D: 36.50019661582876

rule: brewing
P: 98.4274964921225
I: 0.6635561561266685
D: 230.52755757365532

Ejemplos del github de CBP[link!]


Si solo tenemos un sensor nos aparece automáticamente, si tenemos varios elegiríamos cual queremos como principal y podemos ajustar si tenemos alguna variación de temperatura, es decir si nuestra sonda mide 19º y en realizar sabemos que son 20ºC le añadiéremos en calibración un 1.

Seleccionaremos también si realizamos lavado, con que sonda mediremos el lavado, ajustaremos la precisión si es necesario y la temperatura y potencia del hervidor cuando realice el lavado:


 Una opción que me gusta, y que no encontré en otros sistemas como CraftBeerPi [link!], es que se pueden configurar intervalos de la bomba para que no esté siempre recirculando y tenga momentos de descanso:


Vamos a poner un ejemplo de Pasos con una receta básica:
1.- Macerado: 30 minutos a 52ºC y despues30 minutos a 65ºC. Con un MashOut de 15 minutos a 76ºC.
2.- Hervidor de 60 minutos, con tres adiciones de lúpulo, a los 60, 15 y 5 minutos.

En la configuración del macerado, crearemos los tres intervalos de temperatura deseados:
 - Donde podemos Bloquear el salto del paso, y definir que actúe la bomba de recirculado (la bomba actuara con el intervalo que hallamos definido en el paso anterior).

En el hervido, definiremos las cuotas de lúpulo, ya que el tiempo de hervido lo tenemos definido en el menú principal como vimos anteriormente:

 

Una vez configurado solo queda ir a la pantalla principal y comenzar nuestra elaboración:

Ejemplo visto desde PC
Ejemplo visto desde el movil

 

Desarrollador de BrewUNO: Bruno Leitão (uncodead@gmail.com)
Enlace: BrewUNO

Publicar un comentario

23 Comentarios

  1. Traceback (most recent call last):
    File "download_panel_info.pyo", line 218, in OnButton_StartButton
    File "download_panel_info.pyo", line 438, in flash_config
    File "ntpath.pyo", line 108, in join
    UnicodeDecodeError: 'gbk' codec can't decode bytes in position 18-19: illegal multibyte sequence


    Recibo este error, ¿puedes ayudarme?
    wemos nodemcu lolin v3

    ResponderEliminar
    Respuestas
    1. Buenos días.

      ¿Dónde te da ese error? Si quieres, mandarme capturas al correo mediante el contacto y lo miramos.

      Un saludo.

      Eliminar
  2. Hago lo que se explica en el post, pero me sale un error, uso nodemcu lolin en lugar de wemos mini, me pregunto si el error es causado por esto, gracias.

    https://disk.yandex.com.tr/i/4faCF2DfAiPEiQ

    ResponderEliminar
    Respuestas
    1. Por lo que veo en el video tienes todo bien configurado y el pc te reconoce la placa ESP. Seguramente será un problema de compatibilidad con la placa, el proyecto de github esta sobre una wemos D1.
      - Por si acaso comprueba en el "administrador de dispositivos" que te reconoce el chip y a la hora de flashear pulsa el botón de ESP (algunas placas lo necesitan para poder flashear).
      Si estas opciones no te funcionan, te quedan dos opciones: comprar un wemos o si sabes algo de programación abrir el repositorio con Visual Code para adaptarlo a tu modelo de placa.
      Un Saludo!


      Eliminar
  3. hi, I installed VS studio and platformIO, I downloaded the brewUNO-master zip file and followed the instructions (I think) of bruno leitao for changing the SSID, but when I go to compile there are many errors and the procedure stops.
    am I wrong something?
    A greeting

    ResponderEliminar
  4. hello, I also tried on another pc, to install VS but nothing to do, surely I'm wrong, I'm not practical, here I report a small part of errors.
    thank you in advance, I don't want to waste your time

    ERROR CODE:

    [{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "cpp",
    "severity": 8,
    "message": "reference to 'byte' is ambiguous",
    "startLineNumber": 394,
    "startColumn": 32,
    "endLineNumber": 394,
    "endColumn": 32
    },{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "C/C++",
    "code": "266",
    "severity": 8,
    "message": "\"byte\" ambiguo",
    "source": "C/C++",
    "startLineNumber": 394,
    "startColumn": 32,
    "endLineNumber": 394,
    "endColumn": 36
    },{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "cpp",
    "severity": 8,
    "message": "reference to 'byte' is ambiguous",
    "startLineNumber": 394,
    "startColumn": 44,
    "endLineNumber": 394,
    "endColumn": 44
    },{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "C/C++",
    "code": "266",
    "severity": 8,
    "message": "\"byte\" ambiguo",
    "source": "C/C++",
    "startLineNumber": 394,
    "startColumn": 44,
    "endLineNumber": 394,
    "endColumn": 48
    },{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "cpp",
    "severity": 8,
    "message": "reference to 'byte' is ambiguous",
    "startLineNumber": 394,
    "startColumn": 54,
    "endLineNumber": 394,
    "endColumn": 54
    },{
    "resource": "/c:/APPO/BREWUNO/BrewUNO-master/lib/NtpClientLib_ID727/src/NtpClientLib.h",
    "owner": "C/C++",
    "code": "266",
    "severity": 8,
    "message": "\"byte\" ambiguo",
    "source": "C/C++",
    "startLineNumber": 394,
    "startColumn": 54,
    "endLineNumber": 394,
    "endColumn": 58

    ResponderEliminar
    Respuestas
    1. Good afternoon.
      Solving vs problems takes time, and many times it takes a lot of time, the code is correct since it worked for me without problems. It is possible that the problem comes in the version of c ++ or related to it.

      Eliminar
  5. https://disk.yandex.com.tr/i/lQX2-Mx9MlnNrA

    hola, compre wemos d1 mini pero no puedo instalar el software.

    ResponderEliminar
  6. gracias solucionado windows 10 reinstalado problema solucionado

    ResponderEliminar
    Respuestas
    1. Fantástico! muchas veces son problemas relacionados con drivers.

      Eliminar
  7. hola, el zumbador no esta activo en el sistema, no funciona, que se puede hacer, gracias.

    ResponderEliminar
    Respuestas
    1. Buenas! Si lo tienes a la salida digital correcta te tendría que funcionar. Que tipo de buzzer tienes? Ten en cuenta que hay varios formatos para buzzer de Arduino.
      Un saludo

      Eliminar
  8. Hola Daniel. Estoy interesado en en automatizar el macerado principalmente, controlando temperatura de macerador y de HTL por separado, la bomba la dejaría funcionando todo el tiempo y regulando la temperatura del HTL. Me interesaban los basados en raspberry pero se me hacen más caros y cuento ya con componentes como para el BrewUNO. Podría utilizar 2 LCD de 2 líneas en vez de uno de 4? Algún otro consejo que puedas darme?
    La fermentación la monitore con Floaty integrado en Brewfather, y controlo la temperatura con una sonda y un módulo dedicado a esto con un contacto seco (por ahora solamente para calentar)

    ResponderEliminar
    Respuestas
    1. Hola Matías! Aventúrate sin problemas a montar BrewUNO o BrewManiacEX, lo bueno que aunque montes un sistema BrewUNO en un futuro podrías actualizar si quieres a otro sistema con una Raspberry, ya que la mayoría de los componentes te serviran en el futuro.
      Tendría que ser una LCD de 4 Líneas si o sí, podrías poner una segunda LCD, pero si no tendrías que modificar el código bastante con Visual Code para implementar la segunda pantalla y lo que quieras que muestre.
      Se me hace curioso lo que has montado con el Floaty, felicidades, que tienes un relé controlado con Brewfather?
      Saludos!

      Eliminar
    2. el Floaty está tal cual los pasos para armarlo acá (me gustaría agregarle el cargador inhalambrico). Lo que tengo de forma independiente, es un módulo económico con una sonda de temperatura, el cual le configuro la temperatura deseada y una histéresis para que de alimentación a un cable calefactor alrededor del fermentador

      Eliminar
    3. Ah ok! si es posible ponerle el módulo inalámbrico al floaty, lo probé en su momento ;). Te recomiendo la versión inalámbrica de la tapa, ya que carga cuando está apagado.

      Eliminar
  9. Hola! no puedo entrar a la ip para seguir con el proceso de instalacion.

    ResponderEliminar
    Respuestas
    1. ¡Buenas tardes! En que parte te quedaste? Ya entraste con la wifi que genera después de cargar el firmware, después una vez puesta tu wifi? Saludos

      Eliminar
  10. Hola!!! He seguido todos los pasos para el set Up más simple ( solo controlar por wifi). Todo bien conectado ( eso creo ), pero no me reconoce ningún sensor, he intentado con dos diferentes y nada, tengo la placa wemos d1, debería de identificar el sensor independientemente del pin en que lo ponga?

    ResponderEliminar
    Respuestas
    1. Buenas! las sondas de temperatura tienen que ir al D6. si quieres pasame por correo todos del montaje y lo vemos o por el grupo de discord ;)

      Eliminar
    2. Cuestión solucionada lo dejo en comentarios por si le sirve en un futuro a otra persona. Se sustituyo la residencia y comenzó a funcionar correctamente.

      Eliminar