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
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):
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 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.
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:
aquí antes de pulsar en «write» para grabar la imagen podemos modificar
parámetros como el nombre del host, activar el «ssh»:
Acceder con el usuario «pi» y la contraseña:
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:
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