Taula de continguts:
- Pas 1: Obtenir dades d'inclinació a Python
- Pas 2: Connexió del dispositiu al núvol
- Pas 3: enviament de dades al núvol
- Pas 4: Resultat final
Vídeo: Com controlar la temperatura i la gravetat de la fermentació de la cervesa des del telèfon intel·ligent: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
Quan la cervesa fermenta, n’haureu de controlar la gravetat i la temperatura diàriament. És fàcil oblidar-se de fer-ho i és impossible si no hi és.
Després d'alguns problemes de Google, vaig trobar diverses solucions per al control automatitzat de la gravetat (una, dues, tres). Un d’ells, amb un concepte molt intel·ligent, anomenat Tilt. La inclinació flota a la cervesa i mesura el seu propi angle d’inclinació. Aquest angle depèn de la densitat del líquid i, per tant, pot mesurar la gravetat de la cervesa que fermenta.
Tilt inclou una aplicació mòbil que es connecta a ella i pot publicar dades a qualsevol servei web. El problema és que cal estar no lluny de Tilt per poder fer-ho. També hi ha un programa Raspberry Pi que funciona amb Tilt.
Pas 1: Obtenir dades d'inclinació a Python
Ja estic fent servir Raspberry Pi per controlar la temperatura del celler i un servei de tauler de control al núvol cloud4rpi.io. Si Tilt pot parlar amb Raspberry Pi, hauria de ser possible connectar-hi cloud4rpi. Tilt utilitza un protocol sense fils, de manera que necessitareu Raspberry Pi amb un xip sense fils (Rasbperry Pi 3 o Zero W).
Per sort, hi ha un repositori de GitHub per al programari Tilt amb algunes mostres. Si veieu https://github.com/baronbrew/tilt-scan, podeu veure que Tilt es veu per a altres persones com BLE iBeacon, amb "Color" codificat en UUID, i que la temperatura i la gravetat es troben en bytes majors i menors.
El seu codi de mostra és per a Node.js i tinc un programa de control de Python basat en la plantilla cloud4rpi
Per tant, necessito obtenir dades Tilt a Python. Després d’haver buscat Google, vaig trobar https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Aquest és un programa, no una biblioteca, així que el vaig modificar per tornar un diccionari en lloc de cadena. I també vaig escriure un mòdul específic de Tilt per obtenir color, temperatura i gravetat del primer Tilt trobat (només en tinc un) i un senzill programa de prova per comprovar si pot veure el meu Tilt:
importació d'importació inclinació
mentre que és cert:
res = tilt.getFirstTilt () imprimeix res time.sleep (2)
Executeu i comproveu que funcioni. Ara el puc connectar al meu programa de control. Ja tinc un programa Python connectat a cloud4rpi.io, però permeteu-me mostrar com fer-ho des de zero.
Pas 2: Connexió del dispositiu al núvol
Primer, inicieu la sessió a cloud4rpi.io i, a continuació, creeu un dispositiu nou.
Se us proporcionarà un testimoni de dispositiu i instruccions d’instal·lació. Per a Raspberry Pi, seguiu les instruccions aquí https://docs.cloud4rpi.io/start/rpi/: assegureu-vos que el vostre sistema estigui actualitzat:
actualització sudo apt && actualització sudo apt
Instal·leu els requisits previs:
sudo apt install git python python-pip
Instal·leu els paquets python cloud4rpi:
sudo pip instal·la cloud4rpi
a continuació, obteniu una aplicació de pitó de mostra per a Raspberry Pi (a la carpeta de control):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… control
control de cd
modifica control.py: especifiqueu el testimoni del dispositiu a la línia
DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
Elimineu les entrades innecessàries de les declaracions de variables del dispositiu, deixeu només CPUTemp per provar la connexió del dispositiu:
# Posa declaracions de variables aquí variables = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Ara feu una prova:
sudo python control.py
Si tot està bé, la pàgina del dispositiu s'actualitzarà immediatament amb les dades de diagnòstic.
Pas 3: enviament de dades al núvol
Ara hem de modificar control.py per llegir i informar del color, la temperatura i la gravetat de Tilt. El resultat té aquest aspecte:
des de la importació uname de socket importació gethostname importació sys importació temps importació cloud4rpi importació rpi importació inclinació
# Posa el testimoni del dispositiu aquí. Per obtenir el testimoni, # registreu-vos a https://cloud4rpi.io i creeu un dispositiu. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constants
DATA_SENDING_INTERVAL = 60 # segons DIAG_SENDING_INTERVAL = 600 # segons POLL_INTERVAL = 0,5 # 500 ms
balisa = {}
def F2C (graus F):
retorn (graus F - 32) / 1,8
def getTemp ():
retorna F2C (int (beacon ['Temp'])) si el beacon més Cap
def getGravity ():
torna la balisa ['Gravity'] si la balisa més Cap
def main ():
# Poseu declaracions de variables aquí
variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': getTemp}}
diagnòstic = {
'CPU Temp': rpi.cpu_temp, 'Adreça IP': rpi.ip_address, 'Amfitrió': gethostname (), 'Sistema operatiu': "".join (uname ())}
device = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (variables) device.declare_diag (diagnòstic)
device.publish_config ()
# Afegeix un retard d'1 segon per garantir que es creen variables del dispositiu
time.sleep (1)
provar:
data_timer = 0 diag_timer = 0 mentre és True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
si diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
excepte KeyboardInterrupt:
cloud4rpi.log.info ("S'ha rebut una interrupció del teclat. Aturant …")
excepte Excepció com a e:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ERROR!% s% s", error, sys.exc_info () [0])
finalment:
sys.exit (0)
si _nom_ == '_principal_':
main ()
Ara executeu-lo manualment per veure si funciona:
sudo python control.py
Si tot és bo, veureu les vostres variables en línia.
Per executar control.py a l'inici del sistema, instal·leu-lo com a servei. Cloud4rpi proporciona un script d'instal·lació service_install.sh per fer-ho. L’he inclòs a la meva reposició. Per instal·lar control.py com a servei, executeu
sudo bash service_install.sh control.py
Ara podeu iniciar | aturar | reiniciar aquest servei executant l'ordre
sudo systemctl iniciar cloud4rpi.service
El servei manté el seu estat anterior encès, de manera que, si s’estava executant, s’executarà després del reinici o de la pèrdua d’alimentació.
Pas 4: Resultat final
Això és tot, ara tinc els meus paràmetres d’inclinació enviats al núvol, de manera que puc configurar un bon tauler de control del núvol. Aneu a https://cloud4rpi.io/control-panels i creeu un tauler de control nou, afegiu widget i seleccioneu / Gravity and Beer Temp com a font de dades. Ara puc controlar què passa, encara que estigui fora de casa.
El codi que vaig copiar i escriure està disponible aquí: https://github.com/superroma/tilt-cloud4rpi. És lluny de ser perfecte, només funciona amb una sola inclinació, no li importa el "color" del dispositiu, el que vulgui significar, i no sóc cap tipus de Python, així que les correccions, els suggeriments o les forquilles són benvinguts. !
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Com controlar l'interruptor intel·ligent bàsic Sonoff basat en ESP8266 amb un telèfon intel·ligent: 4 passos (amb imatges)
Com controlar el commutador intel·ligent bàsic de Sonoff basat en ESP8266 amb un telèfon intel·ligent: Sonoff és una línia de dispositius per a Smart Home desenvolupada per ITEAD. Un dels dispositius més flexibles i econòmics d’aquesta línia és Sonoff Basic. És un commutador habilitat per Wi-Fi basat en un gran xip, ESP8266. En aquest article es descriu com configurar el Cl