
Une fois, j'étais fatigué de prendre des relevés de compteurs d'eau. Il était possible de poser un aimant près du comptoir et de se calmer, mais j'ai trouvé ce chemin antisportif.
Mon chemin était difficile et fleuri. Mais le résultat est un appareil qui transmet les relevés d'eau via Wi-Fi au téléphone. Simple et intuitif à utiliser et à configurer pour au moins un élève de l'école, au moins
pour une personne âgée. Et familier avec le mot "Arduino" - également simple à fabriquer. L'appareil peut fonctionner sur piles pendant quatre ans (plus longtemps que la relation avec votre ex a duré). Il s'agit également du premier projet ouvert présentant de telles caractéristiques.
J'ai écrit des analogues d'usine, ils sont peu nombreux et d'accord avec eux.
Donc, nous avons de l'argent et un grand mais honnête désir de simplifier nos vies sans violer le Code criminel. Et pour qu'aucun de vos 220V, serveurs et un tas de boutons! Nous regardons les lectures sur le smartphone dans l'application Blynk ou un service similaire.
Maintenant, asseyez-vous sur une chaise, mangez plus de ces petits pains français moelleux et buvez du thé. Regardez de belles photos et écoutez mon histoire sur les éléments à prendre en compte lors de la création d'appareils autonomes. Mais d'abord, une brève description de Waterius.
Prérequis
- compteur avec fil (UPD2: toute
sortie «contact sec» ) - Routeur Wi-Fi avec Internet
CARACTÉRISTIQUES
- Puissance: 3 piles AA
- durée de travail 4 ans ou plus
- 2 compteurs d'eau
- un seul bouton pour configurer
- mémoire non volatile pour les indications et les paramètres réseau
Transfert quotidien Wi-Fi
- lectures actuelles
- consommation d'eau par jour
- tension d'alimentation
- e-mail lettres (le corps et le titre peuvent être modifiés)
Prise en charge du serveur TCP et de l'application Blynk. Ajoutez
HTTP ,
MQTT , Modbus TCP, Cayenne, IFTTT, etc. (ici est donné une place pour la manifestation de votre génie créateur).
UPD2: des génies créatifs dévoilés pourtant HTTPS, MQTT
Personnalisation
Lorsque le bouton Waterius est cliqué, il active le point d'accès Wi-Fi. Connectez-vous, remplissez le formulaire,
inclinez-vous trois fois vers l'est et dites «merci» aux développeurs de
WiFiManager . Vous pouvez mentalement.

Électronique divertissante
Une diffusion d'éléments radio pour l'assemblage de Waterius

La seule façon d'atteindre des unités de consommation de micro-ampères tout en comptant les impulsions est d'utiliser un microcontrôleur économique, pas ce que vous pensiez. Waterius heart - microcontrôleur Attiny85 (analogues - MSP430, STM8L). Il est cousu sans problème avec n'importe quelle planche Arduino avec des mains dépassant la taille. Attiny85 fonctionne à une fréquence de 1 MHz du générateur interne et compte les impulsions, vérifiant périodiquement 2 entrées pour un court-circuit et un bouton. Courant de sommeil
4 μA à 3V . Un conte de fées.
En tant que Wi-Fi, j'utilise ESP8266-01. Consommation en fonctionnement 75mA, impulsions jusqu'à 250mA. Deux microcontrôleurs communiquent sur le bus i2c. La justesse du choix a été confirmée par le
projet de la station météo . L'ESP8266 fait constamment rêver: la broche EN est tirée sur GND via une résistance. Le courant de consommation est inférieur à 10 μA (je suis tombé sur des instances avec 0 μA). Une fois par jour, Attiny85 délivre HAUT, ESP8266 se réveille, reçoit des lectures d'Attiny85, se connecte au Wi-Fi domestique et envoie des données en ~ 4 secondes - ce qui, selon les recherches de scientifiques britanniques, est beaucoup plus rapide que vous ne le faites habituellement manuellement sur ces mêmes compteurs.
La photo montre un bon ESP, la consommation bondit de 7-11μA. Habituellement, les nombres sont de 19 à 23 μA.D'autres types de sommeil ne fonctionneront pas pour Waterius, au moins saupoudrez-le de mélatonine aux sons d'une berceuse: un sommeil profond infini avec un réveil instantané sur une réinitialisation externe consomme 20 μA et convient à l'envoi fréquent de données. L'option la plus économique: éteignez complètement l'ESP8266, mais vous aurez besoin de transistors à effet de champ qui ont peur de l'électricité statique, c'est tout.
Le bouton de configuration est situé sur la ligne SCL. Toutes les broches Attiny85 sont occupées! Pour cette raison, Waterius ne prend pas en charge les sorties des compteurs Namur et n'a pas de capteur de fuite.
La LED est connectée à la broche TX de l'ESP et s'allume lorsque l'ESP fonctionne. Branchez l'adaptateur TTL-USB pour voir le journal (intéressant cependant!). Au début du développement, je pensais que pour indiquer une erreur, vous devez faire clignoter la LED, mais vous y arriverez - cela ne fera que compliquer le code.
Si vous vous connectez avec succès à un routeur Wi-Fi après 3 à 10 secondes, le voyant s'éteint et s'il continue de s'allumer, reconnectez votre téléphone à Waterius. Technologie sophistiquée, nanotechnologie, réalisations de la NASA, enseignements de la Chine ancienne.
Chacun de nous le sait: une caractéristique des appareils de faible puissance est leur sensibilité aux interférences électromagnétiques. Je me suis donc tourné vers un ingénieur électronique familier et j'ai étudié la
littérature (+ le plus beau cours de
Murata ). Toutes les broches sur ESP et Attiny sont tirées sur alimentation ou GND. Condensateurs de puissance installés. La masse «sale» des compteurs est connectée à la masse «propre» via une résistance de 300 ohms, et les sorties elles-mêmes via une résistance 3k3. Tout le monde le serait!
Logement
Nous prenons une bouteille en plastique ... une blague. J'ai utilisé un compartiment pour 4 piles AA. Un trou est découpé dans le couvercle du connecteur, sur le côté pour la LED et le bouton.

Vous pouvez utiliser la boîte de jonction (avec une imprimante 3D et d'autres chamanismes, expérimentez-vous si ce n'est pas le cas).
Dans
github se trouve une carte monocouche pour LUT et une carte à deux couches pour la production en usine. Waterius peut être fabriqué même par un écolier! Certes, s'il n'a pas de hoverboard et ne fait jamais tourner le spinner.
La planche idéale ne fonctionne pas tout de suite. Le premier prototype ressemblait à ceci:

Mais la quatrième version, qui a été construite, est presque «parfaite»:

Je n'ai pas pu résister et j'ai commandé un pack de planches en Resonite. C'est élevé!

La nutrition
Dans Waterius, il y a un stabilisateur
3V MCP1700 avec une consommation minimale très faible (quelques μA). Trois piles alcalines AA 1,5 V
pourront se décharger presque complètement à 3,2 V. De plus, l'Attiny85 aura une tension stable (et la
fréquence sera moins
flottante , ce qui bourdonne, bien que ce ne soit pas important dans ce projet).
Le circuit fonctionnera sans stabilisateur à partir de deux piles AA. Attiny85 devrait acheter la version V (puissance jusqu'à 1,8 V). ESP fonctionnait "sur Internet" jusqu'à 2,5V. Nous pourrons utiliser 40% de la capacité de la batterie (ne le croyez pas - voir
les tests de
A. Nadezhin ). Si vous achetez deux batteries au lithium AA 1.5V 3 Ah, Waterius fonctionnera jusqu'à 10 ans à basse température, et là - vous regardez - et nous construirons le communisme.
Le manque d'outils ne me permet pas de mesurer avec précision la consommation de Waterius. Il travaille chez lui depuis 45 jours, envoyant des relevés toutes les 30 minutes (pour accélérer la sortie). La tension d'alimentation a chuté de 0,17 V de 4,68 V à 4,51 V (UPD: 100 jours 4,38 V, UPD2: 313 jours 3,9 V). Si cela continue, les piles dureront 1,5 an. L'envoi de relevés une fois par jour est 3 fois plus économique, donc 4 ans de travail. Oui, je connais les batteries à décharge automatique.
La fiche technique d'Energizer et la durée de conservation sur les emballages indiquent qu'elle n'est pas solide.
Voici un calcul de la consommation de la batterie et du coût des composants pour les plus curieux (
tableau Google ).
Détails du programmeur (pour ceux qui ne sont pas fatigués)
La mise en œuvre du comptage d'impulsions sur les interruptions ne convient pas, car l'eau peut être coupée au moment où l'interrupteur à lames est fermé (zone ~ 3L), et le courant traversera les résistances de tirage. Une protection contre les rebonds de contact sera nécessaire: microcircuit ou retard du code. J'ai implémenté un sondage périodique toutes les 250 ms et incrémenté (un beau mot, non?) Valeur uniquement avec une fermeture répétée. Rien n'a besoin d'être soudé, bien que si vous le voulez vraiment, vous le pouvez.
Pour me protéger contre le rechargement d'Attiny, je stocke toutes les valeurs dans sa mémoire EEPROM. Pour dépasser la limite de 100 000 entrées, j'ai écrit un
tampon en anneau avec une marque d'anneau pour la cellule actuelle. Maintenant je dors paisiblement, c'est ce que je vous souhaite. Le code prévoit l'inclusion de la journalisation pour le débogage. Connectez le TTL-USB au deuxième connecteur de compteur.
Exportation de données
Au début, j'ai écrit le bot Telegram, mais Roskomnadzor a bloqué Telegram. J'ai dû abandonner cette décision pour ne pas démarrer le serveur proxy et ne pas faire basculer le bateau. L'utilisation de Blynk s'est avérée optimale (les développeurs intrépides ont du mal avec les verrous). Voici le
code QR du projet . Outre lui, le projet Cayenne dispose d'une application téléphonique.
L'envoi automatique vers Mosvodokanal n'est pas implémenté, car projet à but non lucratif, mais quelles sont nos années. Ou le vôtre. Je n'ai pas les moyens d'entretenir mon serveur et de «légitimer» la procédure d'envoi, mais vous demandez des amis, tout d'un coup ... Je serai heureux de votre aide et de vos pensées libres.
Les Moscovites envoient des témoignages par SMS, ce qui signifie qu'un serveur web suffit pour recevoir les données de Waterius et une page avec SMS (
github ). Les experts moscovites du programme Fiddler, qui utilisent l'application du service d'État de Moscou, devraient être intéressés par mon
script Python pour l' envoi de lectures d'eau.
Développement
L'un des principaux freins lors de la création d'un nouveau produit est le perfectionnisme, comme vous le savez. Il n'est pas nécessaire de créer une nouvelle fonction sans vérifier si les consommateurs en ont besoin. Le code simple est plus facile à développer.
Le chemin vers le perfectionnisme passe par
- Mise à niveau du micrologiciel ESP et Attiny sur Internet
- UPD2:
prise en charge du HTTPS ou du chiffrement - un serveur où l'utilisateur pouvait télécharger son script pour envoyer des relevés d'eau.
- en utilisant STM8L / MSP430 (ils sont plus économiques et plus de broches)
- UPD2:
contrôle visuel de la présence de contact avec les compteurs connectés - indication de la période d'envoi de l'email lettres
- UPD2:
prise en charge des compteurs pour les sorties Namur - capteur de fuite (UPD2: terminé lors de la réinitialisation)
- contrôle de grue
- support de compteur d'électricité
Remerciements
Merci à
Ivan Kovalenko et Ivan Ganzha pour leurs conseils en génie électrique, Aigul, E. Lapin pour la bonne approche de la vie et papa pour le fait que je peux non seulement programmer, mais aussi souder, et pour vous - pour votre attention!

Je serai heureux de toutes suggestions, pool de demandes et critiques!
Réchauffez le fer à souder!
Projet GithubUPD2 05/07/2019: Merci à tous ceux qui contribuent au projet!