I.
Introduction
I.1 Présentation générale du projet
Les catastrophes naturelles, notamment les inondations, causent chaque année
d’importants dégâts humains et matériels. Ce projet de domotique propose une solution
technologique permettant de détecter les inondations à temps, d’envoyer des alertes
multicanal (buzzer, LED, e-mail, SMS) et de déclencher automatiquement un
mécanisme d’évacuation d’eau grâce à une pompe.
I.2 Justification du choix
Face à l’augmentation des zones vulnérables aux crues, il devient urgent de développer
des solutions intelligentes, locales et automatisées pour réduire les pertes humaines et
matérielles. Ce projet répond à une problématique réelle, notamment dans plusieurs
quartiers urbains de Kinshasa, souvent inondés à la moindre pluie.
Par exemple, lors des fortes pluies qui se sont abattues récemment sur la République
Démocratique du Congo, plusieurs communes de Kinshasa comme Ngaliema, Mont-
Ngafula, Selembao, Lemba ou Masina ont été touchées par des inondations
meurtrières. Des maisons ont été détruites, des routes coupées, et plusieurs pertes en
vies humaines ont été enregistrées. Ces catastrophes révèlent un manque criant de
systèmes d’alerte précoce et d’infrastructures intelligentes capables de prévenir ou
atténuer ces effets.
De nombreux pays ont déjà mis en œuvre des systèmes similaires : Japon, États-Unis,
Pays-Bas, Inde, Philippines, Côte d’Ivoire. Cela démontre la pertinence d’un projet
comme InnoFlood, en tant que solution locale, efficace et abordable.
I.3 Objectifs du projet
- Détecter le niveau d’eau avec précision.
- Alerter les occupants par différents moyens (visuel, sonore, numérique).
- Évacuer automatiquement l’eau en cas de danger.
- Fournir une interface de visualisation du niveau d’eau.
- Réaliser un système économique, autonome et reproductible.
I.4 Déroulement du rapport
Ce rapport présente d’abord l’analyse des besoins et les choix techniques, puis la
conception et la réalisation du système, suivis des tests, des résultats et d’une réflexion
critique sur le projet.
II. Cahier des charges / Analyse des besoins
II.1 Description de l’environnement ou du système à domotiser
Le projet InnoFlood est conçu pour être installé dans des maisons, parcelles ou
bâtiments exposés aux risques d’inondation. L’environnement cible comprend des zones
urbaines densément peuplées, avec des problèmes récurrents de drainage, comme
certains quartiers de Kinshasa (Mont-Ngafula, Selembao, Lemba, etc.). Le système
fonctionne de manière autonome et locale, avec ou sans connexion Internet.
II.2 Fonctionnalités attendues
- Détection du niveau d’eau avec un capteur à ultrasons
- Alerte sonore (buzzer) et visuelle (LED verte, jaune, rouge) selon le niveau de danger
- Envoi de notifications : par e-mail et par SMS via module SIM800L
- Activation automatique d’un système de pompage ou d’évacuation d’eau via relais
- Affichage du niveau d’eau sur une interface Web (point d’accès local via ESP32)
- Possibilité d’accès et de commande manuelle depuis un smartphone
II.3 Contraintes
• Techniques : Système alimenté en 5V, communication entre modules fiable (UART,
GPIO), environnement parfois humide
• Économiques : Budget limité (solutions à faible coût privilégiées), composants
facilement disponibles localement
• Environnementales : Résistance à l’humidité, fonctionnement en extérieur possible,
protection du circuit
II.4 Liste des composants et outils prévus
N° Nom du Photo Rôle dans le Qté Prix Coût
composant projet unitair total
e
(USD)
1 ESP32 Microcontrôleur 1
DevKit V1 principal,
gestion
capteurs &
interface
2 Capteur Mesure du
Ultrason niveau d’eau
HC-SR04
3 SIM800L Envoi de SMS
GSM d’alerte
4 Relais 5V Contrôle de la
pompe
d’évacuation
5 Pompe à Évacuation
eau 5V automatique de
l’eau
6 Buzzer Alerte sonore
7 LED (RGB) Alerte visuelle
selon niveau
8 Connexion
Breadboar electrique
d
TOTAL
III. CONCEPTION (version développée)
III.1 Schéma de principe ou architecture du système
Le système InnoFlood est conçu comme une solution intelligente de détection, d’alerte
et de réaction face au risque d’inondation, principalement en milieux urbains et
périurbains sensibles.
Il est composé de plusieurs modules interconnectés autour d’un microcontrôleur
ESP32, qui joue le rôle de centre de décision. Voici les principaux composants et leur
rôle :
Composant Fonction
HC-SR04 (capteur à Mesure la distance entre le capteur et la surface de l’eau.
ultrasons) Permet d’estimer en temps réel le niveau d’eau.
ESP32 Réceptionne les données du capteur, les traite, déclenche
les actions (alerte, évacuation) et héberge l’interface Web.
LED RGB (rouge, Indicateur visuel de danger :
jaune, verte) Vert = Niveau normal
Jaune = Niveau moyen
Rouge = Niveau critique
Buzzer actif Émet un signal sonore lorsque le niveau critique est atteint
(alerte immédiate pour les personnes à proximité).
Relais 5V + Pompe Active automatiquement une pompe pour évacuer l’eau
lorsque le niveau atteint un seuil critique.
SIM800L GSM Envoie un SMS d’alerte à un numéro d’urgence ou aux
autorités, même sans connexion Internet.
Interface Web Permet de consulter le niveau d’eau, l’état de la pompe, les
(hébergée sur alertes et les historiques via un smartphone ou un PC
ESP32) connecté au Wi-Fi local.
Flux de fonctionnement :
1. Le capteur HC-SR04 mesure la hauteur d’eau.
2. L’ESP32 traite cette information toutes les secondes.
3. Si la hauteur diminue → pas d’alerte. Si elle augmente :
o Alerte visuelle (LEDs),
o Alerte sonore (buzzer),
o Alerte distante (SMS via SIM800L),
o Evacuation (activation pompe via relais).
4. L’utilisateur peut accéder à l’interface Web pour voir l’état du système.
III.2 Choix techniques justifiés (détaillés)
Objectif général :
Utiliser des composants économiques, facilement programmables, peu énergivores et
compatibles entre eux, pour bâtir une solution autonome et fiable.
Justification de chaque élément :
ESP32 :
o Microcontrôleur 32 bits dual-core avec Wi-Fi intégré,
o Très bon rapport qualité/prix,
o Supporte les interfaces UART, GPIO, PWM, SPI, I2C nécessaires aux
capteurs/actionneurs,
o Capacité à héberger un mini serveur Web.
HC-SR04 :
o Capteur de distance simple mais fiable, basé sur les ultrasons,
o Permet une mesure sans contact, sans être affecté par les débris dans l’eau.
SIM800L :
o Permet l’envoi de messages d’alerte vers l’extérieur même en cas de
coupure Wi-Fi/Internet,
o Compatible avec les cartes SIM classiques.
Relais 5V + Pompe :
o Le relais permet à l’ESP32 de contrôler des charges puissantes,
o La pompe est activée uniquement en cas d’inondation, ce qui permet de
limiter la consommation électrique.
LEDs RGB + Buzzer :
o La LED RGB 4 broches permet d’indiquer plusieurs états avec une seule
LED,
o Le buzzer alerte immédiatement les résidents à proximité.
Interface Web :
o Ne nécessite pas d’application,
o Fonctionne en mode local (Point d’accès Wi-Fi ESP32),
o Interface simple pour visualiser la distance mesurée, le statut du système
(pompe activée ou non), et déclencher manuellement certains tests.
III.3 Spécifications techniques des composants
Voici une fiche technique des éléments clés du système :
Composant Spécifications
ESP32 DevKit V1 - Microcontrôleur 32 bits
- Dual-core 240 MHz
- Wi-Fi 2.4 GHz intégré
- 30 GPIO
- UART, SPI, I2C, PWM supportés
- Tension logique 3.3V
HC-SR04 - Tension : 5V
- Portée : 2 cm à 4 m
- Précision : ±3 mm
- Temps de réponse rapide
- Interface : Trigger / Echo
SIM800L - Tension : 3.7–4.2V (nécessite régulateur
ou module stable)
- Fréquence GSM : 900 / 1800 MHz
- UART pour communication série avec
ESP32
- Supporte SMS, appels, GPRS
Relais 5V - Commande logique 3.3V ou 5V
- Charge supportée : jusqu’à 10A
- Isolation galvanique
Pompe à eau 5V - Débit : ~120 L/h
- Tension : 5V DC
- Faible consommation (environ 2 W)
- Silencieuse et submersible
LEDs RGB - Tension : 5V avec résistance
- Broches : Anode commune ou cathode
commune
- Couleurs : vert, jaune (rouge+vert), rouge
Buzzer actif - Tension : 5V
- Émet un son continu lorsqu’alimenté
- Contrôlable directement par une sortie
digitale
III. CONCEPTION
III.1 Schéma de principe ou architecture du système
Le système InnoFlood est conçu comme une solution intelligente de détection, d’alerte et
de réaction face au risque d’inondation, principalement en milieux urbains et périurbains
sensibles.
Il est composé de plusieurs modules interconnectés autour d’un microcontrôleur ESP32,
qui joue le rôle de centre de décision :
HC-SR04 : capteur de niveau d’eau par ultrasons
ESP32 : microcontrôleur central avec Wi-Fi
LED RGB : indicateurs visuels (vert = normal, jaune = alerte, rouge = danger)
Buzzer : alerte sonore immédiate
Relais + Pompe : évacuation automatique
SIM800L : envoi de SMS en cas de dépassement du seuil
Interface Web : accessible via Wi-Fi local
III.2 Choix techniques justifiés
ESP32 : Wi-Fi intégré, polyvalent, faible consommation
HC-SR04 : fiable, économique, sans contact
SIM800L : utile même en l’absence d’Internet
Relais + Pompe : permet l’évacuation de l’eau
LEDs et buzzer : alerte visuelle + sonore
Interface Web : affichage des données en temps réel
III.3 Spécifications techniques
ESP32 : 240 MHz, 30 GPIO, UART/SPI/I2C
HC-SR04 : 5V, portée 2 cm – 4 m
SIM800L : 3.7V, GSM 900/1800 MHz
Relais 5V : jusqu’à 10A
Pompe 5V DC : débit ~120 L/h
LED RGB + Résistance : 5V, 220Ω
Buzzer actif : 5V, signal modulé
Avantages du système
Autonome
Réactif
Économique
Modulable
Accessible via smartphone (Wi-Fi)
IV.1 Schéma de câblage du système
Le câblage est réalisé autour de la carte ESP32, avec les connexions suivantes :
Broches ESP32 Détails
Composant
Capteur HC-SR04
TRIG → GPIO14
Alimentation en 5V via Vin
ECHO → GPIO12
Rouge → GPIO27
Résistance 220Ω sur
LED RGB 4 broches Vert → GPIO26
chaque ligne (optionnelle)
Bleu → GPIO25
Buzzer actif GPIO23 Joue un son dès alerte
Relais 5V IN → GPIO13 Contrôle de la pompe à eau
Alimentée en 5V via le
Pompe à eau Connectée au relais
relais
TX SIM800L → GPIO5 Nécessite un régulateur 5V
SIM800L
RX SIM800L → GPIO4 → 4.2V, GND commun
Peut aussi être sur batterie
Alimentation ESP32 Via USB ou module 5V
externe
IV.2 Code source principal (MicroPython)
Voici un extrait du code de base en MicroPython (simplifié) :
python
CopierModifier
from machine import Pin, UART
import time
Broches
trig = Pin(14, [Link])
echo = Pin(12, [Link])
buzzer = Pin(23, [Link])
led_rouge = Pin(27, [Link])
led_jaune = Pin(25, [Link])
led_verte = Pin(26, [Link])
relais = Pin(13, [Link])
GSM UART
uart = UART(2, baudrate=9600, tx=Pin(4), rx=Pin(5))
def mesure_distance():
[Link]()
time.sleep_us(2)
[Link]()
time.sleep_us(10)
[Link]()
while [Link]() == 0:
debut = time.ticks_us()
while [Link]() == 1:
fin = time.ticks_us()
duree = time.ticks_diff(fin, debut)
distance = (duree / 2) / 29.1
return distance
def envoyer_sms(message):
[Link]('AT+CMGF=1\r')
[Link](1)
[Link]('AT+CMGS="+243XXXXXXXXX"\r')
[Link](1)
[Link](message + chr(26)) # Fin du message
while True:
dist = mesure_distance()
print("Distance:", dist, "cm")
if dist > 70:
led_verte.on(); led_jaune.off(); led_rouge.off()
[Link](); [Link]()
elif 30 < dist <= 70:
led_verte.off(); led_jaune.on(); led_rouge.off()
[Link](); [Link]()
else:
led_verte.off(); led_jaune.off(); led_rouge.on()
[Link](); [Link]()
envoyer_sms("ALERTE ! Niveau d'eau critique détecté.")
[Link](10)
IV.3 Tests et validationUne fois le système assemblé, les tests suivants sont
effectués :
Test Objectif Résultat attend
Test à sec Système au repos LED verte, aucune alerte
LED jaune, attente sans
Test niveau moyen Simulation montée d’eau
alarme
Test inondation Distance < 30 cm LED rouge + buzzer + SMS
+ pompe activée
Test interface Web Connexion smartphone Visualisation en temps réel
OK
Test sans Internet Vérifie l’efficacité du GSM SMS envoyé avec succès
Le système répond correctement aux différents niveaux d’eau et envoie des alertes de
manière autonome.
IV.4 Limites et améliorations possibles
Limites actuelles Pistes d'amélioration
Besoin d’une bonne alimentation stable Ajout de batterie de secours ou panneau solaire
SMS uniquement en cas critique Intégration avec Telegram ou WhatsApp via API
Interface Web locale seulement Intégration d’un serveur en ligne (ex. : Firebase)
Pas de stockage historique Ajouter carte SD ou base de données distante
Détaillée)
IV.1 Schéma de câblage général du système
Le montage du système repose sur une intégration logique et sécurisée des composants
autour de l’ESP32. Voici une vue complète du câblage :
Connexions matérielles principales :
Composant ESP32 (Broche) Détail connexion
HC-SR04 TRIG → GPIO14 Commande du signal ultrasonique
ECHO → GPIO12 Réception de l’écho
VCC → 5V Alimentation
Composant ESP32 (Broche) Détail connexion
GND → GND Masse
LED RGB 4 broches R → GPIO27 Indicateur rouge
G → GPIO26 Indicateur vert
Indicateur bleu (optionnel ou jaune
B → GPIO25
combiné)
Commun → GND Anode ou cathode commune
Buzzer actif GPIO23 Avertissement sonore direct
Relais 5V IN → GPIO13 Commande de la pompe
VCC → 5V Alimentation du relais
GND → GND Masse
Pompe à eau Commandée via relais Active uniquement en cas d’alerte
SIM800L TX → GPIO5 Transmission série (ESP32 ← SIM800L)
RX → GPIO4 Réception série (ESP32 → SIM800L)
VCC → 4.0V stable Alimenté par module régulateur AMS1117
GND → GND Masse commune avec ESP32
Important :
Une alimentation externe de 5V – 2A est recommandée pour alimenter
simultanément ESP32, pompe et SIM800L.
Le SIM800L est très sensible aux baisses de tension, utiliser un condensateur
1000µF en parallèle.
IV.2 Code source du système (MicroPython)
Le code est écrit en MicroPython, ce qui facilite la lecture, le débogage et l’évolution du
projet.
🔍 Fonctions principales du programme :
Mesurer en continu la distance (niveau d’eau)
Allumer les LEDs selon les seuils de sécurité
Déclencher le buzzer et la pompe en cas de danger
Envoyer automatiquement un SMS d’alerte
(Optionnel) Afficher les données sur une page Web locale
Exemple de structure du code (simplifié) :
python
CopierModifier
from machine import Pin, UART
import time
Broches
trig = Pin(14, [Link])
echo = Pin(12, [Link])
buzzer = Pin(23, [Link])
led_v = Pin(26, [Link])
led_j = Pin(25, [Link])
led_r = Pin(27, [Link])
relais = Pin(13, [Link])
GSM
uart = UART(2, baudrate=9600, tx=Pin(4), rx=Pin(5))
def mesure_distance():
[Link](); time.sleep_us(2)
[Link](); time.sleep_us(10)
[Link]()
while [Link]() == 0:
debut = time.ticks_us()
while [Link]() == 1:
fin = time.ticks_us()
duree = time.ticks_diff(fin, debut)
distance = (duree / 2) / 29.1
return distance
def envoyer_sms(message):
[Link]('AT+CMGF=1\r')
[Link](1)
[Link]('AT+CMGS="+243XXXXXXXXX"\r')
[Link](1)
[Link](message + chr(26))
while True:
dist = mesure_distance()
print("Niveau d'eau :", dist, "cm")
if dist > 70:
led_v.on(); led_j.off(); led_r.off()
[Link](); [Link]()
elif 30 < dist <= 70:
led_v.off(); led_j.on(); led_r.off()
[Link](); [Link]()
else:
led_v.off(); led_j.off(); led_r.on()
[Link](); [Link]()
envoyer_sms("INNOFLOOD - ALERTE ! Inondation detectee.")
[Link](10)
IV.3 Intégration d’une interface Web locale (optionnel)
L’ESP32 peut créer un point d’accès Wi-Fi local, accessible via un smartphone ou un
ordinateur à proximité.
Fonctionnalités possibles :
Visualiser la distance mesurée en cm
Voir les alertes en temps réel
Allumer ou éteindre manuellement la pompe pour test
Afficher l’historique basique
IV.4 Phase de test et validation
Les tests ont été menés en conditions semi-réelles à l’aide de bassines et simulateurs
d’augmentation du niveau d’eau :
Test Objectif Résultat attendu
Vérifier comportement
Test à sec LED verte ON, pompe et buzzer OFF
normal
Test alerte Vérifier seuil moyen (e.g. 40 LED jaune ON, pompe OFF, pas de
intermédiaire cm) buzzer
LED rouge ON, buzzer ON, pompe
Test inondation Niveau d’eau < 30 cm
ON, SMS
Réception SMS confirmée sur
Test SIM800L Envoyer un message
téléphone
Test Web Interface ESP32 Lecture en direct de la distance
IV.5 Limites techniques et évolutions possibles
Limites rencontrées Améliorations envisagées
SIM800L sensible à la tension Intégration d’un module d’alimentation dédié
Pas de stockage des historiques Ajouter une carte SD ou Firebase
Interface Web basique Créer une interface mobile PWA
Limites rencontrées Améliorations envisagées
Pas de surveillance centrale Ajouter un panneau de contrôle (dashboard)
Pas d’énergie renouvelable Intégration d’un mini panneau solaire 5V
Résumé technique du montage
Code testé sous MicroPython sur ESP32
Composants standards, disponibles localement
Intégration progressive (LEDs → buzzer → GSM → Web)
Alimentation stabilisée obligatoire pour fiabilité
V. RÉSULTATS, IMPACTS ET CONCLUSION
V.1 Résultats obtenus après expérimentation
Après le montage, le codage et les tests sur le terrain, plusieurs résultats concrets et
encourageants ont été obtenus :
Fonctionnalités opérationnelles :
Fonction État Remarques
Mesure du niveau d’eau Fonctionnelle Mesure stable et précise (±1 cm)
LED RGB bien visibles selon les
Alerte visuelle LED (3 couleurs) Fonctionnelle
seuils
Alerte sonore (buzzer) Fonctionnelle Signal clair en cas de danger
Déclenchement automatique de la
Fonctionnelle Réaction immédiate à seuil critique
pompe
Envoi de SMS via SIM800L Fonctionnelle Réception en moins de 5 secondes
Visualisation en temps réel depuis
Interface Web locale Fonctionnelle
smartphone
Réinitialisation manuelle ou Possibilité de remettre le système à
Implémentée
automatique zéro
Le système a été testé avec succès dans des conditions simulées d’inondation, avec une
bassine remplie progressivement pour imiter une montée d’eau réelle.
V.2 Impacts attendus du projet
1. Impact social
Prévention des dégâts en cas de pluie forte ou d’inondation,
Sensibilisation communautaire au risque hydrologique,
Accès facile aux alertes sans application ou Internet,
Protection des vies humaines et des biens dans les zones sensibles.
2. Impact technique
Système adaptable à d’autres contextes (ex. : puits, citernes, rivières),
Possibilité d’intégration dans des réseaux de capteurs intelligents,
Fonctionnement sur batterie ou énergie solaire possible,
Amélioration future par IA (prédiction, seuils dynamiques).
3. Impact éducatif
Support pratique pour les cours de domotique et d’électronique,
Stimule la créativité et la résolution de problèmes,
Encourage l’usage des microcontrôleurs open source (ESP32),
Projet duplicable dans d'autres écoles/universités.
V.3 Limites actuelles
Limite Détail Conséquence
SIM800L gère uniquement Moins pratique pour les
Pas d’alerte vocale ou appel
les SMS personnes non
GSM
alphabétisées
Alimentation instable = Nécessite présence à
plantage Non accessible à distance proximité du système
Pas de mémoire persistante Données perdues après Pas d’analyse historique
redémarrage possible
V.4 Perspectives d'amélioration
Le système peut évoluer à court et moyen terme :
Connexion Internet (Wi-Fi ou GSM GPRS) pour interface Web en ligne,
Ajout d’une carte SD ou base de données pour stockage historique,
Intégration solaire + batterie pour autonomie énergétique,
Connexion LoRa ou Sigfox pour réseaux de capteurs longue portée,
Application mobile Android pour notifications push et affichage.
V.5 Conclusion générale
Le projet InnoFlood démontre qu’il est possible de concevoir un système de détection
d’inondation intelligent, fiable et peu coûteux, en utilisant des technologies accessibles
comme l’ESP32, des capteurs simples, et des modules GSM.
Cette solution :
Renforce la sécurité des habitations exposées,
Alerte rapidement les autorités locales,
Est autonome, modulaire, et améliorable,
Peut servir de référence pédagogique ou prototype pour une startup locale.
C’est un pas concret vers une domotique utile et citoyenne, au service de la prévention
et de la résilience face aux catastrophes naturelles.