Innholdsfortegnelse:

Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen: 4 trinn (med bilder)
Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen: 4 trinn (med bilder)

Video: Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen: 4 trinn (med bilder)

Video: Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen: 4 trinn (med bilder)
Video: 自酿红葡萄酒 正规的自酿做法 从此你就是自家的酿酒师 2024, Juli
Anonim
Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen
Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen

Når øl gjærer, bør du overvåke tyngdekraften og temperaturen daglig. Det er lett å glemme å gjøre det, og umulig hvis du er borte.

Etter litt googling fant jeg flere løsninger for automatisert tyngdekraftovervåking (en, to, tre). En av dem, med et veldig smart konsept, heter Tilt. Tilt flyter i ølet ditt og måler sin egen vippevinkel. Denne vinkelen avhenger av væskens tetthet, og kan derfor måle tyngdekraften til det gjærende ølet.

Tilt leveres med en mobilapp som kobles til den og kan legge ut data til enhver webtjeneste. Problemet er at du må være ikke langt fra Tilt for å kunne gjøre det. Det er også et Raspberry Pi -program som fungerer med Tilt.

Trinn 1: Få tilt -data i Python

Få tilt -data i Python
Få tilt -data i Python

Jeg bruker allerede Raspberry Pi til å overvåke kjellerens temperatur, og en cloud -kontrollpaneltjeneste cloud4rpi.io. Hvis Tilt kan snakke med Raspberry Pi, bør det være mulig å koble cloud4rpi til den. Tilt bruker en trådløs protokoll, så du trenger Raspberry Pi med en trådløs brikke (Rasbperry Pi 3 eller Zero W).

Heldigvis er det en GitHub -repo for Tilt -programvare med noen prøver. Når du ser på https://github.com/baronbrew/tilt-scan kan du se at Tilt ser på andre som BLE iBeacon, med “Farge” kodet i UUID, og temperatur og tyngdekraft er i store og mindre byte.

Eksempelkoden deres er for Node.js, og jeg har et Python-kontrollprogram basert på cloud4rpi-mal

Så jeg må hente tilt -data i Python. Etter litt googling fant jeg https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skanner. Dette er et program, ikke et bibliotek, så jeg endret det for å returnere en ordbok i stedet for streng. Og jeg skrev også Tilt-spesifikk modul for å få farge, temperatur og tyngdekraften til den første vippen som ble funnet (jeg har bare én), og et enkelt testprogram for å sjekke om den kan se min Tilt:

import timeimport tilt

mens det er sant:

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

Kjør og sjekk at det fungerer. Nå kan jeg koble den til kontrollprogrammet mitt. Jeg har allerede et python -program koblet til cloud4rpi.io, men la meg vise hvordan du gjør det fra bunnen av.

Trinn 2: Koble enheten til nettskyen

Koble enheten til nettskyen
Koble enheten til nettskyen
Koble enheten til nettskyen
Koble enheten til nettskyen

Logg deg først på cloud4rpi.io, og opprett deretter en ny enhet.

Du får et enhetstoken og installasjonsinstruksjoner. For Raspberry Pi, følg instruksjonene her https://docs.cloud4rpi.io/start/rpi/-sørg for at systemet er oppdatert:

sudo apt update && sudo apt upgrade

Installer forutsetninger:

sudo apt installer git python python-pip

Installer cloud4rpi python -pakker:

sudo pip installer cloud4rpi

så få en prøve python -app for Raspberry Pi (i kontrollmappen):

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

cd -kontroll

endre control.py - spesifiser enhetstokenet ditt på linjen

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Fjern unødvendige oppføringer fra enhetsvariabelerklæringer, bare la CPUTemp for å teste enhetstilkoblingen:

# Sett variable deklarasjoner her variabler = {'CPU Temp': {'type': 'numerisk', 'bind': rpi.cpu_temp}}

Gjør en prøvekjøring nå:

sudo python control.py

Hvis alt er i orden, vil enhetssiden din umiddelbart oppdateres med diagnostiske data.

Trinn 3: Sende data til nettskyen

Sender data til nettskyen
Sender data til nettskyen

Nå må vi endre control.py for å lese og rapportere Tilt farge, temperatur og tyngdekraft. Resultatet ser slik ut:

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

# Sett enhetstokenet ditt her. For å få token, # registrer deg på https://cloud4rpi.io og opprett en enhet. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstanter

DATA_SENDING_INTERVAL = 60 # sekunder DIAG_SENDING_INTERVAL = 600 # sekunder 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 annet Ingen

def getGravity ():

returner beacon ['Gravity'] if beacon else Ingen

def main ():

# Sett variable deklarasjoner her

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

diagnostikk = {

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

enhet = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (variabler) device.declare_diag (diagnostikk)

device.publish_config ()

# Legger til en forsinkelse på 1 sekund for å sikre at enhetsvariabler blir opprettet

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

unntatt KeyboardInterrupt:

cloud4rpi.log.info ('Tastaturavbrudd mottatt. Stopper …')

unntatt Unntak som e:

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

endelig:

sys.exit (0)

hvis _name_ == '_main_':

hoved()

Kjør det nå manuelt for å se om det fungerer:

sudo python control.py

Hvis alt er bra, vil du se variablene dine online.

For å kjøre control.py ved systemoppstart, installer du det som en tjeneste. Cloud4rpi tilbyr et installeringsskript service_install.sh for å gjøre det. Jeg har inkludert det i min repo. For å installere control.py som en tjeneste, kjør

sudo bash service_install.sh control.py

Nå kan du starte | stoppe | starte denne tjenesten på nytt ved å kjøre kommando

sudo systemctl start cloud4rpi.service

Tjenesten beholder sin tidligere tilstand ved oppstart, så hvis den kjørte, kjører den etter omstart eller tap av strøm.

Trinn 4: Sluttresultat

Endelig resultat
Endelig resultat

Dette er det, nå har jeg Tilt -parameterne mine sendt til skyen, så jeg kan sette opp et fint skykontrollpanel for det. Gå til https://cloud4rpi.io/control-panels og opprett nytt kontrollpanel, legg til widget og velg/Gravity og Beer Temp som datakilde. Nå kan jeg overvåke hva som skjer selv om jeg er borte fra hjemmet.

Koden jeg kopierte og skrev er tilgjengelig her: https://github.com/superroma/tilt-cloud4rpi. Det er langt fra perfekt, det fungerer bare med en enkelt vippe, det bryr seg ikke om "farge" på enheten, uansett hva det betyr, og jeg er ikke en Python -fyr i det hele tatt, så reparasjoner, forslag eller gafler er velkomne !

Anbefalt: