Equipe
AÏDOUNE Nicolas
BAUVOIS Nicolas
ELIAYAN Matys
BELLERY Marianne
I – Contexte
Dans le cadre du projet fil rouge de la TAF CoOC nous réaliserons le pré-prototype d’un objet communicant. Nous avons choisi de nous intéresser au problème des sinistres provoqués par les dégâts des eaux. En 2015, plus d’un million de dégâts des eaux ont été recensés dans des maisons particulières en France, occasionnant des dégâts estimés à 2,5 milliards d’euros. En effet, en moyenne, le coût lié à un dégât des eaux est autour des 1500€. Pourtant, pour éviter tous les dégâts, il suffit d’agir dans les 30 premières minutes qui suivent l’apparition de l’eau. Et pour éviter des dégâts majeurs, les compagnies d’assurances conseillent d’agir avant que le niveau de l’eau n’atteigne les 15 cm. En plus de cela, le chiffre le plus marquant à ce sujet est que 93% de ces sinistres sont liés à des fuites domestiques qui auraient donc pu facilement être évités. Dans le cadre de notre projet nous nous sommes non seulement intéressés à ces sinistres évitables, mais également aux 7% restants, c’est-à-dire aux inondations occasionnées par les crues, les tempêtes, ou encore les submersions marines.
La problématique soulevée par l’équipe est celle de la prévention des différents types de dégâts des eaux qui sont la cause n°1 des sinistres habitation en France. En effet, nous avons constaté qu’en plus de représenter un coût relativement élevé, cela concerne tous les ans de nombreux foyers dont le nombre risque d’augmenter avec le dérèglement climatique. Ainsi, nous cherchons à trouver un moyen de limiter les dommages matériels causés par ce type d’événements. Ceci nécessite donc de détecter rapidement le début d’un sinistre et d’en informer le sinistré.
II – Réalisation
Le matériel que nous avons utilisé :
- Une carte Arduino Uno
- Un module wifi NodeMCU ESP8266
- Une électrovanne normalement ouverte
- Deux modules grove LoRa Radio x2
- Un capteur de niveau d’eau Grove 101020635
- Une résistance de 22kΩ
- Un smartphone android
- Plusieurs câbles
- Un boîtier “Gateway” réalisé à partir d’une impression 3D
- Un boîtier “Détecteur” réalisé à partir d’une impression 3D
- Une alimentation stabilisée
- Un bîtier pour piles 9V et sa pile
- Un module Grove base shield 103030000
- Un relais 5V
- Une alimentation MicroUSB
1 ) Prototype
L’architecture de notre prototype suit un schéma classique en IoT, il est composé de deux parties : un nœud et une gateway. Le nœud représente la partie détecteur du prototype qui relève les différentes informations avec ses capteurs. La gateway reçoit les différentes données du nœud et réalise différentes actions en réponse à ces informations.
a . Gateway
La gateway du prototype représente la partie liée au circuit d’eau du domicile. Son rôle est de recevoir les informations qui proviennent du nœud et de les traiter pour agir en conséquence. Ainsi, en recevant une alerte de détection d’eau, la gateway s’occupe de couper l’eau du domicile et déclenche une notification sur le smartphone de l’utilisateur pour lui signaler. De plus, en cas de nouveau message de la part du nœud indiquant une évolution de la situation, le module déclenche une nouvelle notification afin d’informer l’utilisateur en temps réel.
Le boîtier de la gateway a été réalisé par impression 3D. Une boîte en PLA de dimensions 120mmx100mmx65mm permet de contenir le NodeMCU ESP8266, le relais et le module Grove LoRa radio. Le modèle de ce boîtier a été réalisé à l’aide de Solidworks. Un trou sur le côté permet de faire passer les fils de l’électrovanne qui se situe à l’extérieur du boîtier mais aussi le câble d’alimentation secteur pour le NodeMCU.
Pour éviter de conserver une breadboard dans le boîtier afin d’avoir un montage plus propre et gagner de la place, nous avons soudé tout le circuit.
b . Noeud
Le rôle de la partie nœud est de détecter l’eau et d’envoyer les informations récoltées à la gateway. Ainsi, le module doit être capable de détecter un simple filet d’eau comme une hauteur d’eau de plusieurs centimètres. Dans un premier temps, la détection d’eau est signalée à la gateway, puis, si la hauteur d’eau est amenée à changer, elle est également communiquée. Enfin, le module est capable de détecter la stabilisation du niveau d’eau et de le signaler à la gateway, qui préviendra à son tour l’utilisateur..
Afin de pouvoir mesurer une hauteur d’eau, il était nécessaire de concevoir un boîtier haut de plusieurs centimètres qui permet également d’éviter que le système prenne l’eau. Il contient la carte arduino UNO, le module Grove LoRa, le capteur de niveau d’eau Grove et le système de détection de filet d’eau. Le boîtier a été réalisé en PLA par impression 3D.
2 ) Electronique
A. Partie noeud
a . Carte Arduino Uno
Afin de piloter la partie nœud de notre objet, nous avons utilisé une carte de développement Arduino UNO, qui dispose du microcontrôleur ATmega328P. Pour programmer son fonctionnement, il suffit d’écrire un programme sur l’IDE Arduino puis de téléverser ce code sur la carte via son port USB. Cette carte communique avec les différents composants du nœud et les alimente en énergie électrique. Elle est elle-même alimentée par une pile 9V via sa prise jack.
b . Capteur de niveau d’eau Grove 101020635
Afin de mesurer précisément la hauteur d’eau en temps réel au cours d’un sinistre, nous avons décidé d’utiliser ce détecteur de niveau d’eau capacitif compatible de Seeedstudio. Une fois plongé dans l’eau, ce capteur mesure la hauteur d’eau avec 5 mm de précision à l’aide de ses cellules conductrices, et communique cette information à la carte Arduino via son bus I2C(ports SDA et SCL). Ce capteur est alimenté en 5V via le port 5V de la carte Arduino.
c . Montage de détection de filet d’eau
Le capteur de niveau d’eau présenté dans la partie précédente est très efficace lorsque la hauteur d’eau dépasse 5 mm, cependant il est incapable de détecter un filet d’eau. En réalité, la grande majorité des capteurs de niveau disponibles sur le marché sont faits pour mesurer des niveaux d’eau dans des réservoirs, et sont donc incapables de mesurer une très faible couche d’eau. Nous avons donc décidé de concevoir notre propre circuit de détection, en optant pour un montage très simple.
En effet, nous avons simplement réalisé un circuit représenté ci-dessus reliant l’alimentation 5V de l’Arduino à une résistance de 22K ohm reliée à la masse. On mesure la tension de cette résistance en la reliant à une broche numérique de la carte Arduino. En cas de présence d’un filet d’eau, le circuit est fermé, et la carte Arduino mesure une tension positive aux bornes de la résistance. Ce montage nous permet donc de détecter un potentiel dégâts des eaux dès l’instant où un filet d’eau atteint la partie nœud de notre objet.
d . Module Grove LoRa Radio
Afin d’assurer la communication sans fil longue portée entre les parties nœud et gateway de notre objet, nous utilisons deux modules LoRa Radio Grove, l’un placé dans le boîtier de détection, l’autre dans le boîtier de transmission. Ces deux modules communiquent selon le protocole LoRa à une fréquence de 868 MHz. Chaque module peut jouer le rôle d’émetteur ou de récepteur, cependant nous utilisons le module du nœud comme émetteur et le module de la gateway comme récepteur. Nous avons choisi ce module LoRa car il permet une communication de bonne qualité même lorsque que l’émetteur et le récepteur sont situés à deux étages différents d’un domicile. Ce critère est crucial car l’utilisateur de Pilotis placera logiquement la partie nœud de l’objet dans une pièce de son domicile particulièrement vulnérable aux dégâts des eaux, or il s’agit souvent du sous-sol. Au contraire, la gateway est située au niveau de l’arrivée d’eau, donc au rez de chaussée.
e . Schéma de l’architecture
B. Partie gateway
a . Module Wifi NodeMCU ESP 3266
Afin de connecter la gateway à internet, nous avons utilisé un Module Node MCU ESP8266. Ce module contient un module ESP8266, il s’agit d’un circuit intégré à microcontrôleur avec connexion Wi-Fi développé par le fabricant chinois Espressif. Ce module de quelques centimètres permet de connecter un microcontrôleur à un réseau Wi-Fi et d’établir des connexions TCP/IP avec des commandes Hayes. Ainsi, ce module wifi permet de contrôler les composants de la partie gateway(comme une carte Arduino), mais aussi d’envoyer des requêtes URL à l’API qui s’occupe de l’envoi de notification au smartphone de l’utilisateur(cf. partie 4).
b . Electrovanne et relais
Afin que notre objet communiquant soit capable de couper le circuit d’eau domestique au cas de détection d’eau, nous l’avons doté d’une électrovanne. Il s’agit d’une vanne commandée électriquement permettant d’agir sur le débit d’eau d’un circuit.. Nous avons choisi une vanne dite tout ou rien, c’est-à-dire étant soit ouverte soit fermée. Son état change suivant qu’elle soit alimentée électriquement ou non, et elle est dite “normalement ouverte” car elle est ouverte en l’absence d’alimentation électrique, et se ferme lorsqu’elle est mise sous tension. L’électrovanne est alimentée en 12V par une alimentation stabilisée reliée au secteur.
Pour piloter cette électrovanne, nous utilisons un relais électromécanique. Il s’agit d’un organe électrique permettant de distribuer la puissance à partir d’un ordre émis par la partie commande. Ainsi, un relais permet l’ouverture et la fermeture d’un circuit électrique de puissance à partir d’une information logique. Dans le cas de Pilotis, la commande logique d’ouverture ou fermeture provient d’une sortie numérique du module NodeMCU, et le circuit électrique concerné est le circuit d’alimentation de l’électrovanne. Dès lors, en cas de détection d’eau sur le sol, le programme téléversé dans le module NodeMCU ordonne l’envoi d’une commande logique entraînant la fermeture du relais, donc la mise sous tension de l’électrovanne et la coupure du circuit d’eau. Cela permet de stopper une éventuelle fuite provenant du circuit domestique.
c . Schéma de l’architecture
3 ) Code Arduino
Les programmes pilotant le fonctionnement des parties nœud et gateway de l’objet sont dans un répertoire Github disponible via ce lien : https://github.com/NicoAdn/pilotis/tree/main.
4 ) API PushingBox / Application PushingBullet
Afin de pouvoir recevoir des notifications, il était nécessaire d’avoir une interface utilisable sur smartphone. Dans un souci de temps, nous avons décidé de ne pas développer cette partie nous même et de nous reposer sur une API existante, simple à mettre en place et à utiliser pour se concentrer sur la réalisation du prototype physique.
Ainsi, nous avons couplé l’utilisation de l’API PushingBox, qui permet d’envoyer des notifications, et de l’application PushBullet, qui permet de les recevoir sur son téléphone.
Configuration des notifications sur le téléphone
- Dans un premier temps, il faut télécharger l’application PushBullet (disponible uniquement sur Android) et copier le lien qui est dans “Access Tokens.
- Il faut ensuite créer un compte sur PushingBox et ajouter un nouveau service en copiant le lien “Access Tokens”.
- Enfin, il faut copier le Device Id et l’insérer dans le Code(voir Github).
Configuration des notifications sur un nouveau téléphone à partir d’un compte Google :
- Tout d’abord, il faut télécharger l’application PushBullet.
- Puis se connecter via le compte Google Pilotis.
III – Résultats et perspective
Le projet PILOTIS, visant à créer un objet connecté permettant de prévenir les dégâts des eaux, s’est conclu sur la mise en place d’un prototype fonctionnel sous la forme de deux parties : une gateway et un nœud. Ces deux parties possèdent leur boîtier imprimé en 3D et le système complet permet de recevoir des notifications sur son téléphone qui s’adaptent à la situation.
Cependant, il y a quelques améliorations possibles au système. Dans un premier temps, l’ajout de boutons permettant de réinitialiser les différentes parties du prototype permettrait d’éviter d’avoir à mettre celui-ci hors tension puis sous tension pour le rendre à nouveau fonctionnel après un cycle d’utilisation. Ensuite, nous avons constaté qu’après l’allumage il est parfois difficile de savoir si le programme est opérationnel. En effet, il est nécessaire que le programme se connecte en wifi pour être fonctionnel et cette étape prend un temps qui peut varier en fonction des situations. Il serait donc intéressant d’ajouter des LEDs ou des composants produisant du son afin de permettre à l’utilisateur d’avoir des informations sur l’état du système(en démarrage, en cours de connexion, prêt à l’emploi…).
De plus, l’ajout d’un système d’alerte lumineuse et sonore se déclenchant en cas de détection d’eau et évoluant selon l’état de la situation serait souhaitable. En effet, les fuites et les inondations arrivent aussi la nuit, dès lors une notification ne suffit pas forcément à prévenir l’utilisateur, qui peut avoir mis son téléphone en mode avion ou l’avoir éteint. Enfin, le développement d’une application PILOTIS améliorant l’interface utilisateur et permettant de nouvelles fonctionnalités (réinitialisation du système à distance, configuration de la connexion wifi sans avoir à modifier le code etc…) apporterait une réelle valeur ajoutée au produit.