Table des matières:

Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz : 16 étapes (avec photos)
Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz : 16 étapes (avec photos)

Vidéo: Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz : 16 étapes (avec photos)

Vidéo: Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz : 16 étapes (avec photos)
Vidéo: #24 - Fiabiliser les données du module DS18B20 2024, Juillet
Anonim
Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz
Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz
Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz
Capteur de fuite d'eau sur ESP8266 + Micropython + Domoticz

Il y a quelque temps, ma femme m'a demandé de fabriquer un capteur de fuite d'eau. Elle craignait que le tuyau de la chaufferie ne fuie et que l'eau inonde le parquet nouvellement posé. Et moi, en tant que véritable ingénieur, j'ai entrepris un tel capteur à faire.

D'après mes 15 années d'expérience en tant qu'ingénieur médical, je sais que le moyen le plus simple de détecter l'eau est les broches métalliques court-circuitées par l'eau. Le principe de fonctionnement des capteurs les plus simples est que l'eau doit court-circuiter deux (ou plus) broches métalliques, et dès que cela se produit, l'alarme se déclenche.

Étape 1: Matériel

Matériel
Matériel

Pour ce projet nous avons besoin de:

1. ESP8266 - 01 module

2. Modu d'alimentation du régulateur linéaire à faible perte de charge HT7333 3.3V MS

Nous avons besoin de ce module pour réduire la tension de la batterie au niveau acceptable pour ESP8266. Selon la fiche technique, il devrait y avoir une entrée de 3 V à 3,6 V. Ce module nous donne 3.3V.

3. Batterie. J'utilise une batterie 3, 7V Li-ion 400mAh. En fait, vous pouvez utiliser n'importe quelle autre source d'alimentation appropriée. La batterie 18650 est également un bon choix. Lorsque vous choisissez une batterie, gardez à l'esprit que l'ESP "mange" environ 200 mA lors de la connexion au réseau WiFi, et environ 60 mA sont utilisés lorsque la carte télécharge des données sur le serveur.

4. Carte de charge de batterie TP4056 Lipo.

5. Mini bouton-poussoir Pololu Interrupteur d'alimentation Petite carte très intéressante. Il nous permet de basculer le module ESP uniquement lorsque de l'eau est détectée. Vous n'avez pas besoin de garder ESP ON. Il est donc bon pour économiser la charge de la batterie.

6. Logement7. Double micro-interrupteur ON-OFF. Une ligne sert à allumer l'appareil. La deuxième ligne sert à tester - il court-circuite sans eau, juste pour nous faire savoir si l'appareil fonctionne ou non.

8. Micro-ordinateur Raspberry Pi

J'utilise Raspberry Pi Zero. Il est suffisamment puissant pour exécuter le serveur Domoticz.

Étape 2: Logiciel

Sur votre ordinateur:

1. esptool installé, pour effacer les modules et flasher le firmware

2. Ampy installé, pour flasher votre programme

3 Python 3.6 ou supérieur recommandé

4. N'importe quel éditeur de code que vous voulez. Le plus simple - Python IDLE qui est normalement installé avec Python. J'utilise Pycharm / Atom ou Anaconda Spyder sur raspberry Pi

5. Serveur Domoticz installé sur Raspberry Pi (ou PC commun sous Windows ou Linux)

Étape 3: Préparer Raspberry Pi - Installer Domoticz

Alors, prenez votre RPi et installez le système d'exploitation adapté au fonctionnement du serveur Domoticz.

Vous pouvez suivre ces instructions.

J'utilise Raspbian Stretch avec Desktop à partir d'ici:

L'étape suivante consiste à installer le serveur Domoticz sur votre PC. Vous pouvez utiliser les instructions ici ou ici:). N'ayez pas peur, ce n'est pas si difficile. Évidemment, vous devez exécuter dans votre terminal:

curl -L install.domoticz.com | sudo bash

Et c'est tout:) plus ou moins. Configuration de Domoticz

Maintenant que notre serveur est prêt, nous pouvons y accéder depuis n'importe quel navigateur web, y compris depuis une tablette en saisissant l'URL suivante:

Étape 4: Configuration de Domoticz

Configuration de Domoticz
Configuration de Domoticz

Maintenant que notre serveur est prêt, nous pouvons y accéder depuis n'importe quel navigateur web, y compris depuis une tablette en saisissant l'URL suivante:

Étape 5: Ajustez les paramètres de l'application

Ajustez les paramètres de l'application
Ajustez les paramètres de l'application
Ajustez les paramètres de l'application
Ajustez les paramètres de l'application

Il existe différents paramètres d'application qui peuvent être définis via le Setup | Menu Paramètres.

Le menu Réglage avec différents onglets vous permet de saisir les paramètres personnels nécessaires au meilleur fonctionnement du système. Après avoir entré les données dans les champs, vous devez les enregistrer en appuyant sur le bouton rouge "Appliquer les paramètres". Après cette action, tous les champs Mot de passe, qui étaient vides lors du premier accès, apparaîtront avec une longue chaîne d'astérisques, même s'ils n'ont pas été utilisés.

Après avoir effectué la configuration principale sur la page "Système", cliquez sur "Notifications". Ici, nous devons ajuster le type de notifications que nous allons utiliser.

Étape 6: Configurer les notifications

Configuration des notifications
Configuration des notifications

Des notifications peuvent être envoyées par exemple lorsqu'un interrupteur est enfoncé, que la consommation d'électricité est trop élevée, que la température est trop élevée et pour de nombreuses autres options.

Dans notre cas, les notifications doivent être envoyées dès que de l'eau a été détectée par le capteur. Alors allumez simplement ceux que vous souhaitez utiliser. Normalement, vous avez également besoin d'une clé API pour que la notification fonctionne. En avance un peu, je dirai que j'ai essayé Pushover, Pushsafer et Pushbullet. Et je suis resté avec Pushover. Plus tard, je dirai pourquoi.

Quelques mots sur le fonctionnement des notifications. Vous devez avoir un compte sur Pushbullet, Pushover ou d'autres pages que vous souhaitez utiliser. Vous aurez également besoin d'une application sur votre téléphone portable ou votre PC.

Obtenez la clé API et insérez-la sur la page ci-dessus. Vous pouvez tester la notification en cliquant sur "Test". Si la clé API est correcte, vous devriez recevoir une notification de test sur votre téléphone portable.

Dès que le capteur détecte de l'eau, l'ESP s'allume et envoie la requête au serveur Domoticz au format JSON. Que si les conditions de déclenchement d'un événement (envoi d'une notification à votre téléphone portable) sont remplies, Domoticz envoie la notification.

Plus tard, je reviendrai aux "événements".

Étape 7: Configurez la communication avec le(s) périphérique(s) matériel(s)

Configurer la communication avec le(s) périphérique(s) matériel(s)
Configurer la communication avec le(s) périphérique(s) matériel(s)
Configurer la communication avec le(s) périphérique(s) matériel(s)
Configurer la communication avec le(s) périphérique(s) matériel(s)
Configurer la communication avec le(s) périphérique(s) matériel(s)
Configurer la communication avec le(s) périphérique(s) matériel(s)

Avant de pouvoir utiliser l'application Domoticz pour contrôler des appareils ou lire des capteurs, vous devez configurer la communication avec le ou les appareils matériels. Sélectionnez Configuration|Matériel pour ajouter du matériel. Les périphériques ne s'afficheront pas tant que le matériel approprié n'aura pas été ajouté.

L'application Domoticz supporte nativement de nombreux périphériques matériels. Dans notre cas, pour lire notre capteur d'inondation, nous devons ajouter du matériel dit "factice" à partir de la liste du matériel.

Lorsque le matériel est ajouté, la vue d'ensemble de tout le matériel défini s'affiche. Le matériel peut être désactivé ou supprimé.

Le nouveau matériel devrait être dans la liste et il devrait y avoir un bouton "Créer des capteurs virtuels".

Cliquez sur ce bouton et choisissez le type de capteur "Alerte". Maintenant, nous devons ajouter l'appareil dans Domoticz pour qu'il devienne actif.

Étape 8: Ajoutez l'appareil dans Domoticz pour devenir actif

Ajoutez l'appareil dans Domoticz pour devenir a-t.webp
Ajoutez l'appareil dans Domoticz pour devenir a-t.webp
Ajoutez l'appareil dans Domoticz pour devenir a-t.webp
Ajoutez l'appareil dans Domoticz pour devenir a-t.webp
Ajoutez l'appareil dans Domoticz pour devenir a-t.webp
Ajoutez l'appareil dans Domoticz pour devenir a-t.webp

Veuillez noter le numéro ci-dessous "IDX". Il s'agit de la référence unique à cet appareil et nous en avons besoin plus tard dans notre script Python pour adresser la notification. Dans ce cas, le numéro IDX est 1.

Activez l'appareil en cliquant sur la flèche verte à gauche (sur ma photo ci-dessous, elle est bleue, à cause de l'appareil activé).

Remplissez le nom de l'appareil et cliquez sur "ajouter".

Accédez au menu "Utilitaires" et votre appareil devrait y être répertorié.

Maintenant, nous devons programmer "événement" pour notre capteur. Cela signifie que nous devons dire au serveur quoi faire au cas où il aurait reçu un message du capteur. Et c'était disons le plus difficile pour moi:).

Étape 9: Cela ne fonctionne pas de cette façon…

Cela ne fonctionne pas de cette façon…
Cela ne fonctionne pas de cette façon…

J'ai commencé par essayer de programmer l'événement sur la page /device/. Ceci sur ci-dessous n'est pas le mien, mais c'est ok pour illustrer.

Si vous pensez que vous cocherez certaines cases et que cela fonctionnera, vous vous trompez:) Cela ne fonctionne pas de cette façon. Je suppose que cette fonctionnalité ici n'est pas encore terminée. N'oubliez pas - c'est un logiciel open source. Ok, après plusieurs heures j'ai trouvé la solution. Nous devons utiliser "Événements" dans le menu déroulant "Configuration".

Après avoir cliqué sur "Événements", vous pouvez créer votre propre événement. Vous pouvez le faire en écrivant un code en Python ou en LUA, ou simplement en utilisant ce qui s'appelle "Blockly". J'ai choisi d'utiliser Blockly. Il existe deux manières de forcer le serveur à faire ce que vous voulez.

Étape 10: Construire un événement de la bonne manière 1

Construire un événement de la bonne manière 1
Construire un événement de la bonne manière 1

1. Exécutez le fichier externe via "Events", en utilisant le message Blockly "Start script"

Cela fonctionne parfaitement pour moi sur la machine Windows. Mais je n'ai pas réussi avec Raspbian sur mon Raspberry Pi. Je soupçonne qu'il y a un problème avec les autorisations.

Étape 11: Créer un événement de la bonne manière 2

Construire un événement de la bonne manière 2
Construire un événement de la bonne manière 2

2. Utilisez le message « Envoyer une notification avec l'objet ». Cela fonctionne sur Raspbian. Cette option prend en charge l'envoi de notifications à Pushsafe et Pushover.

L'avantage d'utiliser la 1ère voie, c'est qu'elle est plus flexible. Vous pouvez choisir l'icône à afficher sur votre écran, les sons, etc. Mon "événement" est montré sur l'image ci-dessus.

Ensuite, programmons le module ESP.

Étape 12: Programmation du module ESP8266-01

Module de programmation ESP8266-01
Module de programmation ESP8266-01

Commençons par flasher notre module ESP8266. Normalement, ces modules sont livrés avec un firmware d'usine. il est possible de communiquer avec les modules en utilisant des commandes dites AT. Et aussi ce logiciel ne permet pas d'utiliser des modules comme des contrôleurs autonomes. Pour les utiliser comme des contrôleurs autonomes, nous devons effacer le firmware d'usine et en installer un nouveau.

Pour ce faire, nous utiliserons esptool. Ensuite, nous devons connecter notre module au PC pour effacer le firmware. Pour ce faire, vous avez besoin d'un convertisseur TTL + quelques composants supplémentaires. Mais il y a un moyen plus simple:). Il suffit d'acheter sur aliexpress ou ebay USB vers ESP8266 ESP-01 module adaptateur Wi-Fi avec pilote CH340G.

Branchez le module ESP8266 dans le convertisseur TTL comme indiqué sur l'image, et connectez-le au port USB.

Si vous avez le même convertisseur que moi, vous devez alors tout seul mettre le commutateur en position "Prog". Trouvez où esptool est installé (normalement quelque part comme C:\Program Files (x86)\Python36-32\Scripts. Allez dans ce dossier, lancez l'invite de commande là-bas. Tapez: python esptool.exe --port COM5 effacer_flash

Bien sûr, choisissez le bon port. Dans mon cas, c'est COM5. Vous pouvez vérifier le port où ESP est installé à partir du Panneau de configuration - Système - Gestionnaire de périphériques.

Installez le firmware (je l'ai pris d'ici: https://micropython.org/download#esp8266) en tapant:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size=detect 0 C:\path_to_firmware\esp8266-20180511-v1.9.4.bin

Ok, nous sommes maintenant prêts à télécharger les scripts micropython sur ESP8266.

J'utilise Adafruit MicroPython Tool (ampy) pour cela.

Mais de nos jours, il existe une autre option appelée Esplorer. Il s'agit d'une application avec interface utilisateur, permettant de télécharger des fichiers vers des modules ESP.

Vous pouvez trouver des instructions pour installer ampy ici. Mettez donc l'interrupteur du convertisseur TTL sur la position "UART". Nous aurons besoin de télécharger des fichiers:

  • wifimgr.py - gestionnaire wifi pour se connecter au réseau wifi
  • main.py - notre script principal

Dans la ligne de commande, tapez: ampy --port COM5 placez C:\path dans votre fichier

Appuyez sur "Entrée". Après quelques secondes, vous devriez voir une ligne de commande vide. Cela signifie que le fichier a été téléchargé. Vous pouvez vérifier la liste des fichiers sur ESP par la commande ampy:

ampy --port COM5 ls

D'après mon expérience, il est préférable de télécharger main.py après avoir téléchargé tous les fichiers nécessaires. c'est le cas, car dès que vous téléchargerez main.py - le module ESP8266 redémarrera et commencera à exécuter le fichier main.py. Donc, dans ce cas, si vous essayez de télécharger un autre fichier, le processus de téléchargement échouera parfois. Mais cela ne veut pas dire que tout est perdu:), essayez juste une deuxième fois, et vous réussirez (encore une fois, d'après mon expérience).

Tous les fichiers de ce projet sont disponibles ici:

Étape 13: Connectez-vous à votre réseau WiFi. Recevoir une notification

Connectez-vous à votre réseau WiFi. Recevoir une notification
Connectez-vous à votre réseau WiFi. Recevoir une notification
Connectez-vous à votre réseau WiFi. Recevoir une notification
Connectez-vous à votre réseau WiFi. Recevoir une notification

si tout va bien, redémarrez le module, en réinsérant le convertisseur TTL vers le port USB de votre PC.

Une fois ESP démarré, recherchez un nouveau réseau WiFi appelé "Wifimanager". Connectez-vous avec votre PC ou votre téléphone, puis accédez à l'adresse IP 192.168.4.1.. Ici, vous pouvez connecter votre ESP au réseau WiFi local. Choisissez le réseau WiFi que vous allez utiliser, saisissez le mot de passe, appuyez sur "Envoyer".

Si tout est correct, vous verrez le message « ESP connecté avec succès au réseau XXXX ». Votre ESP est maintenant connecté à votre réseau WiFi et prêt. Dès qu'il se connectera au WiFi, il se connectera au serveur Domoticz. Shorty, vous devez recevoir une notification sur votre téléphone portable.

Vous pouvez suivre le processus dans « Configuration »/« Journal ».

Vu lia !:) Ça marche. Nous pouvons maintenant procéder à l'assemblage de toutes les pièces, selon le schéma fonctionnel ci-dessous.

Étape 14: Schéma fonctionnel

Diagramme
Diagramme

Il n'y a pas grand chose à dire sur ce schéma. Très simple. Mettez l'alimentation avec l'interrupteur S1. L'appareil s'éteint jusqu'à ce que l'eau court-circuite les broches du « capteur d'eau ». Puis "Pololu board" s'allume et alimente le convertisseur de tension. Ce module d'alimentation basé sur la puce HT7333, convertit la tension en 3,3 V stable pour ESP8266. Ensuite, l'ESP s'allume et envoie un message au serveur Domoticz.

Étape 15: Résultat et conclusions

Résultat et conclusions
Résultat et conclusions
Résultat et conclusions
Résultat et conclusions
Résultat et conclusions
Résultat et conclusions
Résultat et conclusions
Résultat et conclusions

Ça marche. L'envoi d'une notification a pris jusqu'à 10 secondes: connexion au WiFi, envoi de notification, réception d'un message d'alarme sur votre téléphone.

J'ai programmé le capteur pour envoyer des alarmes toutes les 30 secondes, si de l'eau était détectée. Le capteur peut envoyer jusqu'à 5 à 6 notifications jusqu'à ce que la batterie soit déchargée. Un tel dispositif peut également être utilisé pour déterminer le niveau d'eau. Ce que j'aimerais améliorer.

1. Pour que cela fonctionne plus rapidement. Je pense que je vais essayer d'utiliser la technologie ESP-Now, qui me permet de connecter plusieurs ESP directement. Dans ce cas, la consommation électrique lors de la connexion est très faible et elle est plus rapide. L'idée est donc d'utiliser un ESP comme un hub pour connecter d'autres ESP.

2. Mettre en œuvre une alarme de niveau de batterie. Maintenant, vous ne pouvez pas savoir s'il y a assez de puissance pour envoyer un message d'alarme ou non. Je pense que dans la prochaine génération de ce capteur, il y aura un bouton spécial pour tester la charge de la batterie.

L'utilisateur devra appuyer sur un bouton et le niveau de la batterie sera affiché.

Conseillé: