INHOUDSOPGAWE:

Hoe om die temperatuur van die bierfermentasie en die swaartekrag van u slimfoon te beheer: 4 stappe (met foto's)
Hoe om die temperatuur van die bierfermentasie en die swaartekrag van u slimfoon te beheer: 4 stappe (met foto's)

Video: Hoe om die temperatuur van die bierfermentasie en die swaartekrag van u slimfoon te beheer: 4 stappe (met foto's)

Video: Hoe om die temperatuur van die bierfermentasie en die swaartekrag van u slimfoon te beheer: 4 stappe (met foto's)
Video: «Феномен исцеления» — Документальный фильм — Часть 2 2024, Julie
Anonim
Hoe om die temperatuur en swaartekrag van bierfermentasie vanaf u slimfoon te beheer
Hoe om die temperatuur en swaartekrag van bierfermentasie vanaf u slimfoon te beheer

As bier fermenteer, moet u die erns en temperatuur daarvan daagliks monitor. Dit is maklik om te vergeet om dit te doen, en as jy weg is, is dit onmoontlik.

Na 'n bietjie gaan soek, het ek verskeie oplossings gevind vir outomatiese swaartekragmonitering (een, twee, drie). Een van hulle, met 'n baie slim konsep, heet Tilt. Kantel dryf in u bier en meet sy eie kantelhoek. Hierdie hoek hang af van die vloeistof se digtheid en kan dus die erns van die fermenterende bier meet.

Tilt het 'n mobiele app wat daarmee verbind kan word en data op enige webdiens kan plaas. Die probleem is dat u nie ver van Tilt moet wees om dit te kan doen nie. Daar is ook 'n Raspberry Pi -program wat saam met Tilt werk.

Stap 1: Kry kanteldata in Python

Kry kanteldata in Python
Kry kanteldata in Python

Ek gebruik reeds Raspberry Pi om die temperatuur van die kelder en 'n wolkbeheerpaneeldiens cloud4rpi.io te monitor. As Tilt met Raspberry Pi kan praat, moet dit moontlik wees om cloud4rpi daaraan te koppel. Tilt gebruik 'n draadlose protokol, dus benodig u Raspberry Pi met 'n draadlose chip (Rasbperry Pi 3 of Zero W).

Gelukkig is daar 'n GitHub -repo vir Tilt -sagteware met enkele voorbeelde. As u na https://github.com/baronbrew/tilt-scan kyk, kan u sien dat Tilt vir ander lyk as BLE iBeacon, met 'Kleur' in UUID gekodeer, en temperatuur en swaartekrag in groot en klein grepe is.

Hulle voorbeeldkode is vir Node.js, en ek het 'n Python-beheerprogram gebaseer op cloud4rpi-sjabloon

Ek moet dus Tilt -data in Python kry. Na 'n bietjie gegoogle het ek https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon-skandeerder gevind. Dit is 'n program, nie 'n biblioteek nie, so ek het dit aangepas om 'n woordeboek terug te gee in plaas van string. En ek het ook 'n Tilt-spesifieke module geskryf om kleur, temperatuur en swaartekrag van die eerste kantel te kry (ek het net een), en 'n eenvoudige toetsprogram om te kyk of dit my kantel kan sien:

invoer tyd invoer kantel

terwyl dit waar is:

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

Hardloop en kyk of dit werk. Nou kan ek dit by my beheerprogram aansluit. Ek het reeds 'n python -program wat aan cloud4rpi.io gekoppel is, maar laat ek wys hoe om dit van nuuts af te doen.

Stap 2: Koppel toestel aan die wolk

Koppel toestel aan die wolk
Koppel toestel aan die wolk
Koppel toestel aan die wolk
Koppel toestel aan die wolk

Meld eers aan by cloud4rpi.io en skep dan 'n nuwe toestel.

U kry 'n toesteltoken en installasie -instruksies. Volg die instruksies hier vir Raspberry Pi https://docs.cloud4rpi.io/start/rpi/-maak seker dat u stelsel op datum is:

sudo apt update && sudo apt upgrade

Installeer voorvereistes:

sudo apt installeer git python python-pip

Installeer cloud4rpi python -pakkette:

sudo pip installeer cloud4rpi

kry dan 'n voorbeeld -python -app vir Raspberry Pi (in die kontrolemap):

git-kloon https://github.com/cloud4rpi/cloud4rpi-raspberryp… beheer

cd beheer

verander control.py - spesifiseer u toesteltoken in die reël

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Verwyder onnodige inskrywings uit toestelle veranderlike verklarings, laat slegs CPUTemp om die verbinding van die toestel te toets:

# Plaas veranderlike verklarings hier veranderlikes = {'CPU Temp': {'type': 'numeries', 'bind': rpi.cpu_temp}}

Doen nou 'n toetslopie:

sudo python control.py

As alles in orde is, word u toestelbladsy onmiddellik opgedateer met diagnostiese data.

Stap 3: Stuur data na die wolk

Stuur data na die wolk
Stuur data na die wolk

Nou moet ons control.py verander om die kleur, temperatuur en swaartekrag van Tilt te lees en te rapporteer. Die uitslag lyk so:

vanaf os invoer unamefrom socket invoer gethostname invoer sys invoer tyd invoer cloud4rpi invoer rpi invoer kantel

# Plaas u toesteltoken hier. Om die teken te kry, # teken aan by https://cloud4rpi.io en skep 'n toestel. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstante

DATA_SENDING_INTERVAL = 60 # sekondes DIAG_SENDING_INTERVAL = 600 # sekondes POLL_INTERVAL = 0.5 # 500 ms

baken = {}

def F2C (grade F):

opbrengs (grade F - 32) / 1.8

def getTemp ():

gee F2C terug (int (baken ['temp'])) as baken anders Geen

def getGravity ():

stuur baken ['Gravity'] as baken anders Geen

def main ():

# Plaas veranderlike verklarings hier

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

diagnostiek = {

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

toestel = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (veranderlikes) device.declare_diag (diagnostiek)

device.publish_config ()

# Voeg 'n vertraging van 1 sekonde by om te verseker dat toestelveranderlikes geskep word

tyd. slaap (1)

probeer:

data_timer = 0 diag_timer = 0 terwyl True: as data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

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

tyd. slaap (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

behalwe KeyboardInterrupt:

cloud4rpi.log.info ('Toetsenbordonderbreking ontvang. Stop …')

behalwe Uitsondering as e:

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

uiteindelik:

sys.exit (0)

as _naam_ == '_hoof_':

hoof ()

Begin dit nou met die hand om te sien of dit werk:

sudo python control.py

As alles goed is, sien u u veranderlikes aanlyn.

Installeer dit as 'n diens om control.py uit te voer tydens die begin van die stelsel. Cloud4rpi bied 'n installering script service_install.sh om dit te doen. Ek het dit in my repo opgeneem. Begin om control.py as 'n diens te installeer

sudo bash service_install.sh control.py

Nou kan u hierdie diens begin | stop | herlaai deur die opdrag uit te voer

sudo systemctl begin cloud4rpi.service

Diens hou sy vorige toestand aan, dus as dit aan die gang is, sal dit werk na herlaai of kragverlies.

Stap 4: Finale resultaat

Finale Uitslag
Finale Uitslag

Dit is dit, nou stuur ek my Tilt -parameters na die wolk, sodat ek 'n goeie wolkbeheerpaneel daarvoor kan instel. Gaan na https://cloud4rpi.io/control-panels en skep 'n nuwe bedieningspaneel, voeg widget by en kies/Gravity en Beer Temp as databron. Nou kan ek monitor wat aangaan, selfs al is ek weg van die huis af.

Die kode wat ek gekopieer en geskryf het, is hier beskikbaar: https://github.com/superroma/tilt-cloud4rpi. Dit is verre van perfek, dit werk slegs met 'n enkele kanteling, dit gee nie om "die kleur" van die toestel nie, wat dit ook al beteken, en ek is glad nie 'n Python -ou nie, so regstellings, voorstelle of vurke is welkom !

Aanbeveel: