Sadržaj:
- Korak 1: Dobivanje 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 promjena: 2024-01-30 09:37
Kad pivo fermentira, 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, nazvan je 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 gustoću 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 s Tilt -om.
Korak 1: Dobivanje podataka o nagibu u Pythonu
Već koristim Raspberry Pi za praćenje temperature podruma i uslugu oblačne upravljačke 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 softver Tilt 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 kontrolni program Python temeljen 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 knjižnica, 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 nagnutog nagiba (imam samo jedan) i jednostavan testni program za provjeru vidi li moj nagib:
import timeimport nagib
dok je istina:
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š sustav 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 instalirajte cloud4rpi
zatim nabavite uzorak python aplikacije za Raspberry Pi (u kontrolnu mapu):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrola
cd kontrola
izmijeniti control.py - navedite žeton uređaja u retku
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 izradite uređaj. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstante
DATA_SENDING_INTERVAL = 60 # s DIAG_SENDING_INTERVAL = 600 # s POLL_INTERVAL = 0,5 # 500 ms
svjetionik = {}
def F2C (stupnjeviF):
povrat (stupnjeviF - 32) / 1,8
def getTemp ():
return F2C (int (beacon ['Temp']))) ako je beacon else Ništa
def getGravity ():
return beacon ['Gravity'] ako svjetionik nijedan None
def main ():
# Ovdje stavite deklaracije varijabli
variables = {'Gravity': {'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
vrijeme.spavanje (1)
probati:
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)
dijagnostički timer -= POLL_INTERVAL tajmer podataka -= POLL_INTERVAL
osim KeyboardInterrupt:
cloud4rpi.log.info ('Primljen prekid tipkovnice. Zaustavljanje …')
osim iznimke kao e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("GREŠKA! %s %s", pogreška, sys.exc_info () [0])
konačno:
sys.exit (0)
ako je _naziv_ == '_glavni_':
glavni()
Sada ga ručno pokrenite da vidite radi li:
sudo python control.py
Ako je sve u redu, svoje varijable ćete vidjeti na internetu.
Da biste pokrenuli control.py pri pokretanju sustava, 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 | ponovno pokrenuti ovu uslugu pokretanjem naredbe
sudo systemctl start 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 upravljačku ploču u oblaku. Idite na https://cloud4rpi.io/control-panels i stvorite novu upravljačku ploču, dodajte widget i odaberite/Gravity and Beer Temp kao izvor podataka. Sada mogu pratiti što 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 tip za Python, pa su ispravci, prijedlozi ili vilice dobrodošli !
Preporučeni:
Kako instalirati Raspbian OS u Raspberry Pi pomoću softvera NOOBS i pametnog telefona .: 6 koraka
Kako instalirati Raspbian OS u Raspberry Pi pomoću softvera NOOBS i pametnog telefona.: Pozdrav svima! danas vam u ovom vodiču pokazujem kako jednostavno instalirati Raspbian OS u Raspberry Pi pomoću softvera NOOBS i pametnog telefona
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: Dok izrađujete 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 Instructables -a, youtube videa i postova na blogu. Da bi post na blogu bio produktivan, važno je snimiti što je moguće više fotografija. To nije tako lako učiniti jer ljudsko biće ima samo dvije ruke. Trebam
Hakiranje Hexbug Spider XL za dodavanje računalnog vida pomoću Android pametnog telefona: 9 koraka (sa slikama)
Hakiranje Hexbug Spider XL radi dodavanja računalnog 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 prijateljima ’ rođendanska zabava, prijatelj dobije Hexbug ™ pauk na dar. Hakirao sam ili
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 osim napajanja Arduino ploče pametnim telefonom. U ovom ćemo vodiču sastaviti i prenijeti Ardu