
Dans ce projet, on va construire une balance de pesée équipée de la carte Arduino, du module HX711 et capteur de poids pour la surveillance du poids à distance par un smartphone via bluetooth.
C’est pour cela, on va créer deux programmes: une application mobile avec App Inventor pour le smartphone et un programmes pour la carte 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.
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); } |
On va créer une application mobile nommée ‘ArduinoPoids’ avec App Inventor qui permet de recevoir le poids mesuré par la carte Arduino.
On vous propose donc de réaliser le design de l’application, avec le visuel suivant:
Pour programmer l’application, App Inventor nous propose d’utiliser L’espace Blocs qui permet de créer un programme sous forme de schéma bloc. Très simple d’utilisation mais nécessitant un peu de logique de programmation.
Voici le programme de l’application réalisée dans l’espace Blocs de l’App Inventor: