Inhoudsopgave:
- Stap 1: Tilt-gegevens ophalen in Python
- Stap 2: Apparaat verbinden met de cloud
- Stap 3: Gegevens naar de cloud verzenden
- Stap 4: Eindresultaat
Video: Hoe u de temperatuur en zwaartekracht van biergisting vanaf uw smartphone kunt regelen: 4 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Wanneer bier aan het gisten is, moet u de zwaartekracht en temperatuur dagelijks controleren. Het is gemakkelijk om dit te vergeten, en onmogelijk als u weg bent.
Na wat googlen vond ik verschillende oplossingen voor geautomatiseerde zwaartekrachtmonitoring (een, twee, drie). Een van hen, met een heel slim concept, heet Tilt. Tilt drijft in je bier en meet zijn eigen tilthoek. Deze hoek is afhankelijk van de dichtheid van de vloeistof en kan daarom de zwaartekracht van het gistende bier meten.
Tilt wordt geleverd met een mobiele app die er verbinding mee maakt en gegevens op elke webservice kan posten. Het probleem is dat je niet ver van Tilt moet zijn om dit te kunnen doen. Er is ook een Raspberry Pi-programma dat werkt met Tilt.
Stap 1: Tilt-gegevens ophalen in Python
Ik gebruik al Raspberry Pi om de keldertemperatuur te bewaken en een cloud-bedieningspaneelservice cloud4rpi.io. Als Tilt met Raspberry Pi kan praten, zou het mogelijk moeten zijn om cloud4rpi ermee aan te sluiten. Tilt gebruikt een draadloos protocol, dus je hebt een Raspberry Pi met een draadloze chip nodig (Rasbperry Pi 3 of Zero W).
Gelukkig is er een GitHub-repo voor Tilt-software met enkele voorbeelden. Als je naar https://github.com/baronbrew/tilt-scan kijkt, kun je zien dat Tilt er voor anderen uitziet als BLE iBeacon, met "Color" gecodeerd in UUID, en temperatuur en zwaartekracht zijn in grote en kleine bytes.
Hun voorbeeldcode is voor Node.js en ik heb een Python-besturingsprogramma op basis van cloud4rpi-sjabloon
Dus ik moet Tilt-gegevens in Python krijgen. Na wat googlen vond ik https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon-scanner. Dit is een programma, geen bibliotheek, dus ik heb het aangepast om een woordenboek terug te geven in plaats van een string. En ik heb ook een Tilt-specifieke module geschreven om kleur, temperatuur en zwaartekracht van de eerste gevonden Tilt te krijgen (ik heb er maar één), en een eenvoudig testprogramma om te controleren of het mijn Tilt kan zien:
import tijdimport tilt
terwijl waar:
res = tilt.getFirstTilt() print res time.sleep(2)
Uitvoeren en controleren of het werkt. Nu kan ik hem aansluiten op mijn besturingsprogramma. Ik heb al een python-programma aangesloten op cloud4rpi.io, maar laat me je laten zien hoe je dit vanaf het begin kunt doen.
Stap 2: Apparaat verbinden met de cloud
Meld u eerst aan bij cloud4rpi.io en maak vervolgens een nieuw apparaat.
U krijgt een apparaattoken en installatie-instructies. Volg de instructies voor Raspberry Pi hier https://docs.cloud4rpi.io/start/rpi/ - zorg ervoor dat uw systeem up-to-date is:
sudo apt update && sudo apt upgrade
Installatievereisten:
sudo apt install git python python-pip
Installeer cloud4rpi python-pakketten:
sudo pip installeer cloud4rpi
haal dan een voorbeeld python-app voor Raspberry Pi (in de controlemap):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… controle
cd-bediening
wijzig control.py - specificeer uw apparaattoken in de regel
DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
Verwijder onnodige vermeldingen uit declaraties van apparaatvariabelen, laat alleen CPUTemp over om de apparaatverbinding te testen:
# Zet hier variabele declaraties variabelen = { 'CPU Temp': { 'type': 'numeric', 'bind': rpi.cpu_temp } }
Doe nu een testrun:
sudo python control.py
Als alles in orde is, wordt uw apparaatpagina onmiddellijk bijgewerkt met diagnostische gegevens.
Stap 3: Gegevens naar de cloud verzenden
Nu moeten we control.py aanpassen om de kleur, temperatuur en zwaartekracht van Tilt te lezen en te rapporteren. Resultaat ziet er als volgt uit:
van os import unamefrom socket import gethostnaam import sys import tijd import cloud4rpi import rpi import tilt
# Plaats hier uw apparaattoken. Om het teken te krijgen, # meld je aan op https://cloud4rpi.io en maak een apparaat aan. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constanten
DATA_SENDING_INTERVAL = 60 # sec DIAG_SENDING_INTERVAL = 600 # sec POLL_INTERVAL = 0,5 # 500 ms
baken = {}
def F2C(gradenF):
retour (gradenF - 32) / 1.8
def getTemp():
return F2C(int(baken['Temp'])) als baken anders Geen
def getGravity():
return baken['Gravity'] als baken anders Geen
def hoofd():
# Zet hier variabele declaraties
variabelen = { 'Gravity': { 'type': 'numeric', 'bind': getGravity }, 'Beer Temp': { 'type': 'numeric', 'bind': getTemp } }
diagnose = {
'CPU Temp': rpi.cpu_temp, 'IP-adres': rpi.ip_address, 'Host': gethostname(), 'Besturingssysteem': " ".join(uname()) }
apparaat = cloud4rpi.connect(DEVICE_TOKEN)
device.declare(variabelen) device.declare_diag(diagnose)
apparaat.publish_config()
# Voegt een vertraging van 1 seconde toe om ervoor te zorgen dat er apparaatvariabelen worden gemaakt
tijd.slaap(1)
proberen:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: globaal baken baken = tilt.getFirstTilt() device.publish_data() data_timer = DATA_SENDING_INTERVAL
if diag_timer <= 0: device.publish_diag() diag_timer = DIAG_SENDING_INTERVAL
tijd.slaap(POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
behalve KeyboardInterrupt:
cloud4rpi.log.info('Toetsenbordonderbreking ontvangen. Stoppen…')
uitzondering Uitzondering als e:
error = cloud4rpi.get_error_message(e) cloud4rpi.log.error("FOUT! %s %s", error, sys.exc_info()[0])
Tenslotte:
sys.exit(0)
if _name_ == '_main_':
hoofd()
Voer het nu handmatig uit om te zien of het werkt:
sudo python control.py
Als alles goed is, zie je je variabelen online.
Om control.py uit te voeren bij het opstarten van het systeem, installeert u het als een service. Cloud4rpi biedt hiervoor een installatiescript service_install.sh. Ik heb het in mijn repo opgenomen. Om control.py als een service te installeren, voert u
sudo bash service_install.sh control.py
Nu kunt u deze service starten|stoppen|herstarten door het commando uit te voeren
sudo systemctl start cloud4rpi.service
Service behoudt zijn vorige status bij het opstarten, dus als het actief was, zal het worden uitgevoerd na opnieuw opstarten of stroomuitval.
Stap 4: Eindresultaat
Dit is het, nu heb ik mijn Tilt-parameters naar de cloud gestuurd, dus ik kan er een mooi cloud-bedieningspaneel voor opzetten. Ga naar https://cloud4rpi.io/control-panels en maak een nieuw configuratiescherm, voeg widget toe en selecteer /Gravity en Beer Temp als gegevensbron. Nu kan ik in de gaten houden wat er gebeurt, zelfs als ik niet thuis ben.
De code die ik heb gekopieerd en geschreven is hier beschikbaar: https://github.com/superroma/tilt-cloud4rpi. Het is verre van perfect, het werkt alleen met een enkele Tilt, het geeft niet om de "Kleur" van het apparaat, wat het ook betekent, en ik ben helemaal geen Python-man, dus oplossingen, suggesties of vorken zijn welkom !
Aanbevolen:
Hoe u uw eigen nachtzichtapparaat kunt maken! 5 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe maak je je eigen nachtkijker! In dit project laat ik je zien hoe je een nachtkijker maakt. Het bestaat voornamelijk uit een beveiligingscamera, een klein scherm en een aangepaste PCB met IR-LED's en een LED-driver. Nadat je het apparaat hebt gevoed met een USB Type-C PD powerbank, kun je
Temperatuur bewaken en opnemen met Bluetooth LE en RaspberryPi 9 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Monitor en registreer temperatuur met Bluetooth LE en RaspberryPi: deze instructie gaat over het samenstellen van een multi-node temperatuurbewakingssysteem met Bluetooth LE-sensorbug van Blue Radios (BLEHome) en RaspberryPi 3B Dankzij de ontwikkeling van de Bluetooth LE-standaard is er nu direct beschikbaar
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Hoe u gemakkelijk zelf een powerbank kunt maken 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe u gemakkelijk zelf een powerbank kunt maken: in deze instructables laat ik u zien hoe u uw eigen powerbank kunt maken met behulp van gemakkelijk verkrijgbare en goedkope componenten. Deze reservebatterij bevat 18650 li-ionbatterij van oude laptop of u kunt nieuwe kopen. Later heb ik een houten kozijn gemaakt met
Hoe u uw natte mobiele telefoon kunt opslaan! 6 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe u uw natte mobiele telefoon kunt redden !: Allereerst, Hallo en bedankt voor het bekijken van mijn instructable. De meesten van ons hebben ervaren dat we vloeistof over onze te dure gevoelige mobiele telefoons of gadgets hebben laten vallen of morsen en zijn ze voor altijd kwijtgeraakt. De meeste mensen proberen hun gadgets op de verkeerde manier op te slaan. ex wij