Sadržaj:
- Korak 1: Dobijanje podataka o nagibu u Pythonu
- Korak 2: Povezivanje uređaja s oblakom
- Korak 3: Slanje podataka u oblak
- Korak 4: Konačni rezultat
Video: Kako kontrolirati temperaturu i gravitaciju fermentacije piva sa vašeg pametnog telefona: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Kada fermentira pivo, trebali biste svakodnevno pratiti njegovu gravitaciju i temperaturu. Lako je zaboraviti to učiniti, a nemoguće ako ste odsutni.
Nakon guglanja, pronašao sam nekoliko rješenja za automatizirano praćenje gravitacije (jedno, dva, tri). Jedan od njih, s vrlo pametnim konceptom, zove se Tilt. Nagib pluta u vašem pivu i mjeri vlastiti kut nagiba. Ovaj kut ovisi o gustoći tekućine i stoga može mjeriti težinu fermentiranog piva.
Tilt dolazi s mobilnom aplikacijom koja se povezuje s njom i može objavljivati podatke na bilo kojoj web usluzi. Problem je u tome što morate biti nedaleko od Tilta da biste to mogli učiniti. Postoji i program Raspberry Pi koji radi sa Tilt -om.
Korak 1: Dobijanje podataka o nagibu u Pythonu
Već koristim Raspberry Pi za praćenje temperature podruma i uslugu oblačne kontrolne ploče cloud4rpi.io. Ako Tilt može razgovarati s Raspberry Pi, trebalo bi biti moguće povezati cloud4rpi s njim. Tilt koristi bežični protokol, pa će vam trebati Raspberry Pi s bežičnim čipom (Rasbperry Pi 3 ili Zero W).
Srećom, postoji GitHub repo za Tilt softver s nekim uzorcima. Gledajući https://github.com/baronbrew/tilt-scan možete vidjeti da Tilt drugima izgleda kao BLE iBeacon, s "Bojom" kodiranom u UUID-u, a temperatura i gravitacija su u velikim i sporednim bajtovima.
Njihov uzorak koda je za Node.js, a ja imam Python kontrolni program zasnovan na cloud4rpi predlošku
Zato moram nabaviti Tilt podatke u Pythonu. Nakon guglanja, našao sam https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skener. Ovo je program, a ne biblioteka, pa sam ga izmijenio da umjesto rječnika vrati rječnik. Napisao sam i modul specifičan za nagib kako bih dobio boju, temperaturu i težinu prvog pronađenog nagiba (imam samo jedan) i jednostavan testni program za provjeru može li vidjeti moj nagib:
import timeimport nagib
dok je True:
res = tilt.getFirstTilt () ispis res time.sleep (2)
Pokrenite i provjerite radi li. Sada ga mogu priključiti na svoj upravljački program. Već imam python program povezan s cloud4rpi.io, ali dopustite mi da vam pokažem kako to učiniti od nule.
Korak 2: Povezivanje uređaja s oblakom
Prvo se prijavite na cloud4rpi.io, a zatim stvorite novi uređaj.
Dobit ćete token uređaja i upute za instalaciju. Za Raspberry Pi slijedite upute ovdje https://docs.cloud4rpi.io/start/rpi/-provjerite je li vaš sistem ažuriran:
sudo apt ažuriranje && sudo apt nadogradnja
Preduvjeti za instaliranje:
sudo apt install git python python-pip
Instalirajte cloud4rpi python pakete:
sudo pip install cloud4rpi
tada nabavite uzorak python aplikacije za Raspberry Pi (u kontrolnu mapu):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrola
cd kontrola
modify control.py - navedite token vašeg uređaja u redu
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Uklonite nepotrebne unose iz deklaracija varijabli uređaja, ostavite samo CPUTemp za testiranje veze uređaja:
# Ovdje stavite deklaracije varijabli varijable = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Sada napravite probni rad:
sudo python control.py
Ako je sve u redu, stranica vašeg uređaja bit će odmah ažurirana dijagnostičkim podacima.
Korak 3: Slanje podataka u oblak
Sada moramo izmijeniti control.py za čitanje i izvještavanje o Tilt -ovoj boji, temperaturi i gravitaciji. Rezultat izgleda ovako:
iz os uvoz uname iz utičnice uvoz gethostname uvoz sys vrijeme uvoza uvoz cloud4rpi uvoz rpi uvoz nagib
# Ovdje stavite žeton uređaja. Da biste dobili žeton, # prijavite se na https://cloud4rpi.io i kreirajte uređaj. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstante
DATA_SENDING_INTERVAL = 60 # sekundi DIAG_SENDING_INTERVAL = 600 # sekundi POLL_INTERVAL = 0,5 # 500 ms
svjetionik = {}
def F2C (stupnjeviF):
povratak (stepeniF - 32) / 1.8
def getTemp ():
vrati F2C (int (beacon ['Temp'])) ako je beacon else None
def getGravity ():
return beacon ['Gravity'] ako beacon nijedan None
def main ():
# Ovdje stavite deklaracije varijabli
varijable = {'Gravitacija': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
dijagnostika = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}
uređaj = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (varijable) device.declare_diag (dijagnostika)
device.publish_config ()
# Dodaje kašnjenje od 1 sekunde kako bi se osiguralo stvaranje varijabli uređaja
time.sleep (1)
probaj:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: globalni beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
ako je diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
dijag_timer -= POLL_INTERVAL tajmer podataka -= POLL_INTERVAL
osim KeyboardInterrupt:
cloud4rpi.log.info ('Primljen prekid tastature. Zaustavljanje …')
osim izuzetka kao e:
greška = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("GREŠKA! %s %s", greška, sys.exc_info () [0])
konačno:
sys.exit (0)
if _name_ == '_main_':
main ()
Sada ga ručno pokrenite da vidite radi li:
sudo python control.py
Ako je sve u redu, na internetu ćete vidjeti svoje varijable.
Da biste pokrenuli control.py pri pokretanju sistema, instalirajte ga kao uslugu. Cloud4rpi nudi instalacijsku skriptu service_install.sh za to. Uključio sam ga u svoj repo. Da biste instalirali control.py kao uslugu, pokrenite
sudo bash service_install.sh control.py
Sada možete pokrenuti | stop | ponovo pokrenuti ovu uslugu pokretanjem naredbe
sudo systemctl pokrenite cloud4rpi.service
Usluga zadržava prijašnje stanje pri uključivanju, pa ako je radila, radit će nakon ponovnog pokretanja ili gubitka napajanja.
Korak 4: Konačni rezultat
To je to, sada se moji parametri nagiba šalju u oblak, tako da mogu postaviti lijepu kontrolnu ploču u oblaku. Idite na https://cloud4rpi.io/control-panels i kreirajte novu kontrolnu ploču, dodajte widget i odaberite/Gravity and Beer Temp kao izvor podataka. Sada mogu pratiti šta se događa čak i ako sam daleko od kuće.
Kôd koji sam kopirao i napisao dostupan je ovdje: https://github.com/superroma/tilt-cloud4rpi. Daleko je od savršenog, radi samo s jednim nagibom, nije ga briga za "boju" uređaja, što god to značilo, a ja uopće nisam Python tip, pa su ispravci, prijedlozi ili viljuške dobrodošli !
Preporučuje se:
Uradi sam -- Kako napraviti Spider robota kojim se može upravljati pomoću pametnog telefona pomoću Arduino Uno: 6 koraka
Uradi sam || Kako napraviti Spider robota koji se može kontrolirati pomoću pametnog telefona pomoću Arduino Uno: Prilikom izrade Spider robota možete naučiti toliko stvari o robotici. Kao što je izrada robota zabavna, ali i izazovna. U ovom videu pokazat ćemo vam kako napraviti Spider robota, kojim možemo upravljati pomoću našeg pametnog telefona (Androi
Bluetooth prekidač za pedale za kameru pametnog telefona: 13 koraka (sa slikama)
Bluetooth prekidač za pedale za kameru na pametnom telefonu: Ovih dana se bavim izradom instrukcija, video zapisa na YouTubeu i postova na blogovima. Da bi objava na blogu bila produktivna, bitno je snimiti što je moguće više slika što detaljnije. To nije tako lako učiniti jer ljudsko biće ima samo dvije ruke. Ja trebam
Hakiranje Hexbug Spider XL za dodavanje računarskog vida pomoću Android pametnog telefona: 9 koraka (sa slikama)
Hakiranje Hexbug Spider XL radi dodavanja računarskog vida pomoću Android pametnog telefona: Veliki sam fan originalnog Hexbuga ™ Pauk. Posjedovao sam više desetaka i sve sam ih hakirao. Kad god jedan od mojih sinova ode kod prijatelja ’ rođendanska zabava, prijatelj dobije Hexbug ™ pauk na poklon. Hakirao sam ili
ANTIDISKRETNJA: Držač pametnog telefona koji vam pomaže da se fokusirate: 7 koraka (sa slikama)
ANTiDISTRACTION: Držač pametnog telefona koji vam pomaže da se fokusirate: Naš ANTiDISTRACTION uređaj ima za cilj ukidanje svih oblika ćelijske distrakcije u periodima intenzivnog fokusiranja. Mašina djeluje kao stanica za punjenje na koju je montiran mobilni uređaj kako bi se olakšalo okruženje bez smetnji
Kako programirati i resetirati Arduino pomoću Android pametnog telefona: 8 koraka
Kako programirati i resetirati Arduino pomoću Android pametnog telefona: Možda ste koristili OTG adapter za povezivanje Pendrive -a i kontrolera za igre te davali snagu malim uređajima. Možete učiniti mnogo više od napajanja Arduino ploče pametnim telefonom. U ovom vodiču sastavit ćemo i prenijeti Ardu