- Composants
- Module de capteur à ultrasons
- Fonctionnement du contrôleur de niveau d'eau automatique
- Schéma de circuit et explication
- La programmation
Dans ce projet d'indicateur et de contrôleur de niveau d'eau automatique basé sur Arduino, nous allons mesurer le niveau d'eau à l'aide de capteurs à ultrasons. Le principe de base de la mesure de distance par ultrasons est basé sur ECHO. Lorsque les ondes sonores sont transmises dans l'environnement, elles reviennent à l'origine comme ECHO après avoir heurté un obstacle. Il suffit donc de calculer son temps de parcours des deux sons signifie le temps de sortie et le temps de retour à l'origine après avoir heurté un obstacle. Et après quelques calculs, nous pouvons obtenir un résultat qui est la distance. Ce concept est utilisé dans notre projet de contrôleur d'eau où la pompe à moteur à eau est automatiquement mise en marche lorsque le niveau d'eau dans le réservoir devient bas. Vous pouvez également vérifier ce circuit d'indicateur de niveau d'eau simple pour une version plus simple de ce projet.
Composants
- Arduino Uno
- Module de capteur à ultrasons
- Écran LCD 16x2
- Relais 6 volts
- ULN2003
- 7806
- PVT
- Fil de cuivre
- Batterie 9 volts ou adaptateur 12 volts
- Fils de connexion
Module de capteur à ultrasons
Le capteur à ultrasons HC-SR04 est utilisé pour mesurer une distance comprise entre 2 cm et 400 cm avec une précision de 3 mm. Le module de capteur se compose d'un émetteur à ultrasons, d'un récepteur et du circuit de commande.
Le module de capteur à ultrasons fonctionne sur le phénomène naturel d'ECHO du son. Une impulsion est envoyée pendant environ 10 us pour déclencher le module. Après quoi le module envoie automatiquement 8 cycles de signal ultrasonore 40 KHz et vérifie son écho. Le signal après avoir heurté un obstacle revient et est capturé par le récepteur. Ainsi, la distance de l'obstacle au capteur est simplement calculée par la formule donnée par
Distance = (temps x vitesse) / 2.
Ici, nous avons divisé le produit de la vitesse et du temps par 2 car le temps est le temps total qu'il a fallu pour atteindre l'obstacle et revenir en arrière. Ainsi, le temps pour atteindre l'obstacle n'est que la moitié du temps total.
Fonctionnement du contrôleur de niveau d'eau automatique
Le fonctionnement de ce projet est très simple, nous avons utilisé un module de capteur à ultrasons qui envoie les ondes sonores dans le réservoir d'eau et détecte la réflexion des ondes sonores qui est ECHO. Tout d'abord, nous devons déclencher le module de capteur à ultrasons pour transmettre le signal en utilisant Arduino, puis attendre de recevoir ECHO. Arduino lit le temps entre le déclenchement et la réception d'ECHO. Nous savons que la vitesse du son est d'environ 340 m / s. afin que nous puissions calculer la distance en utilisant la formule donnée:
Distance = (temps de trajet / 2) * vitesse du son
Où la vitesse du son est d'environ 340 m par seconde.
En utilisant ces méthodes, nous obtenons la distance entre le capteur et la surface de l'eau. Après cela, nous devons calculer le niveau d'eau.
Nous devons maintenant calculer la longueur totale du réservoir d'eau. Comme nous connaissons la longueur du réservoir d'eau, nous pouvons calculer le niveau d'eau en soustrayant la distance résultante provenant des ultrasons de la longueur totale du réservoir. Et nous obtiendrons la distance au niveau de l'eau. Nous pouvons maintenant convertir ce niveau d'eau en pourcentage d'eau et l'afficher sur l'écran LCD. Le fonctionnement du projet complet d'indicateur de niveau d'eau est illustré dans le schéma fonctionnel ci-dessous.
Schéma de circuit et explication
Comme indiqué dans le circuit du contrôleur de niveau d'eau ci-dessous, les broches «déclencheur» et «écho» du module de capteur à ultrasons sont directement connectées aux broches 10 et 11 de l'arduino. Un écran LCD 16x2 est connecté à arduino en mode 4 bits. Les broches de commande RS, RW et En sont directement connectées aux broches 7, GND et 6 de l'arduino. également connecté à la broche 8 de l'arduino via ULN2003 pour allumer ou éteindre la pompe du moteur à eau. Un régulateur de tension 7805 est également utilisé pour fournir 5 volts au relais et au circuit restant.
Dans ce circuit, le module de capteur à ultrasons est placé en haut du seau (réservoir d'eau) pour la démonstration. Ce module de capteur lira la distance entre le module de capteur et la surface de l'eau, et il affichera la distance sur l'écran LCD avec le message «L'espace d'eau dans le réservoir est:». Cela signifie que nous montrons ici un lieu vide de distance ou de volume pour l'eau au lieu du niveau d'eau. Grâce à cette fonctionnalité, nous pouvons utiliser ce système dans n'importe quel réservoir d'eau. Lorsque le niveau d'eau vide atteint à une distance d'environ 30 cm, Arduino allume la pompe à eau en entraînant le relais. Et maintenant, l'écran LCD affichera «Niveau d'eau bas» «Moteur allumé» et la LED d'état du relais commencera à s'allumer
Maintenant, si l'espace vide atteint à une distance d'environ 12 cm, l'arduino s'éteint, le relais et l'écran LCD afficheront «Le réservoir est plein» «Le moteur est éteint». Le buzzer émet également un bip pendant un certain temps et la LED d'état du relais s'éteint.
La programmation
Pour programmer Arduino pour le contrôleur de niveau d'eau, nous définissons d'abord toutes les broches que nous allons utiliser dans le projet pour interfacer des périphériques externes tels que relais, LCD, buzzer, etc.
#define trigger 10 #define echo 11 #define motor 8 #define buzzer 12
Ensuite, nous initialisons tous les appareils utilisés dans le projet.
lcd.begin (16,2); pinMode (déclencheur, SORTIE); pinMode (écho, INPUT); pinMode (moteur, SORTIE); pinMode (buzzer, OUTPUT); lcd.print ("Niveau d'eau"); lcd.setCursor (0,1); lcd.print ("Indicateur"); retard (2000);
Initialisez maintenant le module du capteur à ultrasons et lisez l'heure d'envoi et de réception des ondes ultrasonores ou du son en utilisant pulseIn (pin). Ensuite, effectuez des calculs et affichez le résultat sur un écran LCD 16x2 en utilisant les fonctions appropriées.
digitalWrite (déclencheur, HIGH); delayMicrosecondes (10); digitalWrite (déclencheur, LOW); delayMicrosecondes (2); time = pulseIn (écho, HIGH); distance = temps * 340/20000; lcd.clear (); lcd.print ("Water Space In"); lcd.setCursor (0,1); lcd.print ("Le réservoir est:"); lcd.print (distance); lcd.print ("Cm");
Après cela, nous vérifions les conditions si le réservoir d'eau est plein ou le niveau d'eau est BAS, et prenons des mesures en conséquence.
if (distance <12 && temp == 0) {digitalWrite (moteur, LOW); digitalWrite (buzzer, HIGH); lcd.clear (); lcd.print ("Réservoir d'eau plein"); lcd.setCursor (0,1); lcd.print ("Moteur éteint"); retard (2000); digitalWrite (buzzer, LOW); retard (3000); temp = 1; } else if (distance <12 && temp == 1) {digitalWrite (moteur, LOW); lcd.clear (); lcd.print ("Réservoir d'eau plein"); lcd.setCursor (0,1); lcd.print ("Moteur éteint"); retard (5000); }