Table des matières:

Capteur WIFI MQTT/Google Home Flood/Water avec ESP-01 : 7 étapes
Capteur WIFI MQTT/Google Home Flood/Water avec ESP-01 : 7 étapes

Vidéo: Capteur WIFI MQTT/Google Home Flood/Water avec ESP-01 : 7 étapes

Vidéo: Capteur WIFI MQTT/Google Home Flood/Water avec ESP-01 : 7 étapes
Vidéo: Zigbee датчик газа с измерением уровня концентрации для Tuya Smart, интеграция в Home Assistant 2024, Novembre
Anonim
Capteur WIFI MQTT/Google Home Flood/Eau avec ESP-01
Capteur WIFI MQTT/Google Home Flood/Eau avec ESP-01

Dans ce instructable, je vais vous montrer comment construire un capteur d'inondation/eau wifi avec un coût minimal. L'ensemble du projet me coûte moins de 8 $ pour les pièces que j'achète sur ebay et mes pièces de rechange existantes.

Dans ce projet, nous utiliserons ESP-01 pour fournir un client Wifi et MQTT pour détecter la présence d'eau, et éventuellement utiliser un haut-parleur/buzzer directement connecté pour fournir une alarme localisée.

Mon application spécifique pour le projet est de détecter une inondation/de l'eau à l'intérieur de mon puits de pompe de puisard, en cas de panne de la pompe de puisard. Lorsque l'eau est détectée par 2 fils ouverts, elle enverra un message au courtier MQTT. Le courtier MQTT relayera ensuite le message à NodeRED. Lors de la réception du message MQTT, NodeRED enverrait une annonce à plusieurs appareils Google Home et enverrait également éventuellement un message au téléphone portable/navigateur via pushbullet

Maintenant, bien sûr, ce projet ne fonctionnerait que si l'électricité domestique est allumée. Dans le prochain instructable, je vais intégrer le circuit de sauvegarde de la batterie. Mais si vous créez l'alimentation de la même manière que moi, vous pouvez simplement brancher une banque d'alimentation USB pour la sauvegarde de la batterie. Si vous avez une banque d'alimentation qui vous permet de charger et d'alimenter en même temps, alors vous êtes prêt.

J'utilise RaspberryPi ZeroW pour héberger le serveur Mosquitto MQTT et NodeRED. Il tourne depuis plus d'un an sans aucun problème.

Références: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi…Installer NodeRED sur Raspberry Pi:

Étape 1: Pièces dont vous aurez besoin

Pièces dont vous aurez besoin
Pièces dont vous aurez besoin
Pièces dont vous aurez besoin
Pièces dont vous aurez besoin
Pièces dont vous aurez besoin
Pièces dont vous aurez besoin

Liste des pièces:

(1) ESP-01

(2) résistance 10K ohms

(1) transistor NPN générique à petit signal (j'ai utilisé 2N3904)

(2) fils longs

(1) alimentation générique 5V (ce circuit nécessite moins de 300mA de courant)

(1) module régulateur 3,3V AMS1117

(1) Micro-USB vers DIP Adaptateur Connecteur Femelle Convertisseur PCB Kit DIY

(1) Câble USB-A vers MicroUSB.

(1) prise IC à 8 broches - peut être omise si vous souhaitez souder l'ESP-01 directement sur la carte de circuit imprimé. Coupez les ponts en plastique qui créent l'espace entre les rangées, puis collez les 2 rangées ensemble, voir photo.

(1) Petite enceinte pour le projet

Vous trouverez ci-dessous des pièces en option si vous avez besoin d'une alarme localisée à l'aide d'un haut-parleur/buzzer

(1) Transistor PNP générique, choisissez en fonction des exigences de courant/puissance du haut-parleur/buzzer. Dans mon cas, j'utilise 2N2907 puisque mon haut-parleur ne fait que 0,3W (8 ohms), il fournirait suffisamment de puissance pour piloter le haut-parleur. Vous pouvez choisir un transistor et un haut-parleur plus gros si vous voulez un son plus fort.

(1) Haut-parleur, voir la note sur le transistor PNP ci-dessus

(1) 100 - 110 ohms résistance

Étape 2: schéma de circuit

Schéma
Schéma

La première étape serait de créer le circuit montré dans le schéma.

J'ai construit l'alimentation 3.3VDC à l'aide d'un ancien chargeur de téléphone portable 5V couplé au régulateur AMS1117 3.3VDC. Pour la prise ESP-01, j'utilise une prise IC standard à 8 broches et coupe les ponts en plastique qui créent l'espace entre les rangées, puis colle les 2 rangées ensemble.

Le circuit que j'ai conçu est de détecter la présence d'eau entre les deux fils. Lorsque l'eau atteint l'extrémité des deux fils, elle crée une résistance d'environ 10K à 20K ohm. Ensuite, en série avec le 10K ohm R1, il fournit un petit courant à la base du Q1, provoquant la saturation de Q1, fixant le GPIO-2 à la terre. R1 est nécessaire pour protéger Q1 en cas de court-circuit accidentel sur les fils de détection.

R2 est une résistance de rappel permettant à l'ESP-01 de démarrer à partir du flash.

Maintenant, pour le haut-parleur/buzzer en option, si vous avez juste besoin d'ESP-01 pour parler MQTT et que vous ne voulez pas implémenter cette alarme localisée, vous pouvez supprimer R2, Q2, haut-parleur et placer une résistance de rappel de 10K entre GPIO-0 et VCC.

Si vous ne ressentez pas le besoin d'utiliser l'adaptateur femelle Micro-USB vers DIP, vous pouvez souder des fils entre le 5V PS et le module régulateur 3,3V. Je préfère utiliser l'adaptateur MicroUSB femelle pour pouvoir utiliser n'importe quel chargeur de téléphone portable générique et câble MicroUSB.

Étape 3: Construire le circuit

Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit

Soudez tous les composants et pièces dans le PCB selon le schéma de circuit de la page précédente et coupez le PCB à la bonne taille.

Placez le PCB à l'intérieur d'un boîtier qui s'adapterait au PCB et au haut-parleur en option. Dans mon cas, toutes les pièces tiendraient dans une petite boîte de prise téléphonique, bien que je doive chauffer un peu le couvercle pour créer un renflement afin que le module ESP-01 puisse s'adapter.

Étape 4: Flasher l'ESP-01

Dans cette étape, nous allons flasher l'ESP-01 avec le croquis arduino. Si vous n'avez jamais flashé le module ESP-01, vous pouvez suivre mon instructable pour vous aider à démarrer:

Vous pouvez trouver mon croquis sur ma page github:

Dans le croquis, vous devez au minimum modifier les informations suivantes relatives à votre réseau domestique/configuration:

#define MQTT_SERVER "10.0.0.30"const char* ssid1 = "SSID";const char* mot de passe1 = "MYSSIDpassword";const char* ssid2 = "SSID1";const char* password2 = "MYSSIDpassword";

Dans mon réseau domestique, j'ai 2 points d'accès différents qui diffusent 2 SSID différents, et cette esquisse permettrait la redondance en se connectant au prochain SSID si la communication avec le point d'accès actuel est perdue. Si vous n'avez qu'un seul SSID, remplissez à la fois ssid1 et ssid2 avec la même valeur.

Une fois la modification effectuée, téléchargez le croquis dans ESP-01 et branchez l'ESP-01 sur la carte d'interface.

Étape 5: Exécution de test

Pour tester si notre projet fonctionne, le plus simple serait de surveiller les messages MQTT dans le réseau. Pour ce faire, vous devez ouvrir une session SSH au courtier Mosquitto et exécuter la commande suivante:

moustique_sub -v -t '#'

La commande ci-dessus nous permettrait de voir tous les messages MQTT entrant dans le courtier.

Allumez maintenant notre circuit, et si tout fonctionne, dans quelques secondes vous devriez au moins voir le message MQTT suivant:

stat/SumpWaterSensor/LWT en ligne

Testez maintenant le capteur d'eau en plongeant les 2 fils de détection dans une tasse d'eau, et vous devriez voir ce message:

télé/SumpWaterSensor WET

Et si vous sortez les fils de l'eau, vous devriez voir ce message:

télé/SumpWaterSensor SEC

Si vous voyez ces messages, votre projet est un succès.

J'ai également inclus plusieurs sujets MQTT utiles dans le croquis que vous pouvez utiliser:

"stat/SumpWaterSensorInfo": ce message est envoyé toutes les minutes pour fournir la disponibilité et d'autres informations.

"cmnd/SumpWaterSensorInfo": ESP-01 enverra des informations s'il reçoit ce sujet avec la valeur '1' (ascii=49)

"cmnd/SumpWaterSensorCPRestart": ESP-01 redémarrera s'il reçoit ce sujet avec la valeur '1' (ascii=49)

"cmnd/SumpWaterSensorBeep": ESP-01 fera sonner le haut-parleur s'il reçoit ce sujet avec la valeur '1' (ascii=49)

"cmnd/SumpWaterSensorBeepFreq": définit la fréquence de l'alarme du haut-parleur, par défaut = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Activer et définir le niveau de débogage série (la valeur par défaut est 0 - pas de débogage)

Étape 6: Montez le capteur

Monter le capteur
Monter le capteur
Monter le capteur
Monter le capteur

Dans mon application, je souhaite surveiller le niveau d'eau à l'intérieur de mon puits de pompe de puisard et m'informer si l'eau dépasse l'interrupteur à flotteur de la pompe de puisard, ce qui signifie que ma pompe de puisard ne fonctionne pas. J'ai fait passer les fils et j'ai utilisé des attaches de fil pour le fixer le long du tuyau d'évacuation.

Étape 7: touche finale

Touche finale
Touche finale

Maintenant que le projet fonctionne et que nous sommes capables de publier un message MQTT au courtier, la prochaine étape consiste à penser à quoi faire avec cela.

Dans mon projet, j'utilise Node-RED pour écouter/s'abonner au sujet MQTT "tele/SumpWaterSensor" et annoncer à plusieurs haut-parleurs google home si de l'eau est détectée. En plus de cela, j'ai également lié le flux à un nœud pushbullet pour envoyer une notification à mon téléphone Android.

J'ai également créé une interface Web pour voir l'état du capteur (on/offline, uptime, etc.). Parfois, j'ai vu qu'il se déconnectait plusieurs fois au cours d'une semaine, à partir des statistiques, souvent à cause de la déconnexion de l'ESP-01 du wifi ou du MQTT. Mais ne vous inquiétez pas trop, mon croquis a inclus une routine pour redémarrer l'ESP-01 s'il continue à échouer en essayant de se connecter au WIFI et/ou au courtier MQTT.

L'image de cette étape montre le flux Node-RED pour accomplir cela. Vous pouvez également coller le flux de ma page github dans votre Node-RED:

L'annonce Google home n'est qu'un exemple de ce projet, mais je pense que c'est le plus utile et le plus pratique. Vous pouvez toujours vous connecter à un autre écouteur MQTT, ou même utiliser IFTTT pour piloter d'autres appareils lorsque de l'eau est détectée.

S'amuser…

Conseillé: