Cuprins:

Cum să controlați temperatura și gravitatea fermentației berii de pe telefonul dvs. smartphone: 4 pași (cu imagini)
Cum să controlați temperatura și gravitatea fermentației berii de pe telefonul dvs. smartphone: 4 pași (cu imagini)

Video: Cum să controlați temperatura și gravitatea fermentației berii de pe telefonul dvs. smartphone: 4 pași (cu imagini)

Video: Cum să controlați temperatura și gravitatea fermentației berii de pe telefonul dvs. smartphone: 4 pași (cu imagini)
Video: Salvează-ți PANCREASUL până nu este Prea Târziu! Cel mai Bun Remediu care poate fi Făcut ACASĂ... 2024, Iulie
Anonim
Cum să controlați temperatura și gravitatea fermentației berii de pe smartphone-ul dvs
Cum să controlați temperatura și gravitatea fermentației berii de pe smartphone-ul dvs

Când berea fermentează, ar trebui să îi monitorizați zilnic gravitația și temperatura. Este ușor să uiți să faci acest lucru și este imposibil dacă ești plecat.

După câteva căutări, am găsit mai multe soluții pentru monitorizarea automată a gravitației (una, două, trei). Unul dintre ei, cu un concept foarte inteligent, numit Tilt. Înclinarea plutește în berea dvs. și își măsoară propriul unghi de înclinare. Acest unghi depinde de densitatea lichidului și, prin urmare, poate măsura gravitația berii care fermentează.

Tilt vine cu o aplicație mobilă, care se conectează la aceasta și poate posta date în orice serviciu web. Problema este că trebuie să fii nu departe de Tilt pentru a putea face acest lucru. Există, de asemenea, un program Raspberry Pi care funcționează cu Tilt.

Pasul 1: Obținerea datelor de înclinare în Python

Obținerea datelor Tilt în Python
Obținerea datelor Tilt în Python

Folosesc deja Raspberry Pi pentru a monitoriza temperatura pivniței și un serviciu de panou de control cloud cloud4rpi.io. Dacă Tilt poate vorbi cu Raspberry Pi, ar trebui să se poată conecta cloud4rpi la acesta. Tilt utilizează un protocol wireless, deci veți avea nevoie de Raspberry Pi cu un cip wireless (Rasbperry Pi 3 sau Zero W).

Din fericire, există o repo GitHub pentru software-ul Tilt cu câteva mostre. Uitându-vă la https://github.com/baronbrew/tilt-scan, puteți vedea că Tilt arată celorlalți ca BLE iBeacon, cu „Color” codificat în UUID, iar temperatura și gravitația sunt în octeți majori și minori.

Codul lor eșantion este pentru Node.js și am un program de control Python bazat pe șablonul cloud4rpi

Deci, trebuie să obțin date Tilt în Python. După câteva căutări, am găsit https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Acesta este un program, nu o bibliotecă, așa că l-am modificat pentru a returna un dicționar în loc de șir. Și am scris și modulul specific Tilt pentru a obține culoarea, temperatura și gravitatea primului Tilt găsit (am doar unul) și un program simplu de testare pentru a verifica dacă poate vedea Tilt-ul meu:

import timp înclinare import

în timp ce este adevărat:

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

Rulați și verificați dacă funcționează. Acum îl pot conecta la programul meu de control. Am deja un program python conectat la cloud4rpi.io, dar permiteți-mi să vă arăt cum să fac acest lucru de la zero.

Pasul 2: Conectarea dispozitivului la cloud

Conectarea dispozitivului la cloud
Conectarea dispozitivului la cloud
Conectarea dispozitivului la cloud
Conectarea dispozitivului la cloud

Mai întâi, conectați-vă la cloud4rpi.io, apoi creați un dispozitiv nou.

Veți primi un jeton de dispozitiv și instrucțiuni de instalare. Pentru Raspberry Pi, urmați instrucțiunile de aici https://docs.cloud4rpi.io/start/rpi/ - asigurați-vă că sistemul dvs. este actualizat:

sudo apt update && sudo apt upgrade

Instalați premisele:

sudo apt instalează git python python-pip

Instalați pachetele python cloud4rpi:

sudo pip instalează cloud4rpi

apoi obțineți un exemplu de aplicație python pentru Raspberry Pi (în folderul de control):

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

control cd

modifica control.py - specificați jetonul dispozitivului în linie

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Eliminați intrările inutile din declarațiile de variabile ale dispozitivului, lăsați doar CPUTemp pentru a testa conexiunea dispozitivului:

# Puneți aici declarații variabile variabile = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Acum, efectuați un test:

sudo python control.py

Dacă totul este în regulă, pagina dispozitivului dvs. va fi actualizată imediat cu date de diagnosticare.

Pasul 3: Trimiterea datelor către cloud

Trimiterea datelor către cloud
Trimiterea datelor către cloud

Acum trebuie să modificăm control.py pentru a citi și a raporta culoarea, temperatura și gravitatea Tilt. Rezultatul arată astfel:

din os import uname din socket import gethostname import sys import time import cloud4rpi import rpi import tilt

# Puneți simbolul dispozitivului aici. Pentru a obține jetonul, # înscrieți-vă la https://cloud4rpi.io și creați un dispozitiv. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Constante

DATA_SENDING_INTERVAL = 60 # secunde DIAG_SENDING_INTERVAL = 600 # sec. POLL_INTERVAL = 0,5 # 500 ms

far = {}

def F2C (grade F):

retur (grade F - 32) / 1,8

def getTemp ():

returnează F2C (int (beacon ['Temp'])) dacă beacon altul None

def getGravity ():

return beacon ['Gravity'] dacă beacon altul Nici unul

def main ():

# Puneți aici declarații variabile

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

diagnostic = {

'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}

device = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (variabile) device.declare_diag (diagnostice)

device.publish_config ()

# Adaugă o întârziere de 1 secundă pentru a se asigura că sunt create variabilele dispozitivului

time.sleep (1)

încerca:

data_timer = 0 diag_timer = 0 în timp ce True: if data_timer <= 0: beacon global beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

dacă diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL

time.sleep (POLL_INTERVAL)

diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL

cu excepția KeyboardInterrupt:

cloud4rpi.log.info ('Întrerupere tastatură primită. Oprire …')

cu excepția excepției ca e:

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

in cele din urma:

sys.exit (0)

dacă _name_ == '_main_':

principal()

Acum rulați-l manual pentru a vedea dacă funcționează:

sudo python control.py

Dacă totul este bun, veți vedea variabilele dvs. online.

Pentru a rula control.py la pornirea sistemului, instalați-l ca serviciu. Cloud4rpi oferă un script de instalare service_install.sh pentru a face acest lucru. L-am inclus în repo. Pentru a instala control.py ca serviciu, rulați

sudo bash service_install.sh control.py

Acum puteți porni | opri | reporniți acest serviciu executând comanda

sudo systemctl pornește cloud4rpi.service

Serviciul își păstrează starea anterioară la pornire, așa că, dacă a funcționat, va rula după repornire sau pierdere de energie.

Pasul 4: Rezultatul final

Rezultat final
Rezultat final

Asta este, acum am parametrii Tilt care sunt trimiși în cloud, așa că pot configura un panou de control pentru cloud. Accesați https://cloud4rpi.io/control-panels și creați un nou panou de control, adăugați widget și selectați / Gravity și Beer Temp ca sursă de date. Acum pot monitoriza ce se întâmplă chiar dacă sunt departe de casă.

Codul pe care l-am copiat și am scris este disponibil aici: https://github.com/superroma/tilt-cloud4rpi. Este departe de a fi perfect, funcționează doar cu o singură înclinare, nu-i pasă de „Culoarea” dispozitivului, orice ar însemna, și nu sunt deloc un tip Python, așa că remedierile, sugestiile sau furculițele sunt binevenite !

Recomandat: