Índice:
- Etapa 1: obter dados de inclinação em Python
- Etapa 2: Conectando o dispositivo à nuvem
- Etapa 3: Envio de dados para a nuvem
- Etapa 4: Resultado final
Vídeo: Como controlar a temperatura e a gravidade da fermentação da cerveja em seu smartphone: 4 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Quando a cerveja está fermentando, você deve monitorar sua gravidade e temperatura diariamente. É fácil esquecer de fazer isso e impossível se você estiver ausente.
Depois de pesquisar no Google, encontrei várias soluções para monitoramento automatizado da gravidade (um, dois, três). Um deles, com conceito muito inteligente, se chama Tilt. A inclinação está flutuando na cerveja e medindo seu próprio ângulo de inclinação. Este ângulo depende da densidade do líquido e, portanto, pode medir a gravidade da cerveja em fermentação.
O Tilt vem com um aplicativo móvel que se conecta a ele e pode postar dados em qualquer serviço da web. O problema é que você não precisa estar longe do Tilt para fazer isso. Também existe um programa Raspberry Pi que funciona com o Tilt.
Etapa 1: obter dados de inclinação em Python
Já estou usando o Raspberry Pi para monitorar a temperatura da adega e um serviço de painel de controle em nuvem cloud4rpi.io. Se o Tilt puder falar com o Raspberry Pi, deve ser possível conectar o cloud4rpi a ele. O Tilt está usando um protocolo sem fio, então você precisará do Raspberry Pi com um chip sem fio (Rasbperry Pi 3 ou Zero W).
Felizmente, existe um repositório GitHub para o software Tilt com alguns exemplos. Olhando em https://github.com/baronbrew/tilt-scan, você pode ver que o Tilt parece para os outros como um iBeacon BLE, com “Cor” codificado em UUID, e a temperatura e a gravidade estão em bytes maiores e menores.
Seu código de amostra é para Node.js, e eu tenho um programa de controle Python baseado no modelo cloud4rpi
Portanto, preciso obter dados do Tilt em Python. Depois de pesquisar no Google, encontrei https://github.com/switchdoclabs/iBeacon-Scanner- - scanner Python iBeacon. Este é um programa, não uma biblioteca, então eu o modifiquei para retornar um dicionário em vez de uma string. E também escrevi um módulo específico do Tilt para obter a cor, temperatura e gravidade do primeiro Tilt encontrado (tenho apenas um), e um programa de teste simples para verificar se consegue ver o meu Tilt:
importar timeimport tilt
enquanto verdadeiro:
res = tilt.getFirstTilt () print res time.sleep (2)
Execute e verifique se funciona. Agora posso conectá-lo ao meu programa de controle. Já tenho um programa python conectado a cloud4rpi.io, mas deixe-me mostrar como fazer isso do zero.
Etapa 2: Conectando o dispositivo à nuvem
Primeiro, faça login em cloud4rpi.io e, em seguida, crie um novo dispositivo.
Você receberá um token de dispositivo e instruções de instalação. Para Raspberry Pi, siga as instruções aqui https://docs.cloud4rpi.io/start/rpi/ - certifique-se de que seu sistema está atualizado:
sudo apt update && sudo apt update
Pré-requisitos de instalação:
sudo apt install git python python-pip
Instale os pacotes python cloud4rpi:
sudo pip install cloud4rpi
em seguida, obtenha um aplicativo Python de amostra para Raspberry Pi (na pasta de controle):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… controle
controle de cd
modificar control.py - especifique o token do seu dispositivo na linha
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Remova entradas desnecessárias de declarações de variáveis de dispositivo, deixe apenas CPUTemp para testar a conexão do dispositivo:
# Coloque as declarações de variáveis aqui variables = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Agora faça um teste:
sudo python control.py
Se tudo estiver bem, a página do seu dispositivo será atualizada imediatamente com os dados de diagnóstico.
Etapa 3: Envio de dados para a nuvem
Agora precisamos modificar control.py para ler e relatar a cor, temperatura e gravidade do Tilt. O resultado é assim:
from os import unamefrom socket import gethostname import sys import time import cloud4rpi importar rpi importar tilt
# Coloque o token do seu dispositivo aqui. Para obter o token, # inscreva-se em https://cloud4rpi.io e crie um dispositivo. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constantes
DATA_SENDING_INTERVAL = 60 # s DIAG_SENDING_INTERVAL = 600 # s POLL_INTERVAL = 0,5 # 500 ms
beacon = {}
def F2C (grausF):
retorno (grausF - 32) / 1,8
def getTemp ():
return F2C (int (beacon ['Temp'])) se beacon else Nenhum
def getGravity ():
return beacon ['Gravity'] se beacon else Nenhum
def main ():
# Coloque as declarações de variáveis aqui
variáveis = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnósticos = {
'Temp da CPU': rpi.cpu_temp, 'Endereço IP': rpi.ip_address, 'Host': gethostname (), 'Sistema operacional': "".join (uname ())}
device = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variables) device.declare_diag (diagnostics)
device.publish_config ()
# Adiciona um atraso de 1 segundo para garantir que as variáveis do dispositivo sejam criadas
time.sleep (1)
Experimente:
data_timer = 0 diag_timer = 0 enquanto True: if data_timer <= 0: beacon global beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
se diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
exceto KeyboardInterrupt:
cloud4rpi.log.info ('Interrupção de teclado recebida. Parando…')
exceto exceção como e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!% s% s", erro, sys.exc_info () [0])
finalmente:
sys.exit (0)
if _name_ == '_main_':
a Principal()
Agora execute-o manualmente para ver se funciona:
sudo python control.py
Se tudo estiver bem, você verá suas variáveis online.
Para executar control.py na inicialização do sistema, instale-o como um serviço. Cloud4rpi fornece um script de instalação service_install.sh para fazer isso. Eu o incluí em meu repositório. Para instalar control.py como um serviço, execute
sudo bash service_install.sh control.py
Agora você pode iniciar | parar | reiniciar este serviço executando o comando
sudo systemctl start cloud4rpi.service
O serviço mantém seu estado anterior ao ligar, portanto, se estava em execução, ele será executado após a reinicialização ou perda de energia.
Etapa 4: Resultado final
É isso, agora tenho meus parâmetros de inclinação sendo enviados para a nuvem, então posso configurar um painel de controle de nuvem legal para ele. Acesse https://cloud4rpi.io/control-panels e crie um novo painel de controle, adicione o widget e selecione / Gravity e Beer Temp como fonte de dados. Agora posso monitorar o que está acontecendo, mesmo estando longe de casa.
O código que copiei e escrevi está disponível aqui: https://github.com/superroma/tilt-cloud4rpi. Está longe de ser perfeito, funciona apenas com um único Tilt, não liga para a “cor” do dispositivo, seja o que for, e eu não sou um cara do Python, então correções, sugestões ou bifurcações são bem-vindas !
Recomendado:
LEDs e gravidade?: 4 etapas
LEDs e gravidade?: Este projeto não tem nenhum uso prático, mas foi iniciado como um exercício de implementação de fórmulas físicas relacionadas à gravidade em código C em um Arduino. Para tornar as coisas visíveis, foi usada uma faixa de LED de neopixel com 74 LEDs. O efeito da gravitação
Câmara de crescimento de baixa gravidade: 4 etapas
Câmara de crescimento de baixa gravidade: projetei esta câmara de crescimento para uso no espaço. Ele usa o fusion 360, que uso como aluno. ele incorpora luz que é espaçada uniformemente por toda a câmara para que a planta cresça em todo o espaço disponível para que haja mais plantas para
Testador de valor de aceleração da gravidade: 5 etapas (com imagens)
Testador de valor de aceleração da gravidade: com base na cinemática, este projeto mede o valor da constante de aceleração da gravidade (o ‘ g ’) medindo os dados do movimento de queda livre. Com o guia da tela LCD, um objeto (como uma bola de madeira , bola de vidro, bola de aço, etc.) cair
Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: 6 etapas
Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: eu tenho lido sobre instrutíveis há algum tempo e sempre quis fazer algumas das coisas que as pessoas escreveram, mas me peguei olhando coisas que são difíceis de fazer porque são genuinamente difíceis de fazer, ou o
Reciclando seu interruptor de dimmer antigo como um controle de temperatura variável para seu ferro de soldar: 7 etapas
Reciclando seu interruptor de dimmer antigo como um controle de temperatura variável para seu ferro de soldar: Eu vi muitos controles de temperatura variável profissional para ferro de solda, mas muito caros. Então eu faço um com um interruptor dimmer antigo, tomada, placa de conexão e plugue que já era lixo e alguma caixa de interruptor de PVC velha que veio com ele e então