Table des matières:

Économisez de l'eau et de l'argent avec le moniteur d'eau de douche : 15 étapes (avec photos)
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche : 15 étapes (avec photos)

Vidéo: Économisez de l'eau et de l'argent avec le moniteur d'eau de douche : 15 étapes (avec photos)

Vidéo: Économisez de l'eau et de l'argent avec le moniteur d'eau de douche : 15 étapes (avec photos)
Vidéo: Messi Compte sa liasse de billet 2024, Juillet
Anonim
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche
Économisez de l'eau et de l'argent avec le moniteur d'eau de douche

Qu'est-ce qui utilise le plus d'eau - un bain ou une douche ?

Je réfléchissais récemment à cette question et je me suis rendu compte que je ne sais pas vraiment combien d'eau est utilisée lorsque je prends une douche. Je sais que lorsque je suis sous la douche, parfois mon esprit vagabonde, pensant à une nouvelle idée de projet sympa ou essayant de décider quoi prendre pour le petit-déjeuner, tandis que l'eau jaillit dans les égouts. Il serait beaucoup plus facile de réduire ma consommation d'eau si je savais combien de litres j'utilisais à chaque fois !

J'ai fait quelques recherches et j'ai découvert que différentes pommes de douche peuvent utiliser de 9,5 litres (2,5 gallons) par minute à moins de 6 litres (1,6 gallons) par minute, si vous avez installé un réducteur de débit. Une très vieille douche pourrait utiliser encore plus d'eau.

J'ai décidé de concevoir et de construire un appareil qui afficherait le volume total d'eau utilisé par douche, le coût de l'eau et le débit. J'ai installé cet appareil depuis quelques semaines et c'est vraiment pratique d'avoir une lecture en direct de la quantité d'eau utilisée.

Dans ce Instructable, je vais vous expliquer comment j'ai construit cela. Bien sûr, vous n'êtes pas obligé de suivre exactement mes étapes ! Il est toujours bon d'utiliser les pièces qui traînent. J'ai inclus des liens vers toutes les pièces que j'ai utilisées, ou une pièce équivalente qui fonctionnera.

Fournitures

(Tous les prix en USD)

  • Capteur de débit - 3,87 $
  • Écran LCD - 2,29 $
  • Arduino Nano - 1,59 $
  • Convertisseur de boost – 1,88 $
  • Chargeur LiPo - 1,89 $
  • Interrupteur à bascule étanche - 0,93 $ (pas exactement celui que j'ai utilisé, mais cela devrait fonctionner)
  • Bouton poussoir étanche - 1,64 $
  • Entretoises, vis et écrous M3 - 6,99 $
  • 2x Jack 3,5 mm femelle - 2,86 $ ch.
  • Fiche mâle 3,5 mm - 1,48 $
  • Ensemble de câbles 3,5 mm 3' - 3,57 $
  • Assemblage de câble USB - 1,74 $
  • Raccord 1/2" NPS Femelle-Femelle - 1,88 $
  • Batterie LiPo 500mAh 3.7V - $3.91

Outils et fournitures communes

  • Fer à souder et soudure
  • Câble
  • Pinces coupantes
  • Pince à dénuder
  • Ruban adhésif double face
  • Tournevis cruciforme
  • Imprimante 3D (en option)

Étape 1: Imperméabilisation

Imperméabilisation
Imperméabilisation

L'aspect le plus difficile de ce projet est de rendre le tout étanche. Puisqu'il résidera dans une douche, il doit pouvoir survivre à une humidité extrême et aux éclaboussures occasionnelles. Environ 75 % du temps total consacré à ce projet a été consacré à cette partie.

À mon avis, il y a deux choix: concevoir un boîtier imprimé en 3D personnalisé ou essayer de le faire fonctionner avec un boîtier standard. Comme j'ai récemment eu ma propre imprimante 3D, j'ai décidé d'opter pour la première option.

Si vous n'avez pas accès à une imprimante 3D, voici quelques boîtiers standard que j'ai trouvés qui prétendent être étanches et qui fonctionneraient probablement. Veuillez noter que je n'ai acheté aucun de ces boîtiers, je ne garantis donc pas que tous les composants s'adapteront à l'intérieur !

Banggood - Boîte 100x68x50mm avec couvercle transparent - $5.35

Digikey - Boîte 130x80x70mm avec couvercle transparent - 11,65 $

Pour ce point, quand je me réfère au boîtier, je parle de mon imprimé en 3D.

Étape 2: Mon boîtier personnalisé imprimé en 3D

Mon boîtier personnalisé imprimé en 3D !
Mon boîtier personnalisé imprimé en 3D !
Mon boîtier personnalisé imprimé en 3D !
Mon boîtier personnalisé imprimé en 3D !
Mon boîtier personnalisé imprimé en 3D !
Mon boîtier personnalisé imprimé en 3D !

Après avoir travaillé dans Fusion 360 pendant plusieurs heures, j'ai créé ce boîtier. Il a trois découpes circulaires pour s'adapter à deux prises femelles 3,5 mm et un interrupteur à bascule. Le couvercle a un trou de 16 mm pour le bouton-poussoir momentané et une découpe rectangulaire pour l'écran, ainsi que les quatre trous de montage pour maintenir l'écran en place. Le couvercle est une pièce séparée et a une lèvre pour aider à empêcher la pénétration d'humidité à travers la couture. Les quatre trous sur les coins de la boîte doivent maintenir le couvercle avec des entretoises de 30 mm. Tous les trous de vis ont un diamètre de 3 mm, ce qui correspond à une vis M3.

Vous pouvez télécharger les fichiers STL depuis ma page Thingiverse. Il peut être imprimé sans radeaux ni supports, mais j'ai utilisé des supports juste pour être en sécurité. J'ai également utilisé un remplissage à 100%. Étant donné que les murs sont si fins, la réduction du pourcentage de remplissage ne change pas vraiment le temps d'impression total ou le matériau total, je l'ai donc maintenu à 100%.

Pour rendre l'écran visible, il pourrait soit faire saillie à travers une découpe dans le couvercle de l'enceinte, soit être placé derrière une fenêtre transparente. Étant donné que l'écran ne doit pas être exposé à l'humidité, nous sommes bloqués avec la deuxième option. Malheureusement, l'impression 3D avec du filament transparent n'en est qu'à ses balbutiements, il va donc falloir faire preuve d'un peu de créativité.

Ma solution était de créer une découpe rectangulaire dans le couvercle et de coller un morceau de plastique transparent à partir d'un emballage végétal. Cette technique peut être utilisée même si vous n'utilisez pas mon boîtier personnalisé; découpez simplement un rectangle avec un couteau tout usage ou un Dremel. Bien sûr, si vous utilisez un boîtier avec un couvercle transparent, ce n'est pas du tout nécessaire.

La meilleure source de plastique transparent que j'ai trouvée est l'emballage des produits. Habituellement, les épinards ou autres légumes à feuilles sont livrés dans de grands récipients en plastique transparent. Dans mon cas, j'ai utilisé l'emballage d'un "medley de poivre".

Je voulais un surplomb de 5 mm pour donner beaucoup de surface pour le collage, j'ai donc découpé un rectangle de 27x77 mm de plastique transparent. J'ai dû couper un peu les coins pour que les vis tiennent. J'ai injecté une ligne de superglue autour du périmètre de la découpe, puis j'ai placé le plastique transparent dessus. J'ai ajouté un peu plus de superglue autour du bord après juste pour m'assurer qu'il était scellé.

Astuce de pro: placez la pièce devant un petit ventilateur pendant que la colle sèche. Au fur et à mesure que la superglue sèche, elle a tendance à laisser un vil résidu blanc derrière, ce dont nous ne voulons certainement pas sur notre fenêtre transparente. J'ai utilisé un vieux ventilateur 12V à partir d'une alimentation d'ordinateur. J'ai laissé la colle reposer pendant 12 heures pour m'assurer qu'elle était complètement sèche.

Étape 3: Montage de l'écran LCD

Montage de l'écran LCD
Montage de l'écran LCD
Montage de l'écran LCD
Montage de l'écran LCD
Montage de l'écran LCD
Montage de l'écran LCD

Une fois que la fenêtre transparente a séché, l'écran LCD peut être monté. L'écran LCD est un écran 16x2 caractères très populaire, avec le "sac à dos" I²C pré-soudé à l'arrière. Je recommande fortement d'obtenir cet écran avec l'interface I²C. Le câblage de toutes les lignes parallèles est assez ennuyeux et introduit plus de risques d'erreurs - la version I²C n'a que deux fils pour l'alimentation et deux fils pour le signal.

J'ai utilisé quatre entretoises de 10 mm pour monter l'écran. Les entretoises ont chacune un filetage mâle à une extrémité et un filetage femelle à l'autre. J'ai mis le filetage mâle à travers les trous de l'écran LCD et j'ai serré un écrou M3 sur chacun. Ensuite, j'ai utilisé quatre vis M3 pour fixer les extrémités femelles des entretoises à travers le couvercle du boîtier. J'ai eu ce paquet d'entretoises qui a celles de 10 mm pour monter l'écran LCD et les plus longues pour maintenir le couvercle à la base. De plus, il y a des vis et des écrous M3, vous n'avez donc pas besoin d'acheter de matériel supplémentaire.

Assurez-vous que les écrous sont très serrés afin que lorsque vous serrez les vis, les entretoises ne tournent pas. Assurez-vous également de ne pas trop serrer les vis, sinon le couvercle en plastique pourrait se déformer et ne pas se fermer correctement.

La rangée de 16 broches d'en-tête sur l'écran LCD doit être en haut - assurez-vous de ne pas monter l'écran LCD à l'envers !

Étape 4: Montage du bouton momentané

Montage du bouton momentané
Montage du bouton momentané
Montage du bouton momentané
Montage du bouton momentané
Montage du bouton momentané
Montage du bouton momentané

J'ai décidé d'utiliser ce bouton chromé d'apparence malade sur le panneau avant. Je les ai utilisés dans des projets précédents et j'aime vraiment leur apparence. Ils sont censés être étanches et sont livrés avec un anneau en caoutchouc pour empêcher l'humidité de pénétrer dans l'enceinte à travers les filetages.

Cette étape est assez simple. Dévissez l'écrou, mais gardez l'anneau en caoutchouc. Insérez le bouton dans le trou du couvercle et serrez l'écrou par l'arrière. Évitez de trop serrer l'écrou, ou l'anneau en caoutchouc sera écrasé et ne remplira pas son rôle.

Étape 5: Circuit d'alimentation et de charge

Circuit d'alimentation et de charge
Circuit d'alimentation et de charge
Circuit d'alimentation et de charge
Circuit d'alimentation et de charge
Circuit d'alimentation et de charge
Circuit d'alimentation et de charge

Nous allons maintenant assembler les composants d'alimentation de la batterie. Cela comprend la batterie, l'interrupteur principal, la carte de surveillance/chargement de la batterie et le convertisseur de suralimentation.

La batterie que j'ai utilisée est une batterie lithium-ion monocellulaire de 3,7 V 1500 mAh. Celui que j'ai utilisé provient d'une manette Playstation cassée. N'importe quelle batterie Li-Ion ou LiPo à cellule unique fonctionnera, tant qu'elle s'insère dans votre boîtier. Ce type de batterie a tendance à être très fin et plat, vous pouvez donc probablement en utiliser une deux fois plus grosse que la mienne sans aucun problème. Une cellule 18650 fonctionnerait, mais elle ne rentrera pas dans mon boîtier personnalisé, vous devrez donc concevoir le vôtre ou utiliser un boîtier standard. Si possible, je recommande d'utiliser une batterie récupérée (comme je l'ai fait) car l'expédition des batteries coûte souvent cher !

La batterie doit d'abord être soudée à la carte de charge TP4056. Si vous le souhaitez, vous pouvez souder un connecteur JST RCY à la batterie et au chargeur pour plus de commodité (je l'ai fait), mais ce n'est pas nécessaire. Veillez à respecter la polarité correcte indiquée par les marquages sur la carte du chargeur, car la carte n'est pas protégée contre l'inversion de polarité de la batterie !

Ensuite, soudez un fil de la sortie positive du chargeur (située à côté du fil positif de la batterie) à l'entrée positive du convertisseur élévateur. Puis soudez un fil de la sortie négative (située à côté du fil négatif de la batterie) à la broche commune (centrale) de l'interrupteur à bascule principal. Enfin, soudez un fil de la broche normalement ouverte du commutateur à l'entrée négative du convertisseur boost. Si vous connectez un multimètre à la sortie du convertisseur élévateur et activez l'interrupteur principal, une tension doit s'afficher.

Étant donné que notre Arduino, notre écran LCD et notre capteur de débit ont tous besoin de 5 V, nous devons régler la sortie du convertisseur boost sur 5 V. Ceci est réalisé en tournant le bouton sur le potentiomètre avec un petit tournevis. Avec l'interrupteur principal allumé, la batterie connectée et le multimètre connecté à la sortie du convertisseur boost, tournez lentement le potentiomètre jusqu'à ce que la sortie indique 5V. Il sera difficile d'obtenir une lecture d'exactement 5.000V mais visez une tension entre 4.9V et 5.1V.

Étant donné que mon boîtier personnalisé est maintenu fermé par plusieurs vis, nous ne voulons pas avoir à ouvrir le boîtier à chaque fois qu'il doit être chargé. J'ai utilisé une prise casque 3,5 mm pour cela. Le connecteur exact que j'ai utilisé est celui de Digikey (c'est pour cela que les découpes de mon boîtier sont dimensionnées), mais celui de Banggood devrait également fonctionner.

Tout d'abord, j'ai inséré le connecteur dans le trou le plus bas du boîtier. Étant donné qu'il sera débranché la plupart du temps, et donc sensible à la pénétration d'humidité, il est préférable de le monter sur le fond pour empêcher l'eau de s'égoutter à l'intérieur. Après avoir installé la rondelle frein et serré l'écrou, j'ai soudé deux fils aux languettes "pointe" et "manche" du connecteur. Le brochage du connecteur est montré dans l'une de mes images annotées. J'ai soudé l'autre extrémité du fil "manchon" à l'entrée négative du chargeur, à côté du port micro USB. Enfin, j'ai soudé le fil "pointe" au plot +5V, de l'autre côté du port USB. Le port USB du chargeur ne sera pas utilisé, car il serait difficile de faire pénétrer le port USB dans le boîtier sans laisser entrer l'humidité.

Étape 6: Câble de charge

Câble de charge
Câble de charge
Câble de charge
Câble de charge
Câble de charge
Câble de charge

Étant donné que nous utilisons une prise audio de 3,5 mm comme port de charge, nous devons créer un câble adaptateur doté d'une prise mâle de 3,5 mm à une extrémité et d'une prise USB A à l'autre extrémité. Cela nous permettra d'utiliser n'importe quel chargeur d'appareil mobile générique (comme un chargeur iPhone) pour charger cet appareil.

Vous pouvez acheter un ensemble de câbles USB avec un connecteur USB A à une extrémité et des fils étamés à l'autre extrémité, mais si vous êtes comme moi, vous avez probablement une douzaine de câbles USB aléatoires dont vous n'avez pas besoin. Plutôt que d'acheter un ensemble de câbles USB, je viens de recevoir un câble micro USB vers USB A dont je n'avais pas besoin et j'ai coupé le connecteur micro USB.

Ensuite, j'ai retiré la gaine blanche du câble pour ne révéler que deux fils à l'intérieur: un fil rouge et un fil noir. Certains câbles USB auront quatre fils: rouge, noir, vert et blanc. Le vert et le blanc sont pour le transfert de données et peuvent être ignorés. Dénudez l'isolant des fils rouge et noir uniquement.

Ensuite, vous aurez besoin d'une prise mâle de 3,5 mm. J'ai utilisé celui-ci de Banggood. Soudez le fil rouge du câble USB à la languette du milieu (qui est la pointe du connecteur) et le fil noir à la languette à manches longues. Voir mes photos pour plus de précisions.

Je recommande de toujours brancher la prise 3,5 mm avant la prise USB, car le processus de branchement du câble pourrait provoquer un court-circuit de la prise à travers la prise métallique.

Étape 7: À propos du capteur de débit

À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit
À propos du capteur de débit

J'ai acheté ce capteur de débit chez Banggood pour 3,87 $. Avant de l'utiliser, j'ai décidé d'étudier son fonctionnement.

Le design est étonnamment simple et ingénieux. L'électronique est complètement étanche à l'eau. Il y a une hélice à rotation libre qui tourne plus lentement ou plus vite en fonction du débit. À un moment donné sur l'hélice se trouve un aimant. À l'extérieur du capteur se trouve un petit compartiment qui contient un petit PCB avec deux composants: une résistance et un capteur à effet Hall. Chaque fois que l'aimant passe devant le capteur à effet Hall, il bascule entre haut et bas. En d'autres termes, il bascule entre 5V et 0V à chaque rotation de l'hélice.

Pour lire le capteur, nous appliquons +5V au fil rouge, négatif au fil noir, et lisons le signal numérique du fil jaune. Sur la photo de mon oscilloscope, vous pouvez voir comment le signal change lorsque le flux est activé. Au début, le signal est constamment à zéro volt. Lorsque le flux démarre, la fréquence des impulsions augmente rapidement et atteint un état stable.

Selon la fiche technique, le capteur délivre 450 impulsions par litre. Ce sera important plus tard lorsque nous écrirons le logiciel.

Étape 8: Câblage du capteur de débit

Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit
Câblage du capteur de débit

Le capteur de débit est livré avec un connecteur JST-XH à 3 broches. Ce n'est pas idéal car les fils sont trop courts et le connecteur a des contacts exposés qui peuvent facilement être court-circuités par des gouttelettes d'eau parasites. J'ai commandé cet ensemble de câbles de prise audio 3,5 mm chez Digikey. Il mesure 3 pi de long, ce qui est la longueur parfaite, et il a des fils étamés, ce qui le rend facile à souder. Je ne recommande pas d'essayer d'utiliser un vieux cordon de casque, car ceux-ci ont tendance à avoir un fil émaillé très fin, qui est presque impossible à souder.

Le capteur de débit a un couvercle en plastique, maintenu par deux vis cruciformes. Retirez simplement ces vis et retirez le circuit imprimé. Il ne tient pas avec de la colle, il est juste maintenu en place avec le couvercle en plastique. Ensuite, dessoudez les trois fils en les chauffant avec un fer à souder et en les soulevant, un à la fois.

Ensuite, soudez le câble audio 3,5 mm aux pastilles. Je suggère de faire correspondre les couleurs comme je l'ai fait. Cette configuration a +5V sur la pointe, le signal sur l'anneau et la masse sur le manchon. Il s'agit de la même configuration utilisée pour le port de charge, à partir de l'étape 6. Si vous branchez accidentellement le chargeur dans le port du capteur, ou vice versa, l'appareil ne sera pas endommagé.

Étape 9: Installation du capteur de débit

Installation du capteur de débit
Installation du capteur de débit
Installation du capteur de débit
Installation du capteur de débit
Installation du capteur de débit
Installation du capteur de débit

Jusqu'à présent, tout notre travail s'est déroulé en atelier. Mais maintenant, il est temps d'aller aux toilettes !

Tout d'abord, j'ai enlevé le pommeau de douche. Cela a révélé un petit tuyau dépassant du mur, avec un filetage mâle NPS de 1/2 . Idéalement, notre capteur de débit a exactement la même taille de filetage! Le seul problème est que le capteur a un filetage mâle aux deux extrémités, nous allons donc besoin d'un raccord femelle-femelle.

Dans ma quincaillerie locale, il y avait des raccords 1/2 en laiton, fer et PVC. Le PVC était le moins cher, alors j'ai eu celui-là. Bien qu'avec le recul, ceux en laiton ou en acier auraient été plus beaux.

Une fois que vous avez le raccord, vissez simplement le capteur de débit dans le raccord, puis vissez l'autre extrémité du raccord sur le tuyau. Le capteur de débit a une flèche pour indiquer la direction prévue du débit. Assurez-vous de ne pas l'installer à l'envers, sinon les mesures pourraient être inexactes. Enfin, vissez la pomme de douche sur l'extrémité du capteur de débit.

Bien sûr, je suppose que votre douche utilise un filetage NPS 1/2 , comme le mien. Si ce n'est pas le cas, vous devrez vous procurer des adaptateurs supplémentaires.

Conseil de pro: ajoutez du ruban de plomberie en téflon à tous les filetages avant de visser les pièces ensemble pour éviter les fuites. Je n'en avais pas sous la main, mais je prévois de l'ajouter dans un proche avenir.

Étape 10: Arduino & Perfboard

Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard

Comme nous allons devoir faire beaucoup de câblage, c'est une bonne idée d'avoir un morceau de panneau perforé pour rendre les choses un peu plus ordonnées. J'ai coupé un rectangle de perfboard d'environ 1" par 2". Ensuite, j'ai placé mon Arduino Nano au milieu de la carte et j'ai marqué l'endroit où les broches d'en-tête sont passées. Ensuite, j'ai coupé deux longueurs d'en-têtes femelles, chacune de 15 broches de long. Je les ai soudés sur le perfboard où j'ai précédemment marqué. Cela nous permettra de retirer l'Arduino pour la programmation.

Conseil de pro: marquez l'orientation du port USB de l'Arduino afin de toujours le brancher sur le perfboard de la même manière.

Étape 11: Tout câbler

Câblage de tout
Câblage de tout
Câblage de tout
Câblage de tout
Câblage de tout
Câblage de tout

Il est maintenant temps de tout souder ensemble ! J'ai inclus un schéma de câblage complet, que vous pouvez suivre, ou voir mes étapes écrites ci-dessous si vous préférez une approche plus guidée.

Tout d'abord, j'ai coupé des broches d'en-tête mâles et les ai soudées sur le panneau perforé sur les rails +5V et au sol. Ensuite, j'ai soudé deux autres broches d'en-tête connectées aux broches A4 et A5 de l'Arduino. Ces en-têtes nous permettront de connecter l'écran LCD à l'aide de cavaliers femelle-femelle.

Ensuite, j'ai soudé une paire de fils de la sortie du convertisseur boost aux rails +5V et de masse. Cela alimentera l'Arduino, l'écran LCD et le capteur de débit.

Après cela, j'ai coupé deux fils et les ai connectés aux bornes du bouton poussoir. J'ai soudé un fil au rail de masse et l'autre à la broche numérique 3.

La dernière pièce à souder est le capteur de débit. Comme nous avons déjà connecté une prise 3,5 mm au capteur, il nous suffit de souder une prise femelle 3,5 mm. J'ai d'abord soudé trois fils - un à chacune des languettes de la prise. Ensuite, j'ai inséré le cric à travers le boîtier et l'ai fixé en place avec un écrou. Enfin, j'ai soudé le manchon à la terre, la pointe à +5V et la bague à la broche numérique 2.

J'ai choisi d'utiliser les broches numériques 2 et 3 pour le bouton et le capteur de débit car ce sont des broches d'interruption matérielle. Cela rendra beaucoup plus facile l'écriture du code.

Maintenant, nous avons fini de souder, mais nous devons encore brancher l'écran LCD. Puisque nous avons soudé les embases, nous n'avons besoin que de quatre cavaliers femelle-femelle. Connectez la broche "Vcc" à +5V, la broche "Gnd" à la masse, la broche "SCL" à A5 et la broche "SDA" à A4. Pour que l'écran LCD rentre dans le boîtier, nous devrons plier les broches de l'en-tête vers l'arrière. Plier les goupilles plusieurs fois dans les deux sens fatiguera le métal et provoquera la rupture des goupilles. Je recommande donc de ne les plier qu'une seule fois et de le faire avec précaution.

Le câblage est maintenant terminé !

Étape 12: Programmation

La programmation
La programmation

Maintenant que le matériel est connecté, nous pouvons programmer l'Arduino.

Je veux que le programme ait les caractéristiques suivantes:

  • Sur la première ligne, affichez un décompte mis à jour rapidement du nombre total de litres
  • Sur la deuxième ligne, affichez le coût total de l'eau ou le débit
  • Lorsque la douche est en marche, le bouton poussoir bascule entre l'affichage du coût ou du débit
  • Lorsque la douche ne fonctionne pas, le bouton-poussoir doit effacer toutes les données et réinitialiser l'écran
  • Le capteur doit être lu à l'aide d'une routine d'interruption pour éviter les méthodes d'interrogation grossières
  • Lors de la mise à jour de l'écran, nous ne devons mettre à jour que les valeurs qui ont changé, plutôt que d'écraser tout l'écran à chaque fois (cela provoquerait un scintillement notable)

Le programme suit une structure simple. En utilisant la fonction millis(), nous pouvons créer des délais qui n'arrêtent pas réellement l'exécution du programme. Voir ce tutoriel pour un exemple de clignotement d'une LED sans utiliser la fonction delay().

La fonction millis () renvoie le nombre de millisecondes depuis la mise sous tension de l'Arduino. En créant une variable " previousMillis " et en soustrayant Millis() - previousMillis(), nous pouvons voir le temps écoulé depuis que previousMillis a été mis à jour.

Si nous voulons que quelque chose se passe une par seconde, nous pouvons utiliser le bloc de code suivant:

if((millis() - précédentMillis) >= 1000){

précédentMillis = millis(); toggleLED(); }

Ceci vérifie si la différence entre millis() (l'heure actuelle) et previousMillis (la dernière fois) est supérieure ou égale à 1000 millisecondes. Si c'est le cas, la première chose que nous faisons est de définir previousMillis égal à l'heure actuelle. Ensuite, nous exécutons toutes les étapes supplémentaires que nous voulons. Dans cet exemple, nous basculons une LED. Ensuite, nous sortons de ce bloc de code et terminons le reste de la fonction loop(), avant de revenir au début et de tout répéter.

L'avantage d'utiliser cette méthode par rapport à la simple fonction delay() est que delay() place un intervalle de temps entre les instructions, mais ne tient pas compte du temps qu'il faut pour exécuter les autres instructions dans la fonction loop(). Si vous faites quelque chose qui prend plus de temps que de simplement faire clignoter une LED, comme la mise à jour d'un écran LCD, le temps que cela prend n'est pas négligeable, et après quelques cycles, il s'additionnera. Si vous mettez à jour l'écran LCD sur une horloge, il deviendrait rapidement inexact et prendrait du retard.

Alors maintenant que nous comprenons la structure globale du programme, il est temps d'insérer les instructions. Plutôt que d'expliquer chaque ligne de code ici, je vous suggère de lire d'abord l'organigramme ci-joint, qui donne un aperçu de haut niveau de ce que fait le programme.

Une fois que vous avez vu l'organigramme, jetez un œil au code Arduino joint. J'ai commenté presque chaque ligne pour préciser ce que fait chaque ligne.

Il y a quelques parties dans le code que vous pourriez vouloir changer. Le plus important est le coût par litre. Dans ma ville, l'eau coûte 0,2523 le litre. Recherchez la ligne suivante et modifiez cette valeur pour qu'elle corresponde au coût de votre lieu de résidence:

const float COST_PER_LITRE = 0.2523; // coût par litre, en cents, du site Web de la ville

Si vous préférez utiliser des gallons plutôt que des litres, remplacez toutes les lignes "LCD.print()" faisant référence à "L" ou "L/s" par "G" ou "G/s". Supprimez ensuite la ligne suivante:

const float CONVERSION = 450,0; // garder ceci sans commentaire pour les litres

… et décommentez cette ligne:

const float CONVERSION = 1703.0; // Décommentez ceci et supprimez la ligne ci-dessus pour les gallons

Il y a une autre bizarrerie que vous avez peut-être remarquée dans mon code. Le jeu de caractères par défaut n'inclut pas le caractère "¢", et je ne voulais pas utiliser de dollars, car le coût s'afficherait comme "0,01 $" ou moins la plupart du temps. Par conséquent, j'ai été obligé de créer un personnage personnalisé. Le tableau d'octets suivant est utilisé pour représenter ce symbole:

octet cent_sign = { B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100 };

Après avoir créé ce tableau, le caractère spécial doit être "créé" et stocké.

lcd.createChar(0, cent_sign);

Une fois cela fait, pour imprimer le caractère personnalisé, nous utilisons la ligne suivante:

lcd.write(octet(0)); // affiche le signe cents (¢)

L'écran LCD peut avoir jusqu'à 8 caractères personnalisés. Plus d'informations à ce sujet sont ici. Je suis également tombé sur cet outil en ligne utile qui vous permet de dessiner le caractère personnalisé à l'aide d'une interface graphique et qui générera automatiquement le tableau d'octets personnalisé.

Étape 13: Fermeture du couvercle

Fermeture du couvercle
Fermeture du couvercle
Fermeture du couvercle
Fermeture du couvercle
Fermeture du couvercle
Fermeture du couvercle

Enfin, nous avons presque fini!

Il est temps de mettre toute l'électronique dans le boîtier et d'espérer que le couvercle se ferme. Mais d'abord, nous devons attacher les entretoises de 30 mm. Le paquet d'entretoises que j'ai acheté n'en comprend pas qui sont aussi longs, mais il est livré avec des 20 mm et 10 mm qui peuvent être attachés ensemble. J'ai vissé quatre entretoises dans les trous au bas du boîtier avec quatre vis M3 (voir images 1 et 2). Assurez-vous de bien les serrer, mais pas trop, sinon vous risquez de casser le boîtier en plastique.

Maintenant, nous pouvons installer toute l'électronique à l'intérieur. J'ai attaché le chargeur et le convertisseur boost au couvercle avec du ruban adhésif double face, comme on le voit sur la troisième image. Ensuite, j'ai enroulé du ruban isolant autour du métal exposé sur les deux prises jack 3,5 mm, juste pour m'assurer que rien ne soit court-circuité en contactant les connecteurs.

J'ai pu adapter l'Arduino en le plaçant sur le côté, dans le coin inférieur gauche, avec son port USB orienté vers la droite. J'ai utilisé plus de ruban adhésif double face pour fixer la batterie au bas du boîtier sous l'écran LCD.

Enfin, une fois que tout est coincé plus ou moins solidement dans la boîte, le couvercle peut être vissé avec quatre autres vis M3.

Étape 14: Tester

Essai
Essai
Essai
Essai
Essai
Essai
Essai
Essai

Branchez d'abord le connecteur 3,5 mm du capteur de débit. Je recommande de le faire avant d'allumer l'appareil, car il est possible que la fiche établisse une connexion indésirable lors de son insertion.

Ensuite, allumez l'interrupteur d'alimentation principal. Bien qu'il n'y ait pas d'eau qui coule, le bouton du panneau avant ne devrait rien faire d'autre que d'effacer le total et d'effacer l'écran. Étant donné que le total sera zéro par défaut, le bouton ne semblera rien faire pour le moment.

Si vous allumez la douche, le total devrait commencer à augmenter. Par défaut, le coût est affiché. Si vous appuyez sur le bouton du panneau avant, le débit sera affiché sur la ligne du bas. Appuyez sur le bouton du panneau avant pour basculer entre l'affichage du débit et l'affichage du coût, tant que la douche fonctionne. Une fois que la douche s'arrête, appuyez sur le bouton du panneau avant pour réinitialiser les mesures et effacer l'écran.

Montage

La façon dont vous choisissez de monter l'appareil dépend de la disposition de votre douche. Certaines douches peuvent avoir un rebord suffisamment proche de la pomme de douche pour que vous puissiez simplement y placer l'appareil. Dans ma douche, j'ai un panier attaché avec des ventouses dans lesquelles j'ai placé l'appareil. Si vous n'avez pas le luxe d'un rebord ou d'un panier, vous pouvez essayer de tenir l'appareil au mur avec une ventouse double face. Cela ne fonctionnera que si vous utilisez un boîtier standard qui a un support lisse, ou si vous avez imprimé mon boîtier personnalisé sur une imprimante avec une plaque de verre. Si votre boîtier a un support rugueux (comme le mien), vous pouvez essayer d'utiliser du ruban adhésif double face, bien que cela puisse laisser des résidus sur le mur de votre douche si vous essayez de retirer l'appareil.

Dépannage

L'écran est allumé, mais le rétroéclairage est éteint - assurez-vous que le cavalier est installé sur les deux broches sur le côté du module I² C

L'écran est vide, avec le rétroéclairage allumé - vérifiez que l'adresse I²C est correcte en exécutant le scanner I²C

L'écran est allumé, mais les valeurs restent à zéro - vérifiez qu'il y a un signal provenant du capteur en mesurant la tension sur la broche 2. S'il n'y a pas de signal, vérifiez que le capteur est correctement connecté.

L'écran est vide avec le rétroéclairage éteint - vérifiez que le voyant d'alimentation de l'Arduino est allumé et vérifiez que l'écran est sous tension

L'écran s'allume brièvement, puis tout s'arrête - vous avez probablement réglé la tension du convertisseur boost trop élevée (les composants ne peuvent pas supporter plus de 5V)

L'appareil fonctionne, mais les valeurs sont erronées - assurez-vous que le capteur de débit que vous utilisez a le même facteur de conversion de 450 impulsions par litre. Différents capteurs peuvent avoir des valeurs différentes.

Étape 15: commencez maintenant à économiser l'eau

Améliorations

La version actuelle du logiciel fonctionne assez bien, mais j'aimerais éventuellement ajouter la possibilité d'avoir différents utilisateurs (membres de la famille, colocataires, etc.) L'appareil stockerait les statistiques de chaque personne (eau totale et nombre total de douches) pour afficher une consommation moyenne d'eau pour chaque personne. Cela pourrait encourager les gens à se battre pour utiliser le moins d'eau possible.

Ce serait également cool d'avoir un moyen d'exporter les données à afficher dans une feuille de calcul, afin qu'elles puissent être représentées graphiquement. Ensuite, vous pouvez voir à quelles périodes de l'année les gens ont des douches plus fréquentes et plus longues.

Ces fonctionnalités nécessiteraient toutes l'utilisation de l'EEPROM - la mémoire non volatile intégrée de l'Arduino. Cela permettrait de conserver les données même après la mise hors tension de l'appareil.

Une autre fonctionnalité utile serait un indicateur de batterie. À l'heure actuelle, la seule indication que l'appareil doit être rechargé est lorsque la carte du gestionnaire de batterie coupe l'alimentation. Il serait facile de brancher une entrée analogique supplémentaire pour mesurer la tension de la batterie. Un diviseur de tension ne serait même pas nécessaire puisque la tension de la batterie est toujours inférieure à 5V.

Certaines de ces idées sont à la limite du fluage de fonctionnalités, c'est pourquoi je n'ai pas développé le logiciel plus avant.

Le reste dépend de toi!

Concours de capteurs
Concours de capteurs
Concours de capteurs
Concours de capteurs

Premier prix du concours Capteurs

Conseillé: