Le capteur de poids HX711 est un module électronique principalement utilisé pour mesurer des forces ou des poids en combinaison avec des cellules de charge (ou capteurs de pesage). Très prisé dans les projets d'électronique et de prototypage, notamment avec les microcontrôleurs comme l'Arduino ou l'ESP32, il est souvent employé pour créer des balances électroniques de précision.
1- Amplificateur de signal : Le HX711 intègre un amplificateur à haute précision et faible bruit, conçu pour amplifier les signaux de faibles amplitudes provenant des cellules de charge.
2- Convertisseur analogique-numérique (ADC) : Il convertit les signaux analogiques en valeurs numériques. L'ADC du HX711 est un convertisseur 24 bits, ce qui permet d'obtenir une résolution élevée dans les mesures.
3- Connectivité facile : Il se connecte facilement aux microcontrôleurs via une interface numérique simple à deux fils (DT et SCK), facilitant la communication pour lire les données de poids.
4- Faible consommation d'énergie : Le HX711 est conçu pour consommer peu d'énergie, ce qui le rend approprié pour les dispositifs alimentés par batterie.
1- Connexion aux cellules de charge : Le capteur HX711 est conçu pour fonctionner avec des cellules de charge de type pont de Wheatstone (habituellement de 4 fils). Ce pont divise la charge en une résistance variable, convertissant ainsi la force appliquée en une différence de tension très faible.
2- Amplification et conversion : Le signal de faible amplitude est amplifié (jusqu’à 128 fois selon la configuration) puis converti en données numériques par le HX711.
3- Lecture via un microcontrôleur : Les microcontrôleurs lisent les données via une interface séquentielle simple en interprétant les impulsions générées par les broches DT (Data) et SCK (Clock).
Précision élevée : Grâce à son convertisseur 24 bits, le HX711 peut détecter des variations de poids infimes.
Faible coût : Il est très abordable pour sa précision et ses performances, ce qui en fait un choix populaire pour les balances électroniques de cuisine, les pèse-personnes, et d'autres applications de mesure de poids.
Applications diverses : Il est souvent utilisé dans les projets de robotique, d’agriculture (pour peser les aliments ou les récoltes), les systèmes industriels de pesage, et les applications de santé (balances médicales).
Le HX711 reste donc un choix fiable pour des projets nécessitant une mesure de poids précise et économique.
Pour envoyer le poids mesuré par un capteur HX711 au smartphone, vous pouvez utiliser une combinaison d'Arduino UNO et de module HC-06 (Bluetooth) pour transmettre les données sans fil.
Arduino UNO :
La carte Arduino UNO est la carte de développement principale utilisée pour recevoir le poids mesurés par le capteur HX711 et l'envoyer au Smartphone via Bluetooth.
Capteur de poids (cellule de charge)
Un capteur de poids est un dispositif utilisé pour mesurer la force de gravité exercée sur un objet.
Module HX711
Ce module est utilisé pour l'amplification et la conversion du signal de la cellule de charge
Module HC-06
Le module HC-06 est un module Bluetooth largement utilisé pour permettre la communication sans fil entre différents dispositifs électroniques, tels que des microcontrôleurs comme l'Arduino, des ordinateurs, des smartphones et d'autres appareils compatibles Bluetooth.
Breadboard (Plaque d'essai) :
Une breadboard est utile pour créer un circuit temporaire et connecter facilement les composants entre eux.
Fils de connexion :
Des fils de connexion sont nécessaires pour relier les différents composants ensemble, tels que la connexion entre la carte Arduino, le module Bluetooth HC-06 et le module HX711.
1- Connexion du HX711 à l’Arduino :
VCC du HX711 → 3.3V de l’Arduino
GND du HX711 → GND de l’Arduino
DT du HX711 → Pin 2 de l’Arduino (données)
SCK du HX711 → Pin 3 de l’Arduino (horloge)
2- Connexion du HC-06 à l’Arduino :
VCC du HC-06 → 5V de l’Arduino
GND du HC-06 → GND de l’Arduino
TX du HC-06 → Pin 4 de l’Arduino
RX du HC-06 → Pin 5 de l’Arduino
Voici le programme nécessaires pour connecter la carte Arduino au smartphone et envoyer la valeur du poids mesuré par le module HX711 au smartphone.
Utilisez l'IDE Arduino pour:
1- importer la bibliothèque HX711 dédiée à l'écran SSD1306
2- écrire le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include <SoftwareSerial.h> #include "HX711.h" #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 HX711 scale; SoftwareSerial hc06(4,5); float calibration_factor = 235; //-7050 cette variable à régler selon le capteur de poids void setup() { hc06.begin(9600); Serial.begin(9600); Serial.println("HX711 calibration sketch"); Serial.println("Remove all weight from scale"); Serial.println("After readings begin, place known weight on scale"); Serial.println("Press + or a to increase calibration factor"); Serial.println("Press - or z to decrease calibration factor"); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale(); scale.tare(); //Reset the scale to 0 long zero_factor = scale.read_average(); //Get a baseline reading Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. Serial.println(zero_factor); } void loop() { scale.set_scale(calibration_factor); //Adjust to this calibration factor Serial.print("Reading: "); Serial.print(scale.get_units(), 1); hc06.print(scale.get_units(),1); // Envoi de la valeur du poids vers le smartphone Serial.print(" lbs"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); if(Serial.available()) { char temp = Serial.read(); if(temp == '+' || temp == 'a') calibration_factor += 10; else if(temp == '-' || temp == 'z') calibration_factor -= 10; } delay(1000); } |
HX711.h : Cette bibliothèque est utilisée pour contrôler le module HX711 et simplifier la lecture des données de la cellule de charge.
scale.set_scale() : Ajuste l’échelle pour obtenir la mesure en grammes (nécessite une calibration initiale).
Serial.print() : Envoie les données au port série (transmises au smartphone par le HC-06).
MIT App Inventor est une plateforme de développement visuel qui permet aux utilisateurs de créer des applications Android sans nécessiter une connaissance approfondie en programmation. Cette plateforme a été initialement développée par Google et est actuellement maintenue par le Massachusetts Institute of Technology (MIT). Elle vise à rendre le processus de développement d'applications mobiles accessible aux personnes sans expérience préalable en programmation.
Dans cette partie on va montrer comment créer une application capable de recevoir des données Bluetooth .
a- Dans la partie Design de l'App Inventor :
- Créez une nouvelle application dans MIT App Inventor.
- Ajoutez un composant "BluetoothClient" à l'écran. Dans les propriétés du composant, spécifiez l'adresse Bluetooth de votre module (peut être trouvée via les paramètres Bluetooth de votre smartphone).
- L'extension "BluetoothClient1" dans MIT App Inventor vous permet de créer des applications mobiles qui peuvent se connecter à des dispositifs Bluetooth, comme des modules Bluetooth série (par exemple, HC-06) connectés à des microcontrôleurs, des appareils Bluetooth audio, etc. Cette extension facilite la communication avec ces dispositifs en utilisant des connexions Bluetooth série.
- Ajoutez un bouton pour connecter le Smartphone au module HC-06
- Ajoutez un bouton pour déconnecter le Smartphone au module HC-06
- Ajoutez un label pour afficher le message reçu de la carte Arduino UNO
- Voici l'interface de l'application mobile :
b- Dans la partie bloc (programme) de l'App Inventor :
11- À partir d'Android 12, les autorisations Bluetooth ont été renforcées pour améliorer la sécurité et la protection des données des utilisateurs. C'est pour cela on doit déclarer les autorisations dont votre application a besoin dans le fichier AndroidManifest.xml. Pour Bluetooth, vous devrez inclure les autorisations ACCESS_FINE_LOCATION, BLUETOOTH_SCAN, et éventuellement BLUETOOTH_CONNECT, en fonction des fonctionnalités que vous utilisez.
1- Dans les blocs de l'application, Utilisez ces blocs de programmation pour connecter le Smartphone au module HC-06 :
2- Utilisez ces blocs de programmation pour déconnecter le Smartphone au module HC-06 :
3- Utilisez ces blocs de programmation pour recevoir et afficher un message qui contient la valeur du poids de la carte Arduino via Bluetooth
Télécharger le projet aiaTélécharger le fichier apk
Test :
1- Téléchargez l'application mobile sous forme d'un fichier apk sur votre smartphone.
2- Associez le smartphone au module HC-06.
3- Ouvrez l’application et connectez-vous au HC-06.
4- Les données de poids apparaîtront en temps réel sur l'application.
Ainsi, en suivant ces étapes, le poids mesuré par le HX711 est envoyé à votre smartphone à travers l’Arduino UNO et le module Bluetooth HC-06.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info