Comment construire sa propre machine à café intelligente
CommentSi vous aimez le café, vous aurez probablement une belle machine à expresso maison. Peut-être même un Rancilio Silvia. La Silvia est une machine élégante, simple, robuste et de grande qualité.
Cependant, l'un des inconvénients de cette machine à café est que, comme beaucoup d'autres, elle utilise des thermostats afin de contrôler la température d'infusion. L'utilisation de thermostats pour obtenir une précision et un contrôle continu de la température n'est pas très efficace.
C’est pourquoi les machines à café commerciales haut de gamme utilisent des contrôleurs PID (Proportional-Integral-Derivative).
Ce hack vous montrera comment créer une interface graphique qui incorporera un contrôle de température précis dans toute machine à café simple. Hacking-it-up en utilisant un Raspberry Pi signifie également la capacité à intégrer l'Internet des objets dans la machine.
- Essayez d'autres projets Raspberry Pi étonnants
La première étape consistera à prendre deux doubles expressos. Ensuite, il est temps de passer aux choses sérieuses. Ce hack nécessitera de bonnes compétences sous Linux, Kivy (pour l'interface graphique frontale) et Python.
Mais ne vous inquiétez pas si vous êtes débutant - ce tutoriel est un excellent moyen de développer vos compétences. Vous aurez également besoin d’un fer à souder, d’outils électroniques de base et d’un approvisionnement solide en grains de café (pour votre consommation personnelle)..
En fonction du niveau de construction souhaité, vous pouvez également fabriquer un nouveau panneau avant (bien que cela le rende un peu plus cher)..
De quoi as-tu besoin
Le matériel requis pour la construction de Silvia-Pi comprend:
- Raspberry Pi 2
- Raspberry Pi 7 pouces écran tactile
- Toute machine à café qui pourrait faire avec un meilleur contrôle de la température
- Relais à semi-conducteurs (SSR)
- 2x relais bipolaires à simple poussée (DPST)
- 2x transistors et diodes (pour les circuits de commande sur les relais DPST)
- Alimentation intégrée (entrée V AC de votre pays, sortie 5 V CC)
- thermocouple de type k
- 1x amplificateur de thermocouple (MAX31850K à 1 fil)
Pourquoi utilisez-vous un SSR? Pourquoi n'utilisez-vous pas un relais mécanique pour contrôler la chaudière? Bien…
Cela est dû au taux de commutation potentiellement élevé du contrôleur. En pratique, le taux de commutation est relativement faible et certaines machines bas de gamme utilisent des relais mécaniques. Cependant, les relais mécaniques échouent généralement en mode ouvert. Les SSR échouent généralement fermés.
C’est définitivement quelque chose à garder à l’esprit lorsque vous pensez à la sécurité de votre application. De plus, les relais mécaniques ne valent que pour un nombre de cycles spécifié. De plus, les relais mécaniques font du bruit, alors que les relais statiques sont silencieux.
Le Kudom KSI240D10-L SSR est idéal pour cette application: 10A 240V AC, 4-32V DC.
La plage de température du thermocouple de type K est généralement comprise entre -250ºC à 1250ºC, et précis à ± 1ºC. Pour le traitement du signal, le type K est facile à adapter.
Il existe de nombreuses variétés de circuits intégrés dotés d’amplificateurs, de filtrage, de compensation de soudure froide et de convertisseurs analogique-numérique, spécialement conçus pour le thermocouple de type K et à faible coût..
De ce fait, le type K est parfait pour cette application de machine à café.
L'écran tactile
Pour dépanner, déboguer et vous familiariser avec les fonctionnalités, vous devez commencer par configurer cet écran tactile de 7 pouces sur le Raspberry Pi..
Rendez-vous sur le site Web element14 et découvrez leur didacticiel sur l’affichage tactile de 7 pouces de Raspberry Pi. Une fois que tout est connecté, essayez de jouer avec la beauté du travail de Debian, du Pi et de l'écran tactile..
Une interface utilisateur graphique
La spécification de l’interface graphique sera la suivante: graphique en temps réel, bouton café pour tirer un espresso, bouton vapeur pour faire mousser le lait et bouton eau chaude..
Le graphique de tracé vous permet de voir l'efficacité du réglage de votre contrôleur PID en intégrant le tracé des points de réglage et le tracé de la température réelle de l'infusion. Il donne en outre à votre machine l'image de haute technologie et de contrôle de précision qu'elle mérite. Après tout, la norme Espresso spécifie une température de sortie de 88 ° C à 88 ° C.
Se familiariser avec Kivy
Kivy sera utilisé pour construire l'interface graphique. Pourquoi? Kivy est basé sur un système de widget d'application simple. Le système de widgets Kivy est facile à comprendre. Kivy dispose d'un bon support API et de didacticiels sur le site Web de Kivy. Kivy a également un gestionnaire de widgets de paramètres intégré qui utilise les fichiers de configuration JSON..
Cela rend la création d'applications rapide et facile. Vous pouvez modifier le widget de paramètres Kivy standard pour inclure les heures de veille et de réveil. Cela vous permet de régler le groupe pour qu'il soit agréable et chaud au moment de vous lever du lit et d'économiser de l'énergie pendant les heures creuses..
Kivy a un gestionnaire de plugins très utile appelé Kivy Garden. Kivy dispose également de fonctionnalités multi-plateformes (Linux, Android, iOS, OS X, etc.). Kivy Garden a quelques widgets de plugins que ce hack utilisera, tels que Graph. Ce hack utilise Graph pour le traceur en temps réel. Le codage avec un IDE FOSS tel que Eclipse et Secure Shelling dans le Pi via votre bureau est un moyen efficace de mettre en œuvre ce hack..
Cela signifie que vous devez configurer Kivy à la fois sur votre bureau et sur votre Raspberry Pi. Allez-y en vous connectant à votre terminal et en entrant $ pip installer kivy puis $ pip installer kivy-garden suivi par graphique d'installation de jardin
Construire votre application Kivy
Une fois Kivy installé, vous pouvez commencer à créer des applications Kivy et à vous familiariser avec les modules Kivy. Allez sur le site Web de Kivy et parcourez la bibliothèque d’API, ou suivez même les instructions ci-dessous. “première application” tutorial - une application Pong - pour vous familiariser avec le code et la présentation générale de la création d'applications Kivy.
Ici, nous allons construire une CoffeeApp, qui combinera des widgets Kivy tels que BoxLayout, Button, Label, Graph. Alors, il est temps de le suivre. Dans coffee.py:
#! / usr / bin / kivy importation kivy depuis kivy.app importation depuis application kivy.uix.boxlayout importation classe BoxLayout CoffeeApp (App): def build (auto): # Ajout du widget parent root = BoxLayout (orientation = 'horizontal') verticalBtns = BoxLayout (orientation = 'vertical', size_hint_x = 0.25) # Ajoutez des widgets enfants ici, puis ajoutez-les à la "racine" parent. return root # Exécutez le script si __name__ == '__main__': CoffeeApp (). run ()
Le code ci-dessus créera une application standard BoxLayout Kivy avec un widget parent nommé racine. Vous remarquerez aussi verticalBtns BoxLayout - vous l'utiliserez pour séparer vos boutons de votre graphique et les afficher verticalement dans le quart droit de l'application.
size_hint_x = 0.25. Vous ne pourrez pas voir cet indice de taille tant que vous n'ajouterez pas le graphique ultérieurement. L'ajout de boutons et de graphiques dans le widget est aussi simple que la création du widget.
coffeeButton = Bouton (texte = 'café')
puis en l'ajoutant au widget parent:
verticalBtns.add_widget (coffeeButton)
Dans ce cas, vous ajouterez les trois boutons (café, vapeur et eau) en répétant ce code pour chaque bouton. Vous utilisez le simple BoxLayout qui gère la position et la taille des boutons dans la racine du widget parent de l'application. Par conséquent, vous devez ajouter verticalBtns au widget racine en ajoutant les éléments suivants:
root.add_widget (verticalBtns)
Le vieux diagramme à une ligne pour la construction de Silvia Pi. Ressemble beaucoup aux hiéroglyphes de l'Egypte ancienne. Probablement parce qu'ils travaillaient sur un projet similaire.Boutons, reliures et événements
Maintenant, pour que vos trois boutons soient triés. Exécutez le code et vous voyez trois boutons disposés verticalement dans l'application. Si vous utilisez SSH ou directement sur votre Raspberry Pi, l’application s’exécutera directement sur l’écran tactile de 7 pouces..
Essayez d'appuyer sur les boutons pour voir ce qui se passe… Pas grand chose? Vous verrez les boutons passer du gris au bleu clair, mais c'est à peu près tout. Il est temps de lier ces boutons pour obtenir certaines fonctionnalités. En utilisant la méthode bind et en définissant on_press () et on_release () méthodes que vous pouvez spécifier ce qui se passe.
Commencez par ajouter des fonctionnalités au CoffeeButton dans votre code. Entre la création des boutons et l'ajout des boutons à la racine, appelez la méthode de liaison suivante en ajoutant le code suivant:
coffeeButton.bind (on_press = self.coffeePress_callback)
et
coffeeButton.bind (on_release = self.coffeeRelease_callback)
Maintenant, vous devez définir les méthodes de la classe CoffeeApp:
coffeePress_callback (self, * args)
et
coffeeRelease_callback (self, * arguments)
Faites ceci au dessus de la méthode de construction dans la classe. Ajoute-en impression déclarations là comme traceurs pour voir si quelque chose se passe sur presse et relâchez, et exécutez l'application à nouveau.
Oh non! On dirait que R2-D2 subit une opération au cerveau! Nah, pas vraiment… C'est le Pi qui se forge dans la Silvia avec les relais et les circuits de commande nécessaires.Vous allez maintenant trouver en appuyant sur le bouton café que votre impression les relevés seront envoyés au terminal. Répétez les étapes ci-dessus pour les boutons vapeur et eau..