Innholdsfortegnelse:
- Trinn 1: Få tilt -data i Python
- Trinn 2: Koble enheten til nettskyen
- Trinn 3: Sende data til nettskyen
- Trinn 4: Sluttresultat
Video: Hvordan kontrollere ølgjæringstemperatur og tyngdekraft fra smarttelefonen: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Når øl gjærer, bør du overvåke tyngdekraften og temperaturen daglig. Det er lett å glemme å gjøre det, og umulig hvis du er borte.
Etter litt googling fant jeg flere løsninger for automatisert tyngdekraftovervåking (en, to, tre). En av dem, med et veldig smart konsept, heter Tilt. Tilt flyter i ølet ditt og måler sin egen vippevinkel. Denne vinkelen avhenger av væskens tetthet, og kan derfor måle tyngdekraften til det gjærende ølet.
Tilt leveres med en mobilapp som kobles til den og kan legge ut data til enhver webtjeneste. Problemet er at du må være ikke langt fra Tilt for å kunne gjøre det. Det er også et Raspberry Pi -program som fungerer med Tilt.
Trinn 1: Få tilt -data i Python
Jeg bruker allerede Raspberry Pi til å overvåke kjellerens temperatur, og en cloud -kontrollpaneltjeneste cloud4rpi.io. Hvis Tilt kan snakke med Raspberry Pi, bør det være mulig å koble cloud4rpi til den. Tilt bruker en trådløs protokoll, så du trenger Raspberry Pi med en trådløs brikke (Rasbperry Pi 3 eller Zero W).
Heldigvis er det en GitHub -repo for Tilt -programvare med noen prøver. Når du ser på https://github.com/baronbrew/tilt-scan kan du se at Tilt ser på andre som BLE iBeacon, med “Farge” kodet i UUID, og temperatur og tyngdekraft er i store og mindre byte.
Eksempelkoden deres er for Node.js, og jeg har et Python-kontrollprogram basert på cloud4rpi-mal
Så jeg må hente tilt -data i Python. Etter litt googling fant jeg https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon skanner. Dette er et program, ikke et bibliotek, så jeg endret det for å returnere en ordbok i stedet for streng. Og jeg skrev også Tilt-spesifikk modul for å få farge, temperatur og tyngdekraften til den første vippen som ble funnet (jeg har bare én), og et enkelt testprogram for å sjekke om den kan se min Tilt:
import timeimport tilt
mens det er sant:
res = tilt.getFirstTilt () print res time.sleep (2)
Kjør og sjekk at det fungerer. Nå kan jeg koble den til kontrollprogrammet mitt. Jeg har allerede et python -program koblet til cloud4rpi.io, men la meg vise hvordan du gjør det fra bunnen av.
Trinn 2: Koble enheten til nettskyen
Logg deg først på cloud4rpi.io, og opprett deretter en ny enhet.
Du får et enhetstoken og installasjonsinstruksjoner. For Raspberry Pi, følg instruksjonene her https://docs.cloud4rpi.io/start/rpi/-sørg for at systemet er oppdatert:
sudo apt update && sudo apt upgrade
Installer forutsetninger:
sudo apt installer git python python-pip
Installer cloud4rpi python -pakker:
sudo pip installer cloud4rpi
så få en prøve python -app for Raspberry Pi (i kontrollmappen):
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberryp… kontroll
cd -kontroll
endre control.py - spesifiser enhetstokenet ditt på linjen
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Fjern unødvendige oppføringer fra enhetsvariabelerklæringer, bare la CPUTemp for å teste enhetstilkoblingen:
# Sett variable deklarasjoner her variabler = {'CPU Temp': {'type': 'numerisk', 'bind': rpi.cpu_temp}}
Gjør en prøvekjøring nå:
sudo python control.py
Hvis alt er i orden, vil enhetssiden din umiddelbart oppdateres med diagnostiske data.
Trinn 3: Sende data til nettskyen
Nå må vi endre control.py for å lese og rapportere Tilt farge, temperatur og tyngdekraft. Resultatet ser slik ut:
fra os import unamefrom socket import gethostname import sys import tid import cloud4rpi import rpi import tilt
# Sett enhetstokenet ditt her. For å få token, # registrer deg på https://cloud4rpi.io og opprett en enhet. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstanter
DATA_SENDING_INTERVAL = 60 # sekunder DIAG_SENDING_INTERVAL = 600 # sekunder 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 annet Ingen
def getGravity ():
returner beacon ['Gravity'] if beacon else Ingen
def main ():
# Sett variable deklarasjoner her
variabler = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnostikk = {
'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 (diagnostikk)
device.publish_config ()
# Legger til en forsinkelse på 1 sekund for å sikre at enhetsvariabler blir opprettet
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
unntatt KeyboardInterrupt:
cloud4rpi.log.info ('Tastaturavbrudd mottatt. Stopper …')
unntatt Unntak som e:
feil = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("FEIL! %s %s", feil, sys.exc_info () [0])
endelig:
sys.exit (0)
hvis _name_ == '_main_':
hoved()
Kjør det nå manuelt for å se om det fungerer:
sudo python control.py
Hvis alt er bra, vil du se variablene dine online.
For å kjøre control.py ved systemoppstart, installer du det som en tjeneste. Cloud4rpi tilbyr et installeringsskript service_install.sh for å gjøre det. Jeg har inkludert det i min repo. For å installere control.py som en tjeneste, kjør
sudo bash service_install.sh control.py
Nå kan du starte | stoppe | starte denne tjenesten på nytt ved å kjøre kommando
sudo systemctl start cloud4rpi.service
Tjenesten beholder sin tidligere tilstand ved oppstart, så hvis den kjørte, kjører den etter omstart eller tap av strøm.
Trinn 4: Sluttresultat
Dette er det, nå har jeg Tilt -parameterne mine sendt til skyen, så jeg kan sette opp et fint skykontrollpanel for det. Gå til https://cloud4rpi.io/control-panels og opprett nytt kontrollpanel, legg til widget og velg/Gravity og Beer Temp som datakilde. Nå kan jeg overvåke hva som skjer selv om jeg er borte fra hjemmet.
Koden jeg kopierte og skrev er tilgjengelig her: https://github.com/superroma/tilt-cloud4rpi. Det er langt fra perfekt, det fungerer bare med en enkelt vippe, det bryr seg ikke om "farge" på enheten, uansett hva det betyr, og jeg er ikke en Python -fyr i det hele tatt, så reparasjoner, forslag eller gafler er velkomne !
Anbefalt:
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: Jan 2020 -redigering: Jeg lar dette stå i tilfelle noen vil bruke det til å generere ideer, men det er ikke lenger noe poeng i å bygge en kube basert på disse instruksjonene. LED -driver -ICene er ikke lenger laget, og begge skissene ble skrevet i gammel versjon
Hvordan kontrollere husholdningsapparater med TV -fjernkontroll med timerfunksjon: 7 trinn (med bilder)
Slik kontrollerer du husholdningsapparater med TV -fjernkontroll med timerfunksjon: Selv etter 25 år med introduksjon til forbrukermarkedet, er infrarød kommunikasjon fortsatt veldig relevant de siste dagene. Enten det er din 55 tommers 4K -TV eller billydsystemet ditt, trenger alt en IR -fjernkontroll for å svare på vår
Gjenbruk den gamle smarttelefonen som videomonitor: 4 trinn (med bilder)
Gjenbruk den gamle smarttelefonen som videomonitor: Jeg har min gamle Samsung S5 liggende i evigheter, og selv om den ville tjene som et godt sikkerhetsnett hvis det skulle skje noe med iPhone -en min, er den ellers lite nyttig. Nylig ga en venn meg et marsvin til bursdagen min, og det har vært
Hvordan kontrollere en Neato -robot fra en bringebær Pi: 8 trinn
Hvordan kontrollere en Neato -robot fra en Raspberry Pi: Hvis du er interessert i å lage en Raspberry Pi -robot, er Neato en flott robot å bruke til prosjektet, for den er billig og har langt flere sensorer enn IRobot Create. Det jeg gjorde for roboten min var å hekte en bringebærpi på den ved å skrive ut et kabinett for 3D
Hvordan kontrollere LED ved hjelp av ESP8266 NodemCU Lua WiFi fra nettsted: 7 trinn
Slik kontrollerer du LED ved hjelp av ESP8266 NodemCU Lua WiFi fra nettsted: Denne opplæringen skal lære deg noen grunnleggende om bruk av ESP8266 NodemCU Lua WiFi for å kontrollere LED -en fra nettet. Før du begynner, må du kontrollere at du har alt nødvendig materiale: ESP8266 NodeMCU Lua WiFi LED Breadboard Jumper (om nødvendig)