Innehållsförteckning:

Spara vatten och pengar med duschvattenmonitorn: 15 steg (med bilder)
Spara vatten och pengar med duschvattenmonitorn: 15 steg (med bilder)

Video: Spara vatten och pengar med duschvattenmonitorn: 15 steg (med bilder)

Video: Spara vatten och pengar med duschvattenmonitorn: 15 steg (med bilder)
Video: 2022 LONG r/MaliciousCompliance Compilation #002 2024, Juli
Anonim
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn
Spara vatten och pengar med duschvattenmonitorn

Som använder mer vatten - ett badkar eller en dusch?

Jag tänkte nyligen på den här frågan, och jag insåg att jag faktiskt inte vet hur mycket vatten som används när jag duschar. Jag vet att när jag är i duschen vandrar mitt sinne ibland, tänker på en cool ny projektidé eller försöker bestämma vad jag ska äta till frukost, medan vattnet bara rinner ner i avloppet. Det skulle vara mycket lättare att minska min vattenförbrukning om jag faktiskt visste hur många liter jag använde varje gång!

Jag gjorde lite research och fann att olika duschhuvuden kan använda allt från 9,5 liter (2,5 gallon) per minut till mindre än 6 liter (1,6 gallon) per minut, om du har en flödesbegränsare installerad. En mycket gammal dusch skulle kunna använda ännu mer vatten.

Jag bestämde mig för att designa och bygga en enhet som skulle visa den totala volymen vatten som används per dusch, kostnaden för vattnet och flödeshastigheten. Jag har haft den här enheten installerad i några veckor, och det är verkligen praktiskt att få en liveavläsning av mängden vatten som används.

I denna instruktionsbok förklarar jag hur jag byggde detta. Naturligtvis behöver du inte följa mina steg exakt! Det är alltid bra att använda delar man har liggande. Jag har inkluderat länkar till alla delar jag använde, eller en motsvarande del som fungerar.

Tillbehör

(Alla priser i USD)

  • Flödessensor - 3,87 dollar
  • LCD -skärm - 2,29 dollar
  • Arduino Nano - 1,59 dollar
  • Boost Converter - 1,88 dollar
  • LiPo -laddare - 1,89 dollar
  • Vattentät vippströmbrytare - $ 0,93 (inte exakt den jag använde, men det borde fungera)
  • Vattentät tryckknapp - $ 1,64
  • Standoffs, M3 skruvar och muttrar - $ 6,99
  • 2X kvinnlig 3,5 mm jack - 2,86 dollar ea.
  • 3,5 mm hane - 1,48 dollar
  • 3,5 mm 3 'kabelmontering - $ 3,57
  • USB -kabelmontering - 1,74 dollar
  • 1/2 "NPS-koppling mellan kvinnor och kvinnor-1,88 dollar
  • 500mAh 3.7V LiPo -batteri - $ 3.91

Verktyg och vanliga tillbehör

  • Lödkolv och löd
  • Tråd
  • Avbitartång
  • Wire Strippers
  • Dubbelsidig tejp
  • Stjärnskruvmejsel
  • 3D -skrivare (tillval)

Steg 1: Vattentätning

Impregnering
Impregnering

Den svåraste aspekten av detta projekt är att göra det hela vattentätt. Eftersom den kommer att ligga i en dusch måste den kunna överleva extrem fuktighet och enstaka stänk. Cirka 75% av den totala tiden som spenderades på detta projekt var att räkna ut denna del.

Så som jag ser det finns det två val: designa ett anpassat 3D-tryckt hölje, eller försök att få det att fungera med ett hölje. Eftersom jag nyligen fick min egen 3D -skrivare bestämde jag mig för att välja det första alternativet.

Om du inte har tillgång till en 3D-skrivare, här är några hyllor som jag har påstått är vattentäta och som antagligen skulle fungera. Observera att jag inte har köpt någon av dessa kapslingar så jag garanterar inte att alla komponenter får plats inuti!

Banggood - 100x68x50mm låda med genomskinligt lock - $ 5,35

Digikey - 130x80x70mm låda med genomskinligt lock - $ 11,65

För denna punkt och framåt, när jag hänvisar till höljet, talar jag om min 3D -tryckta.

Steg 2: Min anpassade 3D -tryckta kapsling

Mitt anpassade 3D -tryckta hölje!
Mitt anpassade 3D -tryckta hölje!
Mitt anpassade 3D -tryckta hölje!
Mitt anpassade 3D -tryckta hölje!
Mitt anpassade 3D -tryckta hölje!
Mitt anpassade 3D -tryckta hölje!

Efter att ha arbetat i Fusion 360 i flera timmar kom jag på detta hölje. Den har tre cirkulära utskärningar för att passa två kvinnliga 3,5 mm -uttag och en vippströmbrytare. Locket har ett 16 mm hål för den tillfälliga tryckknappen och en rektangulär utskärning för skärmen, samt de fyra monteringshålen för att hålla skärmen på plats. Locket är en separat del och har en läpp för att förhindra att fukt tränger in genom sömmen. De fyra hålen på lådans hörn är att hålla locket på med 30 mm avstånd. Alla skruvhål är 3 mm i diameter, vilket passar en M3 -skruv.

Du kan ladda ner STL -filerna från min Thingiverse -sida. Det kan skrivas ut utan flottar eller stöd, men jag använde stöd bara för att vara säker. Jag använde också 100% fyllning. Eftersom väggarna är så tunna förändras inte den totala utskriftstiden eller det totala materialet, så att jag bara höll det på 100%.

För att göra skärmen synlig kan den antingen sticka ut genom en utskärning i locket på höljet eller placeras bakom ett genomskinligt fönster. Eftersom skärmen inte ska utsättas för fukt, fastnar vi med det andra alternativet. Tyvärr är 3D -utskrift med transparent filament fortfarande i sin linda, så vi måste bli lite kreativa.

Min lösning var att skapa en rektangulär utskärning i locket och limma in en bit transparent plast från några grönsaksförpackningar. Denna teknik kan användas även om du inte använder mitt anpassade hölje; helt enkelt klippa ut en rektangel med en verktygskniv eller en Dremel. Naturligtvis, om du använder ett hölje med ett transparent lock behövs detta inte alls.

Den bästa källan för transparent plast som jag har hittat är att producera förpackningar. Vanligtvis kommer spenat eller andra lövgrönsaker i stora genomskinliga plastbehållare. I mitt fall använde jag förpackningen från en "pepparmedley".

Jag ville ha ett överhäng på 5 mm för att ge gott om yta för limning, så jag skar ut en 27x77 mm rektangel av klar plast. Jag var tvungen att trimma hörnen lite för att skruvarna skulle passa. Jag sprutade en rad med lim runt omkretsen av utskärningen och placerade sedan den genomskinliga plasten på. Jag tillsatte lite mer lim över kanten efter bara för att vara säker på att det var förseglat.

Tips: Placera delen framför en liten fläkt medan limmet torkar. När superlim torkar tenderar det att lämna en vidrig vit rest bakom oss, vilket vi verkligen inte vill ha på vårt genomskinliga fönster. Jag använde en gammal 12V fläkt från en datorns strömförsörjning. Jag lät limmet sitta i 12 timmar för att se till att det var helt torrt.

Steg 3: Montering av LCD -skärmen

Montering av LCD -skärmen
Montering av LCD -skärmen
Montering av LCD -skärmen
Montering av LCD -skärmen
Montering av LCD -skärmen
Montering av LCD -skärmen

När det transparenta fönstret har torkat kan LCD -skärmen monteras. LCD-skärmen är en super populär 16x2 teckenskärm, med I²C "ryggsäck" förlödad på baksidan. Jag rekommenderar starkt att du får den här skärmen med I²C -gränssnittet. Anslutning av alla parallella linjer är ganska irriterande och introducerar mer risk för misstag - I²C -versionen har bara två ledningar för ström och två ledningar för signal.

Jag använde fyra 10 mm avstånd för att montera skärmen. Avstånden har var och en en gänga i ena änden och en hontråd i den andra. Jag satte hantråden genom hålen i LCD -skärmen och spände en M3 -mutter till var och en. Sedan använde jag fyra M3 -skruvar för att fästa hylsornas ändar genom locket på höljet. Jag fick det här paketet med distanser som har 10 mm för att montera LCD -skärmen och längre för att hålla locket vid basen. Dessutom finns det M3 -skruvar och muttrar, så du behöver inte köpa någon extra hårdvara.

Se till att muttrarna är mycket täta så att avstånden inte vrids när du drar åt skruvarna. Se också till att du inte drar åt skruvarna för mycket, annars kan plastlocket deformeras och inte täta ordentligt.

Raden med 16 huvudstiften på LCD -skärmen ska vara överst - se till att du inte monterar LCD -skärmen upp och ner!

Steg 4: Montering av den tillfälliga knappen

Montering av den tillfälliga knappen
Montering av den tillfälliga knappen
Montering av den tillfälliga knappen
Montering av den tillfälliga knappen
Montering av den tillfälliga knappen
Montering av den tillfälliga knappen

Jag bestämde mig för att använda den här krämiga knappen på frontpanelen. Jag har använt dem i tidigare projekt och jag gillar verkligen hur de ser ut. De ska vara vattentäta och har en gummiring för att förhindra att fukt tränger in i höljet genom trådarna.

Detta steg är ganska enkelt. Lossa muttern, men håll kvar gummiringen. För in knappen genom hålet i locket och dra åt muttern från baksidan. Undvik att dra åt muttern för mycket, annars krossas gummiringen och tjänar inte sitt syfte.

Steg 5: Ström och laddningskrets

Ström och laddningskrets
Ström och laddningskrets
Ström och laddningskrets
Ström och laddningskrets
Ström och laddningskrets
Ström och laddningskrets

Nu ska vi sätta ihop batterikomponenterna. Detta inkluderar batteri, huvudbrytare, batteriövervakning/laddningskort och boost -omvandlaren.

Batteriet jag använde är ett 3,7V 1500 mAh encelligt litiumjonbatteri. Den jag använde togs från en trasig Playstation -kontroller. Alla encelliga Li-Ion- eller LiPo-batterier fungerar, så länge de passar in i ditt hölje. Denna typ av batteri tenderar att vara mycket tunn och platt, så du kan förmodligen använda ett dubbelt så stort som mitt utan problem. En 18650-cell skulle fungera, men den passar inte i mitt anpassade hölje så du måste designa din egen eller använda en hylsa. Om möjligt rekommenderar jag att du använder ett bärgat batteri (som jag gjorde) eftersom fraktbatterier ofta är dyra!

Batteriet ska först lödas till TP4056 -laddningskortet. Om du vill kan du löda en JST RCY -kontakt till batteriet och laddaren för bekvämlighet (jag gjorde det), men det är inte nödvändigt. Var noga med att observera rätt polaritet enligt markeringarna på laddarkortet, eftersom kortet inte är skyddat mot omvänd batteripolaritet!

Löd sedan en kabel från laddarens positiva utgång (placerad bredvid den positiva batterikabeln) till den positiva ingången på boost -omvandlaren. Löd sedan en kabel från den negativa utgången (som ligger bredvid den negativa batteritråden) till huvudströmställarens vanliga (mitten) stift. Slutligen löd en tråd från omkopplarens normalt öppna stift till boostkonverterarens negativa ingång. Om du ansluter en multimeter till boost -omvandlarens utgång och slår på huvudströmbrytaren ska en spänning visas.

Eftersom vår Arduino, LCD -skärm och flödessensor alla behöver 5V måste vi ställa in utgången från boost -omvandlaren till 5V. Detta uppnås genom att vrida vredet på potentiometern med en liten skruvmejsel. Med huvudströmbrytaren påslagen, batteriet anslutet och multimetern ansluten till boost -omvandlarens utgång, vrid långsamt potentiometern tills utgången läser 5V. Det blir svårt att få en avläsning på exakt 5.000V men sikta på en spänning mellan 4.9V och 5.1V.

Eftersom mitt anpassade hölje hålls stängt med flera skruvar vill vi inte behöva öppna höljet varje gång det behöver laddas. Jag använde ett 3,5 mm hörlursuttag för detta. Den exakta kontakten jag använde är den här från Digikey (vilket är vad utskärningarna i mitt hölje är dimensionerade för), men den här från Banggood borde fungera också.

Först satte jag in kontakten i det nedersta hålet i höljet. Eftersom detta kommer att vara urkopplad för det mesta och därför är känsligt för fuktinträngning är det bäst att montera det på botten för att förhindra att vatten droppar inuti. Efter att ha installerat låsbrickan och dragit åt muttern lödde jag två trådar till "spets" och "hylsa" -flikarna på kontakten. Anslutningens kontaktdon visas i en av mina annoterade bilder. Jag lödde den andra änden av "hylsan" -tråden till den negativa ingången på laddaren, bredvid mikro -USB -porten. Slutligen lödde jag "spets" -tråden till +5V -plattan, på andra sidan USB -porten. USB -porten på laddaren kommer inte att användas, eftersom det skulle vara svårt att få USB -porten att tränga in i höljet utan att släppa in fukt.

Steg 6: Laddningskabel

Laddningskabel
Laddningskabel
Laddningskabel
Laddningskabel
Laddningskabel
Laddningskabel

Eftersom vi använder ett 3,5 mm ljuduttag som laddningsport måste vi göra en adapterkabel som har en 3,5 mm hankontakt i ena änden och en USB A -kontakt i den andra änden. Detta gör att vi kan använda alla generiska laddare för mobila enheter (t.ex. en iPhone -laddare) för att ladda den här enheten.

Du kan köpa en USB -kabelmontering med en USB A -kontakt i ena änden och förtennade trådar i den andra änden, men om du är som jag har du förmodligen ett dussin slumpmässiga USB -kablar som du inte behöver. Istället för att köpa en USB -kabelmontering fick jag bara en mikro -USB till USB A -kabel som jag inte behövde och klippte av mikro -USB -kontakten.

Därefter tog jag av den vita jackan från kabeln för att avslöja bara två trådar inuti: en röd och en svart tråd. Vissa USB -kablar har fyra ledningar: rött, svart, grönt och vitt. De gröna och vita är för dataöverföring och kan ignoreras. Avlägsna endast isoleringen från de röda och svarta trådarna.

Därefter behöver du en 3,5 mm hankontakt. Jag använde den här från Banggood. Löd den röda kabeln från USB -kabeln till den mellersta fliken (som är spetsen på kontakten) och den svarta ledningen till den långa ärmfliken. Se mina foton för förtydligande.

Jag rekommenderar att du alltid kopplar in 3,5 mm -kontakten före USB -kontakten, eftersom processen med att ansluta kabeln kan orsaka att kontakten kortsluts över metalluttaget.

Steg 7: Om flödessensorn

Om flödessensorn
Om flödessensorn
Om flödessensorn
Om flödessensorn
Om flödessensorn
Om flödessensorn
Om flödessensorn
Om flödessensorn

Jag hämtade denna flödessensor från Banggood för $ 3,87. Innan jag använde den bestämde jag mig för att undersöka hur den fungerar.

Designen är förvånansvärt enkel och genial. Elektroniken är helt tät från vattnet. Det finns en fritt roterande propeller som snurrar långsammare eller snabbare beroende på flödeshastigheten. Vid ett tillfälle på propellern finns en magnet. På utsidan av sensorn finns ett litet fack som innehåller ett litet kretskort med två komponenter: ett motstånd och en hall-effektsensor. Varje gång magneten passerar förbi hall-effektsensorn växlar den mellan hög och låg. Med andra ord växlar den mellan 5V och 0V varje gång propellern roterar.

För att läsa sensorn, applicerar vi +5V på den röda ledningen, negativa till den svarta tråden och läser den digitala signalen från den gula ledningen. På fotot av mitt oscilloskop kan du se hur signalen ändras när flödet slås på. Först är signalen konstant noll volt. När flödet startar kommer pulsernas frekvens snabbt upp i hastighet och når ett stabilt tillstånd.

Enligt databladet matar sensorn ut 450 pulser per liter. Detta kommer att vara viktigt senare när vi skriver programvaran.

Steg 8: Flödessensorkablar

Flödessensorkablar
Flödessensorkablar
Flödessensorkablar
Flödessensorkablar
Flödessensorkablar
Flödessensorkablar
Flödessensorkablar
Flödessensorkablar

Flödessensorn levereras med en 3-stifts JST-XH-kontakt. Detta är inte idealiskt eftersom ledningarna är för korta, och kontakten har exponerade kontakter som lätt kan kortslutas av vanliga vattendroppar. Jag beställde denna 3,5 mm ljudkontaktkabelmontering från Digikey. Den är 3 'lång, vilket är den perfekta längden, och den har förtennade trådar, vilket gör det lätt att lödas. Jag rekommenderar inte att du försöker använda en gammal hörlurssladd, eftersom de tenderar att ha mycket tunn emaljerad tråd, vilket är nästan omöjligt att löda.

Flödessensorn har ett plastlock som hålls fast av två Phillips -skruvar. Ta bara bort dessa skruvar och dra ut kretskortet. Det hålls inte fast med något lim, det hålls bara på plats med plastlocket. Avlöd sedan de tre trådarna genom att värma upp dem med ett lödkolv och lyfta av dem, en i taget.

Löd sedan 3,5 mm ljudkabeln till plattorna. Jag föreslår att matcha färgerna som jag gjorde. Denna konfiguration har +5V på spetsen, signal på ringen och mark på hylsan. Detta är samma konfiguration som används för laddningsporten, från steg 6. Om du av misstag ansluter laddaren till sensorporten, eller tvärtom, kommer det inte att skada enheten.

Steg 9: Installera flödessensorn

Installera flödessensorn
Installera flödessensorn
Installera flödessensorn
Installera flödessensorn
Installera flödessensorn
Installera flödessensorn

Fram till denna tid har allt vårt arbete skett i verkstaden. Men nu är det dags att gå till toaletten!

Först tog jag bort duschhuvudet. Detta avslöjade en kort bit av röret som stack ut från väggen, med 1/2 NPS -gängning. Bekvämt har vår flödessensor exakt samma trådstorlek! Det enda problemet är att sensorn har manlig gängning i båda ändarna, så vi kommer att behöver en hona-till-hona-koppling.

På min lokala järnaffär fanns det 1/2 kopplingar i mässing, järn och PVC. PVC var den billigaste, så jag fick den. Även i efterhand hade mässing eller stål sett snyggare ut.

När du har kopplingen skruvar du bara in flödessensorn i kopplingen och skruvar sedan den andra änden av kopplingen på röret. Flödessensorn har en pil som anger den avsedda flödesriktningen. Se till att du inte installerar det bakåt, annars kan mätningarna vara felaktiga. Slutligen skruva fast duschhuvudet på flödessensorns ände.

Naturligtvis antar jag att din dusch använder en 1/2 NPS -tråd, som min gjorde. Om så inte är fallet måste du skaffa extra adaptrar.

Pro-tips: Lägg till lite teflonrörarens tejp i alla trådar innan du skruvar ihop bitarna för att förhindra läckage. Jag hade ingen till hands, men jag planerar att lägga till detta inom en snar framtid.

Steg 10: Arduino & Perfboard

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

Eftersom vi kommer att behöva göra en hel del ledningar, är det en bra idé att skaffa en bit perfboard för att göra saker lite snyggare. Jag skär en rektangel av perfboard ungefär 1 "vid 2". Därefter placerade jag min Arduino Nano i mitten av brädet och markerade var huvudstiften gick igenom. Sedan klippte jag två längder av kvinnliga rubriker, var och en med 15 stift långa. Jag lödde dessa på perfboard där jag tidigare märkt. Detta gör att vi kan ta bort Arduino för programmering.

Pro-tips: Markera orienteringen för Arduino USB-port så att du alltid ansluter den till perfboard på samma sätt.

Steg 11: Anslut allt

Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt
Ansluter allt

Nu är det dags att lödda ihop allt! Jag har inkluderat ett komplett kopplingsschema som du kan följa, eller se mina skrivna steg nedan om du föredrar ett mer guidat tillvägagångssätt.

Först klippte jag några manliga huvudstiften och lödde dem på perfboard på +5V och markskenor. Sedan lödde jag ytterligare två huvudpinnar anslutna till stift A4 och A5 på Arduino. Dessa rubriker gör att vi kan ansluta LCD-skärmen med hjälp av kvinnliga till kvinnliga hoppare.

Därefter lödde jag ett par ledningar från utgången från boost -omvandlaren till +5V och jordskenor. Detta kommer att ge ström till Arduino, LCD -skärmen och flödessensorn.

Efter det klippte jag två ledningar och kopplade dem till knapparna på tryckknappen. Jag lödde en tråd till jordskenan och den andra till digital stift 3.

Den sista delen för lödning är flödessensorn. Eftersom vi redan har anslutit en 3,5 mm -kontakt till sensorn behöver vi bara löda en 3,5 mm honkontakt. Först lodde jag tre trådar - en till var och en av flikarna på uttaget. Sedan satte jag in domkraften genom höljet och säkrade det på plats med en mutter. Slutligen lodde jag ärmen till marken, spetsen till +5V och ringen till den digitala stift 2.

Jag valde att använda digitala stift 2 och 3 för knappen och flödessensorn eftersom de är hårdvaruavbrottsstift. Detta kommer att göra det mycket lättare att skriva koden.

Nu är vi färdiga med att lödda, men vi behöver fortfarande ansluta LCD -skärmen. Eftersom vi lödde rubriker behöver vi bara fyra kvinnliga till kvinnliga hoppare. Anslut "Vcc" stift till +5V, "Gnd" stift till jord, "SCL" stift till A5 och "SDA" stift till A4. För att LCD -skärmen ska passa in i höljet måste vi böja huvudstiften bakåt. Att böja tapparna fram och tillbaka flera gånger tröttnar på metallen och gör att tapparna går sönder, så jag rekommenderar att du bara böjer dem en gång och gör det med försiktighet.

Nu är ledningen klar!

Steg 12: Programmering

Programmering
Programmering

Nu när hårdvaran är ansluten kan vi programmera Arduino.

Jag vill att programmet ska ha följande funktioner:

  • På den första raden, visa ett snabbt uppdaterat antal av de totala literna
  • På den andra raden, visa den totala kostnaden för vattnet eller flödeshastigheten
  • När duschen är igång växlar tryckknappen mellan att visa kostnaden eller flödeshastigheten
  • När duschen inte är igång ska tryckknappen rensa all data och återställa skärmen
  • Sensorn bör läsas med en avbrottsrutin för att undvika grova avfrågningsmetoder
  • När vi uppdaterar skärmen bör vi bara uppdatera de värden som har ändrats, snarare än att skriva över hela skärmen varje gång (detta skulle orsaka märkbar flimmer)

Programmet följer en enkel struktur. Genom att använda funktionen millis () kan vi skapa förseningar som faktiskt inte stoppar programmets körning. Se denna handledning för ett exempel på att blinka en lysdiod utan att använda funktionen fördröjning ().

Funktionen millis () returnerar antalet millisekunder sedan Arduino slogs på. Genom att skapa en variabel "previousMillis" och subtrahera Millis () - previousMillis () kan vi se den förflutna tiden sedan previousMillis uppdaterades.

Om vi vill att något ska hända en per sekund kan vi använda följande kodblock:

if ((millis () - previousMillis)> = 1000) {

föregående Millis = millis (); toggleLED (); }

Detta kontrollerar om skillnaden mellan millis () (den aktuella tiden) och föregående Millis (den sista tiden) är större än eller lika med 1000 millisekunder. Om det är det första vi gör är att ställa in tidigare Millis lika med den aktuella tiden. Sedan utför vi vilka ytterligare steg vi vill. I det här exemplet växlar vi en LED. Sedan avslutar vi detta kodblock och avslutar resten av loop () -funktionen innan vi går tillbaka till starten och upprepar det om igen.

Fördelen med att använda den här metoden framför funktionen fördröjd () är att fördröjning () lägger ett mellanrum mellan instruktionerna, men tar inte hänsyn till den tid det tar att utföra de andra instruktionerna i loop () -funktionen. Om du gör något som tar längre tid än att bara blinka en lysdiod, t.ex. Om du uppdaterar LCD -skärmen på en klocka skulle det snabbt bli felaktigt och hamna efter.

Så nu när vi förstår programmets övergripande struktur är det dags att infoga instruktionerna. Istället för att förklara varje kodrad här föreslår jag att du först läser igenom det bifogade flödesschemat, vilket ger en överblick på hög nivå över vad programmet gör.

När du har sett flödesschemat, ta en titt på den bifogade Arduino -koden. Jag har kommenterat nästan varje rad för att tydliggöra vad varje rad gör.

Det finns några delar i koden som du kanske vill ändra. Viktigast är kostnaden per liter. I min stad kostar vattnet 0,2523 ¢ per liter. Leta reda på följande rad och ändra det värdet för att matcha kostnaden där du bor:

const float COST_PER_LITRE = 0,2523; // kostnad per liter, i cent, från stadens webbplats

Om du föredrar att använda gallon över liter ändrar du alla "LCD.print ()" -linjer som hänvisar till "L" eller "L/s" till "G" eller "G/s". Radera sedan följande rad:

const float KONVERTERING = 450,0; // behåll det här okommenterat för liter

… och kommentera den här raden:

const float KONVERTERING = 1703,0; // avmarkera detta och radera raden ovan för gallon

Det finns ytterligare en märklighet du kanske har märkt i min kod. Standardteckenuppsättningen innehåller inte "¢" -tecknet, och jag ville inte använda dollar, eftersom kostnaden skulle dyka upp som "$ 0,01" eller mindre för större delen av tiden. Därför tvingades jag skapa en anpassad karaktär. Följande byte -array används för att representera denna symbol:

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

Efter att ha skapat denna matris måste specialtecknet "skapas" och lagras.

lcd.createChar (0, cent_sign);

När detta är gjort använder vi följande rad för att skriva ut det anpassade tecknet:

lcd.write (byte (0)); // skriva ut cent -tecken (¢)

LCD -skärmen kan ha upp till 8 anpassade tecken. Mer information om detta finns här. Jag stötte också på det här användbara onlineverktyget som låter dig rita det anpassade tecknet med ett grafiskt gränssnitt, och det genererar automatiskt den anpassade byte -matrisen.

Steg 13: Stäng locket

Stäng locket
Stäng locket
Stäng locket
Stäng locket
Stäng locket
Stäng locket

Äntligen är vi nästan klara!

Det är dags att stoppa all elektronik i höljet och hoppas att locket stängs. Men först måste vi fästa 30 mm avstånd. Paketet med distanser jag köpte innehåller inga så långa, men det kommer med 20 mm och 10 mm sådana som kan fästas ihop. Jag skruvade fyra distanser i hålen på botten av höljet med fyra M3 -skruvar (se bilderna 1 & 2). Var noga med att dra åt dem ordentligt, men inte för hårt, annars riskerar du att bryta plasthöljet.

Nu kan vi passa all elektronik inuti. Jag fäst laddaren och boost-omvandlaren på locket med dubbelsidig tejp, som ses på den tredje bilden. Sedan slog jag in lite tejp runt den exponerade metallen på de två 3,5 mm -uttagen, bara för att säkerställa att ingenting blir kortslutet genom att kontakta kontakterna.

Jag kunde få Arduino att passa genom att placera den på sidan, i nedre vänstra hörnet, med USB -porten vänd åt höger. Jag använde mer dubbelsidig tejp för att fästa batteriet i botten av höljet under LCD-skärmen.

Slutligen, när allt har fastnat mer eller mindre säkert i lådan, kan locket skruvas ner med ytterligare fyra M3 -skruvar.

Steg 14: Testning

Testning
Testning
Testning
Testning
Testning
Testning
Testning
Testning

Anslut först 3,5 mm -kontakten från flödessensorn. Jag rekommenderar att du gör detta innan enheten slås på, eftersom det är möjligt för kontakten att göra oönskad anslutning när den sätts in.

Slå sedan på huvudströmbrytaren. Även om det inte rinner vatten, ska knapparna på frontpanelen inte göra något förutom att rensa summan och rensa skärmen. Eftersom summan som standard kommer att vara noll, verkar knappen inte göra något ännu.

Om du slår på duschen bör totalen börja öka. Som standard visas kostnaden. Om du trycker på frontpanelens knapp visas flödeshastigheten på den nedersta raden. Om du trycker på knappen på frontpanelen växlar du mellan att visa flödeshastigheten och visa kostnaden, så länge duschen är igång. När duschen stannar, trycker du på frontpanelens knapp för att återställa mätningarna och rensa skärmen.

Montering

Hur du väljer att montera enheten beror på din dusch. Vissa duschar kan ha en avsats tillräckligt nära duschhuvudet så att du helt enkelt kan placera enheten där. I min dusch har jag en korg fäst med sugkoppar som jag placerade enheten inuti. Om du inte har lyxen som en avsats eller korg kan du försöka hålla enheten mot väggen med en dubbelsidig sugkopp. Detta fungerar bara om du använder ett hölje som har en slät baksida eller om du har skrivit ut mitt anpassade hölje på en skrivare med en glasplåt. Om ditt hölje har en grov baksida (som mitt gör), kan du försöka använda lite dubbelsidig tejp, även om detta kan lämna lite rester på din duschvägg om du försöker ta bort enheten.

Felsökning

Skärmen är på, men bakgrundsbelysningen är avstängd - se till att bygeln är installerad på de två stiften på sidan av I ² C -modulen

Skärmen är tom, med bakgrundsbelysning på - kontrollera att I ² C -adressen är korrekt genom att köra I²C -skannern

Skärmen är på, men värdena förblir noll - kontrollera att det kommer en signal från sensorn genom att mäta spänningen på stift 2. Om det inte finns någon signal, kontrollera att sensorn är korrekt ansluten.

Skärmen är tom med bakgrundsbelysning avstängd - kontrollera att strömlampan på Arduino är tänd och kontrollera att skärmen har ström

Skärmen tänds kort, sedan stannar allt - du ställer förmodligen in spänningen från boost -omvandlaren för högt (komponenterna klarar inte mer än 5V)

Enheten fungerar, men värdena är felaktiga - se till att flödessensorn du använder har samma omvandlingsfaktor på 450 pulser per liter. Olika sensorer kan ha olika värden.

Steg 15: Börja nu spara vatten

Förbättringar

Den nuvarande versionen av programvaran fungerar tillräckligt bra, men så småningom skulle jag vilja lägga till möjligheten att ha olika användare (familjemedlemmar, husmän, etc.) Enheten skulle lagra varje persons statistik (totalt vatten och totalt antal duschar) till visa en genomsnittlig vattenanvändning för varje person. Detta kan uppmuntra människor att tävla om att använda minst vatten.

Det skulle också vara häftigt att ha ett sätt att exportera data som ska ses i ett kalkylblad, så att de kan ritas. Då kunde man se vilka tider på året människor har oftare och längre duschar.

Dessa funktioner skulle alla kräva användning av EEPROM-Arduinos inbyggda icke-flyktiga minne. Detta skulle göra det möjligt att behålla data även efter att enheten stängts av.

En annan användbar funktion skulle vara en batteriindikator. Just nu är den enda indikationen på att enheten behöver laddas när batterihanteringskortet bryter strömmen. Det skulle vara enkelt att ansluta en extra analog ingång för att mäta batterispänningen. En spänningsdelare skulle inte ens behövas eftersom batterispänningen alltid är mindre än 5V.

Några av dessa idéer gränsar till funktionskryp, varför jag inte utvecklade programvaran ytterligare.

Resten är upp till dig!

Sensors tävling
Sensors tävling
Sensors tävling
Sensors tävling

Första pris i sensortävlingen

Rekommenderad: