Obsah:

Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu: 4 kroky (s obrázkami)
Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu: 4 kroky (s obrázkami)

Video: Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu: 4 kroky (s obrázkami)

Video: Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu: 4 kroky (s obrázkami)
Video: Высокая плотность 2022 2024, November
Anonim
Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu
Ako ovládať teplotu a gravitáciu kvasenia piva zo svojho smartfónu

Keď pivo kvasí, mali by ste denne monitorovať jeho gravitáciu a teplotu. Je ľahké na to zabudnúť a nemožné, ak ste preč.

Po troche googlovania som našiel niekoľko riešení pre automatizované monitorovanie gravitácie (jedna, dva, tri). Jeden z nich s veľmi chytrým konceptom sa nazýval Tilt. Naklonenie sa vznáša vo vašom pive a meria svoj vlastný uhol sklonu. Tento uhol závisí od hustoty kvapaliny, a preto môže merať gravitáciu kvasiaceho piva.

Tilt je dodávaný s mobilnou aplikáciou, ktorá sa k nej pripája a môže odosielať údaje do akejkoľvek webovej služby. Problém je v tom, že musíte byť ďaleko od Tiltu, aby ste to dokázali. Existuje aj program Raspberry Pi, ktorý pracuje s Tilt.

Krok 1: Získanie údajov o naklonení v Pythone

Získanie údajov o naklonení v Pythone
Získanie údajov o naklonení v Pythone

Raspberry Pi už používam na monitorovanie teploty v pivnici a službu cloudového ovládacieho panela cloud4rpi.io. Ak Tilt môže hovoriť s Raspberry Pi, malo by byť možné k nemu pripojiť cloud4rpi. Tilt používa bezdrôtový protokol, takže budete potrebovať Raspberry Pi s bezdrôtovým čipom (Rasbperry Pi 3 alebo Zero W).

Našťastie existuje softvér GitHub repo pre Tilt s niekoľkými ukážkami. Pri pohľade na stránku https://github.com/baronbrew/tilt-scan vidíte, že Tilt vyzerá pre ostatných ako BLE iBeacon s „farebným“kódom v UUID a teplota a gravitácia sú vo väčších a menších bajtoch.

Ich ukážkový kód je pre Node.js a mám riadiaci program Python založený na šablóne cloud4rpi

Potrebujem teda získať údaje Tilt v Pythone. Po troche googlovania som našiel https://github.com/switchdoclabs/iBeacon-Scanner-- skener iBeacon Python. Toto je program, nie knižnica, takže som ho upravil tak, aby namiesto reťazca vrátil slovník. A tiež som napísal modul špecifický pre náklon, aby som získal farbu, teplotu a gravitáciu prvého nájdeného náklonu (mám iba jeden) a jednoduchý testovací program na kontrolu, či vidí môj náklon:

importovať časový import náklonu

kým je pravda:

res = tilt.getFirstTilt () vytlačiť res time.sleep (2)

Spustite a skontrolujte, či funguje. Teraz ho môžem zapojiť do svojho riadiaceho programu. Už mám program python pripojený k cloud4rpi.io, ale dovoľte mi ukázať, ako to urobiť od začiatku.

Krok 2: Pripojenie zariadenia k cloudu

Pripojenie zariadenia k cloudu
Pripojenie zariadenia k cloudu
Pripojenie zariadenia k cloudu
Pripojenie zariadenia k cloudu

Najprv sa prihláste na cloud4rpi.io a potom vytvorte nové zariadenie.

Dostanete token zariadenia a pokyny na inštaláciu. Pri Raspberry Pi postupujte podľa pokynov tu https://docs.cloud4rpi.io/start/rpi/-uistite sa, že je váš systém aktuálny:

sudo apt update && sudo apt upgrade

Predpoklady inštalácie:

sudo apt install git python python-pip

Nainštalujte balíky python cloud4rpi:

sudo pip install cloud4rpi

potom získajte vzorovú aplikáciu python pre Raspberry Pi (do riadiaceho priečinka):

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

ovládanie CD

upraviť control.py - do riadka zadajte token svojho zariadenia

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

Odstráňte nepotrebné položky z deklarácií premenných zariadení, na testovanie pripojenia zariadenia nechajte iba CPUTemp:

# Sem vložte deklarácie premenných = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Teraz urobte testovaciu jazdu:

sudo python control.py

Ak je všetko v poriadku, stránka vášho zariadenia bude okamžite aktualizovaná diagnostickými údajmi.

Krok 3: Odosielanie údajov do cloudu

Odosielanie údajov do cloudu
Odosielanie údajov do cloudu

Teraz musíme upraviť súbor control.py tak, aby čítal a nahlasoval Tiltovu farbu, teplotu a gravitáciu. Výsledok vyzerá takto:

z os import uname z socket import gethostname import sys import time import cloud4rpi import rpi import tilt

# Sem vložte token svojho zariadenia. Ak chcete získať token, # zaregistrujte sa na https://cloud4rpi.io a vytvorte si zariadenie. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konštanty

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

maják = {}

def F2C (stupne F):

návrat (stupne F - 32) / 1,8

def getTemp ():

vrátiť F2C (int (beacon ['Temp'])), ak beacon else None

def getGravity ():

return beacon ['Gravity'] if maják else None

def main ():

# Sem zadajte vyhlásenia o premenných

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 ())}

zariadenie = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (premenné) device.declare_diag (diagnostika)

device.publish_config ()

# Pridá 1sekundové oneskorenie, aby sa zabezpečilo vytváranie premenných zariadenia

time.sleep (1)

skús:

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

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

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

okrem prerušenia klávesnice:

cloud4rpi.log.info ('Prijaté prerušenie klávesnice. Zastavovanie …')

okrem výnimky ako e:

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

konečne:

sys.exit (0)

if _name_ == '_main_':

Hlavná()

Teraz ho spustite ručne a zistite, či funguje:

sudo python control.py

Ak je všetko v poriadku, uvidíte svoje premenné online.

Ak chcete spustiť control.py pri spustení systému, nainštalujte si ho ako službu. Cloud4rpi na to poskytuje inštalačný skript service_install.sh. Zahrnul som to do svojho repo. Ak chcete nainštalovať control.py ako službu, spustite

sudo bash service_install.sh control.py

Teraz môžete spustiť | zastaviť | reštartovať túto službu spustením príkazu

sudo systemctl start cloud4rpi.service

Služba udržiava svoj predchádzajúci stav pri zapnutí, takže ak bola spustená, bude fungovať aj po reštarte alebo výpadku napájania.

Krok 4: Konečný výsledok

Konečný výsledok
Konečný výsledok

To je všetko, teraz sa moje parametre Tilt odosielajú do cloudu, takže preň môžem nastaviť pekný ovládací panel cloudu. Choďte na https://cloud4rpi.io/control-panels a vytvorte nový ovládací panel, pridajte widget a zvoľte/Gravity and Beer Temp ako zdroj dát. Teraz môžem sledovať, čo sa deje, aj keď som mimo domu.

Kód, ktorý som skopíroval a napísal, je k dispozícii tu: https://github.com/superroma/tilt-cloud4rpi. Nie je to ani zďaleka dokonalé, funguje to iba s jediným naklonením, nezaujíma ho „farba“zariadenia, nech to znamená čokoľvek, a ja vôbec nie som človek z Pythonu, takže opravy, návrhy alebo vidlice sú vítané !

Odporúča: