Kazalo:

Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona: 4 koraki (s slikami)
Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona: 4 koraki (s slikami)

Video: Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona: 4 koraki (s slikami)

Video: Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona: 4 koraki (s slikami)
Video: Высокая плотность 2022 2024, December
Anonim
Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona
Kako nadzorovati temperaturo in težo fermentacije piva s pametnega telefona

Ko fermentira pivo, morate dnevno spremljati njegovo težo in temperaturo. Na to je enostavno pozabiti in nemogoče, če vas ni.

Po googlanju sem našel več rešitev za avtomatizirano spremljanje gravitacije (eno, dve, tri). Eden od njih, z zelo pametnim konceptom, se imenuje Tilt. Nagib plava v vašem pivu in meri svoj kot nagiba. Ta kot je odvisen od gostote tekočine in zato lahko meri težo fermentiranega piva.

Tilt ima mobilno aplikacijo, ki se poveže z njim in lahko objavi podatke v kateri koli spletni storitvi. Težava je v tem, da morate biti nedaleč od Tilta, da bi to lahko storili. Obstaja tudi program Raspberry Pi, ki deluje s programom Tilt.

1. korak: Pridobivanje podatkov o nagibu v Pythonu

Pridobivanje podatkov o nagibu v Pythonu
Pridobivanje podatkov o nagibu v Pythonu

Že uporabljam Raspberry Pi za spremljanje temperature v kleti in storitev nadzorne plošče v oblaku cloud4rpi.io. Če se lahko Tilt pogovarja z Raspberry Pi, bi bilo treba z njim povezati cloud4rpi. Tilt uporablja brezžični protokol, zato boste potrebovali Raspberry Pi z brezžičnim čipom (Rasbperry Pi 3 ali Zero W).

Na srečo obstaja GitHub repo za programsko opremo Tilt z nekaj vzorci. Če pogledate https://github.com/baronbrew/tilt-scan, lahko vidite, da Tilt drugim izgleda kot BLE iBeacon, z oznako »Color« v UUID-u, temperatura in gravitacija pa v velikih in manjših bajtih.

Njihova vzorčna koda je za Node.js in imam nadzorni program Python, ki temelji na predlogi cloud4rpi

Zato moram v Python dobiti podatke o nagibu. Po googlanju sem našel https://github.com/switchdoclabs/iBeacon-Scanner-- skener Python iBeacon. To je program, ne knjižnica, zato sem ga spremenil tako, da je namesto niza vrnil slovar. Napisal sem tudi modul, specifičen za nagib, da dobim barvo, temperaturo in težo prvega najdenega nagiba (imam samo enega), in preprost preskusni program za preverjanje, ali lahko vidi moj nagib:

čas uvoza uvoz nagib

medtem ko je res:

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

Zaženite in preverite, ali deluje. Zdaj ga lahko priključim na svoj nadzorni program. Že imam program python, povezan z cloud4rpi.io, vendar naj pokažem, kako to storiti iz nič.

2. korak: Povezovanje naprave z oblakom

Povezovanje naprave z oblakom
Povezovanje naprave z oblakom
Povezovanje naprave z oblakom
Povezovanje naprave z oblakom

Najprej se prijavite v cloud4rpi.io, nato pa ustvarite novo napravo.

Dobili boste žeton naprave in navodila za namestitev. Za Raspberry Pi sledite navodilom tukaj https://docs.cloud4rpi.io/start/rpi/-preverite, ali je vaš sistem posodobljen:

sudo apt update && sudo apt upgrade

Predpogoji za namestitev:

sudo apt install git python python-pip

Namestite pakete python cloud4rpi:

sudo pip namestite cloud4rpi

nato dobite vzorčno aplikacijo python za Raspberry Pi (v nadzorno mapo):

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

cd nadzor

spremeni control.py - v vrstico vnesite žeton naprave

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Odstranite nepotrebne vnose iz deklaracij spremenljivk naprave, za preizkus povezave naprave pustite samo CPUTemp:

# Tu vnesite deklaracije spremenljivk = {'Temp CPU': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Zdaj naredite preskusno vožnjo:

sudo python control.py

Če je vse v redu, bo stran vaše naprave takoj posodobljena z diagnostičnimi podatki.

3. korak: pošiljanje podatkov v oblak

Pošiljanje podatkov v oblak
Pošiljanje podatkov v oblak

Zdaj moramo spremeniti control.py za branje in poročanje o Tilttovi barvi, temperaturi in gravitaciji. Rezultat izgleda takole:

iz os uvoz uname iz vtičnice uvoz gethostname uvoz sys čas uvoza uvoz cloud4rpi uvoz rpi uvoz nagib

# Tukaj vnesite žeton naprave. Če želite dobiti žeton, # prijavite se na https://cloud4rpi.io in ustvarite napravo. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstante

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

svetilnik = {}

def F2C (stopinjeF):

povrat (stopinjeF - 32) / 1,8

def getTemp ():

vrni F2C (int (svetilnik ['Temp'])), če svetilnik drugače Jih ni

def getGravity ():

return beacon ['Gravity'] če svetilnik drugače Noben

def main ():

# Tukaj vnesite deklaracije spremenljivk

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

diagnostika = {

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

naprava = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (spremenljivke) device.declare_diag (diagnostika)

device.publish_config ()

# Doda 1 sekundno zamudo za zagotovitev ustvarjanja spremenljivk naprave

time.sleep (1)

poskusi:

data_timer = 0 diag_timer = 0 while True: če je data_timer <= 0: globalni svetilnik = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

če diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

razen KeyboardInterrupt:

cloud4rpi.log.info ('Prejet prekinitev tipkovnice. Ustavitev …')

razen izjeme kot e:

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

končno:

sys.exit (0)

če _name_ == '_main_':

main ()

Zdaj ga zaženite ročno in preverite, ali deluje:

sudo python control.py

Če je vse v redu, boste na spletu videli svoje spremenljivke.

Če želite zagnati control.py ob zagonu sistema, ga namestite kot storitev. Cloud4rpi ponuja namestitveni skript service_install.sh. To sem vključil v svoj repo. Če želite namestiti control.py kot storitev, zaženite

sudo bash service_install.sh control.py

Zdaj lahko začnete | stop | znova zaženete to storitev z zagonom ukaza

sudo systemctl začni cloud4rpi.service

Storitev ohranja vklopljeno prejšnje stanje, zato bo delovala po ponovnem zagonu ali izpadu napajanja.

4. korak: Končni rezultat

Končni rezultat
Končni rezultat

To je to, zdaj imam svoje parametre nagiba, ki se pošiljajo v oblak, zato lahko zanj nastavim lepo nadzorno ploščo v oblaku. Pojdite na https://cloud4rpi.io/control-panels in ustvarite novo nadzorno ploščo, dodajte pripomoček in izberite/Gravity and Beer Temp kot vir podatkov. Zdaj lahko spremljam, kaj se dogaja, tudi če nisem doma.

Koda, ki sem jo kopirala in napisala, je na voljo tukaj: https://github.com/superroma/tilt-cloud4rpi. Še zdaleč ni popoln, deluje le z enim nagibom, ne zanima ga "barva" naprave, karkoli že pomeni, sploh pa nisem Pythonov tip, zato so popravki, predlogi ali vilice dobrodošli !

Priporočena: