Brewblox: Introducción e Instalación

¿Qué es BrewBlox? Introducción

Brewblox es un Software "unificado" para montarte tu propio monitor y control de todo lo que necesitas para hacer cerveza con todos sus procesos, desde el control de los hervidores para el proceso de fermentación, hasta el sistema de frío para la fermentación. 

 ¿Conocéis Craftbeerpi [link!]? Pues a grandes rasgos es similar, no deja de ser un sistema unificado para el control total de tu sistema de elaboración, aunque con sus diferencias, CraftBeerPi está más vinculado el desarrollo a la implicación de la comunidad y aunque con BrewBlox también puedes desarrollar según tus necesidades viene con soporte oficial de los desarrolladores (los creadores de BrewPi!), así como varios elementos de la instalación oficiales (aunque en la mayoría puedes ser todo lo DIY que quieras), un sistema de conexionado más limpio y claro y una interfaz igual de limpia.

Es un sistema escalable donde tendremos acceso a todo desde un panel, con el cual puedes comenzar por ejemplo con el control básico de un hervidor mediante un control PWM o PID en modo BIAB con el monitoreo de gráficas de temperatura, control de la bomba... etc.

 


 Fermentación con control de frío con una nevera:


Hasta sistemas más completos como un HERMS:


Y sistemas de fermentación en fermentación Isobárica y control de frío mediante Chiller de Glycol:


En definitiva es un sistema completo, donde puedes empezar a integrar un sistema básico y poco a poco ir ampliando según tus necesidades hasta tener todo integrado con hidrómetros, sistema de glycol, sensores de presión...

 

¿Qué necesitamos para comenzar con BrewBlox?:

Para funcionar con Brewblox nos harán falta tres partes principales.  

1.- Corazón de la programación: una RaspberryPi (para la instalación del Software):

2.- Módulo de conexionado de los elementos: Un BrewPi Spark (3 ó 4) con al menos un módulo IO para la conexión de los actuadores y sensores.

3.- Elementos a controlar/monitorizar: Actuadores o Sensores.

 

1.- Corazón de la programación:

- 1 Raspberry Pi (a partir de la 3B). 3B [Aliexpress] [eBay] 4 [Aliexpress

- 1 alimentador Raspberry Pi. Model 3B[Aliexpress]- Model 4 [Aliexpress]

- 1 Tarjeta de memoria microSD. de al menos 16 GB. [eBay] [Aliexpress]

 

 

2.- Módulo de conexionado de los elementos:

BrewPi Spark. La última versión es la 4 [Store BrewPi].

Spark 4

Módulos IO [Store BrewPi]

módulo IO

 

Cada módulo IO vienen con 4 salidas para sensores de temperatura (ds18b20). Y 4 Salidas para Actores (bombas, SSR....)

salidas sensores de temperatura

salidas Actuadores

3.- Actuadores y Sensores:

Algunos ejemplos de Sensores y Actores:

- Actores:

 Hardware destinado como su nombre indica para actuar sobre algo, una bomba para el recirculado, un Relé para encender o apagar la resistencia de un hervidor, una máquina de enfriado...

- En la tienda de Brewblox [link!

 - SSR (Relés de Estado Sólido). [eBay] [Aliexpress] + Disipador [eBay] [Aliexpress]

 Opciones de bombas:

- Bomba magnética de 230v  de cabezal de acero inoxidable  [Aliexpress]

- Bomba básica 12 v grado alimentario [Aliexpress]

- Válvula motorizada [Aliexpress] con L298N [Aliexpress



Conexionado de Actores en Brewblox:

 Los actores se conectan a través del módulo IO, donde en un lado tiene 8 Salidas dinámicas + entrada de alimentación.

Como vemos en el software vemos un esquema de las conexiones del Módulo IO, donde tenemos cada conector y al final a la derecha la ficha extra de alimentación.


 

¿Qué quiere decir que son salidas dinámicas? Que pueden configurar de diferentes maneras según el uso que le quedamos dar.

De manera estándar, si usas dos pines por dispositivo podrías colocar 4 Actuadores. Pero por ejemplo, si necesitas colocar un actuador que necesite más amperaje, podrías usar otro conector de salida (ejemplo, si necesitas 2A, utilizarías tres conectores), esto lo modificaríamos desde el software donde a la hora de añadirlo nos pregunta cuantos conectores para ese actuador:


Alimentación de los Actuadores:

Si alimentamos con la fuente de alimentación interna podrías alimentar dispositivos de 5V. Como por ejemplo para los reles SSR para el control de un hervidor:


Si alimentamos con una fuente externa en el conector externo puedes alimentar con 12 ó 24V, y 1A por conector de salida.

Cuando conecta una fuente de alimentación externa, el módulo de E/S puede cambiar 1A por pin y hasta 24V.

Para cada módulo individualmente, los pines de E/S se pueden configurar para usar el voltaje externo (12-24 V) o el interno de 5 V, pero ¡ojo! No es posible utilizar un voltaje externo diferente en cada módulo de E/S, es decir que si tenemos Actuadores de diferentes voltajes tendremos que conectarlos a diferentes módulos IO. En mi caso, tengo un módulo IO para dispositivos de 12V y otro para los 5V del interno.*

Hay una tercera opción de alimentación que sería alimentar nuestro Spark mediante PoE y de esta manera podríamos alimentar internamente con 24v / 600mA como máximo.

 Todos los pines de E/S tienen soporte PWM rápido incorporado (80/100/2000 Hz) y detección de fallas (sobrecorriente, carga abierta y sobre temperatura).

 



- Sensores:

 Todo tipo de hardware que nos ofrezca algún dato o información para nuestro sistema como sondas de temperatura (ds18b20, ojo PT100 no es compatible por el momento).

Sensores de conexión física con los Módulos IO de BrewBlox:

 En la tienda de Brewblox [link!]

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

Necesitaremos de tomas RJ11[Aliexpress] y una herramienta para su conexión [Aliexpress], en este caso recomiendo comprar al menos una en la tienda de BrewBlox junto con el Spark.

 


Sensores integrados:

Es decir, todos aquellos que nos ofrezcan datos sobre nuestros procesos, pero que no conectamos con físicamente con los Módulos IO (vamos el resto que no sean sondas de temperatura DS18b20).

Como por ejemplo, hidrómetros como el iSpindel [link!] el Tilt hydrometer [link!] o el Hydrom [link!], sensores de presión para fermentadores o barriles, de peso para controlar los litros de un barril... [link!]. Un buen método de conexión para este tipo de sensores sería por ejemplo mediante MQTT.



Conexionado de los Sensores en Brewblox:

Las sondas de temperatura se conectan con el módulo IO a través de un conector de telefonía RJ11, lo más cómodo es comprarlo directamente en la tienda de BrewBlox, pero si necesitáis más sondas, os dejo la leyenda de los cables de forma que podréis conectar más sondas (hasta 4 por módulo). 

 


Sería necesario de las tomas RJ11 y de una Crimpadora para poder hacer las conexiones.

Podemos recibir en BrewBlox información de casi cualquier tipo de sensor, por ejemplo hidrómetros, esto lo tendríamos que hacer en el dispositivo emisor del sensor, por ejemplo por MQTT, en el artículo del Hydrom podemos ver un ejemplo de como enviar los datos del hidrómetro para trabajar con el en BrewBlox [link!], de la misma manera podemos enviar información como Sensores de presión para fermentadores o barriles, de peso para controlar los litros de un barril... [link!]

Para enviar datos a BrewBlox por MQTT:

IP de BrewBlox. 

Puerto: 1883 (por defecto).

Topic: brewcast/history

Sin usuario y contraseña, ya que actualmente BrewBlox no requiere de autentificación.


Instalación de BrewBlox

- SD Card Formatter. [link!]
- Sistema Operativo para Raspberry. [link!]. Versión del artículo: Raspberry Pi OS Lite Release date: January 11th 2021. Kernel versión: 5.10
- balenaEtcher. [link!] 
- putty. [link!]
- opcional según imagen del Raspbian [link!]

 

1.- Preparación SD para CraftBeerPi 4

Formatear la tarjeta de memoria y ponerle un Sistema Operativo, lo primero, lo haremos a través del programa SD Card Formatter previamente instalado:


-Mucho cuidado con seleccionar la unidad adecuada que queremos formatear.



2.- Distribución Linux para BrewBlox:

Nos descargaremos una distribución para nuestra Raspberry, en mi caso la más liviana de todas sin escritorio, ya que trabajaré con CBP mediante web desde otro dispositivo.


En mi caso, en el día de realización de este tutorial: 2022-01-28-raspios-bullseye-armhf-lite- *

*Si usas una versión superior, ver la opción de RaspberryPi Imager (mas adelante en el artículo).

Una vez descargado, instalaremos el programa "balenaEtcher" y flashearemos el sistema operativo en nuestra tarjeta de memoria:

Una vez terminado, ya tendremos podemos arrancar nuestra raspberry con un sistema operativo, nos faltará conectarlo a nuestra red y actualizar el Sistema Operativo.

- Puedes entrar en la raspberry conectándole un teclado, ratón y monitor y esperar a que arranque y desde el sistema Operativo basado el Linux configurarle la wifi. En mi caso he querido tomar el ejemplo "más difícil", instalarlo mediante conexión remota a la raspberry sin conectar a ella ningún monitor, pero siempre puedes hacerlo conectando un monitor para configurar la red.

Para ello, le añadimos los parámetros de configuración wifi y "ssh" protocolo de conexión remota en modo consola, añadiendo un par de ficheros a la raíz de nuestra SD (para que nos aparezca la raíz quitar y volver a poner la microSD en el PC):



Con editor de texto, nos creamos el siguiente archivo:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=ES
network={
   ssid="LA_SSID_DE_TU_WIFI"
   psk="LA_CONTRASEÑA_DE_TU_WIFI"
   key_mgmt=WPA-PSK
}

Y lo renombraremos con la extensión: wpa_supplicant.conf
Y crearemos otro archivo de texto vacío que se llame "ssh"




Y ambos los añadimos a la partición boot en la raíz de nuestra SD:


Una vez añadidos, ya nos arrancará nuestra raspberry conectados dentro de nuestra red y mediante la IP podremos conectar con ella por consola a través de ssh y el programa "putty".
-Ponemos la IP de nuestras RaspberryPi, seleccionamos tipo de conexión "ssh" y aceptamos.
 

 
Con las últimas imágenes de Rasbpian ha cambiado la contraseña del usuario "pi" y la mejor manera es modificarla antes de cargar la imagen, para ello usaremos el programa "RaspberryPi Imager" en vez de "Balena Etcher" y cargaremos la iso e Raspian en la SD modificando los parámetros del usuario "pi" y ya de paso la conexión wifi y activar el ssh y nos evitamos este paso:
 
-Seleccionaremos el Sistema operativo, la SD donde vamos a cargar la imagen y accederemos a configuración (el engranaje).

 
Desde aquí antes de pulsar en "write" para grabar la imagen podemos modificar parámetros como el nombre del host, activar el "ssh":


Añadir la contraseña al usuario "pi" y los parámetros de nuestra wifi:



 
 
3.- Preparar el S.O para BrewBlox:
 
La primera vez que conectemos mediante "ssh" nos aparecerá la siguiente advertencia que deberemos aceptar:

Acceder con el usuario "pi" y la contraseña:
"raspberry" si está por defecto. O la vuestra si lo realizasteis con la nueva opción de "RaspberryPi Imager".
 
 


Actualizaremos nuestro sistema operativo, mediante los comandos.
sudo apt-get update
sudo apt-get upgrade
o
sudo apt update && sudo apt upgrade -y

sudo reboot

Descargar e instalar BrewBlox

wget -qO - https://www.brewblox.com/install | bash

 

En el proceso tendremos que validar tres opciones:


Si os diera unos errores, simplemente tendremos que reiniciar y volver a ejecutar el comando de instalación para comprobar si el docker se instaló correctamente:

Error:

Instalación correcta:

 

Flashear Spark (en mi caso versión 4).

- Conectar el Spark a la raspberrypi mediante un cable USB a cualquier puerto de la RaspeberryPi.

- Acceder al directorio por defecto de brewblox:

cd ~/brewblox

Y ejecutar el comando:

brewblox-ctl flash


Iniciar BrewBlox

brewblox-ctl up




Para utilizar Spark 4 tiene que estar conectado a la red, ya sea por wifi o Ethernet (recomendable Ethenet).

- Por cable conectarlo directamente a la misma red de la wifi (por ejemplo, a un puerto del Router.

 

- Por Wifi:

Las credenciales de Wi-Fi se configuran a través de Bluetooth mediante la aplicación de aprovisionamiento "ESP BLE Provisioning". 

Android [ESP BLE Provisioning]

IOS [ESP BLE Provisioning]

Abrir la app, decirle provisionar un nuevo dispositivo y saltarnos la parte mediante QR para activar mediante Bluetooth:



 Presionar el Reset de nuestro Spark o reiniciarlo (quitarle la alimentación), y esperar que parpadeen los botones en azul:

Nos aparecerá en la app un nuevo dispositivo para vincular "PROV_BREWBLOX_XXXXX" donde lo seleccionaremos y le añadiremos la wifi:

Una vez añadida ya podremos cerrar la app:

Primer acceso BrewBlox:

Acceder mediante interfaz web:

http://IP_de_tu_raspberrypi


 

Y pulsaremos para añadir el Spark que si ya está en nuestra wifi nos lo realizará casi automáticamente:


Actualizar Brewblox

Podeis revisar la versión de BrewBlox desde, Admin >debugging:

Anuncios de nuevas releases:

https://community.brewpi.com/c/announcements/releases/

 

Si quereis actualizar BrewBlox seria con el comando:

brewblox-ctl update en la ruta /home/pi/brewblox/



 Iniciar BrewBlox

brewblox-ctl up


Al acceder de nuevo al portal de BrewBlox nos indica que hay una actualización pendiente:



Actualizamos nuestro Spark

Y en caso de fallo podemos hacerlo desde la consola:



Comandos consola Brewblox

Aunque una vez iniciado BrewBlox la configuración general se realiza mediante la interfaz web, es posible realizar una serie de configuraciones a través de la consola.

Listar comandos por consola de BrewBlox: brewblox-ctl --help

Comandos:
up                      Iniciar todos los servicios.
down                 Detener todos los servicios..
restart                Vuelve a crear todos los servicios.
follow               Mostrar registros para uno o más servicios.
kill                    Detener y eliminar todos los contenedores de este host.
install               Instale Brewblox y sus dependencias.
makecert          Genera un certificado SSL autofirmado.
env                   Muestra, obtiene o establece valores de env.
update              Descargar y aplicar actualizaciones.
update-ctl         Descargue y actualice brewblox-ctl.
discover-spark  Descubra los controladores Spark disponibles.
add-spark         Crea o actualiza un servicio de Spark.
add-tilt             Crea un servicio para el hidrómetro Tilt.
add-plaato        Crea un servicio para Plaato Airlock.
add-node-red   Crea un servicio para Node-RED.
service             Edite o elimine servicios en docker-compose.yml.
flash                Flash Spark firmware a través de USB.
wifi                 Configure los ajustes de Spark Wifi.
particle           Inicie un contenedor Docker con acceso a la CLI de partículas.
log                  Generar y compartir archivos de registro para informes de errores.
coredump        Lea y cargue un archivo de volcado de núcleo para Spark 4.
fix                   Corrige la configuración en el sistema host
database          Comandos de migración de base de datos.
backup            Guardar o cargar copias de seguridad.
snapshot          Guardar o cargar instantáneas.

Ejemplo: Instalar: brewblox-ctl install

Ejemplo: Actualizar: brewblox-ctl update

Opciones: 

   -y, --yes             solicitar confirmación de comandos.
  -d, --dry, --dry-run  Modo de ejecución en seco: repite los comandos en lugar de ejecutarlos.
  -q, --quiet           Muestra una salida menos detallada.
  -v, --verbose         Muestra una salida más detallada.
  --color / --no-color  Mensajes de formato con códigos de color Unicode.
  --help              Comandos de ayuda.

 

Enlaces de interés de Brewblox:

Página web [link!]
Github [link!]
Discord [link!] 
 
Proximamente...

Actualmente, estoy preparando una instalación completa de BrewBlox comenzando con el control de la parte de fermentación, en cuanto lo tenga montado os enseñaré esquemas de una manera real y la configuración desde BrewBlox.

Publicar un comentario

0 Comentarios