Tartalomjegyzék:

A sör erjedési hőmérsékletének és gravitációjának szabályozása okostelefonról: 4 lépés (képekkel)
A sör erjedési hőmérsékletének és gravitációjának szabályozása okostelefonról: 4 lépés (képekkel)

Videó: A sör erjedési hőmérsékletének és gravitációjának szabályozása okostelefonról: 4 lépés (képekkel)

Videó: A sör erjedési hőmérsékletének és gravitációjának szabályozása okostelefonról: 4 lépés (képekkel)
Videó: Az élesztő működésének hőmérséklet függősége 2024, Július
Anonim
Hogyan lehet ellenőrizni a sör erjedési hőmérsékletét és gravitációját okostelefonjáról
Hogyan lehet ellenőrizni a sör erjedési hőmérsékletét és gravitációját okostelefonjáról

Amikor a sör erjed, naponta ellenőriznie kell annak súlyát és hőmérsékletét. Könnyű elfelejteni ezt, és lehetetlen, ha távol van.

Némi googling után több megoldást találtam az automatikus gravitációs megfigyelésre (egy, kettő, három). Egyikük nagyon okos koncepcióval, Tilt néven. A dőlés lebeg a sörben, és saját dőlésszögét méri. Ez a szög a folyadék sűrűségétől függ, ezért mérheti az erjedő sör súlyát.

A Tilt mobilalkalmazással rendelkezik, amely csatlakozik hozzá, és adatokat tehet közzé bármely webszolgáltatásban. A probléma az, hogy nem kell messze lennie a Tilt -től, hogy ezt megtehesse. Van egy Raspberry Pi program is, amely együttműködik a Tilt alkalmazással.

1. lépés: Tilt adatok beszerzése a Pythonban

Tilt adatok lekérése Pythonban
Tilt adatok lekérése Pythonban

Már a Raspberry Pi -t használom a pince hőmérsékletének figyelésére, és a cloud4rpi.io felhővezérlő panel szolgáltatást. Ha a Tilt tud beszélni a Raspberry Pi -vel, akkor lehetségesnek kell lennie a cloud4rpi csatlakoztatása hozzá. A Tilt vezeték nélküli protokollt használ, ezért szüksége lesz a Raspberry Pi vezeték nélküli chipre (Rasbperry Pi 3 vagy Zero W).

Szerencsére van GitHub repo a Tilt szoftverhez néhány mintával. A https://github.com/baronbrew/tilt-scan címet megnézve láthatja, hogy a Tilt másoknak BLE iBeacon-ként néz ki, UUID kóddal „Színes” kóddal, és a hőmérséklet és a gravitáció nagyobb és kisebb bájtban van.

Mintakódjuk a Node.js, a Python vezérlőprogramom pedig a cloud4rpi sablonon alapul

Tehát Tilt adatokat kell szereznem a Pythonban. Némi googleolás után megtaláltam a https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon szkennert. Ez egy program, nem könyvtár, ezért úgy módosítottam, hogy a karakterlánc helyett szótárt adjon vissza. És írtam Tilt-specifikus modult is, hogy lekérjem az első talált Tilt színét, hőmérsékletét és gravitációját (nekem csak egy van), és egy egyszerű tesztprogramot, amellyel ellenőrizhetem, hogy látja-e a Tiltemet:

import időimport dőlés

míg igaz:

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

Futtassa és ellenőrizze, hogy működik -e. Most csatlakoztathatom a vezérlőprogramomhoz. Már van egy python programom a cloud4rpi.io -hoz, de hadd mutassam meg, hogyan kell ezt megtenni.

2. lépés: Az eszköz csatlakoztatása a felhőhöz

Eszköz csatlakoztatása a felhőhöz
Eszköz csatlakoztatása a felhőhöz
Eszköz csatlakoztatása a felhőhöz
Eszköz csatlakoztatása a felhőhöz

Először jelentkezzen be a cloud4rpi.io webhelyre, majd hozzon létre egy új eszközt.

Kap egy eszköz tokent és telepítési utasításokat. A Raspberry Pi esetében kövesse az alábbi utasításokat: https://docs.cloud4rpi.io/start/rpi/-győződjön meg arról, hogy a rendszer naprakész:

sudo apt frissítés && sudo apt frissítés

Telepítés előfeltételei:

sudo apt install git python python-pip

A cloud4rpi python csomagok telepítése:

sudo pip telepítse a cloud4rpi -t

majd szerezzen be egy minta python alkalmazást a Raspberry Pi számára (a vezérlőmappába):

git klón https://github.com/cloud4rpi/cloud4rpi-raspberryp… control

cd vezérlés

modify control.py - adja meg eszközjelzőjét a sorban

DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

Távolítsa el a felesleges bejegyzéseket az eszközváltozó -deklarációkból, hagyja csak a CPUTemp -et az eszközkapcsolat tesztelésére:

# Tedd ide a változó deklarációit változók = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}

Most végezzen próbaüzemet:

sudo python control.py

Ha minden rendben van, az eszköz oldala azonnal frissül diagnosztikai adatokkal.

3. lépés: Adatok küldése a felhőbe

Adatok küldése a felhőbe
Adatok küldése a felhőbe

Most módosítanunk kell a control.py -t a Tilt színének, hőmérsékletének és gravitációjának olvasásához és jelentéséhez. Az eredmény így néz ki:

os importálásból unamefrom socket importálás gethostname import import sys import time import cloud4rpi import rpi import tilt

# Tegye ide eszközjelzőjét. A token megszerzéséhez, # regisztráljon a https://cloud4rpi.io oldalon, és hozzon létre egy eszközt. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'

# Állandó

DATA_SENDING_INTERVAL = 60 # másodperc DIAG_SENDING_INTERVAL = 600 # másodperc POLL_INTERVAL = 0,5 # 500 ms

jelzőfény = {}

def F2C (F fok):

visszatérés (F - 32 fok) / 1.8

def getTemp ():

return F2C (int (beacon ['Temp']))) if beacon else Nincs

def getGravity ():

return beacon ['Gravity'], ha beacon else Nincs

def main ():

# Tegye ide a változó deklarációkat

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

diagnosztika = {

'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}

device = cloud4rpi.connect (DEVICE_TOKEN)

device.declare (változók) device.declare_diag (diagnosztika)

device.publish_config ()

# 1 másodperces késleltetéssel biztosítja az eszközváltozók létrehozását

time.sleep (1)

próbáld ki:

data_timer = 0 diag_timer = 0, míg igaz: ha data_timer <= 0: globális irányjelző beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL

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

time.sleep (POLL_INTERVAL)

diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

A billentyűzet megszakítása kivételével:

cloud4rpi.log.info ('Billentyűzet megszakítás fogadva. Leállítás …')

kivéve a kivételt, mint pl.

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

végül:

sys.exit (0)

ha _name_ == '_main_':

fő()

Most futtassa manuálisan, hogy lássa, működik -e:

sudo python control.py

Ha minden rendben van, akkor online láthatja a változókat.

A control.py futtatásához a rendszer indításakor telepítse azt szolgáltatásként. A Cloud4rpi ehhez egy telepítési szkriptet biztosít a service_install.sh. Beillesztettem a repóba. A control.py szolgáltatásként történő telepítéséhez futtassa

sudo bash service_install.sh control.py

Most elkezdheti | leállítani | újraindítani ezt a szolgáltatást a parancs futtatásával

sudo systemctl indítsa el a cloud4rpi.service szolgáltatást

A szolgáltatás a bekapcsoláskor megőrzi korábbi állapotát, így ha futott, akkor újraindítás vagy áramkimaradás után fog futni.

4. lépés: Végeredmény

Végeredmény
Végeredmény

Ez az, most elküldöm a Tilt paramétereimet a felhőbe, így beállíthatok hozzá egy szép felhővezérlő panelt. Lépjen a https://cloud4rpi.io/control-panels oldalra, és hozzon létre új vezérlőpultot, adjon hozzá widgetet, és válassza ki a/Gravity és Beer Temp adatforrásként. Most már akkor is figyelemmel kísérhetem a történéseket, ha távol vagyok otthonról.

Az általam másolt és írt kód itt érhető el: https://github.com/superroma/tilt-cloud4rpi. Ez messze nem tökéletes, csak egyetlen dőléssel működik, nem törődik az eszköz „színével”, bármit is jelentsen, és egyáltalán nem vagyok Python -fickó, ezért a javításokat, javaslatokat vagy villákat szívesen fogadjuk !

Ajánlott: