Talaan ng mga Nilalaman:

Paano Makontrol ang Temperatura ng Fermentation ng Beer at Gravity Mula sa Iyong Smartphone: 4 na Hakbang (na may Mga Larawan)
Paano Makontrol ang Temperatura ng Fermentation ng Beer at Gravity Mula sa Iyong Smartphone: 4 na Hakbang (na may Mga Larawan)

Video: Paano Makontrol ang Temperatura ng Fermentation ng Beer at Gravity Mula sa Iyong Smartphone: 4 na Hakbang (na may Mga Larawan)

Video: Paano Makontrol ang Temperatura ng Fermentation ng Beer at Gravity Mula sa Iyong Smartphone: 4 na Hakbang (na may Mga Larawan)
Video: Part 6 - Babbitt Audiobook by Sinclair Lewis (Chs 29-34) 2024, Hulyo
Anonim
Paano Makokontrol ang Temperatura ng Fermentasyon ng Beer at Gravity Mula sa Iyong Smartphone
Paano Makokontrol ang Temperatura ng Fermentasyon ng Beer at Gravity Mula sa Iyong Smartphone

Kapag ang fer ay fermenting, dapat mong subaybayan ang gravity at temperatura nito araw-araw. Madaling makalimutang gawin ito, at imposible kung wala ka.

Pagkatapos ng ilang googling, nakakita ako ng maraming mga solusyon para sa awtomatikong pagsubaybay sa gravity (isa, dalawa, tatlo). Ang isa sa mga ito, na may napakatalino na konsepto, na tinatawag na Ikiling. Ang pagkiling ay lumulutang sa iyong serbesa at sumusukat ng sarili nitong anggulo ng pagkiling. Ang anggulo na ito ay nakasalalay sa density ng likido, at samakatuwid ay maaaring masukat ang gravity ng fermenting beer.

Ang pagkiling ay mayroong isang mobile app, na kumokonekta dito at maaaring mag-post ng data sa anumang serbisyo sa web. Ang problema ay kailangan mong maging hindi malayo sa Tilt upang magawa ito. Mayroon ding isang programa ng Raspberry Pi na gumagana sa Tilt.

Hakbang 1: Pagkuha ng Data ng Ikiling sa Python

Pagkuha ng Data ng Ikiling sa Python
Pagkuha ng Data ng Ikiling sa Python

Gumagamit na ako ng Raspberry Pi upang subaybayan ang temperatura ng cellar, at isang serbisyo ng cloud control panel na cloud4rpi.io. Kung ang Tilt ay maaaring makipag-usap sa Raspberry Pi, dapat posible na ikonekta ang cloud4rpi dito. Gumagamit ang tilt ng isang wireless protocol, kaya kakailanganin mo ang Raspberry Pi na may isang wireless chip (Rasbperry Pi 3 o Zero W).

Sa kabutihang palad, mayroong isang GitHub repo para sa Tilt software na may ilang mga sample. Sa pagtingin sa https://github.com/baronbrew/tilt-scan makikita mo na ang Tilt ay tumingin sa iba bilang BLE iBeacon, na may naka-code na "Kulay" sa UUID, at ang temperatura at gravity ay nasa mga pangunahing at menor de edad na byte.

Ang kanilang sample code ay para sa Node.js, at mayroon akong isang programa ng kontrol sa Python batay sa template ng cloud4rpi

Kaya kailangan kong makakuha ng data ng Ikiling sa Python. Matapos ang ilang googling, nahanap ko ang https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Ito ay isang programa, hindi isang silid-aklatan, kaya binago ko ito upang ibalik ang isang diksyunaryo sa halip na ang string. At nagsulat din ako ng module na tukoy sa Ikiling upang makakuha ng kulay, temperatura at gravity ng unang nahanap na Ikiling (mayroon lamang ako), at isang simpleng programa sa pagsubok upang suriin kung nakikita nito ang aking Ikiling:

i-import ang tagilid ngimport

habang Totoo:

res = tilt.getFirstTilt () i-print ang oras ng res. pagtulog (2)

Patakbuhin at suriin na gumagana ito. Ngayon ay maaari ko itong mai-plug sa aking control program. Mayroon na akong isang programa ng sawa na konektado sa cloud4rpi.io, ngunit hayaan mo akong ipakita kung paano ito gawin mula sa simula.

Hakbang 2: Pagkonekta sa Device sa Cloud

Kumokonekta sa Device sa Cloud
Kumokonekta sa Device sa Cloud
Kumokonekta sa Device sa Cloud
Kumokonekta sa Device sa Cloud

Una, mag-sign in sa cloud4rpi.io, pagkatapos ay lumikha ng isang bagong aparato.

Bibigyan ka ng isang token ng aparato at mga tagubilin sa pag-install. Para sa Raspberry Pi sundin ang mga tagubilin dito https://docs.cloud4rpi.io/start/rpi/ - tiyaking napapanahon ang iyong system:

sudo apt update && sudo apt upgrade

Mag-install ng mga kinakailangan:

sudo apt install git python python-pip

Mag-install ng mga cloud4rpi python package:

sudo pip install cloud4rpi

pagkatapos ay kumuha ng isang sample na python app para sa Raspberry Pi (sa control folder):

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

control ng cd

baguhin ang control.py - tukuyin ang token ng iyong aparato sa linya

DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’

Alisin ang hindi kinakailangang mga entry mula sa mga deklarasyon ng variable ng aparato, iwanan lamang ang CPUTemp upang subukan ang koneksyon ng aparato:

# Ilagay ang mga variable na deklarasyon dito variable = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Ngayon ay gumawa ng isang pagsubok na takbo:

sudo python control.py

Kung ang lahat ay ok, ang pahina ng iyong aparato ay agad na maa-update sa data ng diagnostic.

Hakbang 3: Pagpapadala ng Data sa Cloud

Pagpapadala ng Data sa Cloud
Pagpapadala ng Data sa Cloud

Ngayon kailangan naming baguhin ang control.py upang mabasa at iulat ang kulay, temperatura at gravity ng Tilt. Ganito ang resulta:

mula sa os import unamefrom socket import gethostname import sys import time import cloud4rpi import rpi import tilt

# Ilagay ang token ng iyong aparato dito. Upang makuha ang token, # mag-sign up sa https://cloud4rpi.io at lumikha ng isang aparato. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Patuloy

DATA_SENDING_INTERVAL = 60 # sec DIAG_SENDING_INTERVAL = 600 # secs POLL_INTERVAL = 0.5 # 500 ms

beacon = {}

def F2C (degreeF):

pagbalik (degreeF - 32) / 1.8

def getTemp ():

ibalik ang F2C (int (beacon ['Temp'])) kung ang beacon ay wala

def getGravity ():

ibalik ang beacon ['Gravity'] kung ang beacon ay wala

def main ():

# Ilagay dito ang mga variable na deklarasyon

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

mga diagnostic = {

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

aparato = cloud4rpi.connect (DEVICE_TOKEN)

aparato.declare (variable) device.declare_diag (diagnostic)

aparato.publish_config ()

# Nagdaragdag ng isang segundong pagkaantala upang matiyak na nilikha ang mga variable ng aparato

oras. tulog (1)

subukan:

data_timer = 0 diag_timer = 0 habang Totoo: kung data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

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

time.s Sleep (POLL_INTERVAL)

diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL

maliban sa KeyboardInterrupt:

cloud4rpi.log.info ('Natanggap ang nakakagambala sa keyboard. Humihinto …')

maliban sa Exception bilang e:

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

sa wakas:

sys.exit (0)

kung _name_ == '_main_':

pangunahing ()

Ngayon patakbuhin ito nang manu-mano upang makita kung ito ay gumagana:

sudo python control.py

Kung ang lahat ay mabuti, makikita mo ang iyong mga variable sa online.

Upang patakbuhin ang control.py sa pagsisimula ng system, i-install ito bilang isang serbisyo. Nagbibigay ang Cloud4rpi ng isang install na script ng serbisyo_install.sh upang gawin ito. Isinama ko ito sa aking repo. Upang mai-install ang control.py bilang isang serbisyo, patakbuhin

sudo bash service_install.sh control.py

Ngayon ay maaari mo nang simulan | ihinto | i-restart ang serbisyong ito sa pamamagitan ng pagpapatakbo ng utos

sudo systemctl simulan ang cloud4rpi.service

Pinapanatili ng serbisyo ang dati nitong estado sa kapangyarihan, kaya kung tumatakbo ito, tatakbo ito pagkatapos ng pag-reboot o pagkawala ng kuryente.

Hakbang 4: Pangwakas na Resulta

Pangwakas na Resulta
Pangwakas na Resulta

Ito ito, ngayon mayroon akong aking mga parameter ng Ikiling na ipinapadala sa cloud, kaya maaari kong i-set up ang isang magandang panel ng cloud control para dito. Pumunta sa https://cloud4rpi.io/control-panels at lumikha ng bagong control panel, magdagdag ng widget at piliin ang / Gravity at Beer Temp bilang mapagkukunan ng data. Ngayon ay nasusubaybayan ko kung ano ang nangyayari kahit malayo ako sa bahay.

Ang code na aking kinopya at sinulat ay magagamit dito: https://github.com/superroma/tilt-cloud4rpi. Malayo ito mula sa perpekto, gumagana lamang ito sa isang solong Ikiling, wala itong pakialam sa "Kulay" ng aparato, anuman ang ibig sabihin nito, at hindi naman ako isang taong Python, kaya't ang mga pag-aayos, mungkahi o tinidor ay malugod na tinatanggap !

Inirerekumendang: