Table des matières:
- Étape 1: Obtenir des données d'inclinaison en Python
- Étape 2: connexion de l'appareil au cloud
- Étape 3: Envoi de données vers le cloud
- Étape 4: Résultat final
Vidéo: Comment contrôler la température et la gravité de la fermentation de la bière depuis votre smartphone : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Lorsque la bière fermente, vous devez surveiller sa gravité et sa température quotidiennement. Il est facile d'oublier de le faire, et impossible si vous êtes absent.
Après quelques recherches sur Google, j'ai trouvé plusieurs solutions pour la surveillance automatisée de la gravité (une, deux, trois). L'un d'eux, au concept très astucieux, s'appelle Tilt. L'inclinaison flotte dans votre bière et mesure son propre angle d'inclinaison. Cet angle dépend de la densité du liquide et peut donc mesurer la gravité de la bière en fermentation.
Tilt est livré avec une application mobile, qui s'y connecte et peut publier des données sur n'importe quel service Web. Le problème est que vous devez être non loin de Tilt pour pouvoir le faire. Il existe également un programme Raspberry Pi qui fonctionne avec Tilt.
Étape 1: Obtenir des données d'inclinaison en Python
J'utilise déjà Raspberry Pi pour surveiller la température de la cave et un service de panneau de contrôle cloud cloud4rpi.io. Si Tilt peut parler à Raspberry Pi, il devrait être possible de lui connecter cloud4rpi. Tilt utilise un protocole sans fil, vous aurez donc besoin de Raspberry Pi avec une puce sans fil (Rasbperry Pi 3 ou Zero W).
Heureusement, il existe un dépôt GitHub pour le logiciel Tilt avec quelques exemples. En regardant https://github.com/baronbrew/tilt-scan, vous pouvez voir que Tilt regarde les autres comme BLE iBeacon, avec « Couleur » codée en UUID, et la température et la gravité sont en octets majeurs et mineurs.
Leur exemple de code est pour Node.js, et j'ai un programme de contrôle Python basé sur le modèle cloud4rpi
J'ai donc besoin d'obtenir des données Tilt en Python. Après quelques recherches sur Google, j'ai trouvé https://github.com/switchdoclabs/iBeacon-Scanner- - Python iBeacon scanner. Ceci est un programme, pas une bibliothèque, je l'ai donc modifié pour renvoyer un dictionnaire au lieu d'une chaîne. Et j'ai également écrit un module spécifique à Tilt pour obtenir la couleur, la température et la gravité du premier Tilt trouvé (je n'en ai qu'un), et un programme de test simple pour vérifier s'il peut voir mon Tilt:
heure d'importation inclinaison d'importation
tant que vrai:
res = tilt.getFirstTilt() print res time.sleep(2)
Exécutez et vérifiez que cela fonctionne. Maintenant, je peux le brancher à mon programme de contrôle. J'ai déjà un programme python connecté à cloud4rpi.io, mais laissez-moi vous montrer comment le faire à partir de zéro.
Étape 2: connexion de l'appareil au cloud
Tout d'abord, connectez-vous à cloud4rpi.io, puis créez un nouvel appareil.
Vous recevrez un jeton d'appareil et des instructions d'installation. Pour Raspberry Pi, suivez les instructions ici https://docs.cloud4rpi.io/start/rpi/ - assurez-vous que votre système est à jour:
mise à jour sudo apt && mise à jour sudo apt
Installer les prérequis:
sudo apt installer git python python-pip
Installez les packages python cloud4rpi:
sudo pip installer cloud4rpi
puis obtenez un exemple d'application python pour Raspberry Pi (dans le dossier de contrôle):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… contrôle
contrôle des cd
modifier control.py - spécifiez votre jeton d'appareil dans la ligne
DEVICE_TOKEN = '_VOTRE_APPAREIL_TOKEN_'
Supprimez les entrées inutiles des déclarations de variables d'appareil, laissez uniquement CPUTemp pour tester la connexion de l'appareil:
# Mettez les déclarations de variables ici variables = { 'CPU Temp': { 'type': 'numeric', 'bind': rpi.cpu_temp } }
Faites maintenant un test:
sudo python control.py
Si tout va bien, la page de votre appareil sera immédiatement mise à jour avec les données de diagnostic.
Étape 3: Envoi de données vers le cloud
Nous devons maintenant modifier control.py pour lire et signaler la couleur, la température et la gravité de Tilt. Le résultat ressemble à ceci:
à partir de l'os importer unamefrom socket importer gethostname importer sys import time importer cloud4rpi importer rpi importer tilt
# Mettez votre jeton d'appareil ici. Pour obtenir le jeton, # inscrivez-vous sur https://cloud4rpi.io et créez un appareil. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Constantes
DATA_SENDING_INTERVAL = 60 # sec DIAG_SENDING_INTERVAL = 600 # sec POLL_INTERVAL = 0.5 # 500 ms
balise = {}
def F2C(degrésF):
retour (degrésF - 32) / 1,8
def getTemp():
return F2C(int(beacon['Temp'])) si beacon else None
def getGravity():
return beacon['Gravity'] si beacon else Aucun
def principal():
# Mettez les déclarations de variables ici
variables = { 'Gravity': { 'type': 'numeric', 'bind': getGravity }, 'Beer Temp': { 'type': 'numeric', 'bind': getTemp } }
diagnostic = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname(), 'Operating System': " ".join(uname()) }
appareil = cloud4rpi.connect(DEVICE_TOKEN)
device.declare(variables) device.declare_diag(diagnostics)
appareil.publish_config()
# Ajoute un délai de 1 seconde pour s'assurer que les variables de l'appareil sont créées
heure.sommeil(1)
essayer:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: balise globale beacon = tilt.getFirstTilt() device.publish_data() data_timer = DATA_SENDING_INTERVAL
si diag_timer <= 0: device.publish_diag() diag_timer = DIAG_SENDING_INTERVAL
heure.sommeil(POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
sauf KeyboardInterrupt:
cloud4rpi.log.info('Interruption clavier reçue. Arrêt…')
sauf exception comme e:
error = cloud4rpi.get_error_message(e) cloud4rpi.log.error("ERREUR! %s %s", erreur, sys.exc_info()[0])
finalement:
sys.exit(0)
if _name_ == '_main_':
principale()
Maintenant, lancez-le manuellement pour voir si cela fonctionne:
sudo python control.py
Si tout va bien, vous verrez vos variables en ligne.
Pour exécuter control.py au démarrage du système, installez-le en tant que service. Cloud4rpi fournit un script d'installation service_install.sh pour le faire. Je l'ai inclus dans mon repo. Pour installer control.py en tant que service, exécutez
sudo bash service_install.sh control.py
Vous pouvez maintenant démarrer|arrêter|redémarrer ce service en exécutant la commande
sudo systemctl démarrer cloud4rpi.service
Le service conserve son état précédent à la mise sous tension, donc s'il était en cours d'exécution, il le sera après un redémarrage ou une panne de courant.
Étape 4: Résultat final
Ça y est, maintenant mes paramètres d'inclinaison sont envoyés au cloud, je peux donc configurer un joli panneau de contrôle du cloud pour cela. Accédez à https://cloud4rpi.io/control-panels et créez un nouveau panneau de configuration, ajoutez un widget et sélectionnez /Gravity and Beer Temp comme source de données. Maintenant, je peux surveiller ce qui se passe même si je suis loin de chez moi.
Le code que j'ai copié et écrit est disponible ici: https://github.com/superroma/tilt-cloud4rpi. C'est loin d'être parfait, ça ne fonctionne qu'avec un seul Tilt, ça ne se soucie pas de la "Couleur" de l'appareil, quoi que cela signifie, et je ne suis pas du tout un gars Python, donc les correctifs, suggestions ou fourchettes sont les bienvenus !
Conseillé:
Comment contrôler un servomoteur depuis un PC avec une interface graphique : 5 étapes
Comment contrôler un servomoteur à partir d'un PC avec une interface graphique : अपनी Servomoteur को pc से Interface utilisateur graphique (GUI) के via le contrôle सकते है इस instructable lire करें जिसके द्वारा आप अपने pc से s
Comment contrôler le commutateur intelligent de base Sonoff basé sur ESP8266 avec un smartphone : 4 étapes (avec photos)
Comment contrôler le commutateur intelligent de base Sonoff basé sur ESP8266 avec un smartphone : Sonoff est une gamme d'appareils pour Smart Home développée par ITEAD. L'un des appareils les plus flexibles et les moins chers de cette gamme est le Sonoff Basic. Il s'agit d'un commutateur compatible Wi-Fi basé sur une excellente puce, ESP8266. Cet article décrit comment configurer le Cl
Comment publier des photos sur Instagram depuis votre ordinateur à l'aide de Google Chrome : 9 étapes
Comment publier des photos sur Instagram depuis votre ordinateur à l'aide de Google Chrome : Instagram est actuellement l'une des principales plateformes de médias sociaux. Les personnes utilisant cette plate-forme peuvent partager des photos et de courtes vidéos qui peuvent être téléchargées à l'aide de l'application mobile Instagram. L'un des principaux défis auxquels les utilisateurs d'Instagram sont confrontés est le r
Contrôlez les appareils ménagers depuis votre smartphone avec l'application Blynk et Raspberry Pi : 5 étapes (avec photos)
Contrôlez les appareils ménagers depuis votre smartphone avec l'application Blynk et Raspberry Pi : Dans ce projet, nous allons apprendre à utiliser l'application Blynk et Raspberry Pi 3 afin de contrôler les appareils ménagers (cafetière, lampe, rideau de fenêtre et plus encore… ). Composants matériels : Raspberry Pi 3 Relay Lamp Breadboard Wires Applications logicielles : Blynk A
Comment rediffuser le WIFI en tant que votre propre réseau, DEPUIS VOTRE ORDINATEUR PORTABLE ! : 4 étapes
Comment rediffuser le WIFI en tant que votre propre réseau, DE VOTRE ORDINATEUR PORTABLE ! : Dans ce instructable, je vais vous montrer comment rediffuser le WIFI depuis votre ordinateur portable en tant que votre propre réseau protégé par mot de passe. Vous aurez besoin d'un ordinateur portable exécutant Windows 7, car le logiciel nécessite certaines des avancées de Windows 7 et utilisez un ordinateur portable plus récent b