Comme pratiquement aucune balance ne fonctionne de manière analogique, il est bien sûr possible de mesurer les poids avec une balance numérique Raspberry Pi. Celle-ci peut être utilisée dans diverses applications, car les intervalles de valeurs de poids qui peuvent être mesurés sont également presque illimités. Il suffit de disposer d’un capteur et d’une cellule de charge, qui sont disponibles pour différentes gammes de poids.
Dans ce tutoriel, nous construisons une simple balance de cuisine Raspberry Pi, dont la précision est étonnamment précise. Bien entendu, il est également possible de dévisser une balance (personnelle) existante et de la lire à l’aide d’un Raspberry Pi.
Accessoires pour la balance Raspberry Pi
La chose la plus importante pour construire votre propre balance est une » balance de charge « , qui est une barre de métal avec un trou au centre (voir photo à droite). Elle est disponible pour différentes catégories de poids (jusqu’à 1 kg, jusqu’à 5 kg, jusqu’à 50 kg, etc.). Même si certains ont une forme différente, tous sont fournis avec quatre câbles. Pour lire les valeurs, le capteur de poids HX711 est également nécessaire. Ce capteur est disponible en deux versions : rouge et vert. Les capteurs de pression présentent probablement de petites différences, mais sont – théoriquement – tous deux compatibles. J’ai utilisé le HX711 vert. Il faut aussi du matériel de fixation.
En résumé, les composants requis sont les suivants :
- Cellule de charge
- HX711 vert
- Breadboard
- Cable Jumper
- Deux planches (les planches ne doivent pas se plier facilement, donc le mieux est de ne pas avoir un contreplaqué trop fin)
- Boulons plus longs + écrous correspondants
Alternativement, vous pouvez également prendre une balance de cuisine ou de personne existante et la dévisser. Dans tous les cas, une cellule de charge est disponible et parfois aussi un capteur de pesage HX711. Avec cela, vous pouvez commencer directement. Comme les balances complètes ne coûtent qu’un peu plus cher que les capteurs de pesage, cela vaut vraiment la peine d’y réfléchir.
Si quelqu’un a vissé sa balance et que les deux sont présents, je serais heureux d’avoir un commentaire avec le nom / fabricant de la balance.
Balance Raspberry Pi – Assemblage
Avant que la cellule de charge ne soit connectée au capteur de poids HX711, elle doit être montée sur les deux plaques. Pour cela, j’ai fait des marquages au stylo à bille sur les planches de bois, là où les vis entrent en jeu. Avec une perceuse, j’ai percé les trous et inséré les vis. Entre la vis et le capteur de poids, il devrait y avoir un écrou, qui sert de protection à la planche (voir photos).
Les écrous doivent être bien serrés afin que les vis ne glissent pas de la planche.
Si la construction est terminée, nous pouvons nous rendre au HX711. Les quatre câbles de la cellule de charge doivent être connectés au capteur de poids. Le HX711 vert, cependant, a six connexions, dont nous n’avons besoin que de quatre pour les câbles. La connexion est la suivante :
- Rouge: E+
- Noir: E-
- Vert: A-
- Blanc: A+
Les bornes marquées B+/B- restent vides. Apparemment, il existe des versions du capteur. Où les bornes sont étiquetées S+/S- au lieu de A+/A-.
Il ne vous reste plus qu’à connecter le capteur au Raspberry Pi. Comme celui-ci n’a lui aussi que quatre connexions, le câblage est assez simple :
- CCV à Raspberry Pi Broche 2 (5V)
- GND à Raspberry Pi Broche 6 (GND)
- DT à Raspberry Pi Broche 29 (GPIO 5)
- SCK à Raspberry Pi Broche 31 (GPIO 6)
Schématiquement, le lien avec une Raspberry Pi 3 se présente alors comme suit :
Bien entendu, vous pouvez également modifier l’affectation des pins de DT et SCK, par exemple si vous avez un ancien modèle. Cependant, vous devez ajuster les pins correspondants alors synonymes dans le code.
Logiciel du capteur de poids Raspberry Pi
Pour mesurer le poids et lire la valeur, nous utilisons une bibliothèque Python. Bien qu’il existe des bibliothèques C ++ correspondantes, je n’ai cependant aucune bonne expérience en la matière. Tout d’abord, nous allons cloner le projet :
git clone https://github.com/tatobari/hx711py
Il contient un fichier example.py qui montre la fonction de la bibliothèque et peut également être utilisé. Mais avant cela, quelques ajustements sont nécessaires.
Tout d’abord, nous allons éditer ce fichier :
cd hx711py sudo nano example.py
Nous recherchons la ligne dans laquelle l’unité de référence est fixée et nous la commentons avec un signe hashtag, de sorte que la ligne ressemble à ce qui suit :
1 |
#hx.set_reference_unit(92) |
Sauvegardez avec CTRL+O et quittez avec CTRL+X. Cette unité de référence est le diviseur, mais nous devons d’abord le découvrir à l’étape suivante. En attendant, vous pouvez exécuter l’exemple (annuler avec CTRL+C). Les valeurs devraient apparaître dans la plage de 0 à 200, mais ce n’est pas important à ce stade.
sudo python example.py
Premier test de notre balance Raspberry Pi
Le calibrage correct du capteur de poids et de la balance Raspberry Pi est crucial. Pour cela, nous avons besoin d’un objet de comparaison dont nous connaissons le poids. Par exemple, j’ai pris deux paquets de riz (1 kg chacun), car il est recommandé de choisir une valeur moyenne du maximum (mon capteur de poids pourrait être utilisé jusqu’à 5 kg). Posez-le sur la balance et recommencez avec sudo python example.py
. Les valeurs affichées peuvent être aussi bien positives que négatives. Dans mon cas, les valeurs affichées étaient de 2 kg (= 2000 grammes), soit environ -882000. Ma valeur de référence est donc -882000 ÷ 2000 = -441
.
Nous éditons ensuite le fichier type de la même manière que ci-dessus, en supprimant le hashtag du commentaire et en entrant cette valeur en conséquence. Ma ligne se présente maintenant comme suit :
1 |
hx.set_reference_unit(-441) |
Après avoir enregistré et lancé le fichier, les poids devraient maintenant être affichés comme indiqué dans la vidéo suivante. Comme j’avais le problème que parfois les valeurs inférieures à 0 tombaient et que cela ne devrait pas être possible, j’ai étendu la ligne dans laquelle la valeur est lue. Ainsi, les poids négatifs ne sont plus affichés.
1 |
val = max(0, int(hx.get_weight(5))) |
Lors de mes tests, j’ai pris une cellule de charge de 5 kg et je l’ai calibrée avec 2 kg. Comme on peut le voir dans la vidéo, la mesure est étonnamment précise. Il est toutefois important de veiller à ce que la plaque montée ne se plie pas trop (il faut notamment fixer la plaque de sol). Cependant, vous devez savoir que les valeurs en dehors de la plage (par exemple au-dessus de 5kg) ne seront plus précises – un autre capteur de force avec son propre calibrage est nécessaire.