Cuprins:
- Pasul 1: Obținerea datelor de înclinare în Python
- Pasul 2: Conectarea dispozitivului la cloud
- Pasul 3: Trimiterea datelor către cloud
- Pasul 4: Rezultatul final
Video: Cum să controlați temperatura și gravitatea fermentației berii de pe telefonul dvs. smartphone: 4 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Când berea fermentează, ar trebui să îi monitorizați zilnic gravitația și temperatura. Este ușor să uiți să faci acest lucru și este imposibil dacă ești plecat.
După câteva căutări, am găsit mai multe soluții pentru monitorizarea automată a gravitației (una, două, trei). Unul dintre ei, cu un concept foarte inteligent, numit Tilt. Înclinarea plutește în berea dvs. și își măsoară propriul unghi de înclinare. Acest unghi depinde de densitatea lichidului și, prin urmare, poate măsura gravitația berii care fermentează.
Tilt vine cu o aplicație mobilă, care se conectează la aceasta și poate posta date în orice serviciu web. Problema este că trebuie să fii nu departe de Tilt pentru a putea face acest lucru. Există, de asemenea, un program Raspberry Pi care funcționează cu Tilt.
Pasul 1: Obținerea datelor de înclinare în Python
Folosesc deja Raspberry Pi pentru a monitoriza temperatura pivniței și un serviciu de panou de control cloud cloud4rpi.io. Dacă Tilt poate vorbi cu Raspberry Pi, ar trebui să se poată conecta cloud4rpi la acesta. Tilt utilizează un protocol wireless, deci veți avea nevoie de Raspberry Pi cu un cip wireless (Rasbperry Pi 3 sau Zero W).
Din fericire, există o repo GitHub pentru software-ul Tilt cu câteva mostre. Uitându-vă la https://github.com/baronbrew/tilt-scan, puteți vedea că Tilt arată celorlalți ca BLE iBeacon, cu „Color” codificat în UUID, iar temperatura și gravitația sunt în octeți majori și minori.
Codul lor eșantion este pentru Node.js și am un program de control Python bazat pe șablonul cloud4rpi
Deci, trebuie să obțin date Tilt în Python. După câteva căutări, am găsit https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Acesta este un program, nu o bibliotecă, așa că l-am modificat pentru a returna un dicționar în loc de șir. Și am scris și modulul specific Tilt pentru a obține culoarea, temperatura și gravitatea primului Tilt găsit (am doar unul) și un program simplu de testare pentru a verifica dacă poate vedea Tilt-ul meu:
import timp înclinare import
în timp ce este adevărat:
res = tilt.getFirstTilt () print res time.sleep (2)
Rulați și verificați dacă funcționează. Acum îl pot conecta la programul meu de control. Am deja un program python conectat la cloud4rpi.io, dar permiteți-mi să vă arăt cum să fac acest lucru de la zero.
Pasul 2: Conectarea dispozitivului la cloud
Mai întâi, conectați-vă la cloud4rpi.io, apoi creați un dispozitiv nou.
Veți primi un jeton de dispozitiv și instrucțiuni de instalare. Pentru Raspberry Pi, urmați instrucțiunile de aici https://docs.cloud4rpi.io/start/rpi/ - asigurați-vă că sistemul dvs. este actualizat:
sudo apt update && sudo apt upgrade
Instalați premisele:
sudo apt instalează git python python-pip
Instalați pachetele python cloud4rpi:
sudo pip instalează cloud4rpi
apoi obțineți un exemplu de aplicație python pentru Raspberry Pi (în folderul de control):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… control
control cd
modifica control.py - specificați jetonul dispozitivului în linie
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Eliminați intrările inutile din declarațiile de variabile ale dispozitivului, lăsați doar CPUTemp pentru a testa conexiunea dispozitivului:
# Puneți aici declarații variabile variabile = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Acum, efectuați un test:
sudo python control.py
Dacă totul este în regulă, pagina dispozitivului dvs. va fi actualizată imediat cu date de diagnosticare.
Pasul 3: Trimiterea datelor către cloud
Acum trebuie să modificăm control.py pentru a citi și a raporta culoarea, temperatura și gravitatea Tilt. Rezultatul arată astfel:
din os import uname din socket import gethostname import sys import time import cloud4rpi import rpi import tilt
# Puneți simbolul dispozitivului aici. Pentru a obține jetonul, # înscrieți-vă la https://cloud4rpi.io și creați un dispozitiv. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constante
DATA_SENDING_INTERVAL = 60 # secunde DIAG_SENDING_INTERVAL = 600 # sec. POLL_INTERVAL = 0,5 # 500 ms
far = {}
def F2C (grade F):
retur (grade F - 32) / 1,8
def getTemp ():
returnează F2C (int (beacon ['Temp'])) dacă beacon altul None
def getGravity ():
return beacon ['Gravity'] dacă beacon altul Nici unul
def main ():
# Puneți aici declarații variabile
variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnostic = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}
device = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variabile) device.declare_diag (diagnostice)
device.publish_config ()
# Adaugă o întârziere de 1 secundă pentru a se asigura că sunt create variabilele dispozitivului
time.sleep (1)
încerca:
data_timer = 0 diag_timer = 0 în timp ce True: if data_timer <= 0: beacon global beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
dacă diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
cu excepția KeyboardInterrupt:
cloud4rpi.log.info ('Întrerupere tastatură primită. Oprire …')
cu excepția excepției ca e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("EROARE!% s% s", eroare, sys.exc_info () [0])
in cele din urma:
sys.exit (0)
dacă _name_ == '_main_':
principal()
Acum rulați-l manual pentru a vedea dacă funcționează:
sudo python control.py
Dacă totul este bun, veți vedea variabilele dvs. online.
Pentru a rula control.py la pornirea sistemului, instalați-l ca serviciu. Cloud4rpi oferă un script de instalare service_install.sh pentru a face acest lucru. L-am inclus în repo. Pentru a instala control.py ca serviciu, rulați
sudo bash service_install.sh control.py
Acum puteți porni | opri | reporniți acest serviciu executând comanda
sudo systemctl pornește cloud4rpi.service
Serviciul își păstrează starea anterioară la pornire, așa că, dacă a funcționat, va rula după repornire sau pierdere de energie.
Pasul 4: Rezultatul final
Asta este, acum am parametrii Tilt care sunt trimiși în cloud, așa că pot configura un panou de control pentru cloud. Accesați https://cloud4rpi.io/control-panels și creați un nou panou de control, adăugați widget și selectați / Gravity și Beer Temp ca sursă de date. Acum pot monitoriza ce se întâmplă chiar dacă sunt departe de casă.
Codul pe care l-am copiat și am scris este disponibil aici: https://github.com/superroma/tilt-cloud4rpi. Este departe de a fi perfect, funcționează doar cu o singură înclinare, nu-i pasă de „Culoarea” dispozitivului, orice ar însemna, și nu sunt deloc un tip Python, așa că remedierile, sugestiile sau furculițele sunt binevenite !
Recomandat:
Controlați aspectul modelului trenului cu telefonul mobil !: 11 pași (cu imagini)
Controlează aspectul modelului trenului cu telefonul tău mobil !: Controlul unui aspect model tren cu un controlor de accelerare cu fir și de prezență ar putea fi un bun început pentru începători, dar acestea reprezintă o problemă de non-portabilitate. De asemenea, controlerele fără fir care vin pe piață pot controla doar unele locom
Cum să instalați Windows pe telefonul dvs. Android: 5 pași
Cum să instalați Windows pe telefonul dvs. Android: Ați dorit vreodată să rulați Windows XP pe dispozitivul dvs. Android? V-ați gândit vreodată dacă rulați sistemul de operare desktop pe telefonul dvs. mobil? Veți avea nevoie de aplicația limbo pentru a instala Windows pe telefon. Folosind această aplicație puteți instala Windows 98 / ME / CE
Controlați aspectul modelului dvs. de tren cu televizorul dvs. REMOTE !: 7 pași (cu imagini)
Controlați-vă aspectul modelului trenului cu televizorul dvs. REMOTE !: În acest instructiv, vă voi arăta cum să realizați un sistem de telecomandă IR pentru un model tren. Veți putea apoi să vă controlați trenurile în timp ce vă relaxați pe canapea. Deci sa începem
Controlați aparatele electrocasnice de pe telefonul dvs. Smarthphone cu aplicația Blynk și Raspberry Pi: 5 pași (cu imagini)
Controlați aparatele electrocasnice de pe telefonul dvs. Smarthphone cu aplicația Blynk și Raspberry Pi: În acest proiect, vom învăța cum să folosiți aplicația Blynk și Raspberry Pi 3 pentru a controla aparatele electrocasnice (filtru de cafea, lampă, perdea de fereastră și multe altele … Componente hardware: Raspberry Pi 3 Relay Lamp Breadboard Wires Aplicații software: Blynk A
Cum să eliminați siglele de pe PDA / telefonul dvs. mobil cu zahăr: 4 pași (cu imagini)
Cum să eliminați siglele de pe PDA / telefonul dvs. mobil cu zahăr: Vă rugăm să nu încercați acest lucru dacă nu sunteți sigur că vă puneți telefonul în pericol ușor … nu pot repara telefoanele … (Deși nu ar trebui să existe nicio deteriorare deoarece este destul de ușor) update NOTĂ: Acest lucru nu funcționează cu huse din plastic! Zahărul va lăsa scrat