Kazalo:

Prihranite vodo in denar z monitorjem za prho: 15 korakov (s slikami)
Prihranite vodo in denar z monitorjem za prho: 15 korakov (s slikami)

Video: Prihranite vodo in denar z monitorjem za prho: 15 korakov (s slikami)

Video: Prihranite vodo in denar z monitorjem za prho: 15 korakov (s slikami)
Video: 15 полезных советов по демонтажным работам. Начало ремонта. Новый проект.# 1 2024, Julij
Anonim
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho
Prihranite vodo in denar z monitorjem vode za prho

Kaj porabi več vode - kopel ali prha?

Pred kratkim sem razmišljal o tem vprašanju in spoznal, da pravzaprav ne vem, koliko vode porabim pri tuširanju. Vem, ko sem pod tušem, mi včasih misli potujejo, razmišljajo o kul ideji o novih projektih ali se poskušajo odločiti, kaj bodo zajtrkovali, medtem ko voda kar priteče v odtok. Porabo vode bi bilo veliko lažje zmanjšati, če bi dejansko vedel, koliko litrov porabim vsakič!

Nekaj sem raziskal in ugotovil, da lahko različne tuš glave uporabljajo od 9,5 litra (2,5 litra) na minuto do manj kot 6 litrov (1,6 litra) na minuto, če imate nameščen omejevalnik pretoka. Zelo stara prha bi lahko porabila še več vode.

Odločil sem se, da bom zasnoval in izdelal napravo, ki bo prikazovala skupno količino porabljene vode na tuš, stroške vode in pretok. To napravo imam nameščeno že nekaj tednov in res je priročno, če v živo odčitamo količino porabljene vode.

V tem navodilu bom razložil, kako sem to zgradil. Seveda vam ni treba natančno slediti mojim korakom! Vedno je dobro uporabiti dele, ki jih imate naokoli. Vključil sem povezave do vseh delov, ki sem jih uporabil, ali enakovrednega dela, ki bo deloval.

Zaloge

(Vse cene v USD)

  • Senzor pretoka - 3,87 USD
  • LCD zaslon - 2,29 USD
  • Arduino Nano - 1,59 USD
  • Povečevalni pretvornik - 1,88 USD
  • LiPo polnilec - 1,89 USD
  • Vodotesno stikalo - 0,93 USD (ni ravno tisto, ki sem ga uporabil, vendar bi moralo delovati)
  • Vodoodporen gumb - 1,64 USD
  • Stojala, vijaki in matice M3 - 6,99 USD
  • 2X ženski 3,5 mm vtič - 2,86 USD ea.
  • Moški 3,5 mm vtič - 1,48 USD
  • 3,5 mm 3 'kabel - 3,57 USD
  • Sklop kabla USB - 1,74 USD
  • 1/2 "NPS sklopka ženska-ženska-1,88 USD
  • 500 mAh 3.7V LiPo baterija - 3,91 USD

Orodja in skupni potrošni material

  • Spajkalnik in spajkanje
  • Žica
  • Rezalniki žice
  • Odstranjevalci žice
  • Dvostranski trak
  • Phillips izvijač
  • 3D tiskalnik (neobvezno)

Korak: Hidroizolacija

Hidroizolacija
Hidroizolacija

Najtežji vidik tega projekta je, da je vse skupaj vodotesno. Ker bo bival pod tušem, mora biti sposoben preživeti ekstremno vlago in občasno brizganje. Približno 75% celotnega časa, porabljenega za ta projekt, je ugotavljalo ta del.

Način, na katerega jaz gledam, obstajata dve možnosti: oblikujte ohišje po meri s 3D-tiskanjem ali poskusite delovati z ohišjem, ki je na voljo. Ker sem pred kratkim dobil lasten 3D tiskalnik, sem se odločil za prvo možnost.

Če nimate dostopa do 3D-tiskalnika, je tukaj nekaj omar, ki so na voljo za prodajo, za katere trdim, da so vodotesne in bi verjetno delovale. Upoštevajte, da nisem kupil nobenega od teh ohišij, zato ne jamčim, da se bodo vse komponente prilegale notranjosti!

Banggood - škatla 100x68x50mm s prozornim pokrovom - 5,35 USD

Digikey - škatla 130x80x70mm s prozornim pokrovom - 11,65 USD

Za to točko naprej, ko govorim o ohišju, govorim o svojem 3D tiskanem.

2. korak: Moje 3D tiskano ohišje po meri

Moje 3D tiskano ohišje po meri!
Moje 3D tiskano ohišje po meri!
Moje 3D tiskano ohišje po meri!
Moje 3D tiskano ohišje po meri!
Moje 3D tiskano ohišje po meri!
Moje 3D tiskano ohišje po meri!

Po nekaj urah dela v Fusion 360 sem prišel do tega ohišja. Ima tri krožne izreze za dve ženski 3,5 mm vtičnici in eno stikalo. Pokrov ima 16 -milimetrsko luknjo za trenutni gumb in pravokotni izrez za zaslon ter štiri pritrdilne luknje za pritrditev zaslona. Pokrov je ločen del in ima ustnik, ki preprečuje vdor vlage skozi šiv. Štiri luknje na vogalih škatle držijo pokrov s 30 mm odmiki. Vse luknje za vijake so premera 3 mm, kar ustreza vijaku M3.

Datoteke STL lahko prenesete z moje strani Thingiverse. Lahko se natisne brez splavov ali podpor, vendar sem uporabil nosilce samo zato, da sem varen. Uporabil sem tudi 100% polnilo. Ker so stene tako tanke, zmanjšanje odstotka polnjenja v resnici ne spremeni celotnega časa tiskanja ali celotnega materiala, zato sem ga ohranil pri 100%.

Da bi bil zaslon viden, bi lahko štrlel skozi izrez v pokrovu ohišja ali pa bi bil postavljen za prozorno okno. Ker zaslon ne sme biti izpostavljen vlagi, smo ostali pri drugi možnosti. Žal je 3D tiskanje s prozorno nitjo še v povojih, zato bomo morali biti nekoliko ustvarjalni.

Moja rešitev je bila, da sem na pokrovu ustvarila pravokoten izrez in lepila v kos prozorne plastike iz embalaže za zelenjavo. To tehniko lahko uporabite, tudi če ne uporabljate mojega ohišja po meri; preprosto izrežite pravokotnik z pomožnim nožem ali Dremelom. Seveda, če uporabljate ohišje s prozornim pokrovom, to sploh ni potrebno.

Najboljši vir prozorne plastike, ki sem ga našel, je embalaža za proizvodnjo. Ponavadi špinača ali druga listnata zelenjava prihaja v velikih prozornih plastičnih posodah. V mojem primeru sem uporabil embalažo iz "paprike".

Želel sem previs 5 mm, da bi imel dovolj površine za lepljenje, zato sem izrezal pravokotnik 27x77 mm iz čiste plastike. Moral sem nekoliko obrezati vogale, da so se vijaki prilegali. Po obodu izreza sem brizgal črto superlepila in nato položil prozorno plastiko. Po robu sem dodal še malo superlepila, da sem se prepričal, da je zapečaten.

Pro-Nasvet: Med sušenjem lepila del postavite pred majhen ventilator. Ko se superlepilo posuši, za sabo ponavadi pusti mrzle bele ostanke, česar na prozornem oknu zagotovo ne želimo. Uporabil sem star 12V ventilator iz računalniškega napajanja. Lepilo sem pustila 12 ur, da se prepriča, da je popolnoma suho.

3. korak: Namestitev LCD zaslona

Namestitev LCD zaslona
Namestitev LCD zaslona
Namestitev LCD zaslona
Namestitev LCD zaslona
Namestitev LCD zaslona
Namestitev LCD zaslona

Ko se prozorno okno posuši, lahko LCD namestite. LCD je zelo priljubljen zaslon z ločljivostjo 16x2, z "nahrbtnikom" I²C, predhodno spajkanim na hrbtni strani. Zelo priporočam, da ta zaslon vzamete z vmesnikom I²C. Ožičenje vseh vzporednih vodov je precej nadležno in prinaša več možnosti za napake - različica I²C ima samo dve žici za napajanje in dve žici za signal.

Za namestitev zaslona sem uporabil štiri 10 -milimetrske nastavke. Izstopi imajo vsak na enem koncu moški navoj, na drugem pa ženski navoj. Moški navoj sem vtaknil skozi luknje na LCD -ju in na vsako pritrdil matico M3. Nato sem s štirimi vijaki M3 pritrdil ženske konce odmikov skozi pokrov ohišja. Dobil sem ta paket stojal, ki ima 10 -milimetrske za namestitev LCD -ja in daljše, ki držijo pokrov na dnu. Poleg tega obstajajo vijaki in matice M3, zato vam ni treba kupovati dodatne strojne opreme.

Prepričajte se, da so matice zelo tesne, da se med zategovanjem vijakov izklopi ne obračajo. Pazite tudi, da vijakov ne privijte preveč, sicer se plastični pokrov lahko deformira in se ne zatesni pravilno.

Vrstica 16 zatičev glave na LCD -ju mora biti na vrhu - pazite, da LCD -ja ne namestite na glavo!

4. korak: Namestitev trenutnega gumba

Namestitev trenutnega gumba
Namestitev trenutnega gumba
Namestitev trenutnega gumba
Namestitev trenutnega gumba
Namestitev trenutnega gumba
Namestitev trenutnega gumba

Odločil sem se, da bom na sprednji plošči uporabil ta hromiran kromirani gumb. Uporabljal sem jih v prejšnjih projektih in zelo mi je všeč njihov videz. Morali bi biti vodotesni in imajo gumijasti obroč, ki preprečuje vdor vlage v ohišje skozi niti.

Ta korak je precej preprost. Odvijte matico, a gumijasti obroč naj bo pripet. Vstavite gumb skozi luknjo v pokrovu in privijte matico s hrbtne strani. Izogibajte se pretiranemu zategovanju matice, sicer bo gumijasti obroč zdrobljen in ne bo služil svojemu namenu.

5. korak: Napajanje in vezje za polnjenje

Napajanje in vezje za polnjenje
Napajanje in vezje za polnjenje
Napajanje in vezje za polnjenje
Napajanje in vezje za polnjenje
Napajanje in vezje za polnjenje
Napajanje in vezje za polnjenje

Zdaj bomo sestavili komponente za napajanje baterije. To vključuje baterijo, glavno stikalo, ploščo za nadzor/polnjenje baterije in pretvornik za povečanje.

Baterija, ki sem jo uporabil, je enocelična litij-ionska baterija 3,7 V 1500 mAh. Konkretnega, ki sem ga uporabil, so potegnili iz pokvarjenega krmilnika Playstation. Vsaka enocelična Li-Ion ali LiPo baterija bo delovala, če se prilega vašemu ohišju. Ta vrsta baterije je ponavadi zelo tanka in ravna, zato bi jo verjetno brez težav uporabili dvakrat večjo od moje. Celica 18650 bi delovala, vendar se ne bo prilegala mojemu ohišju po meri, zato ga boste morali oblikovati sami ali uporabiti omaro, ki ni na voljo. Če je mogoče, priporočam uporabo rešene baterije (tako kot jaz), ker je pošiljanje baterij pogosto drago!

Baterijo je treba najprej spajkati na polnilno ploščo TP4056. Če želite, lahko za udobje spajkate priključek JST RCY na baterijo in polnilnik (to sem storil), vendar to ni potrebno. Pazite na pravilno polariteto, ki jo označujejo oznake na plošči polnilnika, ker plošča ni zaščitena pred obratno polariteto baterije!

Nato spajkajte žico od pozitivnega izhoda polnilnika (ki se nahaja poleg pozitivne žice akumulatorja) do pozitivnega vhoda na ojačevalnem pretvorniku. Nato spajkajte žico z negativnega izhoda (ki se nahaja poleg negativne žice akumulatorja) na skupni (sredinski) zatič glavnega preklopnega stikala. Na koncu spajkajte žico z običajno odprtega zatiča stikala na negativni vhod pretvornika. Če na izhod ojačevalnega pretvornika priključite multimeter in vklopite glavno stikalo, se mora prikazati napetost.

Ker vsi naši Arduino, LCD zaslon in senzor pretoka potrebujejo 5 V, moramo izhodni pretvornik nastaviti na 5 V. To dosežemo z obračanjem gumba na potenciometru z majhnim izvijačem. Ko je vklopljeno glavno stikalo, priključena baterija in multimeter priključen na izhod pretvornika za povečanje, počasi obračajte potenciometer, dokler izhod ne odkrije 5V. Odčitavanje natančno 5.000V bo težko, vendar si prizadevajte za napetost med 4,9 V in 5,1 V.

Ker je moje ohišje po meri zaprto z več vijaki, ne želimo odpirati ohišja vsakič, ko ga je treba napolniti. Za to sem uporabil 3,5 mm priključek za slušalke. Natančen konektor, ki sem ga uporabil, je ta iz Digikeyja (zato so izrezi v mojem ohišju velikosti), vendar bi moral delovati tudi ta iz Banggooda.

Najprej sem vtaknil priključek v skrajno spodnjo luknjo v ohišju. Ker bo ta večinoma odklopljen in zato dovzeten za vdor vlage, je najbolje, da ga namestite na dno, da preprečite kapljanje vode v notranjost. Po namestitvi podložke in zategovanju matice sem dve žici spajkala na jezičke "konica" in "rokav" na priključku. Odklop priključka je prikazan na eni od mojih označenih slik. Drugi konec žice "tulec" sem spajkal na negativni vhod na polnilniku, poleg vrat micro USB. Nazadnje sem žico "tip" spajkal na +5V blazinico, na drugi strani vrat USB. Vrata USB na polnilniku ne bodo uporabljena, ker bi bilo težko, da vrata USB prodrejo v ohišje, ne da bi v njih vstopila vlaga.

6. korak: Polnilni kabel

Polnilni kabel
Polnilni kabel
Polnilni kabel
Polnilni kabel
Polnilni kabel
Polnilni kabel

Ker za polnilna vrata uporabljamo 3,5 -milimetrski avdio priključek, moramo narediti adapterjev kabel, ki ima moški 3,5 -milimetrski vtič na enem koncu in vtič USB A na drugem koncu. To nam bo omogočilo uporabo katerega koli splošnega polnilnika za mobilne naprave (na primer polnilnika za iPhone) za polnjenje te naprave.

Lahko bi kupili sklop kabla USB s priključkom USB A na enem koncu in kositrenimi žicami na drugem koncu, če pa ste podobni meni, imate verjetno na ducatu naključne kable USB, ki jih ne potrebujete. Namesto da bi kupil sklop kabla USB, sem pravkar dobil kabel mikro USB na USB A, ki ga nisem potreboval, in odrezal priključek mikro USB.

Nato sem slekel belo jakno s kabla in v njej razkril le dve žici: rdečo in črno žico. Nekateri kabli USB bodo imeli štiri žice: rdečo, črno, zeleno in belo. Zelena in bela sta za prenos podatkov in ju lahko prezrete. Odstranite izolacijo samo z rdeče in črne žice.

Nato boste potrebovali moški 3,5 mm vtič. Uporabil sem tega iz Banggooda. Rdečo žico s kabla USB spajkajte na srednji jeziček (ki je konica priključka), črno žico pa na jeziček z dolgimi rokavi. Za pojasnilo si oglejte moje fotografije.

Priporočam, da 3,5 -milimetrski vtič vedno priključite pred vtičnico USB, saj lahko postopek priklopa kabla povzroči kratek stik v kovinski vtičnici.

7. korak: O senzorju pretoka

O senzorju pretoka
O senzorju pretoka
O senzorju pretoka
O senzorju pretoka
O senzorju pretoka
O senzorju pretoka
O senzorju pretoka
O senzorju pretoka

Ta senzor pretoka sem vzel iz Banggooda za 3,87 USD. Pred uporabo sem se odločil raziskati, kako deluje.

Zasnova je presenetljivo preprosta in iznajdljiva. Elektronika je popolnoma zaprta od vode. Na voljo je propeler, ki se vrti počasneje ali hitreje, odvisno od pretoka. Na eni točki propelerja je magnet. Na zunanji strani senzorja je majhen predel, ki vsebuje majhno tiskano vezje z dvema komponentama: upor in senzor hodnega učinka. Vsakič, ko magnet preide mimo senzorja Hall-efekta, preklopi med visoko in nizko. Z drugimi besedami, preklaplja med 5V in 0V vsakič, ko se propeler vrti.

Za odčitavanje senzorja uporabimo +5V na rdečo žico, negativno na črno žico in preberemo digitalni signal iz rumene žice. Na fotografiji mojega osciloskopa lahko vidite, kako se signal spreminja, ko je tok vklopljen. Sprva je signal nenehno nič voltov. Ko se tok začne, se frekvenca impulzov hitro poveča in doseže stabilno stanje.

Po podatkovnem listu senzor odda 450 impulzov na liter. To bo pomembno kasneje, ko bomo pisali programsko opremo.

8. korak: Ožičenje senzorja pretoka

Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka
Ožičenje senzorja pretoka

Senzor pretoka je opremljen s 3-polnim priključkom JST-XH. To ni idealno, ker so žice prekratke in konektor ima izpostavljene kontakte, ki jih lahko z lahkotami kapljice vode preprosto skrajšajo. Ta 3,5 -milimetrski avdio vtični kabel sem naročil pri Digikeyju. Dolga je 3 ', kar je popolna dolžina, in ima pokositrene žice, kar olajša spajkanje. Ne priporočam uporabe starega kabla za slušalke, saj imajo običajno zelo tanko emajlirano žico, ki je skoraj nemogoče spajkati.

Senzor pretoka ima plastični pokrov, pritrjen z dvema vijakoma Phillips. Preprosto odstranite te vijake in izvlecite vezje. Ni pritrjen z lepilom, le pritrjen je s plastičnim pokrovom. Nato tri žice odlepite tako, da jih segrejete s spajkalnikom in jih dvignete, eno za drugo.

Nato 3,5 mm avdio kabel spajkajte na blazinice. Predlagam, da se barve ujemajo tako, kot sem. Ta konfiguracija ima +5V na konici, signal na obroču in ozemljitev na tulcu. To je ista konfiguracija, ki se uporablja za polnilna vrata, od koraka 6. Če polnilnik pomotoma priključite na vrata senzorja ali obratno, naprava ne bo poškodovana.

9. korak: Namestitev senzorja pretoka

Namestitev senzorja pretoka
Namestitev senzorja pretoka
Namestitev senzorja pretoka
Namestitev senzorja pretoka
Namestitev senzorja pretoka
Namestitev senzorja pretoka

Vse do tega trenutka je vse naše delo potekalo v delavnici. Zdaj pa je čas, da se odpravimo v kopalnico!

Najprej sem odstranil prho. To je pokazalo, da iz stene štrli kratek košček cevi z moškim navojem 1/2 NPS. Priročno je, da ima naš senzor pretoka enako velikost navoja! Edina težava je, da ima senzor moški navoj na obeh koncih, zato bomo potrebujete sklopko ženska-ženska.

V moji lokalni trgovini s strojno opremo so bile 1/2 spojke iz medenine, železa in PVC -ja. PVC je bila najcenejša, zato sem jo dobil. Čeprav bi nazaj gledali, bi bili medeninasti ali jekleni lepši.

Ko imate sklopko, preprosto privijte senzor pretoka v sklopko, nato pa drugi konec sklopke privijte na cev. Senzor pretoka ima puščico, ki označuje predvideno smer pretoka. Pazite, da ga ne namestite nazaj, sicer so lahko meritve netočne. Na koncu privijte glavo tuša na konec senzorja pretoka.

Seveda predvidevam, da vaš tuš uporablja 1/2 NPS navoj, tako kot moj. Če temu ni tako, boste morali kupiti dodatne adapterje.

Pro-Nasvet: Preden privijete kose skupaj, da preprečite puščanje, dodajte nekaj teflonskega vodovodnega traku. Nisem imel pri roki, vendar to nameravam dodati v bližnji prihodnosti.

10. korak: Arduino & Perfboard

Arduino in Perfboard
Arduino in Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard

Ker bomo morali narediti veliko ožičenja, je dobro, da si priskrbimo kos plošče, da naredimo stvari nekoliko bolj urejene. Izrezala sem pravokotnik perfboarda približno 1 "za 2". Nato sem svoj Arduino Nano postavil na sredino plošče in označil, kam so šli zatiči glave. Nato sem izrezal dve dolžini ženskih glav, vsaka dolga 15 zatičev. Te sem spajkal na ploščo, kjer sem prej označil. To nam bo omogočilo odstranitev Arduina za programiranje.

Pro-Nasvet: Označite usmerjenost vrat USB Arduino tako, da jih vedno priključite na ploščo za perfom na enak način.

11. korak: Ožičenje vsega

Ožičenje vsega
Ožičenje vsega
Ožičenje vsega
Ožičenje vsega
Ožičenje vsega
Ožičenje vsega

Zdaj je čas, da vse skupaj spajkamo! Vključil sem celoten diagram ožičenja, ki mu lahko sledite, ali pa si oglejte moje pisne korake spodaj, če imate raje bolj voden pristop.

Najprej sem odrezal nekaj moških zatičev glave in jih spajkal na ploščo na +5V in talne tirnice. Nato sem spajal še dva zatiča za glavo, priključena na nožici A4 in A5 na Arduinu. Ti naslovi nam omogočajo, da LCD zaslon povežemo s skakalci za ženske.

Nato sem spajal par žic od izhoda ojačevalnega pretvornika do +5V in talnih tirnic. To bo zagotovilo napajanje Arduinu, LCD -ju in senzorju pretoka.

Po tem sem prerezal dve žici in ju povezal s sponkami gumba. Eno žico sem spajkal na ozemljitveno tirnico, drugo pa na digitalni pin 3.

Zadnji del za spajkanje je senzor pretoka. Ker smo na senzor že priključili 3,5 mm vtič, moramo le spajkati 3,5 mm ženski vtič. Najprej sem spajkal tri žice - po eno na vsak jeziček na vtičnici. Nato sem vtičnico vstavil skozi ohišje in jo pritrdil z matico. Na koncu sem tulec spajkal z maso, konico na +5V in obroč na digitalni pin 2.

Za gumb in senzor pretoka sem se odločil za uporabo digitalnih zatičev 2 in 3, ker gre za strojne prekinitvene zatiče. Tako bo veliko lažje napisati kodo.

Zdaj smo končali s spajkanjem, vendar moramo še vedno priključiti LCD. Ker smo spajkali glave, potrebujemo le štiri skakalce za ženske. Priključite "Vcc" pin na +5V, "Gnd" pin na ozemljitev, pin "SCL" na A5 in "SDA" pin na A4. Če želite, da se zaslon LCD prilega ohišju, moramo zatiče glave upogniti nazaj. Če večkrat upognete zatiče naprej in nazaj, se bo kovina utrudila in zatiči se bodo zlomili, zato priporočam, da jih upognete samo enkrat in to previdno.

Zdaj je ožičenje končano!

12. korak: Programiranje

Programiranje
Programiranje

Zdaj, ko je strojna oprema vsa povezana, lahko programiramo Arduino.

Želim, da ima program naslednje funkcije:

  • V prvi vrstici prikažite hitro posodabljajoče se število skupnih litrov
  • V drugi vrstici prikažite skupne stroške vode ali pretok
  • Med tušem se tipka preklaplja med prikazom stroškov ali pretoka
  • Kadar tuš ne teče, mora gumb izbrisati vse podatke in ponastaviti zaslon
  • Tipalo je treba prebrati s pomočjo rutine prekinitev, da se izognemo grobim metodam glasovanja
  • Pri posodabljanju zaslona bi morali posodobiti le spremenjene vrednosti, ne pa vsakič prepisati celotnega zaslona (to bi povzročilo opazno utripanje)

Program sledi preprosti strukturi. Z uporabo funkcije millis () lahko ustvarimo zamude, ki dejansko ne ustavijo izvajanja programa. Za primer utripanja LED brez uporabe funkcije delay () si oglejte to vadnico.

Funkcija millis () vrne število milisekund od vklopa Arduina. Z ustvarjanjem spremenljivke "previousMillis" in odštevanjem Millis () - previousMillis () lahko vidimo pretečeni čas od posodobitve prejšnjega Millisa.

Če želimo, da se nekaj zgodi na sekundo, lahko uporabimo naslednji kodni blok:

if ((millis () - prejšnjiMillis)> = 1000) {

prejšnjiMillis = millis (); toggleLED (); }

S tem se preveri, ali je razlika med millis () (trenutni čas) in previousMillis (zadnji čas) večja ali enaka 1000 milisekund. Če je, prva stvar, ki jo naredimo, je, da nastavimo previousMillis na enak trenutnemu času. Nato izvedemo vse dodatne korake, ki jih želimo. V tem primeru preklapljamo LED. Nato zapustimo ta blok kode in dokončamo preostanek funkcije loop (), preden se vrnemo na začetek in ponovimo vse znova.

Prednost uporabe te metode pred preprosto funkcijo delay () je v tem, da delay () postavlja časovno vrzel med navodili, vendar ne upošteva časa, ki je potreben za izvedbo drugih navodil v funkciji loop (). Če delate nekaj, kar traja dlje kot samo utripanje LED, na primer posodabljate zaslon LCD, čas, ki ga potrebujete, ni zanemarljiv in se bo po nekaj ciklih sešteval. Če posodabljate LCD zaslon na uri, bi hitro postal netočen in zaostajal.

Zdaj, ko razumemo celotno strukturo programa, je čas, da vstavimo navodila. Namesto da bi tukaj razlagali vsako vrstico kode, vam predlagam, da najprej preberete priloženi diagram poteka, ki daje pregled na visoki ravni, kaj program počne.

Ko vidite diagram poteka, si oglejte priloženo kodo Arduino. Komentiral sem skoraj vsako vrstico, da bi bilo jasno, kaj vsaka vrstica počne.

V kodi je nekaj delov, ki jih boste morda želeli spremeniti. Najpomembnejše so stroški na liter. V mojem mestu voda stane 0,2523 ¢ na liter. Poiščite naslednjo vrstico in spremenite to vrednost, da se bo ujemala s stroški, v katerih živite:

const float COST_PER_LITRE = 0,2523; // cena za liter v centih na mestni spletni strani

Če želite uporabiti galone nad litri, spremenite vse vrstice "LCD.print ()", ki se nanašajo na "L" ali "L/s" na "G" ali "G/s". Nato izbrišite naslednjo vrstico:

const float KONVERZIJA = 450,0; // to ne komentirajte za litre

… in odkomentirajte to vrstico:

const float KONVERZIJA = 1703,0; // razkomentirajte to in izbrišite zgornjo vrstico za galone

V moji kodi ste morda opazili še eno nenavadnost. Privzeti nabor znakov ne vključuje znaka "¢" in nisem hotel uporabiti dolarjev, ker bi bili stroški večino časa prikazani kot "0,01 USD" ali manj. Zato sem bil prisiljen ustvariti lik po meri. Za predstavitev tega simbola se uporablja naslednji niz bajtov:

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

Po ustvarjanju tega niza je treba poseben znak "ustvariti" in shraniti.

lcd.createChar (0, cent_sign);

Ko to naredimo, za tiskanje znaka po meri uporabimo naslednjo vrstico:

lcd.write (bajt (0)); // natisni znak centa (¢)

LCD ima lahko do 8 znakov po meri. Več informacij o tem je tukaj. Prav tako sem naletel na to koristno spletno orodje, ki vam omogoča risanje znaka po meri z grafičnim vmesnikom in bo samodejno ustvarilo niz bajtov po meri.

Korak: Zaprite pokrov

Zapiranje pokrova
Zapiranje pokrova
Zapiranje pokrova
Zapiranje pokrova
Zapiranje pokrova
Zapiranje pokrova

Končno smo skoraj končali!

Čas je, da v ohišje vstavimo vso elektroniko in upamo, da se pokrov zapre. Najprej pa moramo pritrditi 30 mm razdalje. Paket stojnic, ki sem jih kupil, ne vključuje nobenih tako dolgih, vendar vsebuje 20 in 10 mm, ki jih je mogoče pritrditi skupaj. S štirimi vijaki M3 sem v luknje na dnu ohišja privil štiri odmike (glej sliki 1 in 2). Pazite, da jih trdno privijete, vendar ne pretesno, sicer tvegate zlom plastičnega ohišja.

Zdaj lahko v notranjost vstavimo vso elektroniko. Polnilnik in pretvornik ojačevalnika sem pritrdil na pokrov z dvostranskim trakom, kot je prikazano na tretji sliki. Nato sem okoli izpostavljene kovine na dveh 3,5 -milimetrskih vtičnicah zavil nekaj električnega traku, samo da se prepričam, da s stikom na priključke ne pride do kratkega stika.

Arduino sem lahko prilagodil tako, da sem ga postavil na bok, v spodnji levi kot, tako da so vrata USB obrnjena proti desni. Za pritrditev baterije na dno ohišja pod LCD zaslonom sem uporabil več obojestranskega traku.

Ko je vse bolj ali manj varno zataknjeno v škatlo, lahko pokrov privijemo še s štirimi vijaki M3.

14. korak: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Najprej priključite 3,5 -milimetrski konektor iz senzorja pretoka. Priporočam, da to storite pred vklopom naprave, ker lahko vtič med vstavljanjem vzpostavi neželeno povezavo.

Nato vklopite glavno stikalo za vklop. Čeprav voda ne teče, gumb na sprednji plošči ne bi smel storiti nič drugega kot brisanje celotnega zneska in brisanje zaslona. Ker bo skupni znesek privzeto nič, se zdi, da gumb še ne počne ničesar.

Če vklopite tuš, se mora skupni znesek povečevati. Privzeto so prikazani stroški. Če pritisnete gumb na sprednji plošči, se bo v spodnji vrstici prikazal pretok. S pritiskom na gumb na sprednji plošči lahko preklapljate med prikazom pretoka in stroškom, dokler tuš deluje. Ko se prhanje ustavi, s pritiskom na gumb na sprednji plošči ponastavite meritve in počistite zaslon.

Montaža

Način namestitve naprave je odvisen od postavitve vaše prhe. Nekateri tuši imajo lahko dovolj blizu police za prho, da lahko napravo preprosto postavite tja. Pod tušem imam košaro, pritrjeno s priseski, v katero sem postavil napravo. Če nimate razkošja kot polica ali košara, lahko napravo poskusite držati ob steni z dvostranskim sesalnikom. To bo delovalo le, če uporabljate ohišje, ki je na voljo v prodaji in ima gladko podlago, ali pa ste moje ohišje po meri natisnili na tiskalnik s stekleno ploščo. Če ima vaša omara grobo podlago (tako kot moja), lahko poskusite uporabiti dvostranski trak, čeprav lahko to ostane na steni tuša, če poskusite odstraniti napravo.

Odpravljanje težav

Zaslon je vklopljen, vendar je osvetlitev izklopljena - preverite, ali je mostiček nameščen na dveh zatičih na strani modula I ² C

Zaslon je prazen z vklopljeno osvetlitvijo - z optičnim bralnikom I²C preverite, ali je naslov I ² C pravilen

Zaslon je vklopljen, vrednosti pa ostanejo nič - preverite, ali iz senzorja prihaja signal z merjenjem napetosti na zatiču 2. Če ni signala, preverite, ali je senzor pravilno priključen.

Zaslon je prazen z izklopljeno osvetlitvijo - preverite, ali LED za napajanje na Arduinu sveti in preverite, ali zaslon deluje

Zaslon se na kratko vklopi, nato se vse ustavi - verjetno ste napetost iz ojačevalnega pretvornika nastavili previsoko (komponente ne prenesejo več kot 5 V)

Naprava deluje, vendar so vrednosti napačne - preverite, ali ima senzor pretoka, ki ga uporabljate, enak faktor pretvorbe 450 impulzov na liter. Različni senzorji imajo lahko različne vrednosti.

Korak 15: Zdaj začnite varčevati z vodo

Izboljšave

Trenutna različica programske opreme deluje dovolj dobro, vendar bi sčasoma želel dodati možnost različnih uporabnikov (družinskih članov, sostanovalcev itd.) Naprava bi shranila statistiko vsake osebe (skupno vodo in skupno število prh) v prikaže povprečno porabo vode za vsako osebo. To bi lahko spodbudilo ljudi, da tekmujejo pri uporabi najmanj vode.

Prav tako bi bilo kul, če bi imeli podatke za ogled v preglednici, da bi jih lahko preslikali. Potem ste lahko videli, v katerem letnem času imajo ljudje pogostejše in daljše prhe.

Vse te funkcije bi zahtevale uporabo EEPROM-a-vgrajenega nehlapnega pomnilnika Arduino. To bi omogočilo shranjevanje podatkov tudi po izklopu naprave.

Druga koristna funkcija bi bil indikator baterije. Trenutno je edini pokazatelj, da je treba napravo ponovno napolniti, ko upravljalna plošča baterije izklopi napajanje. Za merjenje napetosti akumulatorja bi bilo enostavno priključiti dodaten analogni vhod. Delilnik napetosti sploh ne bi bil potreben, saj je napetost akumulatorja vedno manjša od 5 V.

Nekatere od teh idej mejijo na nizanje funkcij, zato programske opreme nisem razvijal več.

Ostalo je odvisno od vas!

Natečaj senzorjev
Natečaj senzorjev
Natečaj senzorjev
Natečaj senzorjev

Prva nagrada na tekmovanju senzorjev

Priporočena: