Hay una forma más inteligente, rápida y precisa de vigilar tus cervezas durante su período más crucial: la fermentación. Gracias a la Internet de las Cosas y tanto a los hidrómetros comerciales como a los hidrómetros DIY, los cerveceros caseros ahora tienen las herramientas para asegurar una calidad premium con monitoreo de condiciones en tiempo real, como temperatura y gravedad, lo que alivia la incertidumbre y el constante manipuleo durante las horas y días vitales de fermentación de tus bebidas más codiciadas.
Requisitos
Raspberry Pi 3 Modelo (Ya configurado)
Configuración de Hardware/Firmware
Configuración del Hidrómetro
Para este tutorial utilizaremos el Hidrómetro Tilt. Para configurar tu dispositivo Tilt, consulta su guía oficial para obtener instrucciones completas sobre la configuración del hardware. Una vez que tu hidrómetro esté reportando datos a la aplicación TILT Hydrometer, verás algo similar a esto:
Configuración de Raspberry Pi
Nota: Si has estado trabajando con tu Raspberry Pi y has instalado algunos paquetes, se recomienda volver a grabar la imagen en la tarjeta SD para evitar problemas al ejecutar este tutorial. Consulta esta guía de inicio rápido para una visión general rápida sobre cómo configurar tu Raspberry Pi.
1. Accede a la Raspberry Pi de forma remota con SSH y el siguiente comando:
ssh pi@{RaspPi_IP_Address}
2. Luego, ingresa la contraseña de Raspberry Pi. Si nunca has cambiado la contraseña, la contraseña predeterminada es raspberry
.
3. A continuación, instala node y npm para gestionar los paquetes necesarios. Debes seguir esta guía siguiendo los comandos proporcionados en node-and-npm-in-30-seconds.sh gist. La instalación de estos paquetes puede tardar varios minutos. Por favor, ten paciencia.
3. Para verificar si node y npm se instalaron correctamente, ejecuta los siguientes comandos en la terminal de Raspberry Pi:
node -v
npm -v
Si se hizo correctamente, la respuesta de la terminal será:
4. A continuación, conecta el hidrómetro TILT y la Raspberry Pi a través de BLE. Para hacer esto, necesitarás compilar e instalar Bluez, el sistema Bluetooth clásico y de baja energía para Raspberry Pi.
5. Finalmente, instala la utilidad de Node.js para leer el Hidrómetro TILT y enviar datos a Ubidots utilizando el siguiente comando:
npm install -g tilt-send-data
Publicando datos a Ubidots
Para enviar datos desde la Raspberry Pi a Ubidots y visualizar los datos a través de un panel de control IoT, vamos a utilizar la utilidad de línea de comandos de Nodejs previamente instalada.
El comando requiere los siguientes argumentos para poder manejar datos con Ubidots:
-T --token [token] -> TOKEN de Ubidots-t --timeout [timeout] -> Intervalo de tiempo para enviar la solicitud (en minutos)
1. Para ejecutar el comando, ten en cuenta la estructura a continuación para asignar el Token de tu cuenta y definir un tiempo de espera.
$ tilt-send-data -T "{Ubidots_TOKEN}" -t {timeout_in_minutes}
Aquí hay un ejemplo real:
$ tilt-send-data -T "BBFF-KvcUDRGARBkUDR5bogMVuKVcKigvsYAMvVVr9H278H2u2M34Kv" -t 1
El comando mostrado arriba enviará temperatura, gravedad y RSSI cada minuto. Para verificar si el comando está configurado correctamente, la respuesta de la terminal será la siguiente:
{ rssi: [ { status_code: 201 } ], temperature: [ { status_code: 201 } ], gravity: [ { status_code: 201 } ] }
Preguntas Frecuentes y Solución de Problemas: si recibes un mensaje de advertencia como "estado del adaptador no autorizado", simplemente puedes intentar ejecutar el comando sin permisos. Además, consulta esta guía o sigue estos pasos en "Ejecutando sin root/sudo" para solucionar problemas adicionales.
2. Con tu cuenta de Ubidots abierta, ve a Gestión de Dispositivos -> Dispositivos. Aquí, verás un nuevo dispositivo nombrado por defecto con el color y el ID de tu Hidrómetro Tilt. Si es necesario, puedes cambiar el nombre del dispositivo en Ubidots para una identificación sencilla.
Si haces clic en el dispositivo, verás las 3 variables que la Raspberry Pi está enviando a Ubidots (es decir, temperatura, gravedad y RSSI).
3. [OPCIONAL] La conexión BLE te permite recuperar otros tipos de datos de tu dispositivo. Si deseas agregar más variables a tus aplicaciones, como proximidad o precisión, consulta esta guía.
Para manejar las propiedades, debes asignarlas en el comando como argumentos:
-m, --measuredPower [measuredPower] -> agregar lectura de potencia medida a la solicitud-a, --accuracy [accuracy] -> agregar lectura de precisión a la solicitud-p, --proximity [proximity] -> agregar lectura a la solicitud
4. Usa este comando como ejemplo para la configuración de tu código:
$ tilt-send-data -T "{Ubidots_TOKEN}" -t {timeout_in_minutes} -m "{variable_label_mesuredPower}" -a "{variable_label_accuracy}" -p "{variable_label_proximity}"
Una vez que hayas asignado el Token de tu cuenta de Ubidots, las variables y el tiempo de espera, tu comando debería verse así:
$ tilt-send-data -T "BBFF-KvcUDRGARBkUDR5bogMVuKVcKigvsYAMvVVr9H278H2u2M34KvSne8R" -t 1 -m "mesuredPower" -a "accuracy" -p "proximity"
Al ejecutar los comandos mostrados arriba, recibirás datos de temperatura, gravedad, RSSI, precisión y proximidad cada minuto.
Si todo está bien hecho, deberías recibir la siguiente respuesta del servidor:
{ temperature: [ { status_code: 201 } ], proximity: [ { status_code: 201 } ], gravity: [ { status_code: 201 } ], rssi: [ { status_code: 201 } ], mesuredpower: [ { status_code: 201 } ], accuracy: [ { status_code: 201 } ] }
5. Puedes verificar en tu cuenta de Ubidots si el nuevo dispositivo ahora tiene 6 variables en lugar de 3.
6. El host asignado por defecto es industrial.api.ubidots.com
Ubidots cuentas. Para reemplazarlo, usa este argumento:
-u, --url [url] -> publicar en la url especificada
3. Cómo ejecutar el paquete sin interrupciones
Sigue los pasos a continuación para ejecutar tus paquetes de Raspberry PI:
Escribe
cd
en la terminal de Raspberry Pi y guarda el paquete en esta ubicación:/home/pi/local/bin/tilt-send-data
. También puedes verificar la ubicación exacta donde debes ubicar el paquete ejecutando este comando:
which tilt-send-data
Este es un ejemplo de una respuesta de ubicación:
3. Ahora, en el .bashrc
para asignar un comando deseado, puedes editar el archivo agregando el comando que se muestra a continuación:
nano .bashrc
Luego, al final del archivo, agrega el siguiente comando utilizando tus parámetros:
{location_of_tilt-send-data} tilt-send-data -T "{Ubidots_TOKEN}" -t {timeout_in_minutes} -m "{variable_label_mesuredPower}" -a "{variable_label_accuracy}" -p "{variable_label_proximity}" &
Este es un ejemplo del comando que deberías ejecutar:
/home/pi/local/bin/tilt-send-data -T "BBFF-KvcUDRGARBkUDR5bogMVuKVcKigvsYAMvVVr9H278H2u2M34KvSne8R" -t 1 -m "mesuredPower" -a "accuracy" -p "proximity" &
4. Ahora, necesitamos reiniciar tu Raspberry Pi y verificar tus datos en Ubidots.
Para reiniciar la Raspberry Pi, accede al dispositivo como root
. Para hacer esto, ejecuta los siguientes comandos:
sudo su
Y para reiniciar:
reboot
Espera un minuto y deberías comenzar a ver que tu cuenta de Ubidots está recibiendo datos de la Raspberry Pi cada minuto. Una vez que tus datos se estén enviando a Ubidots, puedes mejorar los datos para convertirlos en información útil desarrollando visualizaciones y alertas que hagan que tus cervezas sean aún mejores.
Resultados
¿Quieres obtener más de tu aplicación IoT? Consulta estos artículos útiles para inspirarte: