Sadržaj:

Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa vašeg pametnog telefona: 4 koraka (sa slikama)
Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa vašeg pametnog telefona: 4 koraka (sa slikama)

Video: Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa vašeg pametnog telefona: 4 koraka (sa slikama)

Video: Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa vašeg pametnog telefona: 4 koraka (sa slikama)
Video: 蒸馒头 让馒头光滑细腻的4个技巧 2024, Prosinac
Anonim
Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa svog pametnog telefona
Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa svog pametnog telefona

Kad pivo fermentira, trebali biste svakodnevno pratiti njegovu gravitaciju i temperaturu. Lako je zaboraviti to učiniti, a nemoguće ako ste odsutni.

Nakon guglanja, pronašao sam nekoliko rješenja za automatizirano praćenje gravitacije (jedno, dva, tri). Jedan od njih, s vrlo pametnim konceptom, nazvan je Tilt. Nagib pluta u vašem pivu i mjeri vlastiti kut nagiba. Ovaj kut ovisi o gustoći tekućine i stoga može mjeriti gustoću fermentiranog piva.

Tilt dolazi s mobilnom aplikacijom koja se povezuje s njom i može objavljivati podatke na bilo kojoj web usluzi. Problem je u tome što morate biti nedaleko od Tilta da biste to mogli učiniti. Postoji i program Raspberry Pi koji radi s Tilt -om.

Korak 1: Dobivanje podataka o nagibu u Pythonu

Dobivanje podataka o nagibu u Pythonu
Dobivanje podataka o nagibu u Pythonu

Već koristim Raspberry Pi za praćenje temperature podruma i uslugu oblačne upravljačke ploče cloud4rpi.io. Ako Tilt može razgovarati s Raspberry Pi, trebalo bi biti moguće povezati cloud4rpi s njim. Tilt koristi bežični protokol, pa će vam trebati Raspberry Pi s bežičnim čipom (Rasbperry Pi 3 ili Zero W).

Srećom, postoji GitHub repo za softver Tilt s nekim uzorcima. Gledajući https://github.com/baronbrew/tilt-scan možete vidjeti da Tilt drugima izgleda kao BLE iBeacon, s "Bojom" kodiranom u UUID-u, a temperatura i gravitacija su u velikim i sporednim bajtovima.

Njihov uzorak koda je za Node.js, a ja imam kontrolni program Python temeljen na cloud4rpi predlošku

Zato moram nabaviti Tilt podatke u Pythonu. Nakon guglanja, našao sam https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skener. Ovo je program, a ne knjižnica, pa sam ga izmijenio da umjesto rječnika vrati rječnik. Napisao sam i modul specifičan za nagib kako bih dobio boju, temperaturu i težinu prvog nagnutog nagiba (imam samo jedan) i jednostavan testni program za provjeru vidi li moj nagib:

import timeimport nagib

dok je istina:

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

Pokrenite i provjerite radi li. Sada ga mogu priključiti na svoj upravljački program. Već imam python program povezan s cloud4rpi.io, ali dopustite mi da vam pokažem kako to učiniti od nule.

Korak 2: Povezivanje uređaja s oblakom

Povezivanje uređaja s oblakom
Povezivanje uređaja s oblakom
Povezivanje uređaja s oblakom
Povezivanje uređaja s oblakom

Prvo se prijavite na cloud4rpi.io, a zatim stvorite novi uređaj.

Dobit ćete token uređaja i upute za instalaciju. Za Raspberry Pi slijedite upute ovdje https://docs.cloud4rpi.io/start/rpi/-provjerite je li vaš sustav ažuriran:

sudo apt ažuriranje && sudo apt nadogradnja

Preduvjeti za instaliranje:

sudo apt install git python python-pip

Instalirajte cloud4rpi python pakete:

sudo pip instalirajte cloud4rpi

zatim nabavite uzorak python aplikacije za Raspberry Pi (u kontrolnu mapu):

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

cd kontrola

izmijeniti control.py - navedite žeton uređaja u retku

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Uklonite nepotrebne unose iz deklaracija varijabli uređaja, ostavite samo CPUTemp za testiranje veze uređaja:

# Ovdje stavite deklaracije varijabli varijable = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Sada napravite probni rad:

sudo python control.py

Ako je sve u redu, stranica vašeg uređaja bit će odmah ažurirana dijagnostičkim podacima.

Korak 3: Slanje podataka u oblak

Slanje podataka u oblak
Slanje podataka u oblak

Sada moramo izmijeniti control.py za čitanje i izvještavanje o Tilt -ovoj boji, temperaturi i gravitaciji. Rezultat izgleda ovako:

iz os uvoz uname iz utičnice uvoz gethostname uvoz sys vrijeme uvoza uvoz cloud4rpi uvoz rpi uvoz nagib

# Ovdje stavite žeton uređaja. Da biste dobili žeton, # prijavite se na https://cloud4rpi.io i izradite uređaj. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstante

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

svjetionik = {}

def F2C (stupnjeviF):

povrat (stupnjeviF - 32) / 1,8

def getTemp ():

return F2C (int (beacon ['Temp']))) ako je beacon else Ništa

def getGravity ():

return beacon ['Gravity'] ako svjetionik nijedan None

def main ():

# Ovdje stavite deklaracije varijabli

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

dijagnostika = {

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

uređaj = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (varijable) device.declare_diag (dijagnostika)

device.publish_config ()

# Dodaje kašnjenje od 1 sekunde kako bi se osiguralo stvaranje varijabli uređaja

vrijeme.spavanje (1)

probati:

data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: globalni beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

ako je diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL

time.sleep (POLL_INTERVAL)

dijagnostički timer -= POLL_INTERVAL tajmer podataka -= POLL_INTERVAL

osim KeyboardInterrupt:

cloud4rpi.log.info ('Primljen prekid tipkovnice. Zaustavljanje …')

osim iznimke kao e:

error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("GREŠKA! %s %s", pogreška, sys.exc_info () [0])

konačno:

sys.exit (0)

ako je _naziv_ == '_glavni_':

glavni()

Sada ga ručno pokrenite da vidite radi li:

sudo python control.py

Ako je sve u redu, svoje varijable ćete vidjeti na internetu.

Da biste pokrenuli control.py pri pokretanju sustava, instalirajte ga kao uslugu. Cloud4rpi nudi instalacijsku skriptu service_install.sh za to. Uključio sam ga u svoj repo. Da biste instalirali control.py kao uslugu, pokrenite

sudo bash service_install.sh control.py

Sada možete pokrenuti | stop | ponovno pokrenuti ovu uslugu pokretanjem naredbe

sudo systemctl start cloud4rpi.service

Usluga zadržava prijašnje stanje pri uključivanju, pa ako je radila, radit će nakon ponovnog pokretanja ili gubitka napajanja.

Korak 4: Konačni rezultat

Konačni rezultat
Konačni rezultat

To je to. Sada se moji parametri nagiba šalju u oblak, tako da mogu postaviti lijepu upravljačku ploču u oblaku. Idite na https://cloud4rpi.io/control-panels i stvorite novu upravljačku ploču, dodajte widget i odaberite/Gravity and Beer Temp kao izvor podataka. Sada mogu pratiti što se događa čak i ako sam daleko od kuće.

Kôd koji sam kopirao i napisao dostupan je ovdje: https://github.com/superroma/tilt-cloud4rpi. Daleko je od savršenog, radi samo s jednim nagibom, nije ga briga za "boju" uređaja, što god to značilo, a ja uopće nisam tip za Python, pa su ispravci, prijedlozi ili vilice dobrodošli !

Preporučeni: