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:

Si has tenido que reinstalar Brewblox, el spark se recupera con:

brewblox-ctl add-spark

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 comentario