Satura rādītājs:

Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa: 4 soļi (ar attēliem)
Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa: 4 soļi (ar attēliem)

Video: Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa: 4 soļi (ar attēliem)

Video: Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa: 4 soļi (ar attēliem)
Video: Kā pagatavot bumbieru bezmēnes 2024, Jūlijs
Anonim
Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa
Kā kontrolēt alus fermentācijas temperatūru un gravitāciju no viedtālruņa

Kad alus fermentējas, jums katru dienu jāuzrauga tā smagums un temperatūra. To ir viegli aizmirst, un neiespējami, ja esat prom.

Pēc nelielas googlēšanas es atradu vairākus risinājumus automatizētai gravitācijas uzraudzībai (viens, divi, trīs). Viens no tiem ar ļoti gudru koncepciju sauca Tilt. Slīpums peld jūsu alā un mēra savu slīpuma leņķi. Šis leņķis ir atkarīgs no šķidruma blīvuma, un tāpēc var izmērīt fermentācijas alus smagumu.

Tilt ir aprīkota ar mobilo lietotni, kas ar to izveido savienojumu un var publicēt datus jebkurā tīmekļa pakalpojumā. Problēma ir tāda, ka jums ir jāatrodas tālu no Tilt, lai to varētu izdarīt. Ir arī programma Raspberry Pi, kas darbojas ar Tilt.

1. darbība: noliekt datus Python

Tilt datu iegūšana Python
Tilt datu iegūšana Python

Es jau izmantoju Raspberry Pi, lai uzraudzītu pagraba temperatūru, un mākoņa vadības paneļa pakalpojumu cloud4rpi.io. Ja Tilt var sarunāties ar Raspberry Pi, ir jābūt iespējai tam pieslēgt cloud4rpi. Tilt izmanto bezvadu protokolu, tāpēc jums būs nepieciešams Raspberry Pi ar bezvadu mikroshēmu (Rasbperry Pi 3 vai Zero W).

Par laimi, ir GitHub repo programmatūrai Tilt ar dažiem paraugiem. Aplūkojot vietni https://github.com/baronbrew/tilt-scan, jūs varat redzēt, ka Tilt citiem izskatās kā BLE iBeacon ar “Color” kodu UUID, un temperatūra un gravitācija ir lielākos un mazākos baitos.

Viņu parauga kods ir paredzēts Node.js, un man ir Python vadības programma, kuras pamatā ir cloud4rpi veidne

Tāpēc man ir jāiegūst Tilt dati Python. Pēc nelielas googlēšanas es atradu https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skeneri. Šī ir programma, nevis bibliotēka, tāpēc es to pārveidoju, lai virknes vietā atgrieztu vārdnīcu. Un es arī uzrakstīju modulim Tilt specifisku modeli, lai iegūtu pirmā atrastā Tilt krāsu, temperatūru un smagumu (man ir tikai viens), kā arī vienkāršu testa programmu, lai pārbaudītu, vai tā var redzēt manu Tilt:

importa laika importa slīpums

kamēr taisnība:

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

Palaidiet un pārbaudiet, vai tas darbojas. Tagad es varu to pievienot savai vadības programmai. Man jau ir python programma, kas savienota ar cloud4rpi.io, bet ļaujiet man parādīt, kā to izdarīt no nulles.

2. darbība. Ierīces pievienošana mākonim

Ierīces savienošana ar mākoni
Ierīces savienošana ar mākoni
Ierīces savienošana ar mākoni
Ierīces savienošana ar mākoni

Vispirms pierakstieties vietnē cloud4rpi.io, pēc tam izveidojiet jaunu ierīci.

Jums tiks dots ierīces marķieris un uzstādīšanas instrukcijas. Raspberry Pi izpildiet norādījumus šeit https://docs.cloud4rpi.io/start/rpi/-pārliecinieties, vai jūsu sistēma ir atjaunināta:

sudo apt atjauninājums && sudo apt jauninājums

Instalēšanas priekšnoteikumi:

sudo apt instalēt git python python-pip

Instalējiet cloud4rpi python paketes:

sudo pip instalēt cloud4rpi

pēc tam iegūstiet Raspberry Pi python lietotnes paraugu (kontroles mapē):

git klons https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrole

cd kontrole

modificēt control.py - norādiet ierīces marķieri rindā

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

Noņemiet nevajadzīgos ierakstus no ierīces mainīgo deklarācijām, atstājiet tikai CPUTemp, lai pārbaudītu ierīces savienojumu:

# Ievietojiet šeit mainīgo deklarācijas mainīgie = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Tagad veiciet testa braucienu:

sudo python control.py

Ja viss ir kārtībā, jūsu ierīces lapa tiks nekavējoties atjaunināta ar diagnostikas datiem.

3. darbība: datu sūtīšana uz mākoni

Datu sūtīšana uz mākoni
Datu sūtīšana uz mākoni

Tagad mums ir jāmaina control.py, lai lasītu un ziņotu par Tilt krāsu, temperatūru un gravitāciju. Rezultāts izskatās šādi:

no os importēt uname no kontaktligzdas importēt gethostname importēt sys importēšanas laiku importēt cloud4rpi importēt rpi importēt slīpumu

# Ievietojiet šeit ierīces marķieri. Lai iegūtu marķieri, # reģistrējieties vietnē https://cloud4rpi.io un izveidojiet ierīci. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Konstantes

DATA_SENDING_INTERVAL = 60 # sekundes DIAG_SENDING_INTERVAL = 600 # s POLL_INTERVAL = 0.5 # 500 ms

bāka = {}

def F2C (grādi F):

atgriešanās (grādiF - 32) / 1.8

def getTemp ():

atgriezt F2C (int (bāka ['Temp']))), ja bāksignāls cits Nav

def getGravity ():

atgriešanās bāka ['Gravity'], ja signālugunis cits Nav

def main ():

# Ievietojiet šeit mainīgās deklarācijas

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': "". Pievienoties (uname ())}

device = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (mainīgie) device.declare_diag (diagnostika)

device.publish_config ()

# Pievieno 1 sekundes aizkavi, lai nodrošinātu ierīces mainīgo izveidi

laiks. miegs (1)

pamēģini:

data_timer = 0 diag_timer = 0, kamēr patiess: ja data_timer <= 0: globālā bākas bāka = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

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

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

izņemot tastatūruPārtraukums:

cloud4rpi.log.info ("Saņemts tastatūras pārtraukums. Tiek apturēta …")

izņemot izņēmumu, piemēram:

error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("KĻŪDA! %s %s", kļūda, sys.exc_info () [0])

beidzot:

sys.exit (0)

ja _name_ == '_main_':

galvenais ()

Tagad palaidiet to manuāli, lai redzētu, vai tas darbojas:

sudo python control.py

Ja viss ir kārtībā, jūs redzēsit savus mainīgos tiešsaistē.

Lai sistēmas startēšanas laikā palaistu control.py, instalējiet to kā pakalpojumu. Lai to izdarītu, Cloud4rpi nodrošina instalēšanas skriptu service_install.sh. Es to iekļāvu savā repo. Lai instalētu control.py kā pakalpojumu, palaidiet

sudo bash service_install.sh control.py

Tagad jūs varat sākt | apturēt | restartēt šo pakalpojumu, palaižot komandu

sudo systemctl sākt cloud4rpi.service

Pakalpojums ieslēdz iepriekšējo stāvokli, tāpēc, ja tas darbojās, tas darbosies pēc pārstartēšanas vai strāvas zuduma.

4. solis: gala rezultāts

Gala rezultāts
Gala rezultāts

Tas tā ir, tagad man ir Tilt parametri, kas tiek nosūtīti uz mākoni, lai es varētu tam izveidot jauku mākoņa vadības paneli. Dodieties uz vietni https://cloud4rpi.io/control-panels un izveidojiet jaunu vadības paneli, pievienojiet logrīku un kā datu avotu atlasiet/Gravity and Beer Temp. Tagad es varu uzraudzīt notiekošo, pat ja esmu prom no mājām.

Kods, ko nokopēju un uzrakstīju, ir pieejams šeit: https://github.com/superroma/tilt-cloud4rpi. Tas ir tālu no perfekta, tas darbojas tikai ar vienu slīpumu, tam nerūp ierīces krāsa, lai ko tas nozīmētu, un es nemaz neesmu Python puisis, tāpēc labojumi, ieteikumi vai dakšas ir laipni gaidīti !

Ieteicams: