Salutations à tous les lecteurs de la section DIY ou Do-it-yourself sur Habr! Aujourd'hui, je veux parler de mon prochain projet, cet article portera sur un détecteur de fuite d'eau alimenté par batterie. Comme dans les projets précédents, cet appareil fonctionne sur le microcontrôleur nRF52832. Il existe trois versions de ce capteur, dans les trois versions, des modules prêts à l'emploi avec nRF52832 sont utilisés, dans cet article, nous parlerons de la version intermédiaire qui utilise le module YJ-17103 de HOLYIOT.

Le détecteur de fluide est implémenté sur la puce SN74LVC1G00 |
Datashit . Je décrirai brièvement la conception du circuit et le principe de fonctionnement. L'électrode de capteur n ° 1 est connectée à la masse, l'électrode de capteur n ° 2 est connectée aux jambes A et B de la puce SN74LVC1G00 via une résistance de 100 Ohms, 3,3 V via une résistance de 1 M est également connectée à cette ligne, une capacité est également ajoutée au circuit. Lorsqu'il n'y a pas de contact avec le liquide sur les jambes du microcircuit A et B, l'unité logique, respectivement, sur la jambe Y connectée à la jambe MK (configurée par programme pour détecter une interruption via le comparateur intégré) est un zéro logique. Dès que le contact avec le liquide se produit et que les jambes A et B sont faibles, le signal sur la jambe Y du microcircuit SN74LVC1G00 est également inversé, ce qui provoquera une interruption, ce qui à son tour retirera le MK du sommeil. À l'avenir, la puce SN74LVC1G00 pourrait être remplacée par la puce SN74LVC1G14 |
Datashit , et peut-être pas :). La détection de fluide des jambes MK à travers le comparateur intégré n'est pas prévue.
Comme tous mes autres projets, celui-ci est également un projet Arduino et, comme tous les projets de l'année dernière (environ), celui-ci a également été réalisé pour le projet Mysensors. Comme dans mes autres articles, je vais aborder un peu le sujet des Mysensors dans cet article.
Mysensors est une communauté de développeurs open source. Ce protocole est développé par la communauté pour créer des réseaux radio et filaires. Le projet a été initialement développé pour la plate-forme Arduino. Un réseau Mysensors standard se compose d'une porte (passerelle), de retransformateurs et de terminaux (nœuds). Dans un réseau, il peut y avoir jusqu'à 254 appareils, chacun des appareils peut être équipé de jusqu'à 254 capteurs, capteurs, unités d'actionnement. Le fonctionnement du réseau, le traitement des données, l'exécution de scripts et l'interaction dans d'autres appareils sont effectués à l'aide du contrôleur UD. Certains contrôleurs (Majordomo) prennent en charge le travail avec plusieurs réseaux et Mysensors (multi-gate), il peut donc y avoir beaucoup plus de réseaux qu'un seul contrôlé par un contrôleur.
Plates -
formes matérielles prises en charge : Linux / Raspberry Pi / Orange Pi | ATMega 328P | ESP8266 | ESP32 | nRF5x (Cortex M0, M4) | Atmel SAMD utilisé dans Arduino Zero (Cortex M0) | Teensy3 (MK66FX1M0VMD18) | STM32F1.
Émetteurs radio pris en charge : NRF24L01 | RFM69 | RFM95 (LoRa) | nRF5x
Type de communication filaire pris en charge : RS485
Communication prise en charge entre le portail et le contrôleur : MQTT | USB série | Wifi | Ethernet | GSM
Revenons au capteur de fuite. L'appareil est alimenté par des piles CR2430, CR2450 ou CR2477. La consommation de sommeil est inférieure à 3 μA. Vitesse de transmission - 250 Kbps, 10-15 ms. La consommation d'énergie au moment de la transmission ne dépasse pas 8 mA. Théoriquement, la durée de vie d'une batterie sur une seule batterie est approximativement égale au temps d'autodécharge de la batterie. Dans la pratique, bien sûr, tout est moins rose, car il y a un enregistrement, une présentation, un envoi périodique du niveau de charge, afin que la durée de vie de la batterie soit plus proche de la valeur - temps d'auto-décharge / 2 :). L'alimentation est fournie directement par la batterie, le niveau de la batterie est contrôlé directement à partir de la broche VDD. Une LED RGB est installée dans le capteur pour indiquer l'enregistrement du capteur dans le réseau, pour indiquer les modes de service et pour indiquer la détection des fuites. Naturellement, la LED ne peut pas être utilisée du tout ou partiellement.
La carte d'appareil a été fabriquée pour sa fabrication ultérieure selon la méthode LUT. Par conséquent, à partir des nuances de cette option, c'est une largeur accrue des pistes, des distances accrues entre les pistes, des zones accrues pour les transitions intercouches (pour un perçage plus pratique des trous) et l'absence de remplissage dans les zones vides en raison de la petite zone de la planche. Plus tard, une option a été faite pour une commande en production.

Le boîtier de l'appareil a été conçu en deux parties. Le capot supérieur avec des emplacements pour le montage de la carte et la partie inférieure (bain) avec 2 trous pour les vis de contact en acier (l'étanchéité est possible avec du mastic silicone pour la tête de vis ou non requis) et deux tubes pour les boutons (réinitialisation et modes) sur la carte. L'impression a été effectuée sur une imprimante 3D ANICUBIC PHOTON SLA. Après l'impression, le papier de verre 320 et 1000 a été traité pour s'adapter aux joints du couvercle et du fond du corps.


Code de testwl_standart_test.ino
bool button_flag; bool send_flag; bool detection; bool nosleep; byte timer; bool AckG; bool AckB; bool AckL; bool PRESENT_ACK; bool flag_lq; unsigned long SLEEP_TIME = 172800000;
MyBoardNRF5.h
#ifndef _MYBOARDNRF5_H_ #define _MYBOARDNRF5_H_ #ifdef __cplusplus extern "C" { #endif
Le nRF52832 est configuré par programme pour fonctionner en mode basse consommation (mode DC-DC). Le MC est réveillé du sommeil par un signal provenant du microcircuit SN74LVC1G00 via le comparateur LPCOMP interne. L'appareil dispose également d'un bouton d'horloge pour implémenter les modes de service, tels que l'appariement de l'appareil, la réinitialisation de l'appareil, etc. Le bouton est enroulé sur le même pied MK que le détecteur de fuite. Les deux lignes sont séparées par des diodes Schottky. La puce SN74LVC1G00 en mode surveillance ne consomme rien. La gestion de l'alimentation du microcircuit s'effectue à partir des jambes du MK.
À l'heure actuelle, le développement d'un contrôleur de fuite d'eau avec lequel ces capteurs devraient fonctionner est presque terminé.
Vidéo montrant le capteur de fuite
Projet Github(fichiers gerber, logiciels, modèles de boîtiers, liste des composants)
Un endroit où vous êtes toujours heureux d'aider tous ceux qui veulent se familiariser avec MYSENSORS (installation de cartes, travail avec des microcontrôleurs nRF5 dans l'environnement Arduino IDE, conseils pour travailler avec le protocole mysensors, discussion de nouveaux projets de copyright -
télégramme chat @mysensors_rus .