Indholdsfortegnelse:
- Trin 1: Få tilt -data i Python
- Trin 2: Tilslutning af enhed til skyen
- Trin 3: Send data til skyen
- Trin 4: Endeligt resultat
Video: Sådan kontrolleres ølgæringstemperatur og tyngdekraft fra din smartphone: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
Når øl fermenterer, bør du overvåge dens tyngdekraft og temperatur dagligt. Det er let at glemme at gøre det, og umuligt, hvis du er væk.
Efter noget googling fandt jeg flere løsninger til automatiseret tyngdekraftovervågning (en, to, tre). En af dem, med et meget smart koncept, kaldet Tilt. Tilt flyder i din øl og måler sin egen vippevinkel. Denne vinkel afhænger af væskens densitet og kan derfor måle tyngden af den fermenterende øl.
Tilt leveres med en mobilapp, der opretter forbindelse til den og kan sende data til enhver webtjeneste. Problemet er, at du skal være ikke langt fra Tilt for at kunne gøre det. Der er også et Raspberry Pi -program, der fungerer med Tilt.
Trin 1: Få tilt -data i Python
Jeg bruger allerede Raspberry Pi til at overvåge kældertemperatur og en cloud -kontrolpanelservice cloud4rpi.io. Hvis Tilt kan tale med Raspberry Pi, burde det være muligt at slutte cloud4rpi til den. Tilt bruger en trådløs protokol, så du skal bruge Raspberry Pi med en trådløs chip (Rasbperry Pi 3 eller Zero W).
Heldigvis er der en GitHub -repo til Tilt -software med nogle prøver. Når man ser på https://github.com/baronbrew/tilt-scan kan man se, at Tilt ser ud for andre som BLE iBeacon, med “Farve” kodet i UUID, og temperatur og tyngdekraft er i større og mindre bytes.
Deres prøvekode er til Node.js, og jeg har et Python-kontrolprogram baseret på cloud4rpi-skabelon
Så jeg skal hente Tilt -data i Python. Efter lidt googling fandt jeg https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon scanner. Dette er et program, ikke et bibliotek, så jeg ændrede det for at returnere en ordbog i stedet for en streng. Og jeg skrev også Tilt-specifikt modul for at få farve, temperatur og tyngdekraft af den første Tilt fundet (jeg har kun en), og et simpelt testprogram for at kontrollere, om det kan se min Tilt:
import timeimport tilt
mens det er sandt:
res = tilt.getFirstTilt () print res time.sleep (2)
Kør og tjek at det virker. Nu kan jeg tilslutte det til mit kontrolprogram. Jeg har allerede et python -program forbundet til cloud4rpi.io, men lad mig vise, hvordan man gør det fra bunden.
Trin 2: Tilslutning af enhed til skyen
Log først på cloud4rpi.io, og opret derefter en ny enhed.
Du får et enhedstoken og installationsvejledning. For Raspberry Pi skal du følge instruktionerne her https://docs.cloud4rpi.io/start/rpi/-sørg for, at dit system er opdateret:
sudo apt opdatering && sudo apt opgradering
Installer forudsætninger:
sudo apt installere git python python-pip
Installer cloud4rpi python -pakker:
sudo pip installer cloud4rpi
derefter få en prøve python -app til Raspberry Pi (i kontrolmappe):
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontrol
cd kontrol
rediger control.py - angiv din enheds token i linjen
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Fjern unødvendige poster fra enhedsvariabeldeklarationer, lad kun CPUTemp stå for at teste enhedsforbindelse:
# Sæt variable deklarationer her variabler = {'CPU Temp': {'type': 'numerisk', 'bind': rpi.cpu_temp}}
Lav nu en testkørsel:
sudo python control.py
Hvis alt er ok, opdateres din enhedsside straks med diagnosedata.
Trin 3: Send data til skyen
Nu skal vi ændre control.py for at læse og rapportere Tilt's farve, temperatur og tyngdekraft. Resultatet ser sådan ud:
fra os import unamefrom socket import gethostname import sys import tid import cloud4rpi import rpi import tilt
# Sæt dit enheds token her. For at få token, # tilmeld dig på https://cloud4rpi.io og opret en enhed. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstanter
DATA_SENDING_INTERVAL = 60 # sek. DIAG_SENDING_INTERVAL = 600 # sek POLL_INTERVAL = 0,5 # 500 ms
fyrtårn = {}
def F2C (grader F):
retur (grader F - 32) / 1,8
def getTemp ():
returner F2C (int (fyrtårn ['Temp'])) hvis fyr andet Ingen
def getGravity ():
returner fyrtårn ['Gravity'] hvis fyrtårn andet Ingen
def main ():
# Sæt variable erklæringer her
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 ())}
enhed = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variabler) device.declare_diag (diagnostik)
device.publish_config ()
# Tilføjer en forsinkelse på 1 sekund for at sikre, at enhedsvariabler oprettes
time.sleep (1)
prøve:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
hvis diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
undtagen KeyboardInterrupt:
cloud4rpi.log.info ('Tastaturafbrydelse modtaget. Stop …')
undtagen Undtagelse som e:
fejl = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("FEJL! %s %s", fejl, sys.exc_info () [0])
endelig:
sys.exit (0)
hvis _name_ == '_main_':
main ()
Kør det nu manuelt for at se, om det virker:
sudo python control.py
Hvis alt er godt, vil du se dine variabler online.
For at køre control.py ved systemstart skal du installere det som en service. Cloud4rpi leverer et installations script service_install.sh til at gøre det. Jeg har inkluderet det i min repo. Kør for at installere control.py som en tjeneste
sudo bash service_install.sh control.py
Nu kan du starte | stoppe | genstarte denne service ved at køre kommandoen
sudo systemctl start cloud4rpi.service
Tjenesten bevarer sin tidligere tilstand ved opstart, så hvis den kørte, kører den efter genstart eller strømtab.
Trin 4: Endeligt resultat
Dette er det, nu har jeg mine Tilt -parametre sendt til skyen, så jeg kan oprette et godt cloud -kontrolpanel til det. Gå til https://cloud4rpi.io/control-panels og opret nyt kontrolpanel, tilføj widget og vælg/Gravity og Beer Temp som datakilde. Nu kan jeg overvåge, hvad der sker, selvom jeg er væk hjemmefra.
Koden, jeg kopierede og skrev, er tilgængelig her: https://github.com/superroma/tilt-cloud4rpi. Det er langt fra perfekt, det fungerer kun med en enkelt Tilt, det er ligeglad med “Farve” på enheden, uanset hvad det betyder, og jeg er slet ikke en Python -fyr, så rettelser, forslag eller gafler er velkomne !
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: 15 trin (med billeder)
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: WhatThis er en trin-for-trin vejledning i, hvordan du bruger Fadecandy og behandling til at styre adresserbare lysdioder. Fadecandy er en LED-driver, der kan styre op til 8 strimler på 64 pixels hver. (Du kan forbinde flere Fadecandys til en computer for at øge
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: 16 trin (med billeder)
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: Jeg har forklaret, hvordan du styrer lys, der er forbundet til UNO og styres af Alexa
Sådan kontrolleres dit blodsukker: 10 trin (med billeder)
Sådan kontrolleres dit blodsukker: Håndtering af blodsukkerniveauer er afgørende for dem, der lider af diabetes. Det er vigtigt at vide, hvordan man korrekt overvåger disse niveauer. Flere trin skal tages korrekt for at sikre, at resultaterne er korrekte
Sådan kontrolleres LED ved hjælp af ESP8266 NodemCU Lua WiFi fra websted: 7 trin
Sådan kontrolleres LED'en ved hjælp af ESP8266 NodemCU Lua WiFi fra webstedet: Denne vejledning lærer dig nogle grundlæggende oplysninger om brug af ESP8266 NodemCU Lua WiFi til at styre LED'en fra internettet. Inden du går i gang, skal du sørge for at have alt det nødvendige materiale: ESP8266 NodeMCU Lua WiFi LED Breadboard Jumper (hvis det er nødvendigt)