Innehållsförteckning:
- Steg 1: Hämta Tilt -data i Python
- Steg 2: Anslut enhet till molnet
- Steg 3: Skicka data till molnet
- Steg 4: Slutresultat
Video: Hur man kontrollerar öljäsningstemperatur och gravitation från din smartphone: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
När öl jäser bör du övervaka dess gravitation och temperatur dagligen. Det är lätt att glömma att göra det, och omöjligt om du är borta.
Efter lite googling hittade jag flera lösningar för automatiserad gravitationskontroll (en, två, tre). En av dem, med ett mycket smart koncept, kallas Tilt. Tilt flyter i din öl och mäter sin egen lutningsvinkel. Denna vinkel beror på vätskans densitet och kan därför mäta gravitationen hos det jäsande ölet.
Tilt levereras med en mobilapp som ansluter till den och kan skicka data till alla webbtjänster. Problemet är att du måste vara inte långt från Tilt för att kunna göra det. Det finns också ett Raspberry Pi -program som fungerar med Tilt.
Steg 1: Hämta Tilt -data i Python
Jag använder redan Raspberry Pi för att övervaka källartemperaturen och en molnkontrollpaneltjänst cloud4rpi.io. Om Tilt kan prata med Raspberry Pi bör det vara möjligt att ansluta cloud4rpi till den. Tilt använder ett trådlöst protokoll, så du behöver Raspberry Pi med ett trådlöst chip (Rasbperry Pi 3 eller Zero W).
Lyckligtvis finns det en GitHub -repo för Tilt -programvara med några prover. Om du tittar på https://github.com/baronbrew/tilt-scan kan du se att Tilt ser ut för andra som BLE iBeacon, med "Färg" kodad i UUID, och temperatur och gravitation är i större och mindre byte.
Deras exempelkod är för Node.js, och jag har ett Python-kontrollprogram baserat på cloud4rpi-mall
Så jag måste hämta Tilt -data i Python. Efter lite googling hittade jag https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon-skanner. Detta är ett program, inte ett bibliotek, så jag ändrade det för att returnera en ordbok istället för sträng. Och jag skrev också Tilt-specifik modul för att få färg, temperatur och gravitation på den första Tilt som hittades (jag har bara en) och ett enkelt testprogram för att kontrollera om den kan se min Tilt:
import timeimport tilt
medan det är sant:
res = tilt.getFirstTilt () print res time.sleep (2)
Kör och kontrollera att det fungerar. Nu kan jag ansluta den till mitt kontrollprogram. Jag har redan ett pythonprogram anslutet till cloud4rpi.io, men låt mig visa hur jag gör det från grunden.
Steg 2: Anslut enhet till molnet
Logga först in på cloud4rpi.io och skapa sedan en ny enhet.
Du får en enhetstoken och installationsinstruktioner. För Raspberry Pi, följ instruktionerna här https://docs.cloud4rpi.io/start/rpi/-se till att ditt system är uppdaterat:
sudo apt update && sudo apt upgrade
Installera förutsättningar:
sudo apt installera git python python-pip
Installera cloud4rpi python -paket:
sudo pip installera cloud4rpi
skaffa sedan ett exempel python -app för Raspberry Pi (i kontrollmappen):
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontroll
cd -kontroll
ändra control.py - ange enhetstoken i raden
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Ta bort onödiga poster från enhetsvariabeldeklarationer, lämna endast CPUTemp för att testa enhetens anslutning:
# Sätt variabla deklarationer här variabler = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Gör nu en testkörning:
sudo python control.py
Om allt är ok kommer din enhets sida omedelbart att uppdateras med diagnosdata.
Steg 3: Skicka data till molnet
Nu måste vi ändra control.py för att läsa och rapportera Tilt färg, temperatur och gravitation. Resultatet ser ut så här:
från os import unamefrom socket import gethostname import sys import tid import cloud4rpi import rpi import tilt
# Sätt din enhetstoken här. För att få token, # registrera dig på https://cloud4rpi.io och skapa en enhet. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstanter
DATA_SENDING_INTERVAL = 60 # sekunder DIAG_SENDING_INTERVAL = 600 # sekunder POLL_INTERVAL = 0,5 # 500 ms
ledstjärna = {}
def F2C (grader F):
retur (grader F - 32) / 1,8
def getTemp ():
returnera F2C (int (ledstjärna ['Temp'])) om ledsteg annars Ingen
def getGravity ():
returnera varningsljuset ['Gravity'] om fyren annars Ingen
def main ():
# Lägg variabla deklarationer här
variabler = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnostik = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}
enhet = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variabler) device.declare_diag (diagnostik)
device.publish_config ()
# Lägger till en fördröjning på 1 sekund för att säkerställa att enhetsvariabler skapas
tid. sover (1)
Prova:
data_timer = 0 diag_timer = 0 medan True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
om diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
utom KeyboardInterrupt:
cloud4rpi.log.info ('Tangentbordsavbrott mottaget. Stoppar …')
utom Undantag som e:
fel = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR! %s %s", error, sys.exc_info () [0])
till sist:
sys.exit (0)
om _name_ == '_main_':
main ()
Kör det nu manuellt för att se om det fungerar:
sudo python control.py
Om allt är bra kommer du att se dina variabler online.
För att köra control.py vid systemstart, installera det som en tjänst. Cloud4rpi tillhandahåller ett installationsskript service_install.sh för att göra det. Jag har inkluderat det i min repo. Kör för att installera control.py som en tjänst
sudo bash service_install.sh control.py
Nu kan du starta | stoppa | starta om tjänsten genom att köra kommandot
sudo systemctl starta cloud4rpi.service
Tjänsten behåller sitt tidigare tillstånd vid uppstart, så om det kördes kommer det att köras efter omstart eller strömavbrott.
Steg 4: Slutresultat
Detta är det, nu har jag mina Tilt -parametrar skickade till molnet, så jag kan skapa en trevlig molnkontrollpanel för det. Gå till https://cloud4rpi.io/control-panels och skapa ny kontrollpanel, lägg till widget och välj/Gravity och Beer Temp som datakälla. Nu kan jag övervaka vad som händer även om jag är hemifrån.
Koden jag kopierade och skrev är tillgänglig här: https://github.com/superroma/tilt-cloud4rpi. Det är långt ifrån perfekt, det fungerar bara med en enda lutning, det bryr sig inte om "färg" på enheten, vad det än betyder, och jag är inte alls en Python -kille, så fixar, förslag eller gafflar är välkomna !
Rekommenderad:
Hur man kontrollerar glödlampan med hjälp av Arduino UNO och Single Channel 5V Solid State Relay Module: 3 steg
Hur man kontrollerar glödlampan genom att använda Arduino UNO och Single Channel 5V Solid State Relay Module: Beskrivning: Jämfört med det traditionella mekaniska reläet, Solid State Relay (SSR) har många fördelar: det har en längre livslängd, med en mycket högre tändning/ avstängd hastighet och inget ljud. Dessutom har den också bättre motståndskraft mot vibrationer och mekanisk
Hur man kontrollerar adresserbara lysdioder med Fadecandy och bearbetning: 15 steg (med bilder)
Så här kontrollerar du adresserbara lysdioder med Fadecandy och bearbetning: WhatThis är en steg-för-steg-handledning om hur du använder Fadecandy och Processing för att styra adresserbara lysdioder. Fadecandy är en LED-drivrutin som kan styra upp till 8 remsor med 64 pixlar vardera. (Du kan ansluta flera Fadecandys till en dator för att öka
Hur man kontrollerar LED med ESP8266 NodemCU Lua WiFi från webbplats: 7 steg
Så här kontrollerar du LED med ESP8266 NodemCU Lua WiFi från webbplatsen: Denna handledning kommer att lära dig några grunder om hur du använder ESP8266 NodemCU Lua WiFi för att styra LED från webben. Innan du sätter igång, se till att du har allt material som behövs: ESP8266 NodeMCU Lua WiFi LED -brödbräda (om det behövs)
Hur man kontrollerar om ett spel kommer att köras på din dator innan du köper spelet. 4 steg
Hur man kontrollerar om ett spel kommer att köras på din dator innan du köper spelet. Jag köpte nyligen Call of Duty 4 från en vän (gratis kan jag lägga till) eftersom det inte skulle köras på hans dator. Tja, hans dator är ganska ny, och det förvirrade mig varför den inte skulle fungera. Så efter ett par timmars sökning på internet kom jag över
Hur man kontrollerar lysdioder med bearbetning och Arduino: 5 steg
Hur man kontrollerar lysdioder med bearbetning och Arduino: Häromdagen konfronterades jag med ett intressant problem, jag behövde styra en serie lampor från en interaktion på en datorskärm och det måste vara så billigt som möjligt. Jag tänkte direkt på en Arduino. Den hade varje