Taula de continguts:

Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del telèfon intel·ligent: 4 passos (amb imatges)
Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del telèfon intel·ligent: 4 passos (amb imatges)

Vídeo: Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del telèfon intel·ligent: 4 passos (amb imatges)

Vídeo: Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del telèfon intel·ligent: 4 passos (amb imatges)
Vídeo: 4 formas de controlar la temperatura de fermentacion (CASERAS) | NoSoyNormal Cerveceria 2024, De novembre
Anonim
Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del vostre telèfon intel·ligent
Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del vostre telèfon intel·ligent

Quan la cervesa fermenta, n’haureu de controlar la gravetat i la temperatura diàriament. És fàcil oblidar-se de fer-ho i és impossible si no hi és.

Després d'alguns problemes de Google, vaig trobar diverses solucions per al control automatitzat de la gravetat (una, dues, tres). Un d’ells, amb un concepte molt intel·ligent, anomenat Tilt. La inclinació flota a la cervesa i mesura el seu propi angle d’inclinació. Aquest angle depèn de la densitat del líquid i, per tant, pot mesurar la gravetat de la cervesa que fermenta.

Tilt inclou una aplicació mòbil que es connecta a ella i pot publicar dades a qualsevol servei web. El problema és que cal estar no lluny de Tilt per poder fer-ho. També hi ha un programa Raspberry Pi que funciona amb Tilt.

Pas 1: Obtenir dades d'inclinació a Python

Obtenir dades d'inclinació a Python
Obtenir dades d'inclinació a Python

Ja estic fent servir Raspberry Pi per controlar la temperatura del celler i un servei de tauler de control al núvol cloud4rpi.io. Si Tilt pot parlar amb Raspberry Pi, hauria de ser possible connectar-hi cloud4rpi. Tilt utilitza un protocol sense fils, de manera que necessitareu Raspberry Pi amb un xip sense fils (Rasbperry Pi 3 o Zero W).

Per sort, hi ha un repositori de GitHub per al programari Tilt amb algunes mostres. Si veieu https://github.com/baronbrew/tilt-scan, podeu veure que Tilt es veu per a altres persones com BLE iBeacon, amb "Color" codificat en UUID, i que la temperatura i la gravetat es troben en bytes majors i menors.

El seu codi de mostra és per a Node.js i tinc un programa de control de Python basat en la plantilla cloud4rpi

Per tant, necessito obtenir dades Tilt a Python. Després d’haver buscat Google, vaig trobar https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Aquest és un programa, no una biblioteca, així que el vaig modificar per tornar un diccionari en lloc de cadena. I també vaig escriure un mòdul específic de Tilt per obtenir color, temperatura i gravetat del primer Tilt trobat (només en tinc un) i un senzill programa de prova per comprovar si pot veure el meu Tilt:

importació d'importació inclinació

mentre que és cert:

res = tilt.getFirstTilt () imprimeix res time.sleep (2)

Executeu i comproveu que funcioni. Ara el puc connectar al meu programa de control. Ja tinc un programa Python connectat a cloud4rpi.io, però permeteu-me mostrar com fer-ho des de zero.

Pas 2: Connexió del dispositiu al núvol

Connexió del dispositiu al núvol
Connexió del dispositiu al núvol
Connexió del dispositiu al núvol
Connexió del dispositiu al núvol

Primer, inicieu la sessió a cloud4rpi.io i, a continuació, creeu un dispositiu nou.

Se us proporcionarà un testimoni de dispositiu i instruccions d’instal·lació. Per a Raspberry Pi, seguiu les instruccions aquí https://docs.cloud4rpi.io/start/rpi/: assegureu-vos que el vostre sistema estigui actualitzat:

actualització sudo apt && actualització sudo apt

Instal·leu els requisits previs:

sudo apt install git python python-pip

Instal·leu els paquets python cloud4rpi:

sudo pip instal·la cloud4rpi

a continuació, obteniu una aplicació de pitó de mostra per a Raspberry Pi (a la carpeta de control):

git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… control

control de cd

modifica control.py: especifiqueu el testimoni del dispositiu a la línia

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

Elimineu les entrades innecessàries de les declaracions de variables del dispositiu, deixeu només CPUTemp per provar la connexió del dispositiu:

# Posa declaracions de variables aquí variables = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Ara feu una prova:

sudo python control.py

Si tot està bé, la pàgina del dispositiu s'actualitzarà immediatament amb les dades de diagnòstic.

Pas 3: enviament de dades al núvol

Enviament de dades al núvol
Enviament de dades al núvol

Ara hem de modificar control.py per llegir i informar del color, la temperatura i la gravetat de Tilt. El resultat té aquest aspecte:

des de la importació uname de socket importació gethostname importació sys importació temps importació cloud4rpi importació rpi importació inclinació

# Posa el testimoni del dispositiu aquí. Per obtenir el testimoni, # registreu-vos a https://cloud4rpi.io i creeu un dispositiu. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Constants

DATA_SENDING_INTERVAL = 60 # segons DIAG_SENDING_INTERVAL = 600 # segons POLL_INTERVAL = 0,5 # 500 ms

balisa = {}

def F2C (graus F):

retorn (graus F - 32) / 1,8

def getTemp ():

retorna F2C (int (beacon ['Temp'])) si el beacon més Cap

def getGravity ():

torna la balisa ['Gravity'] si la balisa més Cap

def main ():

# Poseu declaracions de variables aquí

variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}

diagnòstic = {

'CPU Temp': rpi.cpu_temp, 'Adreça IP': rpi.ip_address, 'Amfitrió': gethostname (), 'Sistema operatiu': "".join (uname ())}

device = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (variables) device.declare_diag (diagnòstic)

device.publish_config ()

# Afegeix un retard d'1 segon per garantir que es creen variables del dispositiu

time.sleep (1)

provar:

data_timer = 0 diag_timer = 0 mentre és True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

si diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL

time.sleep (POLL_INTERVAL)

diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL

excepte KeyboardInterrupt:

cloud4rpi.log.info ("S'ha rebut una interrupció del teclat. Aturant …")

excepte Excepció com a e:

error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!% s% s", error, sys.exc_info () [0])

finalment:

sys.exit (0)

si _nom_ == '_principal_':

main ()

Ara executeu-lo manualment per veure si funciona:

sudo python control.py

Si tot és bo, veureu les vostres variables en línia.

Per executar control.py a l'inici del sistema, instal·leu-lo com a servei. Cloud4rpi proporciona un script d'instal·lació service_install.sh per fer-ho. L’he inclòs a la meva reposició. Per instal·lar control.py com a servei, executeu

sudo bash service_install.sh control.py

Ara podeu iniciar | aturar | reiniciar aquest servei executant l'ordre

sudo systemctl iniciar cloud4rpi.service

El servei manté el seu estat anterior encès, de manera que, si s’estava executant, s’executarà després del reinici o de la pèrdua d’alimentació.

Pas 4: Resultat final

Resultat final
Resultat final

Això és tot, ara tinc els meus paràmetres d’inclinació enviats al núvol, de manera que puc configurar un bon tauler de control del núvol. Aneu a https://cloud4rpi.io/control-panels i creeu un tauler de control nou, afegiu widget i seleccioneu / Gravity and Beer Temp com a font de dades. Ara puc controlar què passa, encara que estigui fora de casa.

El codi que vaig copiar i escriure està disponible aquí: https://github.com/superroma/tilt-cloud4rpi. És lluny de ser perfecte, només funciona amb una sola inclinació, no li importa el "color" del dispositiu, el que vulgui significar, i no sóc cap tipus de Python, així que les correccions, els suggeriments o les forquilles són benvinguts. !

Recomanat: