Sadržaj:

Uštedite vodu i novac pomoću monitora vode za tuširanje: 15 koraka (sa slikama)
Uštedite vodu i novac pomoću monitora vode za tuširanje: 15 koraka (sa slikama)

Video: Uštedite vodu i novac pomoću monitora vode za tuširanje: 15 koraka (sa slikama)

Video: Uštedite vodu i novac pomoću monitora vode za tuširanje: 15 koraka (sa slikama)
Video: Miletov cuveni pad sa bicikla. :D 2024, Srpanj
Anonim
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje
Uštedite vodu i novac pomoću monitora vode za tuširanje

Što troši više vode - kupka ili tuš?

Nedavno sam razmišljao o ovom pitanju i shvatio sam da zapravo ne znam koliko se vode potroši kad se istuširam. Znam kad sam pod tušem ponekad mi misli lutaju, razmišljaju o cool ideji za nove projekte ili pokušavaju odlučiti što doručkovati, dok voda tek curi iz odvoda. Bilo bi puno lakše smanjiti potrošnju vode kad bih zapravo znao koliko litara koristim svaki put!

Malo sam istraživao i otkrio da različite tuš glave mogu koristiti od 9,5 litara (2,5 galona) u minuti do manje od 6 litara (1,6 galona) u minuti, ako imate ugrađeno ograničenje protoka. Vrlo staro tuširanje moglo bi potrošiti još više vode.

Odlučio sam projektirati i izgraditi uređaj koji će prikazivati ukupnu količinu vode potrošene po tušu, cijenu vode i brzinu protoka. Ovaj sam uređaj instalirao nekoliko tjedana i zaista je zgodno imati uživo očitavanje količine potrošene vode.

U ovom Instructable -u ću objasniti kako sam ovo izgradio. Naravno, ne morate točno slijediti moje korake! Uvijek je dobro koristiti dijelove oko sebe. Uključio sam veze do svih dijelova koje sam koristio ili ekvivalentnog dijela koji će raditi.

Pribor

(Sve cijene u USD)

  • Senzor protoka - 3,87 USD
  • LCD ekran - 2,29 USD
  • Arduino Nano - 1,59 USD
  • Boost Converter - 1,88 USD
  • LiPo punjač - 1,89 USD
  • Vodootporni prekidač - 0,93 USD (Nije baš onaj koji sam koristio, ali trebao bi raditi)
  • Vodootporni gumb - 1,64 USD
  • Držači, vijci i matice M3 - 6,99 USD
  • 2X ženski priključak 3,5 mm - 2,86 USD ea.
  • Muški utikač od 3,5 mm - 1,48 USD
  • 3,5 mm 3 'kabel - 3,57 USD
  • Sklop USB kabela - 1,74 USD
  • 1/2 "NPS žensko-ženska spojnica-1,88 USD
  • 500mAh 3.7V LiPo baterija - 3,91 USD

Alati i uobičajeni pribor

  • Lemilica i lemljenje
  • Žica
  • Rezači žice
  • Skidači žica
  • Dvostrana traka
  • Phillips odvijač
  • 3D pisač (izborno)

Korak 1: Hidroizolacija

Hidroizolacija
Hidroizolacija

Najteži aspekt ovog projekta je učiniti cijelu stvar vodootpornom. Budući da će boraviti pod tušem, mora moći preživjeti ekstremnu vlagu i povremeno prskanje. Oko 75% ukupnog vremena provedenog na ovom projektu rješavalo je ovaj dio.

Kako ja to vidim, postoje dva izbora: dizajnirati prilagođeno 3D tiskano kućište ili pokušati funkcionirati s spremnim ormarom. Budući da sam nedavno dobio vlastiti 3D pisač, odlučio sam se za prvu opciju.

Ako nemate pristup 3D pisaču, evo nekoliko standardnih kućišta za koja smatram da su vodootporna i vjerojatno bi uspjela. Imajte na umu da nisam kupio niti jedno od ovih kućišta pa ne jamčim da će sve komponente stati unutra!

Banggood - kutija 100x68x50mm s prozirnim poklopcem - 5,35 USD

Digikey - kutija 130x80x70mm s prozirnim poklopcem - 11,65 USD

Od ove točke nadalje, kada govorim o kućištu, govorim o svom 3D tiskanom.

Korak 2: Moje prilagođeno 3D tiskano kućište

Moje prilagođeno kućište s 3D printom!
Moje prilagođeno kućište s 3D printom!
Moje prilagođeno kućište s 3D printom!
Moje prilagođeno kućište s 3D printom!
Moje prilagođeno kućište s 3D printom!
Moje prilagođeno kućište s 3D printom!

Nakon nekoliko sati rada u Fusion 360, došao sam do ovog kućišta. Ima tri kružna izreza za postavljanje dvije ženske utičnice od 3,5 mm i jednog prekidača. Poklopac ima otvor od 16 mm za trenutni gumb i pravokutni izrez za zaslon, kao i četiri rupe za pričvršćivanje koje drže zaslon na mjestu. Poklopac je zasebni dio i ima usnu za sprječavanje prodora vlage kroz šav. Četiri rupe na uglovima kutije drže poklopac s razmacima od 30 mm. Sve rupe za vijke su promjera 3 mm, što odgovara vijku M3.

Možete preuzeti STL datoteke s moje stranice Thingiverse. Može se ispisivati bez splavova ili nosača, ali koristio sam nosače samo radi sigurnosti. Koristio sam i 100% ispunu. Budući da su stijenke tako tanke, smanjenje postotka ispune zapravo ne mijenja ukupno vrijeme ispisa ili ukupni materijal, pa sam ga zadržao na 100%.

Kako bi zaslon bio vidljiv, mogao bi ili stršati kroz izrez na poklopcu kućišta ili biti postavljen iza prozirnog prozora. Budući da zaslon ne bi trebao biti izložen vlazi, zaglavili smo s drugom opcijom. Nažalost, 3D ispis s prozirnim vlaknima još je u povojima pa ćemo morati biti kreativni.

Moje rješenje je bilo stvoriti pravokutni izrez u poklopcu i zalijepiti komad prozirne plastike iz neke ambalaže od povrća. Ova se tehnika može koristiti čak i ako ne koristite moje prilagođeno kućište; jednostavno izrežite pravokutnik pomoćnim nožem ili Dremelom. Naravno, ako koristite kućište s prozirnim poklopcem, to uopće nije potrebno.

Najbolji izvor prozirne plastike koji sam pronašao je ambalaža za proizvodnju. Obično špinat ili drugo lisnato povrće dolazi u velikim prozirnim plastičnim posudama. U mom slučaju, koristila sam ambalažu iz "paprike".

Htio sam prevjes od 5 mm da dobijem dovoljnu površinu za lijepljenje, pa sam izrezao pravokutnik 27x77 mm od čiste plastike. Morao sam malo obrezati uglove kako bi vijci odgovarali. Naprskala sam liniju superljepila po obodu izreza, a zatim stavila prozirnu plastiku. Dodao sam još malo super ljepila po rubu nakon samo da se uvjerim da je zapečaćeno.

Savjet: Postavite dio ispred malog ventilatora dok se ljepilo suši. Kako se superlijepilo suši, iza sebe ostavlja podle bijele ostatke, što zasigurno ne želimo na našem prozirnom prozoru. Koristio sam stari 12V ventilator iz računala. Ostavio sam ljepilo 12 sati da provjerim je li potpuno suho.

Korak 3: Montiranje LCD zaslona

Postavljanje LCD ekrana
Postavljanje LCD ekrana
Postavljanje LCD ekrana
Postavljanje LCD ekrana
Postavljanje LCD ekrana
Postavljanje LCD ekrana

Nakon što se prozirni prozor osuši, LCD se može montirati. LCD je super popularan zaslon sa 16 x 2 znakova, s I²C "ruksakom" prethodno lemljenim na stražnjoj strani. Toplo preporučujem da nabavite ovaj zaslon s I²C sučeljem. Ožičenje svih paralelnih vodova prilično je neugodno i unosi veći potencijal pogrešaka - verzija I²C ima samo dvije žice za napajanje i dvije žice za signal.

Za montiranje zaslona upotrijebio sam četiri odstupanja od 10 mm. Svako suprotno mjesto ima muški navoj na jednom kraju i ženski navoj na drugom kraju. Provukao sam muški navoj kroz rupe na LCD -u i na svaku zategnuo maticu M3. Zatim sam upotrijebio četiri vijka M3 za pričvršćivanje ženskih krajeva nosača kroz poklopac kućišta. Dobio sam ovaj paket držača koji ima 10 mm za montiranje LCD -a i duže za držanje poklopca na podnožju. Osim toga, postoje vijci i matice M3 pa ne morate kupovati dodatni hardver.

Uvjerite se da su matice jako zategnute da se zatezanja vijaka ne bi okrenula. Također, pazite da ne pritegnete vijke previše jer bi se plastični poklopac mogao deformirati i ne začepiti pravilno.

Red od 16 pinova zaglavlja na LCD -u trebao bi biti na vrhu - pazite da ne montirate LCD naopako!

Korak 4: Montiranje trenutnog gumba

Postavljanje trenutnog gumba
Postavljanje trenutnog gumba
Postavljanje trenutnog gumba
Postavljanje trenutnog gumba
Postavljanje trenutnog gumba
Postavljanje trenutnog gumba

Odlučio sam upotrijebiti ovaj kromirani gumb bolesnog izgleda na prednjoj ploči. Koristio sam ih u prethodnim projektima i jako mi se sviđa njihov izgled. Trebali bi biti vodootporni, a dolaze s gumenim prstenom kako bi spriječili prodiranje vlage u kućište kroz niti.

Ovaj korak je prilično jednostavan. Odvrnite maticu, ali gumeni prsten držite uključenim. Umetnite gumb kroz otvor na poklopcu i zategnite maticu sa stražnje strane. Izbjegavajte previše zatezanje matice, inače će se gumeni prsten zgnječiti i neće poslužiti svrsi.

Korak 5: Krug napajanja i punjenja

Krug napajanja i punjenja
Krug napajanja i punjenja
Krug napajanja i punjenja
Krug napajanja i punjenja
Krug napajanja i punjenja
Krug napajanja i punjenja

Sada ćemo sastaviti komponente napajanja baterije. To uključuje bateriju, glavni prekidač, ploču za nadzor/punjenje baterije i pretvarač za pojačavanje.

Baterija koju sam koristio je jednoćelijska litij-ionska baterija od 3,7 V 1500 mAh. Konkretni koji sam koristio izvučen je iz pokvarenog Playstation kontrolera. Svaka jednoćelijska Li-Ion ili LiPo baterija će raditi, sve dok stane u vaše kućište. Ova vrsta baterije ima tendenciju da bude vrlo tanka i ravna pa biste vjerojatno mogli bez problema koristiti jednu dvostruko veću od moje. Ćelija 18650 bi radila, ali neće stati u moje prilagođeno kućište pa ćete morati sami dizajnirati ili upotrijebiti gotovu policu. Ako je moguće, preporučujem korištenje spašene baterije (kao što sam i ja učinio) jer je isporuka baterija često skupa!

Bateriju treba prvo lemiti na ploču za punjenje TP4056. Ako želite, možete zalemiti JST RCY konektor na bateriju i punjač radi praktičnosti (ja sam to učinio), ali nije potrebno. Pazite na ispravan polaritet označen oznakama na ploči punjača jer ploča nije zaštićena od obrnutog polariteta baterije!

Zatim lemite žicu od pozitivnog izlaza punjača (koji se nalazi pored pozitivne žice baterije) do pozitivnog ulaza na pretvaraču za pojačavanje. Zatim lemite žicu s negativnog izlaza (koji se nalazi pokraj negativne žice baterije) na zajednički (središnji) pin glavnog prekidača. Na kraju, lemite žicu s normalno otvorenog pina prekidača na negativni ulaz pretvarača pojačala. Ako spojite multimetar na izlaz pretvarača pojačanja i uključite glavni prekidač, trebao bi se prikazati napon.

Budući da je za naš Arduino, LCD zaslon i senzor protoka potrebno 5V, moramo postaviti izlaz pretvarača pojačanja na 5V. To se postiže okretanjem gumba na potenciometru malim odvijačem. S uključenim glavnim prekidačem, spojenom baterijom i priključenim multimetrom na izlaz pretvarača pojačanja, polako okrećite potenciometar dok izlaz ne očita 5V. Bit će teško dobiti očitanje od točno 5.000V, ali nastojte napon između 4.9V i 5.1V.

Budući da se moje prilagođeno kućište drži zatvorenim s nekoliko vijaka, ne želimo otvarati kućište svaki put kad ga treba napuniti. Za to sam koristio priključak za slušalice od 3,5 mm. Točan konektor koji sam koristio je ovaj iz Digikey -a (čemu služe izrezi u mojem kućištu), ali i ovaj iz Banggooda bi trebao raditi.

Prvo sam umetnuo konektor u najdonju rupu na kućištu. Budući da će to većinu vremena biti isključeno, pa je stoga osjetljivo na prodiranje vlage, najbolje ga je postaviti na dno kako biste spriječili kapanje vode iznutra. Nakon što sam ugradio bravu za pranje i zategnuo maticu, lemio sam dvije žice na jezičce "vrh" i "rukav" na priključku. Isključivanje konektora prikazano je na jednoj od mojih označenih slika. Drugi kraj žice "čahura" lemio sam na negativni ulaz na punjaču, pored mikro USB priključka. Na kraju sam lemio žicu "vrha" na jastučić +5V, s druge strane USB priključka. USB priključak na punjaču neće se koristiti jer bi bilo teško natjerati USB priključak da prodre u kućište bez propuštanja vlage.

Korak 6: Kabel za punjenje

Kabel za punjenje
Kabel za punjenje
Kabel za punjenje
Kabel za punjenje
Kabel za punjenje
Kabel za punjenje

Budući da za priključak za punjenje koristimo audio priključak od 3,5 mm, moramo napraviti adapterski kabel koji ima muški utikač od 3,5 mm na jednom kraju i USB A utikač na drugom kraju. To će nam omogućiti korištenje bilo kojeg generičkog punjača za mobilne uređaje (poput punjača za iPhone) za punjenje ovog uređaja.

Mogli ste kupiti sklop USB kabela s USB A konektorom na jednom kraju i pocinčanim žicama na drugom kraju, ali ako ste poput mene, vjerojatno imate desetak nasumičnih USB kabela koji vam ne trebaju. Umjesto da kupim sklop USB kabela, upravo sam dobio mikro USB na USB A kabel koji mi nije trebao i odrezao mikro USB konektor.

Zatim sam skinuo bijelu jaknu s kabela kako bih otkrio samo dvije žice unutra: crvenu i crnu žicu. Neki USB kabeli imat će četiri žice: crvenu, crnu, zelenu i bijelu. Zelena i bijela boja služe za prijenos podataka i mogu se zanemariti. Skinite izolaciju samo s crvene i crne žice.

Zatim će vam trebati muški utikač od 3,5 mm. Ja sam koristila ovaj iz Banggooda. Lemite crvenu žicu s USB kabela na srednji jezičak (koji je vrh priključka), a crnu žicu na jezičak s dugim rukavom. Za objašnjenje pogledajte moje fotografije.

Preporučujem da uvijek priključujete utikač od 3,5 mm prije USB priključka jer bi postupak uključivanja kabela mogao uzrokovati kratki spoj utikača preko metalne utičnice.

Korak 7: O senzoru protoka

O senzoru protoka
O senzoru protoka
O senzoru protoka
O senzoru protoka
O senzoru protoka
O senzoru protoka
O senzoru protoka
O senzoru protoka

Uzeo sam ovaj senzor protoka od Banggooda za 3,87 USD. Prije uporabe odlučila sam istražiti kako to funkcionira.

Dizajn je iznenađujuće jednostavan i genijalan. Elektronika je potpuno zatvorena od vode. Postoji propeler sa slobodnim okretanjem koji se okreće sporije ili brže ovisno o brzini protoka. U jednom trenutku na propeleru je magnet. S vanjske strane senzora nalazi se mali pretinac koji sadrži malu tiskanu ploču s dvije komponente: otpornikom i senzorom s Hall-efektom. Svaki put kada magnet prođe pokraj senzora Hall-ovog efekta, prebacuje se između visokog i niskog. Drugim riječima, prebacuje se između 5V i 0V svaki put kad se propeler okreće.

Za očitavanje senzora primjenjujemo +5V na crvenu žicu, negativno na crnu žicu i čitamo digitalni signal sa žute žice. Na fotografiji mog osciloskopa možete vidjeti kako se signal mijenja pri uključivanju protoka. U početku je signal konstantno nula volti. Kad protok počne, frekvencija impulsa brzo se povećava i dostiže stacionarno stanje.

Prema podatkovnom listu, senzor emitira 450 impulsa po litri. To će biti važno kasnije kada budemo pisali softver.

Korak 8: Ožičenje osjetnika protoka

Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka

Senzor protoka dolazi s 3-polnim JST-XH priključkom. To nije idealno jer su žice prekratke, a konektor ima izložene kontakte koji se lako mogu skratiti zalutalim kapljicama vode. Naručio sam ovaj 3,5 -milimetarski audio kabl od Digikey -a. Dug je 3 ', što je savršena duljina, i ima kalajisane žice, što ga čini lakim za lemljenje. Ne preporučujem da pokušate koristiti stari kabel za slušalice jer oni imaju vrlo tanku emajliranu žicu, koju je gotovo nemoguće lemiti.

Senzor protoka ima plastični poklopac koji se drži pomoću dva Phillips vijka. Jednostavno uklonite ove vijke i izvucite ploču. Ne drži se ljepilom, samo se drži na mjestu s plastičnim poklopcem. Zatim odspojite tri žice zagrijavajući ih lemilicom i podižući ih jednu po jednu.

Zatim lemite 3,5 mm audio kabel na jastučiće. Predlažem usklađivanje boja na način na koji sam to učinio. Ova konfiguracija ima +5V na vrhu, signal na prstenu i uzemljenje na rukavu. Ovo je ista konfiguracija koja se koristi za priključak za punjenje, od koraka 6. Ako slučajno priključite punjač u priključak senzora ili obrnuto, neće doći do oštećenja uređaja.

Korak 9: Instaliranje senzora protoka

Ugradnja senzora protoka
Ugradnja senzora protoka
Ugradnja senzora protoka
Ugradnja senzora protoka
Ugradnja senzora protoka
Ugradnja senzora protoka

Do sada se sav naš rad odvijao u radionici. Ali sada je vrijeme da odete u kupaonicu!

Prvo sam uklonio glavu tuša. Ovo je otkrilo kratki dio cijevi koji viri iz zida, s 1/2 NPS muškim navojem. Prikladno, naš osjetnik protoka ima potpuno istu veličinu navoja! Jedini je problem što senzor ima muški navoj na oba kraja, pa ćemo treba spoj žensko-žensko.

U mojoj lokalnoj trgovini željeza bilo je 1/2 spojnica od mjedi, željeza i PVC -a. PVC je bio najjeftiniji, pa sam ga nabavio. Iako bi unatrag, mjedeni ili čelični bi izgledali ljepše.

Nakon što ste dobili spojnicu, jednostavno pričvrstite osjetnik protoka u spojnicu, a zatim drugi kraj spojnice pričvrstite na cijev. Senzor protoka ima strelicu koja označava predviđeni smjer protoka. Pazite da ga ne instalirate unatrag jer u suprotnom mjerenja mogu biti netočna. Na kraju, pričvrstite glavu tuša na kraj osjetnika protoka.

Naravno, pretpostavljam da vaš tuš koristi 1/2 NPS navoj, kao i moj. Ako to nije slučaj, morat ćete nabaviti dodatne adaptere.

Savjet: Dodajte malo teflonske vodoinstalaterske vrpce na sve niti prije spajanja komada kako biste spriječili curenje. Nisam imao pri ruci, ali ovo planiram dodati u bliskoj budućnosti.

Korak 10: Arduino i Perfboard

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

Budući da ćemo morati provoditi mnogo ožičenja, dobra je ideja nabaviti komad perfboard ploče kako bi stvari bile malo urednije. Izrezao sam pravokutnik perfboarda oko 1 "2". Zatim sam stavio svoj Arduino Nano na sredinu ploče i označio gdje su zaglavlja prošla. Zatim sam izrezao dvije duljine ženskih zaglavlja, svaka duga 15 igala. Lemio sam ih na ploču gdje sam prethodno označio. To će nam omogućiti uklanjanje Arduina za programiranje.

Savjet: Označite orijentaciju USB priključka Arduina tako da ga uvijek priključite na perfboard na isti način.

Korak 11: Ožičenje svega

Ožičenje svega
Ožičenje svega
Ožičenje svega
Ožičenje svega
Ožičenje svega
Ožičenje svega

Sada je vrijeme da sve lemite zajedno! Uključio sam potpuni dijagram ožičenja koji možete slijediti ili vidjeti moje pisane korake u nastavku ako više volite vođeniji pristup.

Najprije sam izrezao neke muške igle zaglavlja i lemio ih na ploču za montažu na +5V i uzemljene tračnice. Zatim sam lemio još dva zatika zaglavlja spojena na pinove A4 i A5 na Arduinu. Ova zaglavlja omogućit će nam povezivanje LCD zaslona pomoću skakača za žene.

Zatim sam lemio par žica od izlaza pretvarača pojačanja do +5V i uzemljenih tračnica. To će omogućiti napajanje Arduinu, LCD -u i senzoru protoka.

Nakon toga sam presjekao dvije žice i spojio ih s priključcima gumba. Lemio sam jednu žicu na uzemljenje, a drugu na digitalni pin 3.

Posljednji dio za lemljenje je osjetnik protoka. Budući da smo na senzor već priključili utičnicu od 3,5 mm, samo moramo lemiti žensku utičnicu od 3,5 mm. Prvo sam zalemio tri žice - po jednu na svaki jezičak na utičnici. Zatim sam umetnuo dizalicu kroz kućište i pričvrstio je maticom. Na kraju sam lemio čahuru na masu, vrh na +5V, a prsten na digitalni pin 2.

Odlučio sam se koristiti digitalnim pinovima 2 i 3 za gumb i senzor protoka jer su to hardverski pinovi za prekid. To će znatno olakšati pisanje koda.

Sada smo završili s lemljenjem, ali još uvijek moramo spojiti LCD. Budući da smo lemili zaglavlja, trebaju nam samo četiri skakača za žene. Spojite "Vcc" pin na +5V, "Gnd" pin na masu, "SCL" pin na A5, a "SDA" pin na A4. Kako bi se LCD zaslon uklopio u kućište, morat ćemo savijati zatiče zaglavlja prema natrag. Savijanje iglica naprijed -natrag nekoliko puta će umoriti metal i uzrokovati lomljenje igle, pa preporučujem da ih savijete samo jednom i to pažljivo.

Sada je ožičenje završeno!

Korak 12: Programiranje

Programiranje
Programiranje

Sada kada je hardver povezan, možemo programirati Arduino.

Želim da program ima sljedeće značajke:

  • U prvom retku prikažite brzo ažuriranje broja ukupnih litara
  • U drugom retku prikažite ukupnu cijenu vode ili protok
  • Dok je tuš u tijeku, gumb se prebacuje između prikaza troškova ili protoka
  • Kad tuš ne radi, gumb bi trebao obrisati sve podatke i resetirati zaslon
  • Senzor treba čitati pomoću rutine prekida kako bi se izbjegle grube metode ispitivanja
  • Prilikom ažuriranja zaslona trebali bismo ažurirati samo promijenjene vrijednosti, a ne svaki put prebrisati cijeli zaslon (to bi uzrokovalo zamjetno treperenje)

Program slijedi jednostavnu strukturu. Upotrebom funkcije millis () možemo stvoriti kašnjenja koja zapravo ne zaustavljaju izvršavanje programa. Pogledajte ovaj vodič za primjer treptanja LED -a bez upotrebe funkcije delay ().

Funkcija millis () vraća broj milisekundi od uključivanja Arduina. Stvaranjem varijable "previousMillis" i oduzimanjem Millis () - previousMillis (), možemo vidjeti proteklo vrijeme od ažuriranja previousMillis.

Ako želimo da se nešto dogodi jednu u sekundi, možemo upotrijebiti sljedeći kodni blok:

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

previousMillis = millis (); toggleLED (); }

Time se provjerava je li razlika između millis () (trenutno vrijeme) i previousMillis (posljednji put) veća ili jednaka 1000 milisekundi. Ako jest, prvo što učinimo je postaviti previousMillis jednako trenutnom vremenu. Zatim izvršavamo sve dodatne korake koje želimo. U ovom primjeru prebacujemo LED. Zatim izlazimo iz ovog bloka koda i dovršavamo ostatak funkcije loop (), prije nego se vratimo na početak i ponovimo sve iznova.

Prednost korištenja ove metode u odnosu na jednostavnu funkciju delay () je u tome što delay () postavlja vremenski razmak između uputa, ali ne uzima u obzir vrijeme potrebno za izvršavanje drugih uputa u funkciji loop (). Ako radite nešto što traje duže od pukog treptanja LED -a, poput ažuriranja LCD zaslona, vrijeme koje je potrebno nije zanemarivo, a nakon nekoliko ciklusa zbrajat će se. Ako ažurirate LCD zaslon na satu, brzo bi postao netočan i zaostao.

Dakle, sada kada razumijemo cjelokupnu strukturu programa, vrijeme je da umetnemo upute. Umjesto da ovdje objašnjavate svaki redak koda, predlažem da prvo pročitate priloženi dijagram toka, koji daje pregled na visokoj razini onoga što program radi.

Nakon što vidite dijagram toka, pogledajte priloženi Arduino kod. Komentirao sam gotovo svaki redak kako bi bilo jasno što svaki redak radi.

U kodu postoji nekoliko dijelova koje biste htjeli promijeniti. Najvažnije je cijena po litri. U mom gradu voda košta 0,2523 ¢ po litri. Pronađite sljedeći redak i promijenite tu vrijednost tako da odgovara cijeni u kojoj živite:

const float COST_PER_LITRE = 0,2523; // cijena po litri, u centima, s gradske web stranice

Ako više volite koristiti galone iznad litara, promijenite sve retke "LCD.print ()" koji se odnose na "L" ili "L/s" na "G" ili "G/s". Zatim izbrišite sljedeći redak:

const float KONVERZIJA = 450,0; // ovo ostavite bez komentara litrama

… i raskomentirajte ovaj redak:

const float KONVERZIJA = 1703,0; // raskomentirajte ovo i izbrišite gornji redak za galone

Postoji još jedna neobičnost koju ste mogli primijetiti u mom kodu. Zadani skup znakova ne uključuje znak "¢", a ja nisam želio koristiti dolare jer bi se cijena većinu vremena prikazivala kao "0,01 USD" ili manje. Stoga sam bio prisiljen stvoriti prilagođeni lik. Sljedeći niz bajtova koristi se za predstavljanje ovog simbola:

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

Nakon stvaranja ovog niza, poseban znak mora se "stvoriti" i pohraniti.

lcd.createChar (0, cent_sign);

Kad to učinimo, za ispis prilagođenog znaka koristimo sljedeći redak:

lcd.write (bajt (0)); // ispisati znak centi (¢)

LCD može imati do 8 prilagođenih znakova. Više informacija o tome nalazi se ovdje. Također sam naišao na ovaj korisni mrežni alat koji vam omogućuje crtanje prilagođenog znaka pomoću grafičkog sučelja i automatski će generirati prilagođeni niz bajtova.

Korak 13: Zatvaranje poklopca

Zatvaranje poklopca
Zatvaranje poklopca
Zatvaranje poklopca
Zatvaranje poklopca
Zatvaranje poklopca
Zatvaranje poklopca

Konačno, skoro smo završili!

Vrijeme je da ubacite svu elektroniku u kućište i nadamo se da će se poklopac zatvoriti. No, prvo moramo pričvrstiti razmake od 30 mm. Paket standoffsa koje sam kupio ne uključuje tako dugačke, ali dolazi s 20 mm i 10 mm koji se mogu spojiti zajedno. Četiri vijka M3 sam zavrnuo u rupe na dnu kućišta (vidi slike 1 i 2). Sigurno ih dobro pritegnite, ali ne prečvrsto ili riskirate slomiti plastično kućište.

Sada možemo uklopiti svu elektroniku unutra. Priključio sam punjač i pretvarač pojačala na poklopac s dvostranom trakom, kao što se vidi na trećoj slici. Zatim sam omotao električnu traku oko izloženog metala na dvije utičnice od 3,5 mm, samo da osiguram da ništa ne dođe do kratkog spoja kontaktiranjem konektora.

Uspio sam prilagoditi Arduino tako da ga postavim na bok, u donji lijevi kut, s USB priključkom okrenutim prema desno. Koristio sam više dvostrane trake za pričvršćivanje baterije na dno kućišta ispod LCD zaslona.

Konačno, nakon što se sve više ili manje sigurno zaglavi u kutiju, poklopac se može pričvrstiti s još četiri vijka M3.

Korak 14: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Prvo priključite 3,5 mm konektor s osjetnika protoka. Preporučujem da to učinite prije uključivanja uređaja jer je moguće da utikač uspostavi neželjenu vezu prilikom umetanja.

Zatim uključite glavni prekidač za napajanje. Dok nema vode, gumb na prednjoj ploči ne bi trebao učiniti ništa osim brisanja ukupnog iznosa i brisanja zaslona. Budući da će ukupna vrijednost prema zadanim postavkama biti nula, čini se da gumb još ne radi ništa.

Uključite li tuš, ukupni bi se iznos trebao početi povećavati. Prema zadanim postavkama, cijena je prikazana. Ako pritisnete gumb na prednjoj ploči, brzina protoka bit će prikazana u donjem retku. Pritiskom na gumb na prednjoj ploči prebacuje se između prikaza protoka i troškova, sve dok je tuš otvoren. Nakon što se tuširanje zaustavi, pritiskom na gumb na prednjoj ploči poništavaju se mjerenja i briše zaslon.

Montaža

Način postavljanja uređaja ovisi o rasporedu vašeg tuša. Neki tuševi mogu imati izbočinu dovoljno blizu tuš kabine da jednostavno postavite uređaj tamo. Pod tušem imam košaru sa usisnim čašicama u koju sam stavio uređaj. Ako nemate luksuz izbočine ili košare, pokušajte držati uređaj uz zid dvostranom usisnom čašicom. Ovo će funkcionirati samo ako koristite spremno kućište s glatkom podlogom ili ste moje prilagođeno kućište ispisali na pisaču sa staklenom pločom. Ako vaše kućište ima grubu podlogu (poput moje), pokušajte koristiti dvostranu traku, iako bi to moglo ostaviti neke ostatke na zidu tuša ako pokušate ukloniti uređaj.

Rješavanje problema

Zaslon je uključen, ali je pozadinsko osvjetljenje isključeno - provjerite je li kratkospojnik instaliran na dva pina sa strane I ² C modula

Zaslon je prazan, s uključenim pozadinskim osvjetljenjem - provjerite je li adresa I ² C ispravna pokretanjem skenera I²C

Zaslon je uključen, ali vrijednosti ostaju nula - provjerite da li signal dolazi iz senzora mjerenjem napona na pinu 2. Ako nema signala, provjerite je li senzor pravilno spojen.

Zaslon je prazan s isključenim pozadinskim osvjetljenjem - provjerite je li LED za napajanje na Arduinu uključen i provjerite ima li zaslon napajanje

Zaslon se nakratko uključuje, a zatim sve prestaje - vjerojatno ste postavili previsok napon iz pretvarača pojačanja (komponente ne mogu podnijeti više od 5 V)

Uređaj radi, ali su vrijednosti pogrešne - provjerite ima li osjetnik protoka isti faktor konverzije od 450 impulsa po litri. Različiti senzori mogu imati različite vrijednosti.

Korak 15: Sada počnite štedjeti vodu

Poboljšanja

Trenutna verzija softvera radi dovoljno dobro, no na kraju bih želio dodati mogućnost različitih korisnika (članova obitelji, ukućana itd.) Uređaj bi pohranio statistiku svake osobe (ukupnu vodu i ukupan broj tuševa) u prikazati prosječnu potrošnju vode za svaku osobu. To bi moglo potaknuti ljude na natjecanje u korištenju najmanje količine vode.

Također bi bilo super imati način izvoza podataka koji se pregledavaju u proračunskoj tablici, tako da se mogu grafički prikazati. Tada biste mogli vidjeti u koje doba godine ljudi imaju češće i duže tuširanje.

Za sve ove značajke potrebna je upotreba EEPROM-a-Arduinove ugrađene trajne memorije. To bi omogućilo zadržavanje podataka čak i nakon isključivanja uređaja.

Još jedna korisna značajka bio bi indikator baterije. Trenutno je jedini pokazatelj da se uređaj mora napuniti kada ploča za upravljanje baterijom prekine napajanje. Bilo bi lako spojiti dodatni analogni ulaz za mjerenje napona baterije. Razdjelnik napona ne bi ni bio potreban jer je napon baterije uvijek manji od 5V.

Neke od ovih ideja graniče s puzanjem značajki, zbog čega softver nisam dalje razvijao.

Ostalo je na vama!

Natječaj senzora
Natječaj senzora
Natječaj senzora
Natječaj senzora

Prva nagrada na natjecanju senzora

Preporučeni: