Indholdsfortegnelse:

Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone: 4 trin (med billeder)
Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone: 4 trin (med billeder)

Video: Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone: 4 trin (med billeder)

Video: Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone: 4 trin (med billeder)
Video: Sådan kontrolleres hydrauliske ventilløftere (DANSK) 2024, Juli
Anonim
Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone
Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone

Når øl fermenterer, bør du overvåge dens tyngdekraft og temperatur dagligt. Det er let at glemme at gøre det, og umuligt, hvis du er væk.

Efter noget googling fandt jeg flere løsninger til automatiseret tyngdekraftovervågning (en, to, tre). En af dem, med et meget smart koncept, kaldet Tilt. Tilt flyder i din øl og måler sin egen vippevinkel. Denne vinkel afhænger af væskens densitet og kan derfor måle tyngden af den fermenterende øl.

Tilt leveres med en mobilapp, der opretter forbindelse til den og kan sende data til enhver webtjeneste. Problemet er, at du skal være ikke langt fra Tilt for at kunne gøre det. Der er også et Raspberry Pi -program, der fungerer med Tilt.

Trin 1: Få tilt -data i Python

Henter tilt -data i Python
Henter tilt -data i Python

Jeg bruger allerede Raspberry Pi til at overvåge kældertemperatur og en cloud -kontrolpanelservice cloud4rpi.io. Hvis Tilt kan tale med Raspberry Pi, burde det være muligt at slutte cloud4rpi til den. Tilt bruger en trådløs protokol, så du skal bruge Raspberry Pi med en trådløs chip (Rasbperry Pi 3 eller Zero W).

Heldigvis er der en GitHub -repo til Tilt -software med nogle prøver. Når man ser på https://github.com/baronbrew/tilt-scan kan man se, at Tilt ser ud for andre som BLE iBeacon, med “Farve” kodet i UUID, og temperatur og tyngdekraft er i større og mindre bytes.

Deres prøvekode er til Node.js, og jeg har et Python-kontrolprogram baseret på cloud4rpi-skabelon

Så jeg skal hente Tilt -data i Python. Efter lidt googling fandt jeg https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon scanner. Dette er et program, ikke et bibliotek, så jeg ændrede det for at returnere en ordbog i stedet for en streng. Og jeg skrev også Tilt-specifikt modul for at få farve, temperatur og tyngdekraft af den første Tilt fundet (jeg har kun en), og et simpelt testprogram for at kontrollere, om det kan se min Tilt:

import timeimport tilt

mens det er sandt:

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

Kør og tjek at det virker. Nu kan jeg tilslutte det til mit kontrolprogram. Jeg har allerede et python -program forbundet til cloud4rpi.io, men lad mig vise, hvordan man gør det fra bunden.

Trin 2: Tilslutning af enhed til skyen

Tilslutning af enhed til skyen
Tilslutning af enhed til skyen
Tilslutning af enhed til skyen
Tilslutning af enhed til skyen

Log først på cloud4rpi.io, og opret derefter en ny enhed.

Du får et enhedstoken og installationsvejledning. For Raspberry Pi skal du følge instruktionerne her https://docs.cloud4rpi.io/start/rpi/-sørg for, at dit system er opdateret:

sudo apt opdatering && sudo apt opgradering

Installer forudsætninger:

sudo apt installere git python python-pip

Installer cloud4rpi python -pakker:

sudo pip installer cloud4rpi

derefter få en prøve python -app til Raspberry Pi (i kontrolmappe):

git-klon https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrol

cd kontrol

rediger control.py - angiv din enheds token i linjen

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Fjern unødvendige poster fra enhedsvariabeldeklarationer, lad kun CPUTemp stå for at teste enhedsforbindelse:

# Sæt variable deklarationer her variabler = {'CPU Temp': {'type': 'numerisk', 'bind': rpi.cpu_temp}}

Lav nu en testkørsel:

sudo python control.py

Hvis alt er ok, opdateres din enhedsside straks med diagnosedata.

Trin 3: Send data til skyen

Sender data til skyen
Sender data til skyen

Nu skal vi ændre control.py for at læse og rapportere Tilt's farve, temperatur og tyngdekraft. Resultatet ser sådan ud:

fra os import unamefrom socket import gethostname import sys import tid import cloud4rpi import rpi import tilt

# Sæt dit enheds token her. For at få token, # tilmeld dig på https://cloud4rpi.io og opret en enhed. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstanter

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

fyrtårn = {}

def F2C (grader F):

retur (grader F - 32) / 1,8

def getTemp ():

returner F2C (int (fyrtårn ['Temp'])) hvis fyr andet Ingen

def getGravity ():

returner fyrtårn ['Gravity'] hvis fyrtårn andet Ingen

def main ():

# Sæt variable erklæringer her

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

diagnostik = {

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

enhed = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (variabler) device.declare_diag (diagnostik)

device.publish_config ()

# Tilføjer en forsinkelse på 1 sekund for at sikre, at enhedsvariabler oprettes

time.sleep (1)

prøve:

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

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

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

undtagen KeyboardInterrupt:

cloud4rpi.log.info ('Tastaturafbrydelse modtaget. Stop …')

undtagen Undtagelse som e:

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

endelig:

sys.exit (0)

hvis _name_ == '_main_':

main ()

Kør det nu manuelt for at se, om det virker:

sudo python control.py

Hvis alt er godt, vil du se dine variabler online.

For at køre control.py ved systemstart skal du installere det som en service. Cloud4rpi leverer et installations script service_install.sh til at gøre det. Jeg har inkluderet det i min repo. Kør for at installere control.py som en tjeneste

sudo bash service_install.sh control.py

Nu kan du starte | stoppe | genstarte denne service ved at køre kommandoen

sudo systemctl start cloud4rpi.service

Tjenesten bevarer sin tidligere tilstand ved opstart, så hvis den kørte, kører den efter genstart eller strømtab.

Trin 4: Endeligt resultat

Endeligt resultat
Endeligt resultat

Dette er det, nu har jeg mine Tilt -parametre sendt til skyen, så jeg kan oprette et godt cloud -kontrolpanel til det. Gå til https://cloud4rpi.io/control-panels og opret nyt kontrolpanel, tilføj widget og vælg/Gravity og Beer Temp som datakilde. Nu kan jeg overvåge, hvad der sker, selvom jeg er væk hjemmefra.

Koden, jeg kopierede og skrev, er tilgængelig her: https://github.com/superroma/tilt-cloud4rpi. Det er langt fra perfekt, det fungerer kun med en enkelt Tilt, det er ligeglad med “Farve” på enheden, uanset hvad det betyder, og jeg er slet ikke en Python -fyr, så rettelser, forslag eller gafler er velkomne !

Anbefalede: