Sommario:
- Passaggio 1: ottenere dati di inclinazione in Python
- Passaggio 2: connessione del dispositivo al cloud
- Passaggio 3: invio di dati al cloud
- Passaggio 4: risultato finale
Video: Come Controllare la Temperatura e la Gravità di Fermentazione della Birra dal Tuo Smartphone: 4 Passaggi (Illustrato)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Quando la birra sta fermentando, dovresti controllarne la gravità e la temperatura ogni giorno. È facile dimenticare di farlo, e impossibile se sei lontano.
Dopo aver cercato su Google, ho trovato diverse soluzioni per il monitoraggio automatico della gravità (uno, due, tre). Uno di loro, con un concetto molto intelligente, chiamato Tilt. L'inclinazione galleggia nella tua birra e sta misurando il proprio angolo di inclinazione. Questo angolo dipende dalla densità del liquido e quindi può misurare la gravità della birra in fermentazione.
Tilt viene fornito con un'app mobile, che si connette ad essa e può inviare dati a qualsiasi servizio web. Il problema è che devi essere non lontano da Tilt per poterlo fare. C'è anche un programma Raspberry Pi che funziona con Tilt.
Passaggio 1: ottenere dati di inclinazione in Python
Sto già utilizzando Raspberry Pi per monitorare la temperatura della cantina e un servizio di pannello di controllo cloud cloud4rpi.io. Se Tilt può parlare con Raspberry Pi, dovrebbe essere possibile connettere cloud4rpi ad esso. Tilt utilizza un protocollo wireless, quindi avrai bisogno di Raspberry Pi con un chip wireless (Rasbperry Pi 3 o Zero W).
Fortunatamente, esiste un repository GitHub per il software Tilt con alcuni esempi. Guardando https://github.com/baronbrew/tilt-scan puoi vedere che Tilt guarda agli altri come BLE iBeacon, con "Color" codificato in UUID, e la temperatura e la gravità sono in byte maggiori e minori.
Il loro codice di esempio è per Node.js e ho un programma di controllo Python basato sul modello cloud4rpi
Quindi ho bisogno di ottenere i dati Tilt in Python. Dopo aver cercato su Google, ho trovato https://github.com/switchdoclabs/iBeacon-Scanner- - Scanner iBeacon Python. Questo è un programma, non una libreria, quindi l'ho modificato per restituire un dizionario invece di una stringa. E ho anche scritto un modulo specifico per Tilt per ottenere colore, temperatura e gravità del primo Tilt trovato (ne ho solo uno) e un semplice programma di test per verificare se può vedere il mio Tilt:
import timeimport tilt
mentre vero:
res = tilt.getFirstTilt() print res time.sleep(2)
Esegui e verifica che funzioni. Ora posso collegarlo al mio programma di controllo. Ho già un programma Python connesso a cloud4rpi.io, ma lascia che ti mostri come farlo da zero.
Passaggio 2: connessione del dispositivo al cloud
Innanzitutto, accedi a cloud4rpi.io, quindi crea un nuovo dispositivo.
Ti verrà fornito un token del dispositivo e le istruzioni di installazione. Per Raspberry Pi segui le istruzioni qui https://docs.cloud4rpi.io/start/rpi/ - assicurati che il tuo sistema sia aggiornato:
sudo apt update && sudo apt upgrade
Prerequisiti di installazione:
sudo apt install git python python-pip
Installa i pacchetti Python di cloud4rpi:
sudo pip install cloud4rpi
quindi ottieni un'app Python di esempio per Raspberry Pi (nella cartella di controllo):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… controllo
controllo cd
modifica control.py - specifica il token del tuo dispositivo nella riga
DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
Rimuovi le voci non necessarie dalle dichiarazioni delle variabili del dispositivo, lascia solo CPUTemp per testare la connessione del dispositivo:
# Inserisci qui le dichiarazioni delle variabili variabili = { 'CPU Temp': { 'type': 'numeric', 'bind': rpi.cpu_temp } }
Ora fai un test:
sudo python control.py
Se tutto è ok, la pagina del tuo dispositivo verrà immediatamente aggiornata con i dati di diagnostica.
Passaggio 3: invio di dati al cloud
Ora dobbiamo modificare control.py per leggere e riportare il colore, la temperatura e la gravità di Tilt. Il risultato è simile a questo:
from os import unamefrom socket import gethostname import sys import time import cloud4rpi import rpi import tilt
# Inserisci qui il token del tuo dispositivo. Per ottenere il token, # registrati su https://cloud4rpi.io e crea un dispositivo. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Costanti
DATA_SENDING_INTERVAL = 60 # sec DIAG_SENDING_INTERVAL = 600 # sec POLL_INTERVAL = 0,5 # 500 ms
faro = {}
def F2C(gradiF):
ritorno (gradiF - 32) / 1.8
def getTemp():
return F2C(int(beacon['Temp'])) se beacon else Nessuno
def getGravity():
return beacon['Gravity'] if beacon else Nessuno
def principale():
# Inserisci qui le dichiarazioni delle variabili
variabili = { 'Gravity': { 'type': 'numeric', 'bind': getGravity }, 'Beer Temp': { 'type': 'numeric', 'bind': getTemp } }
diagnostica = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname(), 'Operating System': " ".join(uname()) }
dispositivo = cloud4rpi.connect(DEVICE_TOKEN)
device.declare(variables) device.declare_diag(diagnostics)
device.publish_config()
# Aggiunge un ritardo di 1 secondo per garantire la creazione delle variabili del dispositivo
tempo.sonno(1)
Tentativo:
data_timer = 0 diag_timer = 0 mentre True: se data_timer <= 0: beacon globale beacon = tilt.getFirstTilt() device.publish_data() data_timer = DATA_SENDING_INTERVAL
if diag_timer <= 0: device.publish_diag() diag_timer = DIAG_SENDING_INTERVAL
time.sleep(POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
tranne KeyboardInterrupt:
cloud4rpi.log.info('Interrupt di tastiera ricevuto. Arresto in corso…')
tranne Eccezione come e:
errore = cloud4rpi.get_error_message(e) cloud4rpi.log.error("ERRORE! %s %s", errore, sys.exc_info()[0])
finalmente:
sys.exit(0)
if _name_ == '_main_':
principale()
Ora eseguilo manualmente per vedere se funziona:
sudo python control.py
Se tutto va bene, vedrai le tue variabili online.
Per eseguire control.py all'avvio del sistema, installalo come servizio. Cloud4rpi fornisce uno script di installazione service_install.sh per farlo. L'ho incluso nel mio repository. Per installare control.py come servizio, esegui
sudo bash service_install.sh control.py
Ora puoi avviare|arrestare|riavviare questo servizio eseguendo il comando
sudo systemctl start cloud4rpi.service
Il servizio mantiene il suo stato precedente all'accensione, quindi se era in esecuzione, sarà in esecuzione dopo il riavvio o l'interruzione dell'alimentazione.
Passaggio 4: risultato finale
Questo è tutto, ora ho i miei parametri di inclinazione inviati al cloud, quindi posso impostare un bel pannello di controllo cloud per questo. Vai su https://cloud4rpi.io/control-panels e crea un nuovo pannello di controllo, aggiungi widget e seleziona /Gravity e Beer Temp come origine dati. Ora posso monitorare cosa sta succedendo anche se sono lontano da casa.
Il codice che ho copiato e scritto è disponibile qui: https://github.com/superroma/tilt-cloud4rpi. È tutt'altro che perfetto, funziona solo con una singola inclinazione, non si preoccupa del "colore" del dispositivo, qualunque cosa significhi, e non sono affatto un ragazzo di Python, quindi correzioni, suggerimenti o fork sono i benvenuti !
Consigliato:
Come controllare un servomotore dal PC con la GUI: 5 passaggi
Come controllare un servomotore dal PC con la GUI: अपनी Servomotore को pc से Interfaccia utente grafica (GUI) के tramite il controllo करने के लिए में अपनी पहली Instructable Share कर रहा हूँ myblog-www.mechanic37.com पर आप ऐसे बहुत से project देख सकते है इस lettura istruibile करें जिसके द्वारा आप अपने pc से s
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale - Ottieni la temperatura e l'umidità della stanza sul tuo browser: 6 passaggi
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale | Ottieni la temperatura e l'umidità della stanza sul tuo browser: Ciao ragazzi, oggi faremo un'umidità e l'umidità; sistema di monitoraggio della temperatura utilizzando ESP 8266 NODEMCU & Sensore di temperatura DHT11. La temperatura e l'umidità saranno ottenute da DHT11 Sensor & può essere visto su un browser quale pagina web verrà gestita
Come Controllare gli Elettrodomestici con il Telecomando della TV con la Funzione Timer: 7 Passaggi (Illustrato)
Come controllare gli elettrodomestici con il telecomando della TV con funzione timer: anche dopo 25 anni dalla sua introduzione nel mercato consumer, la comunicazione a infrarossi è ancora molto rilevante negli ultimi giorni. Che si tratti del tuo televisore 4K da 55 pollici o del tuo sistema audio per auto, tutto ha bisogno di un telecomando IR per rispondere al nostro
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: 7 passaggi
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: ho visto un sacco di controllo della temperatura variabile professionale per il saldatore, ma troppo costoso. Quindi ne ho ricavato uno da un vecchio interruttore dimmer, presa, piastra e spina che erano già spazzatura e una vecchia scatola di interruttori in PVC fornita con esso e così
Come ritrasmettere WIFI come rete personale, DAL TUO LAPTOP!: 4 passaggi
Come ritrasmettere WIFI come rete personale, DAL TUO LAPTOP!: In questo tutorial ti mostrerò come ritrasmettere WIFI dal tuo laptop come rete protetta da password. Avrai bisogno di un laptop con Windows 7, poiché il software richiede alcuni dei progressi di Windows 7 e usa un laptop più recente b