Un objectif de mesure d'eau consiste à surveiller et contrôler la quantité d'eau utilisée, consommée ou disponible dans un contexte spécifique (comme l'agriculture, l'industrie, ou les ménages) dans le but de mieux gérer cette ressource. Voici quelques objectifs principaux pour mesurer l'eau :
Suivi de la consommation : Connaître la quantité d'eau consommée pour mieux gérer les ressources et réduire les gaspillages.
Gestion de l'irrigation : En agriculture, mesurer l'eau permet d'ajuster l'irrigation en fonction des besoins réels des cultures, ce qui peut améliorer les rendements tout en économisant l'eau.
Prévention des pénuries : Surveiller les réserves d'eau, comme celles des barrages ou des nappes phréatiques, pour anticiper les périodes de sécheresse et mieux les gérer.
Surveillance de la qualité : Dans certaines applications, il est aussi utile de mesurer des paramètres de qualité (comme la présence de contaminants) pour s'assurer que l'eau est potable ou adaptée à son usage prévu.
Optimisation des coûts : En contrôlant l'utilisation de l'eau, il est possible de réduire les coûts associés à l'approvisionnement et au traitement de l'eau.
Ces objectifs de mesure sont souvent réalisés grâce à des compteurs, des capteurs, ou des systèmes connectés, qui transmettent les données en temps réel pour permettre une gestion réactive et efficiente.
Pour mesurer le niveau d'eau avec une carte Arduino, des fils de connexion, une bouteille et un afficheur LCD, vous pouvez créer un système simple basé sur la conductivité de l’eau.
En utilisant deux ou plusieurs fils plongés dans l'eau à différents niveaux, on peut détecter si l'eau atteint un certain niveau par la conductivité de l'eau. L’Arduino peut lire les changements de voltage à travers ces fils et en déduire le niveau d'eau.
Quand l'eau atteint un certain niveau dans la bouteille, elle complète le circuit entre deux fils placés à cette hauteur. Cela permet à l'Arduino de détecter le niveau et de l'afficher en temps réel sur l’écran LCD.
Carte Arduino UNO
La carte Arduino est le microcontrôleur qui gère l'ensemble du système. Elle recueille les informations des capteurs de niveau d'eau, traite les données et les affiche sur l’écran LCD.
Fils de connexion
Les fils de connexion servent de capteurs faits maison. En les plaçant à différentes hauteurs dans la bouteille, ils peuvent détecter la présence d'eau grâce à la conductivité de celle-ci.
Bouteille
Une bouteille ou un autre récipient transparent qui contiendra l'eau et servira de "réservoir" pour le projet. Idéalement, la bouteille doit être en plastique ou en verre et permettre de voir facilement les niveaux d’eau.
Écran LCD
On va utiliser écran LCD 16x2 pour afficher le niveau d’eau
Résistances
Des résistances sont nécessaires pour stabiliser les lectures des capteurs de niveau d'eau et éviter les faux contacts.
Une plaque de prototypage permet d’organiser les connexions et de tester le montage sans avoir besoin de soudures.
Batterie 9V:
Elle est une source d’alimentation pour l'afficheur LCD I2C 16x2.
Connexion des capteurs à l’Arduino :
On connecte :
le plus bas fil de connexion à la broche 5V de l’Arduino
le 2ème fil de connexion à la broche A0 de l’Arduino
le 3ème fil de connexion à la broche A1 de l’Arduino
le 4ème fil de connexion à la broche A2 de l’Arduino
le 5ème fil de connexion à la broche A3 de l’Arduino
Connexion de l’afficheur LCD :
Pour l’afficheur I2C LCD 1602 on connecte:
la broche SDA à la broche A4 de l’Arduino
la broche SCL à la broche A5 de l’Arduino
la broche GND à la broche GND de l’Arduino
la broche VCC à la broche 5V de l’Arduino
Voici un exemple de code pour lire les niveaux et afficher les résultats sur l’écran LCD :
Il faut télécharger ces deux bibliothèques : LiquidCrystal_I2C et LcdBarGraph-2.0.1.zip
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#include <LiquidCrystal_I2C.h> #include <LcdBarGraphRobojax.h> LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display LcdBarGraphRobojax lbg(&lcd, 16, 0, 0); int analogA0 = A0; int analogA1 = A1; int analogA2 = A2; int analogA3 = A3; int level_1,level_2,level_3,level_4; //analog readings int niveau=30; int send_0; int send_1; int send_2; int send_3; int send_4; void setup() { lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); send_0=0; send_1=0; send_2=0; send_3=0; send_4=0; Serial.begin(9600); pinMode(analogA0,INPUT); pinMode(analogA1,INPUT); pinMode(analogA2,INPUT); pinMode(analogA3,INPUT); } void loop() { // Read the analog interface level_1 = analogRead(analogA0); level_2 = analogRead(analogA1); level_3 = analogRead(analogA2); level_4 = analogRead(analogA3); Serial.print("niveau 1 "); Serial.println(level_1); Serial.print("niveau 2 "); Serial.println(level_2); Serial.print("niveau 3 "); Serial.println(level_3); Serial.print("niveau 4 "); Serial.println(level_4); if ((level_1<niveau)&&(level_2<niveau)&&(level_3<niveau)&&(level_4<niveau)&&(send_0==0)){// Niveau 0 de l'eau lbg.clearLine(1);// clear line 1 to display fresh voltage value lbg.drawValue( 0, 1024); // Afficher niveau 0 sur l'afficheur LCD send_0=1;send_1=0;send_2=0;send_3=0;send_4=0; } if ((level_1>niveau)&&(level_2<niveau)&&(level_3<niveau)&&(level_4<niveau)&&(send_1==0)){ // Niveau 1 de l'eau lbg.clearLine(1);// clear line 1 lbg.drawValue( 256, 1024);// Afficher niveau 1 sur l'afficheur LCD send_0=0;send_1=1;send_2=0;send_3=0;send_4=0; } if ((level_1>niveau)&&(level_2>niveau)&&(level_3<niveau)&&(level_4<niveau)&&(send_2==0)){ // Niveau 2 de l'eau lbg.clearLine(1);// clear line 1 lbg.drawValue( 512, 1024);// Afficher niveau 2 sur l'afficheur LCD send_0=0;send_1=0;send_2=1;send_3=0;send_4=0; } if ((level_1>niveau)&&(level_2>niveau)&&(level_3>niveau)&&(level_4<niveau)&&(send_3==0)){ // Niveau 3 de l'eau lbg.clearLine(1);// clear line 1 lbg.drawValue( 768, 1024);// Afficher niveau 3 sur l'afficheur LCD send_0=0;send_1=0;send_2=0;send_3=1;send_4=0; } if ((level_1>niveau)&&(level_2>niveau)&&(level_3>niveau)&&(level_4>niveau)&&(send_4==0)){ // Niveau 4 de l'eau lbg.clearLine(1);// clear line 1 lbg.drawValue( 1024, 1024);// Afficher niveau 4 sur l'afficheur LCD send_0=0;send_1=0;send_2=0;send_3=0;send_4=1; } lcd.setCursor(2,1); lcd.print("Niveau d'eau"); delay(100); } |
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