Énergie, chaleur et eau: deuxième partie

Considérez la prochaine étape dans le développement d'un système de maison intelligente à partir de moyens improvisés :) (suite, premier article ici ).

Tâches à résoudre:


  1. Protection contre les fuites

    + Télécommande
    + Connaître l'état de l'arrivée d'eau (bloqué ou ouvert)
  2. Connaître la pression et la température du liquide de refroidissement dans le circuit de chauffage
  3. Connaître la pression dans le système d'alimentation en eau

La surveillance est toujours dans une interface d'affichage unique (Zabbix), la notification - via un mécanisme d'alerte unique. Mais la gestion est quelque chose de nouveau. À ce sujet - plus loin.

1. Protection contre les fuites


Oui, c'est un sujet galvaudé, des appareils - un centime par douzaine! Tout fonctionne hors de la boîte!

Alors je pensais et je me trompais à nouveau. Il existe vraiment de nombreuses solutions prêtes à l'emploi, mais trouver une solution complète avec la possibilité de contrôler et de surveiller à distance, mais sans utiliser le «cloud» / le compte personnel de quelqu'un, s'est avéré être une tâche presque impossible. Eh bien, ok, ferme collective encore une fois, essayons de résoudre le problème sans fer à souder ni codage.

Total dont j'ai besoin:

  1. vanne à boisseau sphérique motorisée
  2. détecteur de fuite
  3. un certain contrôleur avec une interface de surveillance et de contrôle
  4. relais de puissance

La vanne à boisseau sphérique recherchait une meilleure qualité - pas noname. J'ai choisi la solution ultime gidrolock basée sur les grues bugatti 3/4. L'entraînement électrique fonctionne à partir de 12V.

Que peut contrôler une grue 12V? Il y avait plusieurs options pour les contrôleurs qui implémentent la logique "Je vois que le capteur est déclenché, je fais l'action." En principe, ce dont vous avez besoin, mais ce serait bien d'avoir une sorte d'API pour le contrôle à distance. Tout d'abord, cela permettra de fuir tous les endroits possibles avec des capteurs de fuite et de bloquer l'eau uniquement en un seul endroit (bien qu'avec un certain retard pour le temps de collecte de l'état et d'envoi de la réaction). Deuxièmement, la procédure sera à distance, ce qui signifie qu'il sera possible d'éteindre l'eau, par exemple, en l'absence des propriétaires de la maison. La solution est apparue soudainement. Je me suis souvenu que même une fois, je «sentais» un engin avec une logique similaire et toutes sortes de poignées, appelé netping. Il s'est avéré qu'ils avaient même résolu un problème similaire. Un lien vers la description du guide se trouve à la fin de l'article.

image

+ Vous avez besoin d'une autre alimentation 0,5A pour alimenter le dispositif netping (non inclus). Le relais de puissance est utilisé pour fermer / ouvrir le fil de commande du robinet à boisseau sphérique au sol. Lorsque le fil est connecté à la terre, le robinet se ferme, lorsqu'il s'ouvre, il s'ouvre.

Nous connectons tout selon le schéma du mode d'emploi (par exemple, nous plaçons le relais sur la première ligne de netping et le capteur de fuite sur la quatrième). Nous traduisons la première ligne dans le mode de sortie basé sur la logique. On fait la dépendance de la 1ère ligne sur la 4ème. Nous vérifions le capteur, en l'abaissant dans une flaque d'eau. La logique interne de Netping fermera automatiquement le robinet.

Comment gérer maintenant à distance?

Netping possède un serveur SNMP intégré avec des capacités de gestion. Pour gérer netping, j'ai implémenté mes propres OID, la table MIB pour chacun des appareils est disponible sur le site du développeur. Il dispose également d'un serveur Web avec prise en charge de la gestion via des commandes codées URL.

Considérez les deux options:

Vérifiez la valeur logique de la ligne:

Statut de la grue
snmpget -v 2c -c SWITCH 192.168.8.5 .1.3.6.1.4.1.25728.8900.1.1.3.1
SNMPv2-SMI::enterprises.25728.8900.1.1.3.1 = INTEGER: 1

curl http:///<_>:<>@192.168.8.5/io.cgi?io1


Réglez la valeur logique sur 0 (appliquez la tension, fermez le relais - la vanne s'ouvre):

La grue se ferme
snmpset -v 2c -c SWITCH 192.168.8.5 .1.3.6.1.4.1.25728.8900.1.1.3.1 i 0

curl http:///<_>:<>@192.168.8.5/io.cgi?io1=0


Réglez la valeur logique sur 1 (supprimez la tension, ouvrez le relais - la vanne s'ouvre):

La grue s'ouvre
snmpset -v 2c -c SWITCH 192.168.8.5 .1.3.6.1.4.1.25728.8900.1.1.3.1 i 1

curl http://<_>:<>@192.168.8.5/io.cgi?io1=1


Dans OID .1.3.6.1.4.1.25728.8900.1.1.3.N, N est le numéro de ligne (1-4).

Une nuance importante est que la commutation ne fonctionnera que si la ligne est réglée sur le mode «sortie». Si la ligne est configurée en mode "logique de sortie" (par exemple, pour une réponse rapide de détection de fuite par le capteur), netping ne contrôlera pas le signal sur la ligne en dehors de sa logique (c'est-à-dire qu'il ne répondra pas aux commandes externes). Comment être? Vous pouvez simplement changer de mode de ligne avant de lancer une commande manuelle. Via HTTP, cela se fait comme ceci:


Bonus:

  • Un bon signet pour l'avenir est la possibilité de connecter autant de capteurs de fuite à distance actifs que vous le souhaitez. L'essentiel est de comprendre comment les intégrer dans la topologie générale. Il sera possible de bloquer l'eau plus loin par logique sur le même openwrt.
  • En raison de la présence de 4 lignes contrôlables dans netping, vous pouvez ajouter quelques robinets supplémentaires au système (également via un relais). C'est exactement ce que j'ai fait - j'ai construit un robinet séparé sur la ligne d'irrigation du site. Vous pouvez maintenant activer / désactiver l'arrosage à distance.
  • Netping a son propre modèle zabbix pour tous les appareils. Disponible sur leur site, utilise SNMP.

2. Pression et température du caloporteur dans le circuit de chauffage


Pression - pour détecter rapidement les fuites (y compris très petites / cumulatives).
Température - le capteur installé sur le retour. Selon ses valeurs, par exemple, des conclusions peuvent être tirées sur le mode de fonctionnement actuel de la chaudière, de la pompe dans le circuit, etc.

Les capteurs sont commandés sur aliexpress, un exemple du nom: "Capteur de pression DC 5V G1 / 4". Il existe des homologues "non chinois", mais beaucoup plus chers. Ceux qui ne veulent pas prendre de risques, je recommanderais de prendre Honeywell, il existe plusieurs modèles, par exemple MLH200PSL01A. Dans mon cas, un Chinois vit depuis quelques mois dans un environnement avec de l'eau sous une pression de 1 bar avec une température de 20 à 60 degrés centigrades dans le circuit de chauffage, et le deuxième 3-4 bar à l'entrée d'eau (froid). Le capteur est analogique. Le signal doit encore être converti. Le circuit DS2438AZ vient à la rescousse. Il peut convertir un signal analogique en signal numérique et transmettre des lectures à l'aide du protocole 1 fil. Essentiellement - ADC. La puce est idéalement intégrée dans la topologie implémentée dans le premier article. De plus, vous devez connecter les bornes VCC (+ 5V) et GND directement au capteur. Une tension apparaît sur le troisième fil du capteur, qui peut être convertie en pression selon la formule - Vout = Vcc (0.8P + 0.1).

Un avantage supplémentaire de la puce DS2438 est qu'elle affiche également la tension d'entrée du réseau, ce qui peut être utile pour le débogage et le développement ultérieur du réseau. De plus, un capteur de température y est intégré. Un point important - dans l'utilitaire digitemp, vous devez indiquer explicitement la présence de cette puce dans la topologie en utilisant le drapeau supplémentaire "-A".

Avec la température, tout est plus simple. Ebay / aliexpress: 1 capteur de filetage. nous obtenons les données sur le bus 1wire immédiatement sous la bonne forme sans blackjacks supplémentaires. Par exemple, j'ai commandé un capteur avec un raccord de plomberie de 1/2 pouce et une sonde en acier de 6 mm qui dépasse.

Constructif:

image

Nous connectons les deux capteurs à la topologie générale et ajoutons un élément supplémentaire à zabbix.

Voler dans la pommade


En fait, tout n'a pas décollé d'un coup. Avec l'introduction de ces deux capteurs, des miracles ont commencé à se produire dans toute la topologie à 1 fil - de la disparition des capteurs aux lectures de leurs valeurs limites. La première hypothèse est qu'il n'y a pas assez de stress. Tentatives de remplacement du concentrateur USB, l'utilisation d'un concentrateur actif n'a pas fonctionné. En conséquence - j'ai commandé un nouveau «maître de réseau», maintenant basé sur FTDI FT232 - tout a commencé à fonctionner de manière stable avec lui. Pour travailler avec un tel assistant, vous devez utiliser l'utilitaire digitemp_DS9097U. Mais j'ai décidé de passer à owfs en travaillant avec des capteurs, abandonnant les appels de points de digitemp en utilisant zabbix_agent sur chacun des éléments. Cela soulage le casse-tête des demandes concurrentielles, c'est pourquoi des délais d'attente ont été régulièrement observés. Si je ne me trompe pas, owfs a même une sorte de mécanisme de mise en cache intégré.

Dans openwrt, le package owfs a été installé et monté par la commande FS:

owfs --allow_other -d / dev / ttyUSB0 / root / 1wire

Le montage a été ajouté à /etc/rc.local.

3. Pression dans le système d'alimentation en eau


Maintenant, c'est assez simple - nous reproduisons l'approche décrite au paragraphe 1 pour la conduite principale. Cependant, je n'ai pas pu installer le capteur dans la conduite d'eau où passe le réseau 1 fil. Je n'ai pas fait glisser le câble vers un nouvel endroit, j'ai décidé d'essayer la solution de capture de données à distance en utilisant un ADC avec une interface wifi de radioseti. La solution peut se connecter à un point d'accès wifi, possède un serveur web intégré et est capable de transmettre les valeurs des capteurs connectés via le protocole http. Pour un changement - cela convient. En prime - vous pouvez prendre d'autres capteurs (y compris d'autres 1 fil) sur cet appareil, c'est-à-dire en théorie, par exemple, organiser un autre segment à 1 fil distant. L'appareil s'est avéré assez intuitif, au premier démarrage il démarre en mode point d'accès. Nous nous connectons, saisissons les paramètres de connexion à notre wifi, retirons le cavalier et le plaçons dans la plage du signal wifi. Nous prenons des informations, par exemple, via curl -s sensor_ip / capteurs ou directement avec un sondage HTTP dans zabbix.

Constructif:

image

La composition actuelle du complexe:


Segment de capteur à 1 fil:

Maître de réseau basé sur FTDI FT232
3 puces capteurs DS18B20
1 sonde pour 1/2 DS18B20
1 ADC DS2438
1 capteur de pression sous 1/2
1 compteur d'impulsions DS2423
compteur d'eau à impulsions

Segment des capteurs Wi-Fi:

RS-20
1 capteur de pression sous 1/2

Segment Netping (connexion LAN):

netping i / o v2
1 capteur d'humidité par contact sec
2 grues Gidrolock Bugati Ultimate + 2 relais BM8070D

Segment UPS (connexion USB):

PL2303
UPS Energy PN-750

Schéma:


image

Graphiques:


image
image
image
image

Références:


Source: https://habr.com/ru/post/fr447572/


All Articles