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 d'inondation à base d'Arduino – Code source & schéma de circuit

Système de surveillance précoce d'inondation – Circuit & Code source du projet

Dans les pays en développement comme dans les pays développés, les inondations sont une catastrophe naturelle majeure causant pertes humaines, animales et matérielles. Inondations dues aux séismes océaniques, ouragans, pluies torrentielles et autres catastrophes surviennent chaque année partout dans le monde.

Lors de fortes pluies, des systèmes d'assainissement mal gérés dans diverses régions géographiques provoquent des inondations et de nombreuses vies sont perdues. Un système d'alerte précoce permettant de détecter la montée des eaux et d'avertir la population à l'avance permettrait d'évacuer les gens et de sauver des vies.

Ce projet présente un prototype capable de détecter le niveau d'eau dans un étang, barrage ou réservoir et d'émettre une alerte via buzzer. C'est un prototype à petite échelle utilisant un Arduino UNO, un capteur ultrasonique, un buzzer, un afficheur LCD et quelques fils de connexion.

Projets connexes :

Schéma de circuit pour la détection précoce d'inondation

Système de détection précoce d inondation à base d Arduino – Code source & schéma de circuit

Composants requis

Projets connexes :

Étudions maintenant chaque composant utilisé dans ce circuit de base.

Arduino UNO

Arduino est une plateforme open-source pour développer des projets électroniques. Facilement programmable, effaçable et reprogrammable à tout moment. De nombreuses cartes existent : Arduino UNO, Nano, Mega, Lilypad, etc., avec spécifications variées.

Ce projet utilise l'Arduino UNO pour contrôler automatiquement des appareils. Il embarque un microcontrôleur ATmega328 cadencé à 16 MHz. Puissant, il supporte les protocoles USART, I2C et SPI.

La carte se programme via l'IDE Arduino avec un câble micro-USB. L'ATmega328 possède un bootloader préprogrammé facilitant le téléversement sans matériel externe. Les langages C/C++ sont utilisés, faciles à apprendre.

L'IDE Arduino structure le code en deux parties : void setup() (exécuté une fois, initialisation) et void loop() (exécuté en boucle).

La carte dispose de 6 entrées analogiques et 14 broches GPIO numériques (6 avec PWM), utilisables via pinMode(), digitalWrite(), digitalRead(), analogRead(). Les 6 canaux analogiques (A0-A5) offrent une résolution 10 bits.

Alimentation : USB (5V) ou jack DC (7-20V). Régulateur 3.3V intégré pour composants basse consommation.

Broches de communication : USART (0=Rx, 1=Tx), I2C (SDA=A4, SCL=A5), SPI (SS=10, MOSI=11, MISO=12, SCK=13).

Projets connexes :

Capteur ultrasonique HC-SR04

Le HC-SR04 mesure des distances sans contact, sur le principe du RADAR/SONAR, avec grande précision.

Portée théorique : 450 cm. Pratique : 2 cm à 80 cm, précision 3 mm. Alimentation 5V, <15 mA, fréquence 40 kHz.

Système de détection précoce d inondation à base d Arduino – Code source & schéma de circuit

Il comporte un émetteur et un récepteur. La distance se calcule par la formule : Distance = Vitesse × Temps.

L'émetteur envoie une onde ultrasonore. Si un objet la réfléchit dans la portée, le récepteur la capte. Vitesse de l'onde ultrasonore ≈ 330 m/s. Le temps est mesuré par le microcontrôleur : la broche Echo passe à l'état HAUT pendant la durée du trajet aller-retour de l'onde. Ainsi, on déduit la distance entre l'objet et le capteur.

Projets connexes :

Interface HC-SR04 avec Arduino UNO

Le HC-SR04 s'interface avec Arduino, PIC, Raspberry Pi, etc. Ici, on l'interface avec Arduino UNO. 4 broches : VCC, GND, Trig, Echo.

Alimentez VCC/GND sur 5V/GND Arduino. Trig (entrée) et Echo (sortie) sur broches GPIO Arduino. Pour mesurer : mettre Trig à HAUT 10 µs, puis BAS. Cela génère une onde 40 kHz vers l'objet. Si réflexion, Echo passe HAUT pendant la durée du retour. Temps × 330 m/s = distance.

Article connexe :

Afficheur LCD 16×2

L'interface LCD 16×2 avec Arduino UNO est simple. « 16×2 » = 2 lignes de 16 caractères. Piloté par contrôleur HD44780 (Hitachi). Fonctionne en mode 4 bits (4 broches de données) ou 8 bits (8 broches). Nous utilisons le mode 4 bits (moins de fils, circuit simplifié).

Système de détection précoce d inondation à base d Arduino – Code source & schéma de circuit

Description des broches du module LCD 16×2 :
Broche LCDDescription
VSSMasse (GND)
VCCAlimentation +5V
VEERéglage contraste
RSSélection registre : Mode Données ou Commande
RWMode Lecture ou Écriture
EValidation (Enable)
DB0-DB7Broches de données/commandes
LED+Anode rétroéclairage
LED-Cathode rétroéclairage

Pas de lumière propre : une LED arrière assure le rétroéclairage. L'IDE Arduino fournit la bibliothèque LiquidCrystal avec fonctions intégrées. Fonctions principales utilisées :

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

Fonctionnement du système de détection d'inondation & Code source

Le capteur ultrasonique est placé à un niveau de référence, émetteur/récepteur face au niveau d'eau. L'Arduino mesure la distance capteur-niveau d'eau.

L'afficheur LCD affiche cette distance. On définit un seuil d'alerte inondation : quand l'eau atteint ce seuil, le buzzer passe à HAUT et le LCD affiche un message d'alerte.

Explication du code

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

Inclusion de la bibliothèque LCD. LiquidCrystal lcd() définit les broches de données connectées à l'Arduino. lcd.begin() initialise le LCD 16×2.

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

Broches 18 et 20 en sortie (trigger, buzzer), broche 19 en entrée (echo).

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

Variable t = temps où Echo reste HAUT. Distance en cm stockée dans dist.

if (dist < 40) {
  digitalWrite(20, HIGH);
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Niveau d'eau en hausse. Evacuez !");
  delay(2000);
} else {
  digitalWrite(20, LOW);
  delay(2000);
}

Seuil d'inondation fixé à 40 cm. Si distance < 40 cm → buzzer ON + message LCD. Sinon buzzer OFF.

Code source complet :

#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
float t = 0;
float dist = 0;

void setup() {
  lcd.begin(16,2);
  pinMode(18, OUTPUT); // trigger
  pinMode(19, INPUT);  // echo
  pinMode(20, OUTPUT); // buzzer
  lcd.setCursor(0,1);
  lcd.print(" Detecteur Niveau Eau");
  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("Niveau d'eau en hausse. Evacuez !");
    delay(2000);
  } else {
    digitalWrite(20, LOW);
    delay(2000);
  }
}

Projets connexes :

Technologie industrielle

  1. Maîtriser les directives using C# : Imports, alias et directives static
  2. Symphony Link : détection fuites d'eau fiable pour data centers
  3. Système de contrôle de température basé LM35 avec microcontrôleur AT89S52
  4. Construire un décodeur DTMF avec un Arduino seul – Aucun CI supplémentaire nécessaire
  5. Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
  6. Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
  7. SERENA : Système d'Alarme Arduino Mega 2560 Personnalisé avec Écran Tactile TFT LCD
  8. Système de surveillance d'incendie forestier en temps réel avec alertes SMS
  9. Pourquoi la détection de fuites d'eau IoT de Biz4Intellia booste l'efficacité industrielle – 5 avantages clés