Talaan ng mga Nilalaman:
- Hakbang 1: Pagkuha ng Data ng Ikiling sa Python
- Hakbang 2: Pagkonekta sa Device sa Cloud
- Hakbang 3: Pagpapadala ng Data sa Cloud
- Hakbang 4: Pangwakas na Resulta
Video: Paano Makontrol ang Temperatura ng Fermentation ng Beer at Gravity Mula sa Iyong Smartphone: 4 na Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
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
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
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
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
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:
Paano Makontrol ang isang GoPro Hero 4 Gamit ang isang RC Transmitter: 4 Mga Hakbang (na may Mga Larawan)
Paano Makontrol ang isang GoPro Hero 4 Gamit ang isang RC Transmitter: Ang layunin para sa proyektong ito ay upang makontrol nang malayuan ang isang GoPro Hero 4 sa pamamagitan ng isang RC Transmitter. Gagamitin ng pamamaraang ito ang built-in na GoPro sa Wifi & HTTP API para sa pagkontrol sa aparato & ay inspirasyon ng PROTOTYPE: PINAKA MALIIT AT PINAKA PINAKA
Gumamit ng Cortana at isang Arduino upang Makontrol ang RGB Leds o Ledstrips Gamit ang Iyong Boses !: 4 Hakbang (na may Mga Larawan)
Gumamit ng Cortana at isang Arduino upang Makontrol ang RGB Leds o Ledstrips Sa Iyong Tinig !: Sa itinuturo na ito ipapakita ko sa iyo kung paano mo makokontrol ang iyong RGB na humantong o humantong strip sa iyong boses. Ginagawa ito ng CoRGB app na magagamit nang libre sa windows app store. Ang app na ito ay bahagi ng aking proyekto sa CortanaRoom. Kapag tapos ka nang magawa
Paano makontrol ang LED Gamit ang ESP8266 NodemCU Lua WiFi Mula sa Website: 7 Mga Hakbang
Paano Makontrol ang LED Gamit ang ESP8266 NodemCU Lua WiFi Mula sa Website: Tuturuan ka ng tutorial na ito ng ilang mga pangunahing kaalaman sa paggamit ng ESP8266 NodemCU Lua WiFi upang makontrol ang LED mula sa web. Bago ka magsimula, siguraduhing mayroon ka ng lahat ng mga materyal na kinakailangan: ESP8266 NodeMCU Lua WiFi LED Breadboard Jumper (kung kinakailangan)
Gamit ang Iyong Bluetooth Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Computer: 6 Mga Hakbang
Paggamit ng Iyong Bluetooth na Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Kompyuter: Kanina pa ako nagbabasa ng mga itinuturo, at palaging nais kong gawin ang ilan sa mga bagay na sinulat ng mga tao, ngunit nahanap ko ang aking sarili sa mga bagay na ay mahirap gawin dahil ang mga ito ay tunay na mahirap gawin, o ang ika
Paano Maibabahagi ang Iyong Mga Larawan Mula sa Iyong Mac Mini sa Internet: 6 Mga Hakbang
Paano Maibahagi ang Iyong Mga Larawan Mula sa Iyong Mac Mini sa Internet: " Picasa - 1 GB na limitasyon " Flickr - 100 MB " Photobucket - 1 GB " Iyong mac mini - Walang limitasyong !!! *** " Ang bawat iba pang pangkalahatang site ng pagbabahagi ng larawan doon, ilang mga pipi na limitasyon sa laki ng file at limitadong puwang at iba pang mga di-sensical na limitasyon. Maghintay.