INHOUDSOPGAWE:
- Stap 1: Kry kanteldata in Python
- Stap 2: Koppel toestel aan die wolk
- Stap 3: Stuur data na die wolk
- Stap 4: Finale resultaat
Video: Hoe om die temperatuur van die bierfermentasie en die swaartekrag van u slimfoon te beheer: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
As bier fermenteer, moet u die erns en temperatuur daarvan daagliks monitor. Dit is maklik om te vergeet om dit te doen, en as jy weg is, is dit onmoontlik.
Na 'n bietjie gaan soek, het ek verskeie oplossings gevind vir outomatiese swaartekragmonitering (een, twee, drie). Een van hulle, met 'n baie slim konsep, heet Tilt. Kantel dryf in u bier en meet sy eie kantelhoek. Hierdie hoek hang af van die vloeistof se digtheid en kan dus die erns van die fermenterende bier meet.
Tilt het 'n mobiele app wat daarmee verbind kan word en data op enige webdiens kan plaas. Die probleem is dat u nie ver van Tilt moet wees om dit te kan doen nie. Daar is ook 'n Raspberry Pi -program wat saam met Tilt werk.
Stap 1: Kry kanteldata in Python
Ek gebruik reeds Raspberry Pi om die temperatuur van die kelder en 'n wolkbeheerpaneeldiens cloud4rpi.io te monitor. As Tilt met Raspberry Pi kan praat, moet dit moontlik wees om cloud4rpi daaraan te koppel. Tilt gebruik 'n draadlose protokol, dus benodig u Raspberry Pi met 'n draadlose chip (Rasbperry Pi 3 of Zero W).
Gelukkig is daar 'n GitHub -repo vir Tilt -sagteware met enkele voorbeelde. As u na https://github.com/baronbrew/tilt-scan kyk, kan u sien dat Tilt vir ander lyk as BLE iBeacon, met 'Kleur' in UUID gekodeer, en temperatuur en swaartekrag in groot en klein grepe is.
Hulle voorbeeldkode is vir Node.js, en ek het 'n Python-beheerprogram gebaseer op cloud4rpi-sjabloon
Ek moet dus Tilt -data in Python kry. Na 'n bietjie gegoogle het ek https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon-skandeerder gevind. Dit is 'n program, nie 'n biblioteek nie, so ek het dit aangepas om 'n woordeboek terug te gee in plaas van string. En ek het ook 'n Tilt-spesifieke module geskryf om kleur, temperatuur en swaartekrag van die eerste kantel te kry (ek het net een), en 'n eenvoudige toetsprogram om te kyk of dit my kantel kan sien:
invoer tyd invoer kantel
terwyl dit waar is:
res = tilt.getFirstTilt () druk res time.sleep (2)
Hardloop en kyk of dit werk. Nou kan ek dit by my beheerprogram aansluit. Ek het reeds 'n python -program wat aan cloud4rpi.io gekoppel is, maar laat ek wys hoe om dit van nuuts af te doen.
Stap 2: Koppel toestel aan die wolk
Meld eers aan by cloud4rpi.io en skep dan 'n nuwe toestel.
U kry 'n toesteltoken en installasie -instruksies. Volg die instruksies hier vir Raspberry Pi https://docs.cloud4rpi.io/start/rpi/-maak seker dat u stelsel op datum is:
sudo apt update && sudo apt upgrade
Installeer voorvereistes:
sudo apt installeer git python python-pip
Installeer cloud4rpi python -pakkette:
sudo pip installeer cloud4rpi
kry dan 'n voorbeeld -python -app vir Raspberry Pi (in die kontrolemap):
git-kloon https://github.com/cloud4rpi/cloud4rpi-raspberryp… beheer
cd beheer
verander control.py - spesifiseer u toesteltoken in die reël
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Verwyder onnodige inskrywings uit toestelle veranderlike verklarings, laat slegs CPUTemp om die verbinding van die toestel te toets:
# Plaas veranderlike verklarings hier veranderlikes = {'CPU Temp': {'type': 'numeries', 'bind': rpi.cpu_temp}}
Doen nou 'n toetslopie:
sudo python control.py
As alles in orde is, word u toestelbladsy onmiddellik opgedateer met diagnostiese data.
Stap 3: Stuur data na die wolk
Nou moet ons control.py verander om die kleur, temperatuur en swaartekrag van Tilt te lees en te rapporteer. Die uitslag lyk so:
vanaf os invoer unamefrom socket invoer gethostname invoer sys invoer tyd invoer cloud4rpi invoer rpi invoer kantel
# Plaas u toesteltoken hier. Om die teken te kry, # teken aan by https://cloud4rpi.io en skep 'n toestel. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Konstante
DATA_SENDING_INTERVAL = 60 # sekondes DIAG_SENDING_INTERVAL = 600 # sekondes POLL_INTERVAL = 0.5 # 500 ms
baken = {}
def F2C (grade F):
opbrengs (grade F - 32) / 1.8
def getTemp ():
gee F2C terug (int (baken ['temp'])) as baken anders Geen
def getGravity ():
stuur baken ['Gravity'] as baken anders Geen
def main ():
# Plaas veranderlike verklarings hier
veranderlikes = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnostiek = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': "".join (uname ())}}
toestel = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (veranderlikes) device.declare_diag (diagnostiek)
device.publish_config ()
# Voeg 'n vertraging van 1 sekonde by om te verseker dat toestelveranderlikes geskep word
tyd. slaap (1)
probeer:
data_timer = 0 diag_timer = 0 terwyl True: as data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
as diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
tyd. slaap (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
behalwe KeyboardInterrupt:
cloud4rpi.log.info ('Toetsenbordonderbreking ontvang. Stop …')
behalwe Uitsondering as e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR! %s %s", error, sys.exc_info () [0])
uiteindelik:
sys.exit (0)
as _naam_ == '_hoof_':
hoof ()
Begin dit nou met die hand om te sien of dit werk:
sudo python control.py
As alles goed is, sien u u veranderlikes aanlyn.
Installeer dit as 'n diens om control.py uit te voer tydens die begin van die stelsel. Cloud4rpi bied 'n installering script service_install.sh om dit te doen. Ek het dit in my repo opgeneem. Begin om control.py as 'n diens te installeer
sudo bash service_install.sh control.py
Nou kan u hierdie diens begin | stop | herlaai deur die opdrag uit te voer
sudo systemctl begin cloud4rpi.service
Diens hou sy vorige toestand aan, dus as dit aan die gang is, sal dit werk na herlaai of kragverlies.
Stap 4: Finale resultaat
Dit is dit, nou stuur ek my Tilt -parameters na die wolk, sodat ek 'n goeie wolkbeheerpaneel daarvoor kan instel. Gaan na https://cloud4rpi.io/control-panels en skep 'n nuwe bedieningspaneel, voeg widget by en kies/Gravity en Beer Temp as databron. Nou kan ek monitor wat aangaan, selfs al is ek weg van die huis af.
Die kode wat ek gekopieer en geskryf het, is hier beskikbaar: https://github.com/superroma/tilt-cloud4rpi. Dit is verre van perfek, dit werk slegs met 'n enkele kanteling, dit gee nie om "die kleur" van die toestel nie, wat dit ook al beteken, en ek is glad nie 'n Python -ou nie, so regstellings, voorstelle of vurke is welkom !
Aanbeveel:
DIY -- Hoe om 'n spinnekoprobot te maak wat met 'n slimfoon beheer kan word met behulp van Arduino Uno: 6 stappe
DIY || Hoe om 'n spinnekoprobot te maak wat met 'n slimfoon beheer kan word met behulp van Arduino Uno: As u 'n spinnekoprobot maak, kan u soveel dinge oor robotika leer. Soos om robotte te maak, is dit vermaaklik sowel as uitdagend. In hierdie video gaan ons jou wys hoe om 'n Spider -robot te maak wat ons kan gebruik met ons slimfoon (Androi
Hoe om die ESP8266 -gebaseerde Sonoff Basic Smart Switch met 'n slimfoon te beheer: 4 stappe (met foto's)
Hoe om die ESP8266 -gebaseerde Sonoff Basic Smart Switch met 'n slimfoon te beheer: Sonoff is 'n toestellyn vir Smart Home wat deur ITEAD ontwikkel is. Een van die mees buigsame en goedkoopste toestelle uit die reeks is Sonoff Basic. Dit is 'n Wi-Fi-skakelaar wat gebaseer is op 'n uitstekende chip, ESP8266. Hierdie artikel beskryf hoe u die Cl
Beheer Arduino met behulp van slimfoon via USB met Blynk -app: 7 stappe (met foto's)
Beheer Arduino met behulp van slimfoon via USB Met Blynk -app: In hierdie tutoriaal gaan ons leer hoe om die Blynk -app en Arduino te gebruik om die lamp te beheer, die kombinasie sal via 'n USB -seriële poort wees. Die doel van hierdie instruksie is om die eenvoudigste oplossing om u Arduino of c
Doolhofspel om met 'n slimfoon te beheer: 5 stappe (met foto's)
Doolhofspel om met 'n slimfoon te beheer: doolhofspel om met 'n slimfoon te beheer. Die doolhof beweeg volgens die helling van die slimfoon. Sien eerstens die video. Bewegingsbeeld 1. Raspberry Pi is 'n Websocket -bediener. Die slimfoon is 'n Websocket -kliënt. Die slimfoon stuur die
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek