Turinys:

Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono: 4 žingsniai (su nuotraukomis)
Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono: 4 žingsniai (su nuotraukomis)

Video: Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono: 4 žingsniai (su nuotraukomis)

Video: Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono: 4 žingsniai (su nuotraukomis)
Video: High Density 2022 2024, Liepa
Anonim
Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono
Kaip valdyti alaus fermentacijos temperatūrą ir gravitaciją iš savo išmaniojo telefono

Kai alus fermentuojasi, kasdien turėtumėte stebėti jo sunkumą ir temperatūrą. Tai lengva pamiršti ir neįmanoma, jei esate toli.

Po truputį googlindamas radau kelis automatinio gravitacijos stebėjimo sprendimus (vieną, du, tris). Vienas iš jų, turintis labai protingą koncepciją, vadinamas „Tilt“. „Tilt“plaukioja jūsų aluje ir matuoja savo pasvirimo kampą. Šis kampas priklauso nuo skysčio tankio, todėl gali išmatuoti fermentuojančio alaus sunkumą.

„Tilt“yra mobilioji programa, kuri prisijungia prie jos ir gali skelbti duomenis į bet kurią žiniatinklio paslaugą. Problema ta, kad jūs turite būti toli nuo „Tilt“, kad galėtumėte tai padaryti. Taip pat yra „Raspberry Pi“programa, kuri veikia su „Tilt“.

1 žingsnis: gaukite pakreiptus duomenis „Python“

„Tilt“duomenų gavimas „Python“
„Tilt“duomenų gavimas „Python“

Aš jau naudoju „Raspberry Pi“rūsio temperatūrai stebėti ir debesų valdymo skydelio paslaugą „cloud4rpi.io“. Jei „Tilt“gali kalbėtis su „Raspberry Pi“, turėtų būti įmanoma prie jo prijungti „cloud4rpi“. „Tilt“naudoja belaidį protokolą, todėl jums reikės „Raspberry Pi“su belaidžiu lustu („Rasbperry Pi 3“arba „Zero W“).

Laimei, yra „GitHub“atpirkimo programa „Tilt“su kai kuriais pavyzdžiais. Žvelgdami į https://github.com/baronbrew/tilt-scan galite pamatyti, kad „Tilt“kitiems atrodo kaip „BLE iBeacon“, „UUID“koduota „spalva“, o temperatūra ir gravitacija yra dideli ir maži baitai.

Jų pavyzdinis kodas skirtas „Node.js“, o aš turiu „Python“valdymo programą, pagrįstą „cloud4rpi“šablonu

Taigi turiu gauti „Tilt“duomenis „Python“. Po truputį googlindamas radau https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skaitytuvą. Tai programa, o ne biblioteka, todėl pakeičiau ją, kad vietoj eilutės būtų pateiktas žodynas. Aš taip pat parašiau „Tilt“modulį, kad gaučiau pirmojo rasto „Tilt“spalvą, temperatūrą ir gravitaciją (turiu tik vieną), ir paprastą bandymo programą, kad patikrintų, ar ji gali matyti mano „Tilt“:

importo laiko importo pakreipimas

nors tiesa:

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

Paleiskite ir patikrinkite, ar jis veikia. Dabar galiu prijungti jį prie savo valdymo programos. Aš jau turiu „python“programą, prijungtą prie „cloud4rpi.io“, bet leiskite man parodyti, kaip tai padaryti nuo nulio.

2 veiksmas: įrenginio prijungimas prie debesies

Įrenginio prijungimas prie debesies
Įrenginio prijungimas prie debesies
Įrenginio prijungimas prie debesies
Įrenginio prijungimas prie debesies

Pirmiausia prisijunkite prie „cloud4rpi.io“, tada sukurkite naują įrenginį.

Jums bus suteiktas įrenginio žetonas ir diegimo instrukcijos. „Raspberry Pi“vadovaukitės čia pateiktomis instrukcijomis https://docs.cloud4rpi.io/start/rpi/-įsitikinkite, kad jūsų sistema yra atnaujinta:

sudo apt atnaujinimas && sudo apt atnaujinimas

Įdiegti būtinas sąlygas:

sudo apt įdiegti git python python-pip

Įdiekite „cloud4rpi python“paketus:

sudo pip įdiegti cloud4rpi

tada gaukite „Raspberry Pi“skirtos „Python“programos pavyzdį (į valdymo aplanką):

git klonas https://github.com/cloud4rpi/cloud4rpi-raspberryp… valdymas

cd valdymas

modify control.py - eilutėje nurodykite savo įrenginio žetoną

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

Pašalinkite nereikalingus įrašus iš įrenginio kintamųjų deklaracijų, palikite tik CPUTemp, kad patikrintumėte įrenginio ryšį:

# Įdėkite čia kintamųjų deklaracijas kintamieji = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Dabar atlikite bandomąjį važiavimą:

sudo python control.py

Jei viskas gerai, jūsų įrenginio puslapis bus nedelsiant atnaujintas su diagnostiniais duomenimis.

3 veiksmas: duomenų siuntimas į debesį

Duomenų siuntimas į debesį
Duomenų siuntimas į debesį

Dabar turime modifikuoti control.py, kad galėtume perskaityti ir pranešti apie „Tilt“spalvą, temperatūrą ir gravitaciją. Rezultatas atrodo taip:

iš os importuoti uname iš lizdo importuoti gethostname importuoti sys importavimo laikas importuoti cloud4rpi importuoti rpi importuoti pakreipimą

# Įdėkite savo įrenginio prieigos raktą čia. Norėdami gauti ženklą, # prisiregistruokite https://cloud4rpi.io ir sukurkite įrenginį. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Pastovus

DATA_SENDING_INTERVAL = 60 # sek. DIAG_SENDING_INTERVAL = 600 # sek. POLL_INTERVAL = 0.5 # 500 ms

švyturys = {}

def F2C (laipsniai F):

grįžimas (F - 32 laipsniai) / 1.8

def getTemp ():

grąžinti F2C (int (švyturys ['Temp']))), jei švyturys kitas Nėra

def getGravity ():

grįžimo švyturys [„Gravitacija“], jei švyturys kitas Nėra

def main ():

# Įdėkite čia kintamas deklaracijas

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

diagnostika = {

'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operacinė sistema': "". Prisijungti (uname ())}

device = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (kintamieji) device.declare_diag (diagnostika)

device.publish_config ()

# Prideda 1 sekundės vėlavimą, kad būtų užtikrintas įrenginio kintamųjų sukūrimas

laikas. miegas (1)

bandyti:

data_timer = 0 diag_timer = 0, o tiesa: if data_timer <= 0: global signalo švyturys = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

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

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

išskyrus klaviatūrąInterrupt:

cloud4rpi.log.info („Gautas klaviatūros pertraukimas. Sustabdoma …“)

išskyrus išimtis, pvz.:

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

pagaliau:

sys.exit (0)

jei _vardas_ == '_main_':

pagrindinis ()

Dabar paleiskite jį rankiniu būdu, kad pamatytumėte, ar jis veikia:

sudo python control.py

Jei viskas gerai, savo kintamuosius pamatysite internete.

Norėdami paleisti control.py sistemos paleidimo metu, įdiekite ją kaip paslaugą. „Cloud4rpi“tam pateikia diegimo scenarijų service_install.sh. Aš įtraukiau jį į savo repo. Norėdami įdiegti control.py kaip paslaugą, paleiskite

sudo bash service_install.sh control.py

Dabar galite pradėti | sustabdyti | iš naujo paleisti šią paslaugą vykdydami komandą

sudo systemctl paleiskite cloud4rpi.service

Paslauga įjungia ankstesnę būseną, taigi, jei ji veikė, ji veiks po perkrovimo ar maitinimo praradimo.

4 žingsnis: galutinis rezultatas

Galutinis rezultatas
Galutinis rezultatas

Tai štai, dabar mano „Tilt“parametrai siunčiami į debesį, kad galėčiau jam sukurti gražų debesies valdymo skydelį. Eikite į https://cloud4rpi.io/control-panels ir sukurkite naują valdymo skydelį, pridėkite valdiklį ir kaip duomenų šaltinį pasirinkite/Gravity and Beer Temp. Dabar galiu stebėti, kas vyksta, net jei esu toli nuo namų.

Kodą, kurį nukopijavau ir parašiau, rasite čia: https://github.com/superroma/tilt-cloud4rpi. Jis toli gražu nėra tobulas, jis veikia tik su vienu „Tilt“, jam nerūpi įrenginio „spalva“, kad ir ką jis reikštų, ir aš nesu „Python“vaikinas, todėl pataisymai, pasiūlymai ar šakutės yra laukiami !

Rekomenduojamas: