Tabla de contenido:
- Paso 1: obtener datos de inclinación en Python
- Paso 2: conectar el dispositivo a la nube
- Paso 3: envío de datos a la nube
- Paso 4: resultado final
Video: Cómo controlar la temperatura y la gravedad de la fermentación de la cerveza desde su teléfono inteligente: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Cuando la cerveza está fermentando, debe controlar su gravedad y temperatura diariamente. Es fácil olvidarse de hacerlo e imposible si no está.
Después de buscar en Google, encontré varias soluciones para el monitoreo automatizado de la gravedad (uno, dos, tres). Uno de ellos, con un concepto muy ingenioso, se llama Tilt. La inclinación está flotando en su cerveza y mide su propio ángulo de inclinación. Este ángulo depende de la densidad del líquido y, por lo tanto, puede medir la gravedad de la cerveza en fermentación.
Tilt viene con una aplicación móvil que se conecta y puede publicar datos en cualquier servicio web. El problema es que necesitas estar cerca de Tilt para poder hacerlo. También hay un programa Raspberry Pi que funciona con Tilt.
Paso 1: obtener datos de inclinación en Python
Ya estoy usando Raspberry Pi para monitorear la temperatura de la bodega y un servicio de panel de control en la nube cloud4rpi.io. Si Tilt puede hablar con Raspberry Pi, debería ser posible conectar cloud4rpi a él. Tilt utiliza un protocolo inalámbrico, por lo que necesitará una Raspberry Pi con un chip inalámbrico (Rasbperry Pi 3 o Zero W).
Afortunadamente, hay un repositorio de GitHub para el software Tilt con algunas muestras. Mirando https://github.com/baronbrew/tilt-scan, puede ver que Tilt ve a otros como BLE iBeacon, con el “Color” codificado en UUID, y la temperatura y la gravedad están en bytes mayores y menores.
Su código de muestra es para Node.js, y tengo un programa de control de Python basado en la plantilla de cloud4rpi
Entonces necesito obtener datos de Tilt en Python. Después de buscar en Google, encontré https://github.com/switchdoclabs/iBeacon-Scanner- - Escáner Python iBeacon. Este es un programa, no una biblioteca, así que lo modifiqué para devolver un diccionario en lugar de una cadena. Y también escribí un módulo específico de Tilt para obtener el color, la temperatura y la gravedad del primer Tilt encontrado (solo tengo uno), y un programa de prueba simple para verificar si puede ver mi Tilt:
tiempo de importación
mientras que es cierto:
res = tilt.getFirstTilt () imprimir res time.sleep (2)
Ejecutar y comprobar que funciona. Ahora puedo conectarlo a mi programa de control. Ya tengo un programa de Python conectado a cloud4rpi.io, pero déjame mostrarte cómo hacerlo desde cero.
Paso 2: conectar el dispositivo a la nube
Primero, inicie sesión en cloud4rpi.io y luego cree un nuevo dispositivo.
Se le entregará un token de dispositivo e instrucciones de instalación. Para Raspberry Pi, siga las instrucciones aquí https://docs.cloud4rpi.io/start/rpi/ - asegúrese de que su sistema esté actualizado:
actualización de sudo apt && actualización de sudo apt
Instalar requisitos previos:
sudo apt instalar git python python-pip
Instale los paquetes de python de cloud4rpi:
sudo pip instalar cloud4rpi
luego obtenga una aplicación de Python de muestra para Raspberry Pi (en la carpeta de control):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… control
control de cd
modificar control.py: especifica el token de tu dispositivo en la línea
DEVICE_TOKEN = "_YOUR_DEVICE_TOKEN_"
Elimine las entradas innecesarias de las declaraciones de variables de dispositivo, deje solo CPUTemp para probar la conexión del dispositivo:
# Ponga aquí las declaraciones de variables variables = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Ahora haz una prueba:
sudo python control.py
Si todo está bien, la página de su dispositivo se actualizará inmediatamente con datos de diagnóstico.
Paso 3: envío de datos a la nube
Ahora necesitamos modificar control.py para leer e informar el color, la temperatura y la gravedad de Tilt. El resultado se ve así:
from os import unamefrom socket import gethostname import sys import time import cloud4rpi import rpi import tilt
# Pon el token de tu dispositivo aquí. Para conseguir el token
# regístrese en https://cloud4rpi.io y cree un dispositivo. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constantes
DATA_SENDING_INTERVAL = 60 # segundos DIAG_SENDING_INTERVAL = 600 # segundos POLL_INTERVAL = 0.5 # 500 ms
baliza = {}
def F2C (gradosF):
retorno (grados F - 32) / 1.8
def getTemp ():
return F2C (int (beacon ['Temp'])) si beacon else None
def getGravity ():
devolver baliza ['Gravedad'] si baliza más Ninguno
def principal ():
# Ponga aquí las declaraciones de variables
variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnostics = {
'CPU Temp': rpi.cpu_temp, 'Dirección IP': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}
dispositivo = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variables) device.declare_diag (diagnóstico)
device.publish_config ()
# Agrega un retraso de 1 segundo para garantizar que se creen las variables del dispositivo
hora de dormir (1)
tratar:
data_timer = 0 diag_timer = 0 while True: si data_timer <= 0: baliza global baliza = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
si diag_timer <= 0: dispositivo.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
excepto KeyboardInterrupt:
cloud4rpi.log.info ('Se recibió una interrupción del teclado. Deteniendo …')
excepto la excepción como e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!% s% s", error, sys.exc_info () [0])
finalmente:
sys.exit (0)
if _name_ == '_main_':
principal()
Ahora ejecútelo manualmente para ver si funciona:
sudo python control.py
Si todo está bien, verá sus variables en línea.
Para ejecutar control.py al iniciar el sistema, instálelo como un servicio. Cloud4rpi proporciona un script de instalación service_install.sh para hacerlo. Lo he incluido en mi repositorio. Para instalar control.py como servicio, ejecute
sudo bash service_install.sh control.py
Ahora puede iniciar | detener | reiniciar este servicio ejecutando el comando
sudo systemctl iniciar cloud4rpi.service
El servicio mantiene su estado anterior al encender, por lo que si estaba en ejecución, lo estará después del reinicio o la pérdida de energía.
Paso 4: resultado final
Esto es todo, ahora tengo mis parámetros de Tilt enviados a la nube, por lo que puedo configurar un buen panel de control en la nube para ello. Vaya a https://cloud4rpi.io/control-panels y cree un nuevo panel de control, agregue un widget y seleccione / Gravity and Beer Temp como fuente de datos. Ahora puedo controlar lo que sucede incluso si estoy fuera de casa.
El código que copié y escribí está disponible aquí: https://github.com/superroma/tilt-cloud4rpi. Está lejos de ser perfecto, funciona solo con una sola inclinación, no le importa el "color" del dispositivo, lo que sea que signifique, y no soy un tipo de Python en absoluto, por lo que las correcciones, sugerencias o bifurcaciones son bienvenidas. !
Recomendado:
Bricolaje -- Cómo hacer un robot araña que se puede controlar con un teléfono inteligente con Arduino Uno: 6 pasos
Bricolaje || Cómo hacer un robot Spider que se puede controlar con un teléfono inteligente con Arduino Uno: Al hacer un robot Spider, uno puede aprender muchas cosas sobre robótica. Como hacer Robots, es entretenido y desafiante. En este video te vamos a mostrar cómo hacer un robot Spider, que podemos operar usando nuestro teléfono inteligente (Androi
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: 4 pasos (con imágenes)
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: Sonoff es una línea de dispositivos para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea es Sonoff Basic. Es un conmutador habilitado para Wi-Fi basado en un gran chip, ESP8266. Este artículo describe cómo configurar el Cl
Juego de laberinto para controlar con un teléfono inteligente: 5 pasos (con imágenes)
Juego de laberinto para controlar con teléfono inteligente: juego de laberinto para controlar con teléfono inteligente.El laberinto se mueve de acuerdo con la pendiente del teléfono inteligente.En primer lugar, vea el video.Imagen en movimiento1. Raspberry Pi es un servidor Websocket.2. El teléfono inteligente es un cliente de Websocket 3. El teléfono inteligente envía el ti
Controle los electrodomésticos desde su teléfono inteligente con la aplicación Blynk y Raspberry Pi: 5 pasos (con imágenes)
Controle los electrodomésticos desde su teléfono inteligente con la aplicación Blynk y Raspberry Pi: en este proyecto, aprenderemos a usar la aplicación Blynk y Raspberry Pi 3 para controlar electrodomésticos (cafetera, lámpara, cortina de ventana y más … Componentes de hardware: Raspberry Pi 3 Relay Lamp Breadboard Wires Aplicaciones de software: Blynk A
Probador del valor de aceleración de la gravedad: 5 pasos (con imágenes)
Probador del valor de aceleración de la gravedad: basado en la cinemática, este proyecto mide el valor de la constante de aceleración de la gravedad (el ‘ g ’) midiendo los datos de movimiento de caída libre. Por la guía de la pantalla LCD, un objeto (como una bola de madera , bola de cristal, bola de acero, etc.) caen