INHOUDSOPGAWE:

Bespaar water en geld met die stortwatermonitor: 15 stappe (met foto's)
Bespaar water en geld met die stortwatermonitor: 15 stappe (met foto's)

Video: Bespaar water en geld met die stortwatermonitor: 15 stappe (met foto's)

Video: Bespaar water en geld met die stortwatermonitor: 15 stappe (met foto's)
Video: Bespaar water en geld met de Hansgrohe douche 2024, Julie
Anonim
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor
Bespaar water en geld met die stortwatermonitor

Wat gebruik meer water - 'n bad of 'n stort?

Ek het onlangs aan hierdie vraag gedink, en ek het besef dat ek nie eintlik weet hoeveel water gebruik word as ek stort nie. Ek weet dat as ek in die stort is, my gedagtes soms dwaal, dink ek aan 'n goeie idee vir nuwe projekte of probeer besluit wat ek vir ontbyt moet eet, terwyl water net in die drein stroom. Dit sou baie makliker wees om my waterverbruik te verminder as ek eintlik weet hoeveel liter ek elke keer gebruik!

Ek het 'n bietjie navorsing gedoen en gevind dat verskillende stortkoppe van 9,5 liter (2,5 liter) per minuut tot minder as 6 liter (1,6 liter) per minuut kan gebruik as u 'n vloeibeperkingsmiddel geïnstalleer het. 'N Baie ou stort kan nog meer water gebruik.

Ek het besluit om 'n toestel te ontwerp en te bou wat die totale hoeveelheid water wat per stort gebruik word, die koste van die water en die vloeitempo sal vertoon. Ek het hierdie toestel al 'n paar weke geïnstalleer, en dit is baie handig om die hoeveelheid water wat gebruik word, regstreeks uit te lees.

In hierdie instruksies sal ek verduidelik hoe ek dit gebou het. U hoef natuurlik nie my stappe presies te volg nie! Dit is altyd goed om gebruik te maak van onderdele wat u rondlê. Ek het skakels na al die dele wat ek gebruik het, of 'n ekwivalente deel wat sal werk, ingesluit.

Voorrade

(Alle pryse in USD)

  • Vloeisensor - $ 3,87
  • LCD -skerm - $ 2,29
  • Arduino Nano - $ 1,59
  • Boost -omskakelaar - $ 1.88
  • LiPo -laaier - $ 1,89
  • Waterdigte skakelaar - $ 0,93 (nie presies wat ek gebruik het nie, maar dit moet werk)
  • Waterdigte drukknop - $ 1,64
  • Opstand, M3 -skroewe en moere - $ 6,99
  • 2X vroulike 3,5 mm jack - $ 2,86 ea.
  • 3.5 mm manlike prop - $ 1,48
  • 3,5 mm kabelstuk - 3,57 dollar
  • USB -kabel - 1,74 dollar
  • 1/2 "NPS koppeling vroulik tot vroulik-$ 1,88
  • 3.7V LiPo -battery van 500 mAh - $ 3,91

Gereedskap en algemene voorrade

  • Soldeerbout en soldeer
  • Draad
  • Draadknipper
  • Draadstroppers
  • Dubbelzijdige band
  • Phillips -skroewedraaier
  • 3D -drukker (opsioneel)

Stap 1: Waterdigtheid

Waterdigtheid
Waterdigtheid

Die moeilikste aspek van hierdie projek is om die hele ding waterdig te maak. Omdat dit in 'n stort sal bly, moet dit uiterste humiditeit en soms spatsels kan oorleef. Ongeveer 75% van die totale tyd wat aan hierdie projek bestee is, was om hierdie deel uit te vind.

Soos ek dit sien, is daar twee keuses: ontwerp 'n pasgemaakte 3D-gedrukte omhulsel, of probeer om dit te laat werk met 'n opbergkas. Aangesien ek onlangs my eie 3D -drukker gekry het, het ek besluit om die eerste opsie te gebruik.

As u nie toegang tot 'n 3D-drukker het nie, is hier 'n paar ingeboude kaste wat ek beweer dat dit waterdig is en waarskynlik sal werk. Let op: ek het nie een van hierdie omhulsels gekoop nie, so ek kan nie waarborg dat al die komponente daarin pas nie!

Banggood - boks 100x68x50mm met deursigtige deksel - $ 5,35

Digikey - boks 130x80x70mm met deursigtige deksel - $ 11,65

Vir hierdie punt verder, as ek na die omhulsel verwys, praat ek oor my 3D -gedrukte een.

Stap 2: My persoonlike 3D -gedrukte omhulsel

My persoonlike 3D -gedrukte omhulsel!
My persoonlike 3D -gedrukte omhulsel!
My persoonlike 3D -gedrukte omhulsel!
My persoonlike 3D -gedrukte omhulsel!
My persoonlike 3D -gedrukte omhulsel!
My persoonlike 3D -gedrukte omhulsel!

Nadat ek 'n paar uur in Fusion 360 gewerk het, het ek hierdie omhulsel gekry. Dit het drie sirkelvormige uitsparings vir twee vroulike 3,5 mm -aansluitings en een skakelaar. Die deksel het 'n gat van 16 mm vir die kort drukknop en 'n reghoekige uitsny vir die skerm, sowel as die vier bevestigingsgate om die skerm vas te hou. Die deksel is 'n aparte deel en het 'n lip om te voorkom dat vog deur die naat binnedring. Die vier gate op die hoeke van die boks is om die deksel vas te hou met 'n afstand van 30 mm. Al die skroefgate is 3 mm in deursnee, wat pas by 'n M3 -skroef.

U kan die STL -lêers vanaf my Thingiverse -bladsy aflaai. Dit kan sonder vlotte of ondersteunings gedruk word, maar ek het stutte gebruik om dit veilig te maak. Ek het ook 100% vulsel gebruik. Aangesien die mure so dun is, het die vermindering van die invulpersentasie nie regtig die totale druktyd of totale materiaal verander nie, so ek het dit net op 100%gehou.

Om die skerm sigbaar te maak, kan dit óf deur 'n uitsny in die deksel van die omhulsel steek, óf agter 'n deursigtige venster geplaas word. Aangesien die skerm nie aan vog blootgestel moet word nie, het ons die tweede opsie. Ongelukkig is 3D -drukwerk met deursigtige filament nog in sy kinderskoene, so ons sal 'n bietjie kreatief moet raak.

My oplossing was om 'n reghoekige uitsny in die deksel te maak en 'n stuk deursigtige plastiek uit 'n paar groenteverpakkings vas te plak. Hierdie tegniek kan gebruik word, selfs as u nie my aangepaste omhulsel gebruik nie; sny eenvoudig 'n reghoek met 'n mes of 'n Dremel. As u 'n omhulsel met 'n deursigtige deksel gebruik, is dit natuurlik glad nie nodig nie.

Die beste bron vir deursigtige plastiek wat ek gevind het, is verpakking. Gewoonlik kom spinasie of ander blaargroentes in groot deursigtige plastiekhouers. In my geval het ek die verpakking gebruik van 'n "pepermengsel".

Ek wou 'n oorhang van 5 mm hê om genoeg oppervlakte te gee om te plak, so ek sny 'n reghoek van 27x77mm helder plastiek. Ek moes die hoeke 'n bietjie afsny sodat die skroewe pas. Ek spuit 'n lyn met superlijm om die omtrek van die uitsny, en plaas dan die deurskynende plastiek daarop. Ek het 'n bietjie meer gom rondom die rand bygevoeg net om seker te maak dat dit verseël is.

Pro-wenk: Plaas die onderdeel voor 'n klein waaier terwyl die gom droog word. Terwyl supergom droog word, laat dit 'n vuil wit oorskot agter, wat ons beslis nie op ons deursigtige venster wil hê nie. Ek het 'n ou 12V waaier van 'n rekenaar se kragtoevoer gebruik. Ek laat die gom 12 uur lank sit om seker te maak dat dit heeltemal droog is.

Stap 3: Monteer die LCD -skerm

Montering van die LCD -skerm
Montering van die LCD -skerm
Montering van die LCD -skerm
Montering van die LCD -skerm
Montering van die LCD -skerm
Montering van die LCD -skerm

Sodra die deursigtige venster droog is, kan die LCD gemonteer word. Die LCD is 'n super gewilde 16x2 karaktervertoning, met die I²C "rugsak" wat vooraf aan die agterkant is gesoldeer. Ek beveel sterk aan dat u hierdie skerm met die I²C -koppelvlak kry. Dit is nogal irriterend om al die parallelle lyne te bedrieg en dit bied meer potensiaal vir foute - die I²C -weergawe het slegs twee drade vir krag en twee drade vir sein.

Ek het vier 10 mm -afstandhouers gebruik om die skerm te monteer. Die opstandpunte het elkeen 'n buitegraad aan die een kant en 'n vroulike draad aan die ander kant. Ek steek die binnegare deur die gate in die LCD en trek 'n M3 -moer aan elkeen vas. Toe gebruik ek vier M3 -skroewe om die vroulike ente van die afstande deur die deksel van die omhulsel vas te maak. Ek het 'n pakket met afwykings met 10 mm om die LCD te monteer, en langer om die deksel aan die basis te hou. Boonop is daar M3 -skroewe en moere, sodat u nie ekstra hardeware hoef te koop nie.

Maak seker dat die moere baie styf is, sodat die skroewe nie draai as u die skroewe draai nie. Maak ook seker dat u die skroewe nie te hard draai nie, anders kan die plastiekdeksel vervorm en nie behoorlik verseël nie.

Die ry met 16 koppenne op die LCD moet bo -aan wees - maak seker dat u nie die LCD onderstebo monteer nie!

Stap 4: Monteer die kortstondige knoppie

Montering van die kortstondige knoppie
Montering van die kortstondige knoppie
Montering van die kortstondige knoppie
Montering van die kortstondige knoppie
Montering van die kortstondige knoppie
Montering van die kortstondige knoppie

Ek het besluit om hierdie chroom-knoppie op die voorpaneel te gebruik. Ek het dit in vorige projekte gebruik en ek hou baie van die manier waarop dit lyk. Hulle is veronderstel om waterdig te wees en het 'n rubberring om te voorkom dat vog deur die drade in die omhulsel kom.

Hierdie stap is redelik eenvoudig. Maak die moer los, maar hou die rubberring aan. Steek die knoppie deur die gat in die deksel, en trek die moer aan die agterkant vas. Vermy die moer te styf, anders word die rubberring vergruis en dien dit nie.

Stap 5: Krag en laaikring

Krag en laaikring
Krag en laaikring
Krag en laaikring
Krag en laaikring
Krag en laaikring
Krag en laaikring

Nou sal ons die batterykragkomponente saamstel. Dit sluit die battery, hoofskakelaar, batterymonitering/laaibord en die hupstootomskakelaar in.

Die battery wat ek gebruik het, is 'n 3,7V 1500 mAh enkelselle litiumioonbattery. Die spesifieke een wat ek gebruik het, is uit 'n gebreekte Playstation -kontroleerder gehaal. Enige enkelsellige Li-Ion- of LiPo-battery werk, solank dit in u omhulsel pas. Hierdie tipe battery is geneig om baie dun en pap te wees, sodat u waarskynlik een sonder probleme kan gebruik. 'N 18650-sel sou werk, maar dit pas nie in my pasgemaakte omhulsel nie, dus moet u u eie ontwerp of 'n opbergkas gebruik. As dit moontlik is, beveel ek aan om 'n gebergde battery te gebruik (soos ek gedoen het), want die aflewering van batterye is dikwels duur!

Die battery moet eers aan die TP4056 -laaibord gesoldeer word. As u wil, kan u 'n JST RCY -aansluiting vir die gemak aan die battery en laaier soldeer (ek het dit gedoen), maar dit is nie nodig nie. Let op die korrekte polariteit soos aangedui deur die merke op die laaierbord, aangesien die kaart nie teen omgekeerde batterypolariteit beskerm word nie!

Soldeer dan 'n draad van die positiewe uitset van die laaier (langs die positiewe batterykabel) na die positiewe inset op die boost -omskakelaar. Soldeer dan 'n draad van die negatiewe uitset (langs die negatiewe batterydraad) na die algemene (middel) pen van die hoofknoppie. Soldeer uiteindelik 'n draad van die skakelaar se normaal oop pen tot die negatiewe inset van die hupstootomskakelaar. As u 'n multimeter aansluit op die uitgang van die boost -omskakelaar en die hoofskakelaar aanskakel, moet 'n spanning vertoon word.

Aangesien ons Arduino, LCD -skerm en vloeisensor almal 5V benodig, moet ons die uitset van die hupstootomsetter op 5V stel. Dit word bereik deur die knop met 'n klein skroewedraaier aan die potensiometer te draai. Terwyl die hoofskakelaar aangeskakel is, die battery gekoppel is en die multimeter gekoppel is aan die uitgang van die boost -omskakelaar, draai die potensiometer stadig totdat die uitset 5V is. Dit sal moeilik wees om presies 5.000V te lees, maar streef na 'n spanning tussen 4.9V en 5.1V.

Aangesien my pasgemaakte omhulsel met verskeie skroewe gesluit word, wil ons nie die kas elke keer oopmaak as dit opgelaai moet word nie. Ek het 'n 3,5 mm -koptelefoonaansluiting hiervoor gebruik. Die presiese aansluiting wat ek gebruik het, is hierdie van Digikey (daarvoor is die grootte van die uitsny in my omhulsel), maar hierdie van Banggood behoort ook te werk.

Eerstens het ek die aansluiting in die onderste gat in die omhulsel geplaas. Aangesien dit die meeste van die tyd ontkoppel sal word en dus vatbaar is vir vog, is dit die beste om dit op die bodem te plaas om te voorkom dat water binne -in drup. Nadat ek die sluitwasser geïnstalleer en die moer vasgedraai het, het ek twee drade aan die "punt" en "mou" oortjies op die connector gesoldeer. Die pinout van die connector word getoon in een van my geannoteerde beelde. Ek het die ander kant van die "mou" -draad aan die negatiewe ingang van die laaier langs die mikro -USB -poort gesoldeer. Laastens het ek die "tip" -draad aan die +5V -pad aan die ander kant van die USB -poort gesoldeer. Die USB -poort op die laaier sal nie gebruik word nie, want dit sou moeilik wees om die USB -poort in die omhulsel te laat dring sonder om vog binne te laat.

Stap 6: Laai kabel

Laaikabel
Laaikabel
Laaikabel
Laaikabel
Laaikabel
Laaikabel

Aangesien ons 'n 3,5 mm -klankaansluiting as laaipoort gebruik, moet ons 'n adapterkabel met 'n 3,5 mm -aansluiting aan die een kant en 'n USB A -prop aan die ander kant maak. Dit sal ons toelaat om enige generiese laaier vir mobiele toestelle (soos 'n iPhone -laaier) te gebruik om hierdie toestel te laai.

U kan 'n USB -kabel met 'n USB A -aansluiting aan die een kant en ingeboude drade aan die ander kant koop, maar as u soos ek is, het u waarskynlik 'n dosyn ewekansige USB -kabels wat u nie nodig het nie. Eerder as om 'n USB -kabel te koop, het ek net 'n mikro -USB na USB A -kabel gekry wat ek nie nodig gehad het nie, en ek het die mikro -USB -aansluiting afgesny.

Daarna het ek die wit baadjie van die kabel afgetrek om slegs twee drade binne te wys: 'n rooi en 'n swart draad. Sommige USB -kabels sal vier drade hê: rooi, swart, groen en wit. Die groen en wit is vir data -oordrag en kan geïgnoreer word. Verwyder slegs die isolasie van die rooi en swart drade.

Vervolgens benodig u 'n 3,5 mm -prop. Ek het hierdie een van Banggood gebruik. Soldeer die rooi draad van die USB -kabel na die middelste oortjie (wat die punt van die aansluiting is) en die swart draad aan die langmou -oortjie. Sien my foto's vir verduideliking.

Ek beveel aan dat u altyd die 3,5 mm -aansluiting voor die USB -aansluiting aansluit, aangesien die aansluiting van die kabel kan veroorsaak dat die prop oor die metaalhouer kom.

Stap 7: Oor die vloeisensor

Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor
Oor die vloeisensor

Ek het hierdie vloeisensor vir $ 3,87 by Banggood opgetel. Voordat ek dit gebruik, het ek besluit om te ondersoek hoe dit werk.

Die ontwerp is verbasend eenvoudig en vindingryk. Die elektronika is heeltemal van die water af verseël. Daar is 'n vrydraaiende propeller wat, afhangende van die vloeitempo, stadiger of vinniger draai. Op 'n stadium op die skroef is 'n magneet. Aan die buitekant van die sensor is 'n klein kompartement met 'n klein PCB met twee komponente: 'n weerstand en 'n saal-effek sensor. Elke keer as die magneet by die saal-effek sensor verbygaan, wissel dit tussen hoog en laag. Met ander woorde, dit wissel tussen 5V en 0V elke keer as die skroef draai.

Om die sensor te lees, pas ons +5V toe op die rooi draad, negatief op die swart draad, en lees die digitale sein van die geel draad. Op die foto van my ossilloskoop kan u sien hoe die sein verander namate die stroom aangeskakel word. Aanvanklik is die sein konstant nul volt. As die vloei begin, word die frekwensie van pulse vinnig bespoedig en bereik dit 'n bestendige toestand.

Volgens die datablad lewer die sensor 450 pulse per liter. Dit sal later belangrik wees wanneer ons die sagteware skryf.

Stap 8: Bedrading van vloeisensor

Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading
Vloeisensor bedrading

Die vloeisensor het 'n 3-pins JST-XH-aansluiting. Dit is nie ideaal nie, omdat die drade te kort is en die aansluiting blootgestel is aan kontakte wat maklik deur verdwaalde waterdruppels verkort kan word. Ek het hierdie 3,5 mm -klankstelsel vir kabels by Digikey bestel. Dit is 3 'lank, wat die perfekte lengte is, en het vertinde drade, wat dit maklik maak om te soldeer. Ek beveel nie aan om 'n ou koptelefoonkoord te probeer gebruik nie, aangesien dit baie dun geëmailleerde draad het, wat amper onmoontlik is om te soldeer.

Die vloeisensor het 'n plastiekdeksel wat deur twee Phillips -skroewe vasgehou word. Verwyder eenvoudig hierdie skroewe en trek die printplaat uit. Dit word nie met gom vasgehou nie, dit word net met die deksel van die plastiek gehou. Verwyder vervolgens die drie drade deur dit met 'n soldeerbout te verhit en een vir een af te lig.

Soldeer dan die 3,5 mm -audiokabel aan die pads. Ek stel voor dat die kleure ooreenstem met die manier waarop ek dit gedoen het. Hierdie konfigurasie het +5V op die punt, sein op die ring en grond op die mou. Dit is dieselfde opset wat gebruik word vir die laaipoort, vanaf stap 6. As u die laaier per ongeluk in die sensorpoort steek, of andersom, is daar geen skade aan die toestel nie.

Stap 9: Installeer die vloeisensor

Die installering van die vloeisensor
Die installering van die vloeisensor
Die installering van die vloeisensor
Die installering van die vloeisensor
Die installering van die vloeisensor
Die installering van die vloeisensor

Tot dusver het al ons werk in die werkswinkel plaasgevind. Maar nou is dit tyd om badkamer toe te gaan!

Eers het ek die stortkop verwyder. Dit onthul 'n kort pypie wat uit die muur steek, met 'n 1/2 NPS buitegang. Handig, ons vloeisensor het presies dieselfde draadgrootte! benodig 'n vrou-tot-vrou-koppeling.

By my plaaslike hardewarewinkel was daar koppelinge van 1/2 in koper, yster en PVC. Die PVC -een was die goedkoopste, so ek het die een gekry.

Sodra u die koppeling het, skroef u eenvoudig die vloeisensor in die koppeling en skroef u die ander kant van die koppeling op die pyp vas. Die vloeisensor het 'n pyl om die beoogde vloeirigting aan te dui. Maak seker dat u dit nie agteruit installeer nie, anders kan die metings onakkuraat wees. Skroef ten slotte die stortkop aan die einde van die vloeisensor.

Ek neem natuurlik aan dat u stort 'n 1/2 NPS -draad gebruik, soos myne. As dit nie die geval is nie, moet u ekstra adapters kry.

Pro-wenk: Voeg 'n bietjie Teflon-loodgieter se band by al die drade voordat die stukke vasgeskroef word om lekkasies te voorkom. Ek het niks byderhand gehad nie, maar ek is van plan om dit in die nabye toekoms by te voeg.

Stap 10: Arduino en Perfboard

Arduino en Perfboard
Arduino en Perfboard
Arduino en Perfboard
Arduino en Perfboard
Arduino en Perfboard
Arduino en Perfboard

Aangesien ons baie bedrading moet doen, is dit 'n goeie idee om 'n stuk bord te kry om dinge netjies te maak. Ek sny 'n reghoek van perfboard ongeveer 1 "by 2". Daarna het ek my Arduino Nano in die middel van die bord geplaas en gemerk waar die koppenne deurgegaan het. Toe sny ek twee lengtes vroulike kopstukke, elk 15 penne lank. Ek het dit gesoldeer op die perfboard waar ek voorheen gemerk het. Dit sal ons toelaat om die Arduino vir programmering te verwyder.

Pro-wenk: Merk die oriëntasie van die Arduino se USB-poort sodat u dit altyd op dieselfde manier in die bord kan koppel.

Stap 11: Alles bedek

Alles bedrieg
Alles bedrieg
Alles bedrieg
Alles bedrieg
Alles bedrieg
Alles bedrieg

Nou is dit tyd om alles saam te soldeer! Ek het 'n volledige bedradingsdiagram bygevoeg wat u kan volg, of sien my skriftelike stappe hieronder as u 'n meer geleide benadering verkies.

Eerstens het ek 'n paar manlike kopstukke gesny en dit op die perfboard op die +5V en grondrails gesoldeer. Toe soldeer ek nog twee koppenne wat verbind is met penne A4 en A5 op die Arduino. Met hierdie opskrifte kan ons die LCD-skerm verbind met behulp van vroulike tot vroulike springers.

Vervolgens het ek 'n paar drade gesoldeer van die uitset van die boost -converter na die +5V en grondrails. Dit bied krag aan die Arduino, die LCD en die vloeisensor.

Daarna het ek twee drade geknip en aan die terminale van die drukknop gekoppel. Ek het die een draad aan die grondrail gesoldeer, en die ander aan die digitale pen 3.

Die laaste deel om te soldeer is die vloeisensor. Aangesien ons reeds 'n 3,5 mm -prop aan die sensor geheg het, hoef ons net 'n 3,5 mm -aansluiting te soldeer. Eers het ek drie drade gesoldeer - een aan elk van die oortjies op die domkrag. Toe steek ek die domkrag deur die omhulsel en maak dit vas met 'n moer. Uiteindelik het ek die mou aan die grond gesoldeer, die punt tot +5V en die ring aan die digitale pen 2.

Ek het gekies om digitale penne 2 en 3 vir die knoppie en vloeisensor te gebruik, want dit is hardeware -onderbrekingspenne. Dit sal dit baie makliker maak om die kode te skryf.

Nou is ons klaar met soldeer, maar ons moet nog steeds die LCD aansluit. Aangesien ons kopstukke gesoldeer het, benodig ons net vier springers van vrou tot vrou. Koppel die "Vcc" -pen aan +5V, die "Gnd" -pen aan die grond, die "SCL" -pen aan A5 en die "SDA" -pen aan A4. Om die LCD -skerm in die omhulsel te pas, moet ons die koppenne agteruit buig. Deur die penne verskeie kere heen en weer te buig, word die metaal moeg en kan die penne breek, dus ek beveel aan dat u dit net een keer buig en dit met omsigtigheid doen.

Nou is die bedrading voltooi!

Stap 12: Programmering

Programmering
Programmering

Noudat die hardeware alles verbind is, kan ons die Arduino programmeer.

Ek wil hê dat die program die volgende funksies moet hê:

  • Vertoon op die eerste reël 'n vinnige opdatering van die totale liter
  • Gee op die tweede reël die totale koste van die water of die vloeitempo
  • As die stort loop, wissel die drukknop tussen die koste of die vloeitempo
  • As die stort nie loop nie, moet die drukknop alle data uitvee en die skerm herstel
  • Die sensor moet gelees word deur 'n onderbrekingsroetine te gebruik om groot opname -metodes te vermy
  • By die opdatering van die skerm moet ons slegs die waardes wat verander het, opdateer, eerder as om die hele skerm elke keer te oorskryf (dit kan merkbare flikkering veroorsaak)

Die program volg 'n eenvoudige struktuur. Deur die millis () -funksie te gebruik, kan ons vertragings skep wat die uitvoering van die program nie eintlik stop nie. Sien hierdie handleiding vir 'n voorbeeld van die knipper van 'n LED sonder om die vertraging () -funksie te gebruik.

Die funksie millis () gee die aantal millisekondes terug sedert die Arduino aangeskakel is. Deur 'n veranderlike "previousMillis" te skep en Millis () - previousMillis () af te trek, kan ons die tyd wat verloop het sedert vorigeMillis opgedateer is, sien.

As ons wil hê dat iets een per sekonde moet gebeur, kan ons die volgende kodeblok gebruik:

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

vorige Millis = millis (); toggleLED (); }

Dit kontroleer of die verskil tussen millis () (die huidige tyd) en vorige Millis (die laaste keer) groter as of gelyk is aan 1000 millisekondes. As dit die geval is, is die eerste ding wat ons doen om vorige Millis gelyk te stel aan die huidige tyd. Dan voer ons die bykomende stappe uit wat ons wil hê. In hierdie voorbeeld skakel ons 'n LED aan. Dan verlaat ons hierdie blok kode en voltooi ons die res van die loop () -funksie, voordat ons teruggaan na die begin en dit weer herhaal.

Die voordeel van die gebruik van hierdie metode bo die eenvoudige vertraging () -funksie is dat vertraging () 'n gaping tussen die instruksies plaas, maar dit hou nie rekening met die tyd wat dit neem om die ander instruksies in die loop () -funksie uit te voer nie. As u iets doen wat langer neem as om net 'n LED te knip, soos om 'n LCD -skerm op te dateer, is die tyd wat dit neem nie te verwaarloos nie, en na 'n paar siklusse sal dit optel. As u die LCD -skerm op 'n horlosie opdateer, sal dit vinnig onakkuraat raak en agter raak.

Noudat ons die algehele struktuur van die program verstaan, is dit tyd om die instruksies in te voeg. In plaas daarvan om elke enkele reël kode hier te verduidelik, stel ek voor dat u eers die aangehegte vloeidiagram lees, wat 'n goeie oorsig gee van wat die program doen.

Nadat u die vloeidiagram gesien het, kyk na die aangehegte Arduino -kode. Ek het byna elke reël kommentaar gelewer om duidelik te maak wat elke reël doen.

Daar is 'n paar dele in die kode wat u dalk wil verander. Die belangrikste is die koste per liter. In my stad kos die water 0,2523 ¢ per liter. Soek die volgende reël en verander die waarde om aan te pas by die koste waar u woon:

const float COST_PER_LITRE = 0.2523; // koste per liter, in sent, vanaf die stad se webwerf

As u verkies om liter bo liter te gebruik, verander al die "LCD.print ()" lyne wat na "L" of "L/s" verwys na "G" of "G/s". Vee dan die volgende reël uit:

const float OMKOMSTE = 450,0; // hou dit sonder liter vir liter

… en lewer 'n opmerking oor hierdie reël:

const float OMSKAKING = 1703.0; // los hierdie op en verwyder die lyn hierbo vir liter

Daar is nog 'n eienaardigheid wat u in my kode opgemerk het. Die standaard karakterset bevat nie die '¢' karakter nie, en ek wou nie dollars gebruik nie, want die koste sou die meeste van die tyd as '$ 0,01' of minder verskyn. Daarom moes ek 'n persoonlike karakter skep. Die volgende greepskikking word gebruik om hierdie simbool voor te stel:

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

Nadat u hierdie skikking gemaak het, moet die spesiale karakter "geskep" en gestoor word.

lcd.createChar (0, cent_sign);

Sodra dit klaar is, gebruik ons die volgende reël om die pasgemaakte karakter af te druk:

lcd.write (greep (0)); // druk sentteken (¢)

Die LCD kan tot 8 persoonlike karakters bevat. Meer inligting hieroor is hier. Ek het ook hierdie nuttige aanlynhulpmiddel teëgekom waarmee u die pasgemaakte karakter met 'n grafiese koppelvlak kan teken, en dit sal outomaties die persoonlike byte -skikking genereer.

Stap 13: Maak die deksel toe

Maak die deksel toe
Maak die deksel toe
Maak die deksel toe
Maak die deksel toe
Maak die deksel toe
Maak die deksel toe

Uiteindelik is ons amper klaar!

Dit is tyd om al die elektronika in die omhulsel te steek en te hoop dat die deksel toemaak. Maar eers moet ons die 30 mm -afstande heg. Die pakket wat ek gekoop het, bevat nie so lank nie, maar daar is 20mm en 10mm wat aan mekaar geheg kan word. Ek het vier afstande in die gate aan die onderkant van die omhulsel vasgedraai met vier M3 -skroewe (sien prente 1 en 2). Maak dit stewig vas, maar nie te styf nie, anders loop u die risiko om die plastiekomhulsel te breek.

Nou kan ons al die elektronika binne pas. Ek het die laaier en boost-omskakelaar met dubbelzijdige band aan die deksel geheg, soos in die derde prentjie gesien word. Toe draai ek 'n bietjie elektriese band om die blootgestelde metaal op die twee 3,5 mm -aansluitings, net om te verseker dat niks kortkom deur kontak met die verbindings te maak nie.

Ek kon die Arduino fiks maak deur dit aan die sykant, in die linker onderste hoek, met die USB -poort na regs te plaas. Ek het meer dubbelzijdige band gebruik om die battery aan die onderkant van die omhulsel onder die LCD-skerm vas te maak.

Ten slotte, as alles min of meer veilig in die boks vasgesteek is, kan die deksel met nog vier M3 -skroewe vasgeskroef word.

Stap 14: Toets

Toets
Toets
Toets
Toets
Toets
Toets
Toets
Toets

Koppel eers die 3,5 mm -aansluiting van die vloeisensor. Ek beveel aan dat u dit doen voordat die toestel aangeskakel word, aangesien die prop moontlik 'n ongewenste verbinding kan maak terwyl dit ingevoeg word.

Skakel dan die hoofskakelaar aan. Alhoewel daar geen water loop nie, moet die knoppie op die voorpaneel niks anders doen as om die totaal te verwyder en die skerm skoon te maak nie. Aangesien die totaal standaard nul is, lyk dit of die knoppie nog niks doen nie.

As u die stort aanskakel, moet die totaal begin toeneem. Die koste word standaard vertoon. As u op die knoppie op die voorpaneel druk, word die vloeitempo op die onderste lyn vertoon. Deur op die knoppie op die voorpaneel te druk, wissel tussen die wys van die vloeitempo en die koste, solank die stort loop. Sodra die stort stop, druk die knoppie op die voorpaneel om die metings terug te stel en maak die skerm skoon.

Montering

Hoe u kies om die toestel te monteer, hang af van die uitleg van u stort. Sommige storte het 'n rand naby die stortkop sodat u die toestel eenvoudig daar kan plaas. In my stort het ek 'n mandjie met suigkoppies wat ek in die toestel geplaas het. As u nie die luukse van 'n rand of mandjie het nie, kan u probeer om die toestel teen 'n dubbelzijdige suigbeker teen die muur te hou. Dit werk slegs as u 'n opbergkas met 'n gladde agterkant gebruik, of as u my persoonlike omhulsel op 'n drukker met 'n glasplaat gedruk het. As u omhulsel 'n growwe agterkant het (soos myne), kan u dubbelband gebruik, alhoewel dit 'n bietjie vuil op u stort kan agterlaat as u die toestel probeer verwyder.

Probleemoplossing

Skerm is aan, maar agterlig is af - maak seker dat die trui op die twee penne aan die kant van die I ² C -module geïnstalleer is

Skerm is leeg, met agtergrond aan - kyk of die I ² C -adres korrek is deur die I²C -skandeerder uit te voer

Die skerm is aan, maar die waardes bly nul - kyk of daar 'n sein van die sensor af kom deur die spanning op pen 2 te meet. As daar geen sein is nie, kyk of die sensor korrek gekoppel is.

Skerm is leeg met agterlig af - kyk of die krag -LED op die Arduino aan is en kyk of die skerm krag het

Die skerm word kort aangeskakel, dan stop alles - u stel waarskynlik die spanning van die boost -omskakelaar te hoog in (die komponente kan nie meer as 5V hanteer nie)

Die toestel werk, maar die waardes is verkeerd - maak seker dat die vloeisensor wat u gebruik dieselfde omskakelingsfaktor van 450 pulse per liter het. Verskillende sensors kan verskillende waardes hê.

Stap 15: Begin nou water bespaar

Verbeterings

Die huidige weergawe van die sagteware werk goed genoeg, maar uiteindelik wil ek die moontlikheid byvoeg om verskillende gebruikers te hê (familielede, huismaats, ens.) Die toestel sal elke persoon se statistieke (totale water en totale aantal storte) stoor toon 'n gemiddelde watergebruik vir elke persoon. Dit kan mense aanmoedig om mee te ding om die minste hoeveelheid water te gebruik.

Dit sou ook gaaf wees om 'n manier te hê om die data wat in 'n sigblad bekyk moet word, uit te voer, sodat dit in grafiek kan word. Dan kan u sien watter tye van die jaar mense gereeld en langer stort.

Hierdie funksies benodig almal die gebruik van EEPROM-die ingeboude nie-vlugtige geheue van die Arduino. Dit sal toelaat dat die data bewaar word, selfs nadat die toestel afgeskakel is.

'N Ander nuttige funksie is 'n battery -aanwyser. Op die oomblik is die enigste aanduiding dat die toestel herlaai moet word, wanneer die batterybestuurbord die krag afskakel. Dit sou maklik wees om 'n ekstra analoog ingang aan te sluit om die batteryspanning te meet. 'N Spanningsverdeler is nie eens nodig nie, aangesien die batteryspanning altyd minder as 5V is.

Sommige van hierdie idees grens aan funksie -kruip, en daarom het ek nie die sagteware verder ontwikkel nie.

Die res is aan jou!

Sensors -kompetisie
Sensors -kompetisie
Sensors -kompetisie
Sensors -kompetisie

Eerste prys in die Sensors -kompetisie

Aanbeveel: