Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Système de détection précoce des inondations utilisant Arduino - Code source

Inondation précoce Surveillance Système – Code source du circuit et du projet

Dans les pays en développement et non en développement, les inondations sont la catastrophe naturelle massive qui cause la perte de vies humaines et animales et de biens. Des inondations dues à des tremblements de terre dans les océans, des ouragans, des précipitations et d'autres catastrophes naturelles se produisent chaque année dans de nombreuses régions du globe.

Pendant les précipitations, un système de drainage non géré dans diverses régions géographiques entraîne des inondations et de nombreuses vies sont perdues. Si nous avons un système qui peut nous donner une alerte précoce en cas d'inondation, nous pouvons sauver des vies. Un système qui utilise la technologie pour détecter l'augmentation du niveau d'eau et alerter les gens à l'avance afin que de nombreuses personnes puissent être évacuées.

Ainsi, dans ce projet, nous vous apportons un prototype qui peut être utilisé pour détecter le niveau d'eau dans un étang, un barrage ou un réservoir, puis envoyer une alerte à l'aide d'un avertisseur sonore. Ceci est juste un prototype à petite échelle dans lequel nous allons utiliser un Arduino UNO, un capteur à ultrasons, un buzzer, un écran LCD et quelques fils de connexion.

Projets associés :

Schéma de circuit pour la détection précoce des inondations

Composants requis

Projets associés :

Maintenant, apprenons un par un les composants utilisés dans ce circuit de base.

Arduino UNO

Arduino est une plate-forme open source utilisée pour développer des projets électroniques. Il peut être facilement programmé, effacé et reprogrammé à tout instant. Il existe de nombreuses cartes Arduino disponibles sur le marché comme Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad etc. avec des spécifications différentes selon leur utilisation.

Dans ce projet, nous allons utiliser Arduino UNO pour contrôler automatiquement les appareils électroménagers. Il est doté d'un microcontrôleur ATmega328 qui fonctionne à une vitesse d'horloge de 16 MHz. C'est un puissant qui peut fonctionner sur les protocoles de communication USART, I2C et SPI.

Cette carte est généralement programmée à l'aide du logiciel Arduino IDE à l'aide d'un câble micro USB. ATmega328 est livré avec un chargeur de démarrage intégré préprogrammé qui facilite le téléchargement du code sans l'aide du matériel externe. Il a une vaste application dans la fabrication de projets ou de produits électroniques. Le langage C et C++ est utilisé pour programmer la carte qui est très facile à apprendre et à utiliser.

Projets associés :

L'IDE Arduino facilite grandement la programmation. Il sépare le code en deux parties, à savoir void setup() et void loop(). La fonction void setup() ne s'exécute qu'une seule fois et est principalement utilisée pour lancer un processus, tandis que void loop() consiste en la partie du code qui doit être exécutée en continu.

Ce modèle se compose de 6 broches d'entrée analogiques et de 14 broches GPIO numériques qui peuvent être utilisées comme sortie d'entrée ; 6 d'entre elles fournissent une sortie PWM et analogique à l'aide de pinMode(), digitalWrite(), Fonctions digitalRead() et analogRead(). 6 canaux d'entrée analogiques vont des broches A0 à A5 et offrent une résolution de 10 bits.

La carte peut être alimentée soit par un câble USB qui fonctionne à 5 volts, soit par une prise CC qui fonctionne entre 7 et 20 volts. Il y a un régulateur de tension intégré pour générer 3,3 volts pour faire fonctionner des appareils à faible puissance.

Depuis que l'ATmega328 fonctionne sur les protocoles de communication USART, SPI et I2C, dispose de broches 0 (Rx) et 1 (Tx) pour la communication USART, SDA (A4) et SCL (A5) broches pour I2C et SS (10), broches MOSI (11), MISO (12) et SCK (13) pour le protocole de communication SPI.

Projets associés :

Capteur à ultrasons HC-SR04

HC-SR04 est un capteur à ultrasons qui aide à mesurer les distances dans de nombreux endroits sans contact humain. Il fonctionne sur le même principe que RADAR et SONAR et fournit un moyen efficace de mesurer les distances de manière très précise.

Théoriquement, il peut mesurer des distances jusqu'à 450 cm, mais en pratique, il peut mesurer des distances de 2 cm à 80 cm avec une précision de 3 mm. Il fonctionne à 5 volts, courant inférieur à 15mA et fréquence 40 Hertz.

Le HC-SR04 est équipé d'un émetteur et d'un récepteur installés dessus. La distance est calculée avec la formule de base de vitesse, distance et temps que nous avons tous étudiée dans notre école, c'est-à-dire

Distance =Vitesse x Temps

L'émetteur du capteur HC-SR04 transmet une onde ultrasonore dans l'air. Si cette onde est réfléchie par un objet dans la portée du capteur, l'onde réfléchie dans l'air est reçue par le récepteur du capteur. Donc, pour calculer la distance en utilisant la formule ci-dessus, nous devons connaître la vitesse et le temps.

Nous savons que la vitesse universelle de l'onde ultrasonore est d'environ 330 m/s. Le temps est mesuré par le circuit construit sur le microcontrôleur. La broche d'écho devient élevée pendant la période de temps pendant laquelle le temps pris par l'onde ultrasonore pour revenir au récepteur. De cette façon, nous pouvons calculer la distance entre l'objet et le capteur à ultrasons HC-SR04.

Projets associés :

Interfaçage HC-SR04 avec Arduino UNO

Le capteur à ultrasons HC-SR04 peut être utilisé avec tous les microcontrôleurs comme Arduino, PIC, Raspberry Pi, etc. Dans ce projet, nous allons interfacer le capteur à ultrasons HC-SR04 avec Arduino UNO . Le module HC-SR04 a quatre broches :VCC, GND, Trig et Echo.

Nous alimentons le module HC-SR04 avec 5 volts et GND à l'Arduino UNO. La broche de déclenchement et la broche Echo sont les broches d'entrée et de sortie, elles doivent donc être connectées aux broches d'entrée et de sortie de l'Arduino UNO. Donc, pour mesurer la distance, nous avons d'abord réglé la goupille de déclenchement sur "haut" pendant 10 microsecondes, puis sur "bas".

Cela générera une onde ultrasonore de fréquence de 40 kHz qui va vers l'objet et se réfléchit vers le récepteur du module. Si l'onde détecte un objet, elle retourne immédiatement à la partie réceptrice du module et la broche d'écho devient "haute" pendant la période de temps pendant laquelle elle revient au capteur.

Maintenant, cette période de temps multipliée par la vitesse de l'onde qui est de 330 m/s nous donne la distance entre le module HC-SR04 et l'objet.

Article connexe :

Écran LCD 16×2

L'interfaçage d'un écran LCD 16 X 2 avec Arduino UNO est assez simple. Il existe différents types d'écrans LCD disponibles sur le marché, mais celui que nous utilisons dans ce projet est 16 × 2, ce qui signifie qu'il comporte deux lignes et que nous pouvons afficher 16 caractères dans chaque ligne.

Ce module contient le pilote HD44780 d'Hitachi qui permet de s'interfacer et de communiquer avec les microcontrôleurs. Cet écran LCD peut fonctionner en mode 4 bits et en mode 8 bits. En mode 4 bits, seules 4 broches de données sont nécessaires pour établir une connexion entre l'écran LCD et le microcontrôleur, tandis qu'en mode 8 bits, 8 broches de données sont nécessaires.

Ici, nous allons l'utiliser en mode 4 bits car il nécessite moins de fils et simplifie le circuit. Regardons la description de la broche de 16 × 2 LCD.

Broche Description du module LCD 16×2 :
Épingler sur l'écran LCD Description
VSS Broche de mise à la terre
VCC Alimentation +5 V
VEE Pin pour modifier le contraste de l'écran LCD
RS Register Select :Mode de données ou Mode de commande
RW Mode lecture ou écriture
E Activer l'écran LCD
DB0-DB7 Les données et la commande sont alimentées à l'aide de ces broches
DEL+ Anode de la LED de rétroéclairage
LED- Cathode de la LED de rétroéclairage

Cet écran LCD n'a pas sa propre lumière, il y a donc une LED derrière l'écran qui agit comme rétro-éclairage pour l'affichage. L'interfaçage de cet écran LCD avec Arduino UNO est assez simple car Arduino IDE fournit une bibliothèque LiquidCrystal qui possède de nombreuses fonctions intégrées pour faciliter l'initialisation et l'impression de tout ce qui apparaît sur l'écran. Les fonctions LCD que nous allons principalement utiliser dans ce projet sont :

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Fonctionnement du système de détection précoce des inondations et du code source

Un capteur à ultrasons sera placé à un niveau de base tel que l'émetteur et le récepteur seront face au niveau de l'eau. Arduino UNO mesurera la distance entre le capteur et le niveau d'eau.

L'écran LCD imprimera la distance entre eux. Nous établirons une référence pour le niveau d'inondation et lorsque l'eau atteindra la référence, nous réglerons le buzzer sur "élevé" et l'écran LCD imprimera le texte alertant de l'inondation.

Explication du code

#include 
LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin(16,2);

La bibliothèque intégrée pour l'affichage LCD est incluse. La fonction LiquidCrystal lcd() prend le numéro de broche des données connectées à Arduino UNO. Lcd.begin() lance l'écran LCD 16×2.

pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT);  //echo pin
pinMode(20,OUTPUT); //buzzer

Les broches 18 et 20 sont respectivement définies comme broches de sortie pour le déclencheur et le buzzer et la broche 19 est définie comme entrée pour la broche d'écho.

t=pulseIn(19,HIGH);
dist=t*340/20000;

la variable de temps 't' détecte le temps jusqu'à ce que la broche de déclenchement soit réglée sur haut, ce qui est ensuite utilisé pour calculer le temps en centimètres et stocker la valeur dans la variable 'dist'.

if(dist<40)
{
 digitalWrite(20,HIGH);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Water level is rising. Kindly evacuate");
 delay(2000);
}
else
{
 digitalWrite(20,LOW);
 delay(2000);
}

Dans ce code, nous avons défini la condition d'inondation lorsque la distance entre le niveau d'eau et le capteur à ultrasons devient de 40 cm. Ainsi, lorsque le niveau d'eau atteint 40 cm ou moins, l'avertisseur se réglera sur ÉLEVÉ pour donner l'alerte et l'écran LCD imprimera et affichera un message d'alerte d'inondation.

Code source complet :

#include 
LiquidCrystal lcd(2,3,4,5,6,7);

float t = 0;
float dist = 0;

void setup()
{
 lcd.begin(16,2);
 pinMode(18,OUTPUT); //trigger pin
 pinMode(19,INPUT);  //echo pin
 pinMode(20,OUTPUT); //buzzer
 lcd.setCursor(0,1);
 lcd.print(" Water Level Detector");
 delay(2000);
}

void loop()
{
 lcd.clear();
 digitalWrite(20,LOW);
 digitalWrite(18,LOW);
 delayMicroseconds(2);
 digitalWrite(18,HIGH);
 delayMicroseconds(10);
 digitalWrite(18,LOW);
 delayMicroseconds(2);

 t=pulseIn(19,HIGH);
 dist=t*340/20000;

 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Distance : ");
 lcd.print(dist/100);
 lcd.print(" m");
 delay(1000);

if(dist<40)
{
 digitalWrite(20,HIGH);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Water level is rising. Kindly evacuate");
 delay(2000);
}
else
{
 digitalWrite(20,LOW);
 delay(2000);
}
}

Projets associés :


Technologie industrielle

  1. C# en utilisant
  2. Utilisation de Symphony Link comme système de détection de fuite d'eau pour les centres de données
  3. Système de contrôle d'appareil basé sur la température utilisant LM35
  4. Décodeur DTMF utilisant uniquement Arduino
  5. Système de présence utilisant Arduino et RFID avec Python
  6. Système robotique de détection humaine utilisant Arduino Uno
  7. Système d'alarme Arduino :SERENA
  8. Système de surveillance et de détection des incendies de forêt (avec alertes SMS)
  9. 5 avantages de l'utilisation du système de détection de fuites d'eau alimenté par l'IdO de Biz4intellias dans les industries