Taula de continguts:

Estalvieu aigua i diners amb el monitor d'aigua de la dutxa: 15 passos (amb imatges)
Estalvieu aigua i diners amb el monitor d'aigua de la dutxa: 15 passos (amb imatges)

Vídeo: Estalvieu aigua i diners amb el monitor d'aigua de la dutxa: 15 passos (amb imatges)

Vídeo: Estalvieu aigua i diners amb el monitor d'aigua de la dutxa: 15 passos (amb imatges)
Vídeo: НЕ УБОЮСЬ Я ЗЛА / I Will Fear no Evil 2024, Juliol
Anonim
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa

Quina utilitza més aigua: un bany o una dutxa?

Fa poc pensava en aquesta pregunta i em vaig adonar que en realitat no sé quanta aigua s’utilitza quan em dutxo. Sé que quan estic a la dutxa, de vegades la meva ment vaga, pensant en una idea genial de nous projectes o intentant decidir què esmorzar, mentre l’aigua només brolla pel desguàs. Seria molt més fàcil reduir el meu consum d’aigua si en realitat sabés quants litres feia servir cada vegada!

Vaig fer una mica d’investigació i vaig trobar que diferents dutxes poden utilitzar-se des de 9,5 litres (2,5 galons) per minut fins a menys de 6 litres (1,6 galons) per minut, si teniu instal·lat un restrictor de cabal. Una dutxa molt antiga podria fer servir encara més aigua.

Vaig decidir dissenyar i construir un dispositiu que mostri el volum total d’aigua que s’utilitza per dutxa, el cost de l’aigua i el cabal. Tinc instal·lat aquest dispositiu durant unes setmanes i és molt útil tenir una lectura en temps real de la quantitat d’aigua que s’utilitza.

En aquest instructiu, explicaré com he creat això. Per descomptat, no cal que seguiu exactament els meus passos. Sempre és bo fer ús de peces que teniu al voltant. He inclòs enllaços a totes les parts que he fet servir o una part equivalent que funcionarà.

Subministraments

(Tots els preus en USD)

  • Sensor de cabal: 3,87 dòlars
  • Pantalla LCD: 2,29 dòlars
  • Arduino Nano: 1,59 dòlars
  • Boost Converter: 1,88 dòlars
  • Carregador LiPo: 1,89 dòlars
  • Interruptor de palanca impermeable: 0,93 dòlars (no és exactament el que he utilitzat, però hauria de funcionar)
  • Polsador impermeable: 1,64 dòlars
  • Distàncies, cargols i femelles M3: 6,99 dòlars
  • Jack femella de 3,5 mm de 2X: 2,86 dòlars.
  • Endoll masculí de 3,5 mm: 1,48 dòlars
  • Muntatge de cable de 3 mm de 3,5 mm: 3,57 dòlars
  • Muntatge de cable USB: 1,74 dòlars
  • Acoblament femella a dona NPS de 1/2 ": 1,88 dòlars
  • Bateria LiPo de 500 mAh 3,7 V: 3,91 dòlars

Eines i subministraments comuns

  • Soldador i soldador
  • Filferro
  • Talladors de filferro
  • Decapants de filferro
  • Cinta de doble cara
  • Tornavís Phillips
  • Impressora 3D (opcional)

Pas 1: Impermeabilització

Impermeabilització
Impermeabilització

L’aspecte més difícil d’aquest projecte és fer que tot sigui impermeable. Com que resideix en una dutxa, ha de poder sobreviure a la humitat extrema i a les esquitxades ocasionals. Aproximadament el 75% del temps total dedicat a aquest projecte esbrinava aquesta part.

Segons la meva manera de veure-ho, hi ha dues opcions: dissenyar un recinte imprès 3D personalitzat o intentar que funcioni amb un recinte fora del prestatge. Com que recentment vaig aconseguir la meva pròpia impressora 3D, vaig decidir anar amb la primera opció.

Si no teniu accés a una impressora 3D, aquí teniu alguns allotjaments que heu comprovat que són impermeables i que probablement funcionarien. Tingueu en compte que no he comprat cap d'aquests allotjaments, de manera que no garanteixo que tots els components hi cabin.

Banggood: caixa de 100x68x50mm amb tapa transparent: 5,35 $

Digikey: caixa de 130x80x70mm amb tapa transparent: 11,65 $

A partir d’aquest moment, quan faig referència al recinte, parlo del meu imprès en 3D.

Pas 2: el meu recinte imprès 3D personalitzat

El meu recinte imprès en 3D personalitzat
El meu recinte imprès en 3D personalitzat
El meu recinte imprès en 3D personalitzat
El meu recinte imprès en 3D personalitzat
El meu recinte imprès en 3D personalitzat
El meu recinte imprès en 3D personalitzat

Després de treballar diverses hores a Fusion 360, vaig arribar a aquest recinte. Té tres retalls circulars per adaptar-se a dues preses femelles de 3,5 mm i un interruptor de palanca. La tapa té un forat de 16 mm per al polsador momentani i un retall rectangular per a la pantalla, així com els quatre forats de muntatge per mantenir la pantalla al seu lloc. La tapa és una part independent i té un llavi per ajudar a prevenir l’entrada d’humitat a través de la costura. Els quatre forats de les cantonades de la caixa permeten mantenir la tapa amb separadors de 30 mm. Tots els forats del cargol tenen un diàmetre de 3 mm, que s’adapta a un cargol M3.

Podeu descarregar els fitxers STL des de la meva pàgina de Thingiverse. Es pot imprimir sense basses ni suports, però he utilitzat suports només per estar segur. També he utilitzat un 100% de farciment. Com que les parets són tan fines, reduir el percentatge d’ompliment no canvia realment el temps total d’impressió ni el material total, de manera que l’he mantingut al 100%.

Per fer visible la pantalla, pot sobresortir a través d’un retall a la tapa del recinte o col·locar-se darrere d’una finestra transparent. Com que la pantalla no s'ha d'exposar a la humitat, ens queda la segona opció. Malauradament, la impressió 3D amb filament transparent encara està en fase inicial, de manera que haurem de ser una mica creatius.

La meva solució era crear un retall rectangular a la tapa i enganxar en un tros de plàstic transparent d’alguns envasos vegetals. Aquesta tècnica es pot utilitzar fins i tot si no utilitzeu el meu recinte personalitzat; simplement retalleu un rectangle amb un ganivet utilitzat o un Dremel. Per descomptat, si utilitzeu un recinte amb una tapa transparent, no és necessari.

La millor font de plàstic transparent que he trobat és produir envasos. Normalment els espinacs o altres verdures de fulla es presenten en grans envasos de plàstic transparent. En el meu cas, he fet servir l’envàs d’un “pebrot”.

Volia un voladís de 5 mm per donar molta superfície per enganxar, així que vaig retallar un rectangle de 27x77 mm de plàstic transparent. Vaig haver de retallar una mica les cantonades perquè quedessin els cargols. Vaig escampar una línia de superglue al voltant del perímetre de la retallada i després vaig col·locar-hi el plàstic transparent. Vaig afegir una mica més de superglue al voltant de la vora després només per assegurar-me que estigués segellada.

Pro-Tip: Col·loqueu la peça davant d’un petit ventilador mentre s’assequi la cola. A mesura que s’asseca la superglua, tendeix a deixar enrere un vil residu blanc, que segur que no volem a la nostra finestra transparent. He utilitzat un vell ventilador de 12V provinent d’una font d’alimentació per ordinador. Vaig deixar reposar la cola durant 12 hores per assegurar-me que estigués completament seca.

Pas 3: muntatge de la pantalla LCD

Muntatge de la pantalla LCD
Muntatge de la pantalla LCD
Muntatge de la pantalla LCD
Muntatge de la pantalla LCD
Muntatge de la pantalla LCD
Muntatge de la pantalla LCD

Un cop s'ha assecat la finestra transparent, es pot muntar la pantalla LCD. La pantalla LCD és una pantalla de 16x2 caràcters molt popular, amb la "motxilla" I²C prèviament soldada a la part posterior. Us recomano obtenir aquesta pantalla amb la interfície I²C. El cablejat de totes les línies paral·leles és força molest i presenta més possibilitats d’errors: la versió I²C només té dos cables per alimentar i dos cables per al senyal.

Vaig utilitzar quatre separadors de 10 mm per muntar la pantalla. Cadascun dels separadors té un fil mascle en un extrem i un fil femella en l’altre. Vaig posar el fil mascle pels forats de la pantalla LCD i vaig estrènyer una femella M3 a cadascun. Després vaig utilitzar quatre cargols M3 per fixar els extrems femelles dels separadors a través de la tapa del recinte. Tinc aquest paquet de separadors que té els de 10 mm per muntar la pantalla LCD i els més llargs per mantenir la tapa a la base. A més, hi ha cargols i femelles M3, de manera que no cal comprar cap maquinari addicional.

Assegureu-vos que les femelles estan molt ajustades de manera que quan estrenyiu els cargols, els separadors no giren. A més, assegureu-vos de no estrènyer massa els cargols, ja que la tapa de plàstic es podria deformar i no segellar correctament.

La fila de 16 pins de capçalera de la pantalla LCD hauria de ser a la part superior; assegureu-vos de no muntar-la al revés.

Pas 4: muntatge del botó momentani

Muntatge del botó momentani
Muntatge del botó momentani
Muntatge del botó momentani
Muntatge del botó momentani
Muntatge del botó momentani
Muntatge del botó momentani

Vaig decidir utilitzar aquest botó crom d’aspecte malalt al panell frontal. Els he utilitzat en projectes anteriors i m’agrada molt la seva aparença. Se suposa que són impermeables i vénen amb un anell de goma per evitar que la humitat entri al recinte a través dels fils.

Aquest pas és bastant senzill. Desfeu la femella, però mantingueu l'anell de goma posat. Introduïu el botó pel forat de la tapa i estrenyiu la femella per la part posterior. Eviteu estrènyer excessivament la femella, ja que l'anell de goma es triturarà i no servirà per al seu propòsit.

Pas 5: Circuit de potència i càrrega

Circuit de potència i càrrega
Circuit de potència i càrrega
Circuit de potència i càrrega
Circuit de potència i càrrega
Circuit de potència i càrrega
Circuit de potència i càrrega

Ara reunirem els components de la bateria. Això inclou la bateria, l’interruptor mestre, la placa de control / càrrega de la bateria i el convertidor d’augment.

La bateria que he fet servir és una bateria de ions de liti de 3,7 V de 1500 mAh d’una sola cèl·lula. El particular que vaig fer servir va ser extret d’un controlador de Playstation trencat. Qualsevol bateria Li-Ion o LiPo d’una sola cèl·lula funcionarà sempre que s’adapti al vostre armari. Aquest tipus de bateria tendeix a ser molt fina i plana, de manera que probablement en podríeu fer servir dues vegades més gran que la meva sense problemes. Una cel·la 18650 funcionaria, però no s’adapta al meu recinte personalitzat, de manera que haureu de dissenyar el vostre propi o utilitzar un recinte de prestatge. Si és possible, recomano fer servir una bateria recuperada (com he fet jo), ja que l’enviament de bateries sol ser car.

La bateria s’ha de soldar primer a la placa de càrrega del TP4056. Si voleu, podeu soldar un connector JST RCY a la bateria i al carregador per comoditat (ho he fet), però no és necessari. Assegureu-vos d’observar la polaritat correcta tal com s’indica a les marques de la placa del carregador, ja que la placa no està protegida contra la polaritat inversa de la bateria.

A continuació, soldeu un cable des de la sortida positiva del carregador (situat al costat del cable positiu de la bateria) fins a l’entrada positiva del convertidor d’augment. A continuació, soldeu un cable des de la sortida negativa (situada al costat del cable negatiu de la bateria) fins al pin (central) comú del commutador principal. Finalment, soldeu un cable des del pin normalment obert del commutador fins a l’entrada negativa del convertidor d’impulsió. Si connecteu un multímetre a la sortida del convertidor d’augment i activeu l’interruptor mestre, s’hauria de mostrar una tensió.

Com que el nostre Arduino, la pantalla LCD i el sensor de cabal necessiten 5V, hem de configurar la sortida del convertidor d’augment a 5V. Això s’aconsegueix girant el pom del potenciòmetre amb un petit tornavís. Amb l’interruptor mestre engegat, la bateria connectada i el multímetre connectat a la sortida del convertidor d’impulsió, gireu lentament el potenciòmetre fins que la sortida llegeixi 5V. Serà difícil obtenir una lectura exacta de 5.000V, però busqueu una tensió entre 4.9V i 5.1V.

Com que el meu recinte personalitzat es manté tancat amb diversos cargols, no volem haver d’obrir la funda cada cop que s’hagi de carregar. Vaig fer servir un connector per a auriculars de 3,5 mm. El connector exacte que he fet servir és aquest de Digikey (per a això es dimensionen els retalls del meu recinte), però aquest de Banggood també hauria de funcionar.

En primer lloc, he introduït el connector al forat més baix de la caixa. Com que es desconnectarà la major part del temps i, per tant, serà susceptible a l’entrada d’humitat, el millor és muntar-lo a la part inferior per evitar que l’aigua raja a l’interior. Després d’instal·lar la safata de seguretat i d’estrenyre la femella, vaig soldar dos cables a les pestanyes “punta” i “màniga” del connector. El pinout del connector es mostra en una de les meves imatges anotades. Vaig soldar l'altre extrem del cable "màniga" a l'entrada negativa del carregador, al costat del port micro USB. Per últim, he soldat el cable "punta" al coixinet de + 5V, a l'altra banda del port USB. El port USB del carregador no s’utilitzarà, ja que seria difícil fer penetrar el port USB a la carcassa sense deixar entrar humitat.

Pas 6: cable de càrrega

Cable de càrrega
Cable de càrrega
Cable de càrrega
Cable de càrrega
Cable de càrrega
Cable de càrrega

Com que fem servir un connector d’àudio de 3,5 mm com a port de càrrega, hem de fabricar un cable adaptador que tingui un endoll de 3,5 mm mascle en un extrem i un endoll USB A a l’altre extrem. Això ens permetrà utilitzar qualsevol carregador de dispositiu mòbil genèric (com ara un carregador d'iPhone) per carregar aquest dispositiu.

Podeu comprar un conjunt de cables USB amb un connector USB A en un extrem i cables estanyats a l’altre extrem, però si sou com jo, probablement tingueu una dotzena de cables USB aleatoris que no necessiteu. En lloc de comprar un muntatge de cable USB, acabo d’aconseguir un cable micro USB a USB A que no necessitava i vaig treure el connector micro USB.

A continuació, vaig treure la jaqueta blanca del cable per mostrar només dos cables a dins: un vermell i un negre. Alguns cables USB tindran quatre cables: vermell, negre, verd i blanc. El verd i el blanc són per a la transferència de dades i es poden ignorar. Retireu l'aïllament només dels cables vermells i negres.

A continuació, necessitareu un endoll masculí de 3,5 mm. He utilitzat aquest de Banggood. Soldeu el cable vermell del cable USB a la pestanya central (que és la punta del connector) i el cable negre a la pestanya de màniga llarga. Vegeu les meves fotos per aclarir-les.

Recomano connectar sempre l’endoll de 3,5 mm abans que l’endoll USB, ja que el procés d’endollar el cable pot provocar que l’endoll es quedi curt pel receptacle metàl·lic.

Pas 7: Quant al sensor de flux

Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux
Quant al sensor de flux

Vaig agafar aquest sensor de flux de Banggood per 3,87 dòlars. Abans d’utilitzar-lo, vaig decidir investigar el seu funcionament.

El disseny és sorprenentment senzill i enginyós. L’electrònica està completament segellada de l’aigua. Hi ha una hèlix de gir lliure que gira més lentament o més ràpidament segons el cabal. En un punt de l’hèlix hi ha un imant. A l'exterior del sensor hi ha un petit compartiment que conté un petit PCB amb dos components: una resistència i un sensor d'efecte hall. Cada vegada que l’imant passa pel sensor d’efecte hall, commuta entre el màxim i el més baix. En altres paraules, canvia entre 5V i 0V cada vegada que gira l'hèlix.

Per llegir el sensor, apliquem + 5 V al fil vermell, negatiu al fil negre i llegim el senyal digital del fil groc. A la foto del meu oscil·loscopi es pot veure com canvia el senyal a mesura que s’encén el flux. Al principi, el senyal és constantment zero volts. Quan s’inicia el flux, la freqüència dels polsos s’accelera ràpidament i arriba a un estat estacionari.

Segons la fitxa tècnica, el sensor emet 450 impulsos per litre. Això serà important més endavant quan escrivim el programari.

Pas 8: Cablatge del sensor de cabal

Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal
Cablatge del sensor de cabal

El sensor de cabal ve amb un connector JST-XH de 3 pins. Això no és ideal perquè els cables són massa curts i el connector té contactes exposats que poden ser curtcircuitats mitjançant gotes d’aigua perdudes. Vaig demanar aquest muntatge de cable de connector d'àudio de 3,5 mm a Digikey. Fa 3 'de llarg, que és la longitud perfecta, i té fils estanyats, cosa que facilita la seva soldadura. No recomano provar d’utilitzar un cable d’auriculars antic, ja que solen tenir filferro esmaltat molt prim, que és gairebé impossible de soldar.

El sensor de cabal té una tapa de plàstic subjectada per dos cargols Phillips. Simplement traieu aquests cargols i traieu la placa de circuit. No s’aguanta amb cap cola, només es manté al seu lloc amb la tapa de plàstic. A continuació, dessoldeu els tres cables escalfant-los amb un soldador i aixecant-los, un per un.

A continuació, soldeu el cable d'àudio de 3,5 mm als coixinets. Us proposo fer coincidir els colors tal com ho feia jo. Aquesta configuració té + 5 V a la punta, senyal a l'anell i terra a la màniga. Aquesta és la mateixa configuració que s’utilitza per al port de càrrega, a partir del pas 6. Si connecteu accidentalment el carregador al port del sensor o viceversa, no es produirà cap dany al dispositiu.

Pas 9: Instal·lació del sensor de flux

Instal·lació del sensor de cabal
Instal·lació del sensor de cabal
Instal·lació del sensor de cabal
Instal·lació del sensor de cabal
Instal·lació del sensor de cabal
Instal·lació del sensor de cabal

Fins aquest moment, tota la nostra feina s’ha realitzat al taller. Però ara toca anar al bany!

Primer, vaig treure el cap de dutxa. Això va revelar una mica de canonada que sobresortia de la paret, amb rosca mascle de 1/2 NPS. Convenientment, el nostre sensor de cabal té la mateixa mida de fil. L'únic problema és que el sensor té rosca mascle als dos extrems, necessiten un acoblament de dona a dona.

A la meva ferreteria local, hi havia acoblaments de 1/2 en llautó, ferro i PVC. El de PVC era el més barat, així que el vaig aconseguir. Tot i que, a la vista, els de llautó o d'acer haurien quedat més bons.

Un cop tingueu l’acoblament, només cal cargolar el sensor de flux a l’acoblament i, a continuació, cargolar l’altre extrem de l’acoblament a la canonada. El sensor de cabal té una fletxa per indicar la direcció de flux prevista. Assegureu-vos que no l’instal·leu cap enrere, ja que, si no, les mesures poden ser inexactes. Finalment, cargoleu el cap de dutxa a l’extrem del sensor de cabal.

Per descomptat, suposo que la vostra dutxa utilitza un fil NPS de 1/2 , com feia la meva. Si no és el cas, haureu d'aconseguir adaptadors addicionals.

Pro-Tip: Afegiu una mica de cinta de lampista de tefló a tots els fils abans de cargolar les peces per evitar fuites. No en tenia cap, però tinc previst afegir-ho en un futur proper.

Pas 10: Arduino i Perfboard

Arduino i Perfboard
Arduino i Perfboard
Arduino i Perfboard
Arduino i Perfboard
Arduino i Perfboard
Arduino i Perfboard

Com que haurem de fer molts cables, és una bona idea aconseguir un tros de perfboard per fer les coses una mica més endreçades. Vaig tallar un rectangle de perfboard aproximadament 1 "per 2". A continuació, vaig col·locar el meu Arduino Nano al mig del tauler i vaig marcar per on passaven els passadors de capçalera. Després vaig tallar dos llargs de capçaleres femenines, cadascuna de 15 pins. Els he soldat al perfboard on he marcat anteriorment. Això ens permetrà eliminar l'Arduino per a la programació.

Pro-Tip: Marqueu l’orientació del port USB de l’Arduino de manera que sempre el connecteu al perfboard de la mateixa manera.

Pas 11: cablejar-ho tot

Cablatge de tot
Cablatge de tot
Cablatge de tot
Cablatge de tot
Cablatge de tot
Cablatge de tot

Ara és hora de soldar-ho tot junt! He inclòs un esquema de cablejat complet, que podeu seguir, o veure els meus passos escrits a continuació si preferiu un enfocament més guiat.

Primer, vaig tallar uns passadors de capçalera masculins i els vaig soldar al perfboard del + 5V i els rails de terra. Després vaig soldar dos pins de capçalera més connectats als pins A4 i A5 de l’Arduino. Aquestes capçaleres ens permetran connectar la pantalla LCD mitjançant ponts de dona a dona.

A continuació, vaig soldar un parell de cables des de la sortida del convertidor d’impulsió fins als rails + 5V i terra. Això proporcionarà energia a l’Arduino, la pantalla LCD i el sensor de cabal.

Després d’això, vaig tallar dos cables i els vaig connectar als terminals del polsador. He soldat un cable al rail de terra i l’altre al pin 3 digital.

L'última part de soldar és el sensor de cabal. Com que ja hem connectat un endoll de 3,5 mm al sensor, només hem de soldar un endoll femella de 3,5 mm. Primer vaig soldar tres cables: un a cadascuna de les pestanyes del connector. Després vaig introduir el gat a través del recinte i el vaig fixar al seu lloc amb una femella. Finalment, he soldat la màniga a terra, la punta a + 5 V i l’anell al pin digital 2.

Vaig optar per utilitzar els pins digitals 2 i 3 per al botó i el sensor de cabal perquè són pins d'interrupció de maquinari. Això farà que sigui molt més fàcil escriure el codi.

Ara hem acabat de soldar, però encara hem de connectar la pantalla LCD. Com que hem soldat les capçaleres, només necessitem quatre ponts de dona a dona. Connecteu el pin "Vcc" a + 5V, el pin "Gnd" a terra, el pin "SCL" a A5 i el pin "SDA" a A4. Per tal que la pantalla LCD encaixi al recinte, haurem de doblar els passadors de capçalera cap enrere. Si doblegueu els pins cap endavant i cap enrere diverses vegades fatigareu el metall i provocareu la ruptura dels pins, de manera que us recomano doblar-los només una vegada i fer-ho amb cura.

Ara el cablejat està complet.

Pas 12: programació

Programació
Programació

Ara que el maquinari està tot connectat, podem programar l’Arduino.

Vull que el programa tingui les funcions següents:

  • A la primera línia, mostreu un recompte d’actualització ràpida del total de litres
  • A la segona línia, mostreu el cost total de l’aigua o el cabal
  • Quan la dutxa funciona, el polsador commuta entre mostrar el cost o el cabal
  • Quan la dutxa no funciona, el polsador hauria d'esborrar totes les dades i restablir la pantalla
  • El sensor s’ha de llegir mitjançant una rutina d’interrupcions per evitar mètodes d’interrogació bruts
  • En actualitzar la pantalla, només hauríem d’actualitzar els valors que han canviat, en lloc de sobreescriure tota la pantalla cada vegada (això provocaria un parpelleig notable)

El programa segueix una estructura senzilla. Mitjançant la funció millis (), podem crear retards que en realitat no detenen l’execució del programa. Consulteu aquest tutorial per obtenir un exemple de parpelleig d'un LED sense utilitzar la funció delay ().

La funció millis () retorna el nombre de mil·lisegons des que s'ha activat l'Arduino. En crear una variable "previousMillis" i restar Millis () - previousMillis (), podem veure el temps transcorregut des que s'ha actualitzat anteriorMillis.

Si volem que passi alguna cosa per segon, podem utilitzar el següent bloc de codi:

if ((millis () - Millis anteriors)> = 1000) {

previousMillis = millis (); toggleLED (); }

Es comprova si la diferència entre millis () (hora actual) i anterior (última vegada) és superior o igual a 1000 mil·lisegons. Si és així, el primer que fem és establir anteriorMillis igual al temps actual. A continuació, executem els passos addicionals que vulguem. En aquest exemple, estem canviant un LED. A continuació, sortim d'aquest bloc de codi i acabem la resta de la funció loop (), abans de tornar a l'inici i repetir-ho de nou.

L’avantatge d’utilitzar aquest mètode per sobre de la funció delay () simple és que delay () posa un buit de temps entre les instruccions, però no té en compte el temps que triga a executar les altres instruccions de la funció loop (). Si feu alguna cosa que triga més que parpellejar un LED, com ara actualitzar una pantalla LCD, el temps que triga no és insignificant i després d’uns quants cicles es sumarà. Si actualitzeu la pantalla LCD d’un rellotge, ràpidament es tornaria imprecisa i quedaria enrere.

Ara que ja entenem l’estructura general del programa, és hora d’inserir les instruccions. En lloc d’explicar aquí cada línia de codi, us suggereixo que primer llegiu el diagrama de flux adjunt, que proporciona una visió general d’alt nivell del que fa el programa.

Un cop hàgiu vist el diagrama de flux, mireu el codi Arduino adjunt. He comentat gairebé totes les línies per deixar clar què fa cada línia.

Hi ha algunes parts del codi que és possible que vulgueu canviar. El més important és el cost per litre. A la meva ciutat, l’aigua costa 0,2523 ¢ per litre. Cerqueu la línia següent i canvieu aquest valor perquè coincideixi amb el cost on viviu:

const float COST_PER_LITRE = 0,2523; // cost per litre, en cèntims, des del lloc web de la ciutat

Si preferiu utilitzar galons per sobre de litres, canvieu totes les línies "LCD.print ()" que fan referència a "L" o "L / s" a "G" o "G / s". A continuació, suprimiu la línia següent:

const float CONVERSIÓ = 450,0; // Mantingueu-ho sense litre per litres

… i descomenteu aquesta línia:

const float CONVERSIÓ = 1703,0; // descomenteu-ho i suprimiu la línia que hi ha més amunt per obtenir galons

Hi ha una estranyesa més que potser heu notat al meu codi. El conjunt de caràcters predeterminat no inclou el caràcter "¢" i no volia fer servir dòlars, perquè el cost apareixia com a "0,01 $" o menys durant la majoria del temps. Per tant, em vaig veure obligat a crear un personatge personalitzat. Per representar aquest símbol s’utilitza la matriu de bytes següent:

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

Després de crear aquesta matriu, el caràcter especial s'ha de "crear" i emmagatzemar.

lcd.createChar (0, cent_sign);

Un cop fet això, per imprimir el caràcter personalitzat utilitzem la següent línia:

lcd.write (byte (0)); // imprimir signe de cèntims (¢)

La pantalla LCD pot contenir fins a 8 caràcters personalitzats. Aquí hi ha més informació. També em vaig trobar amb aquesta útil eina en línia que us permet dibuixar el caràcter personalitzat mitjançant una interfície gràfica i que generarà automàticament la matriu de bytes personalitzada.

Pas 13: Tancament de la tapa

Tancament de la tapa
Tancament de la tapa
Tancament de la tapa
Tancament de la tapa
Tancament de la tapa
Tancament de la tapa

Finalment, ja estem a punt d’acabar!

És hora d’omplir tota l’electrònica al recinte i esperem que la tapa es tanqui. Però, primer, hem de connectar els separadors de 30 mm. El paquet de separadors que he comprat no inclou cap de tan llarg, però sí amb 20 mm i 10 mm que es poden unir. Vaig cargolar quatre separadors als forats de la part inferior del recinte amb quatre cargols M3 (vegeu les imatges 1 i 2). Assegureu-vos que estrenyueu-los de manera segura, però no massa estrets, o us arrisqueu a trencar la carcassa de plàstic.

Ara ja hi cabem tota l’electrònica. Vaig connectar el carregador i el convertidor d’augment a la tapa amb cinta de doble cara, tal com es veu a la tercera imatge. Llavors vaig embolicar una mica de cinta elèctrica al voltant del metall exposat a les dues preses de 3,5 mm, només per assegurar-me que no quedés curt en contactar amb els connectors.

Vaig poder fer que l’Arduino s’ajustés col·locant-lo de costat, a la cantonada inferior esquerra, amb el port USB cap a la dreta. He utilitzat més cinta de doble cara per fixar la bateria a la part inferior del recinte sota la pantalla LCD.

Finalment, una vegada que tot està embussat de manera més o menys segura a la caixa, es pot cargolar la tapa amb quatre cargols M3 més.

Pas 14: proves

Proves
Proves
Proves
Proves
Proves
Proves
Proves
Proves

Connecteu primer el connector de 3,5 mm del sensor de cabal. Us recomano fer-ho abans que el dispositiu estigui engegat, ja que és possible que el connector faci connexions no desitjades mentre s'introdueix.

A continuació, activeu l'interruptor principal. Tot i que no hi ha aigua corrent, el botó del tauler frontal no hauria de fer res més que netejar el total i netejar la pantalla. Com que el total serà zero per defecte, el botó encara no apareix per fer res.

Si activeu la dutxa, el total hauria de començar a augmentar. Per defecte, es mostra el cost. Si premeu el botó del tauler frontal, el cabal es mostrarà a la línia inferior. Si premeu el botó del tauler frontal, es canviarà entre mostrar el cabal i mostrar el cost, sempre que la dutxa estigui en funcionament. Un cop la dutxa s'aturi, prement el botó del tauler frontal es restabliran les mesures i esborra la pantalla.

Muntatge

La manera com escolliu muntar el dispositiu depèn del disseny de la dutxa. És possible que algunes dutxes tinguin una cornisa prou a prop del capçal de la dutxa com per col·locar-hi el dispositiu. A la dutxa, tinc una cistella connectada amb ventoses que he col·locat dins del dispositiu. Si no teniu el luxe d’una cornisa o cistella, podeu provar de subjectar el dispositiu a la paret amb una ventosa de doble cara. Això només funcionarà si utilitzeu un recinte de prestatge que tingui un suport suau o bé si imprimiu el meu recinte personalitzat en una impressora amb una placa de vidre. Si el vostre recinte té un suport rígid (com ho fa el meu), podeu provar d’utilitzar cinta de doble cara, tot i que això pot deixar restes a la paret de la dutxa si intenteu treure el dispositiu.

Resolució de problemes

La pantalla està activada, però la llum de fons està apagada. Assegureu-vos que el pont està instal·lat als dos pins del lateral del mòdul I ² C

La pantalla està en blanc, amb la llum de fons activada. Comproveu que l'adreça I² C sigui correcta executant l'escàner I²C

La pantalla està activada, però els valors es mantenen a zero: comproveu que hi hagi un senyal provinent del sensor mesurant la tensió del pin 2. Si no hi ha cap senyal, comproveu que el sensor estigui connectat correctament.

La pantalla està en blanc amb la llum de fons apagada: comproveu que el LED d'alimentació de l'Arduino estigui encès i comproveu que la pantalla tingui energia

La pantalla s’encén breument i tot s’atura; probablement configureu el voltatge del convertidor d’augment massa alt (els components no poden suportar més de 5 V)

El dispositiu funciona, però els valors són incorrectes: assegureu-vos que el sensor de cabal que utilitzeu tingui el mateix factor de conversió de 450 impulsos per litre. Els diferents sensors poden tenir valors diferents.

Pas 15: ara comenceu a estalviar aigua

Millores

La versió actual del programari funciona prou bé, però finalment voldria afegir la possibilitat de tenir diferents usuaris (membres de la família, companys de casa, etc.) El dispositiu emmagatzemaria les estadístiques de cada persona (aigua total i nombre total de dutxes) a mostra un consum mitjà d’aigua per a cada persona. Això podria animar la gent a competir per utilitzar la menor quantitat d’aigua.

També seria interessant tenir una manera d’exportar les dades que es volen visualitzar en un full de càlcul, de manera que es poguessin representar gràficament. Aleshores podríeu veure quines èpoques de l’any la gent té dutxes més freqüents i més llargues.

Totes aquestes funcions requeririen l’ús d’EEPROM, la memòria no volàtil integrada de l’Arduino. Això permetria conservar les dades fins i tot després d’apagar el dispositiu.

Una altra característica útil seria un indicador de bateria. En aquest moment, l’única indicació que cal carregar el dispositiu és quan la placa del gestor de bateries tanca l’alimentació. Seria fàcil connectar una entrada analògica addicional per mesurar la tensió de la bateria. Ni tan sols seria necessari un divisor de tensió, ja que la tensió de la bateria sempre és inferior a 5V.

Algunes d’aquestes idees limiten la fluïdesa de les funcions, per això no vaig desenvolupar el programari més.

La resta és cosa vostra!

Concurs de Sensors
Concurs de Sensors
Concurs de Sensors
Concurs de Sensors

Primer premi del Concurs de Sensors

Recomanat: