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, Juli
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

Šta 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 troši dok se tuširam. Znam kad sam pod tušem, ponekad mi misli lutaju, razmišljaju o hladnoj ideji o novim projektima ili pokušavaju odlučiti što doručkovati, dok voda tek curi iz odvoda. Bilo bi mnogo lakše smanjiti potrošnju vode da zaista znam koliko litara koristim svaki put!

Malo sam istraživao i otkrio da različite tuš glave mogu koristiti bilo gdje 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 stari tuš mogao bi koristiti još više vode.

Odlučio sam dizajnirati i izgraditi uređaj koji će prikazivati ukupnu količinu potrošene vode po tušu, cijenu vode i protok. Ovaj uređaj imam instaliran nekoliko sedmica i zaista je zgodno imati uživo očitavanje količine potrošene vode.

U ovom Instructable -u ću objasniti kako sam ovo napravio. 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.

Supplies

(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 bi trebao raditi)
  • Vodootporno dugme - 1,64 USD
  • Držači, vijci i matice M3 - 6,99 USD
  • 2X ženski priključak od 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
  • Strojevi za skidanje žice
  • Dvostrana traka
  • Phillips odvijač
  • 3D štampač (opcionalno)

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 biti u stanju 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: dizajnirajte prilagođeno 3D štampano kućište ili pokušajte da funkcioniše sa spremnim ormarom. Budući da sam nedavno dobio vlastiti 3D pisač, odlučio sam se za prvu opciju.

Ako nemate pristup 3D štampaču, evo nekoliko standardnih kućišta za koja smatram da su vodootporna i koja bi vjerovatno funkcionirala. Imajte na umu da nisam kupio nijedno od ovih kućišta pa ne garantiram da će sve komponente stati unutra!

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

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

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

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

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

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 trenutno dugme, i pravougaoni izrez za ekran, kao i četiri rupe za pričvršćivanje koje drže ekran na mestu. Poklopac je zaseban dio i ima usnu za sprječavanje prodora vlage kroz šav. Četiri rupe na uglovima kutije drže poklopac sa rastojanjima od 30 mm. Sve rupe za vijke su promjera 3 mm, što odgovara vijku M3.

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

Da bi zaslon bio vidljiv, mogao bi ili proviriti kroz izrez na poklopcu kućišta ili biti postavljen iza prozirnog prozora. Budući da ekran 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 tehnika se 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 spanać 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 kako bih dao dovoljno površine za lijepljenje, pa sam izrezao pravokutnik 27x77 mm od čiste plastike. Morao sam malo obrezati uglove kako bi vijci odgovarali. Naprskao sam liniju superljepila po obodu izreza, a zatim stavio prozirnu plastiku. Dodao sam još malo super ljepila oko ruba samo da se uvjerim da je zapečaćen.

Savjet: Postavite dio ispred malog ventilatora dok se ljepilo suši. Kako se super ljepilo suši, iza sebe ostavlja zao bijele ostatke, što svakako ne želimo na našem prozirnom prozoru. Koristio sam stari 12V ventilator iz računarskog napajanja. Ostavio sam ljepilo da odstoji 12 sati kako bih se uvjerio da je potpuno suh.

Korak 3: Montiranje LCD ekrana

Montiranje LCD ekrana
Montiranje LCD ekrana
Montiranje LCD ekrana
Montiranje LCD ekrana
Montiranje LCD ekrana
Montiranje LCD ekrana

Kada se prozirni prozor osuši, LCD se može montirati. LCD je super popularan ekran veličine 16x2 karaktera, sa I²C "ruksakom" prethodno lemljenim na stražnjoj strani. Toplo preporučujem da nabavite ovaj ekran sa I²C interfejsom. Ožičenje svih paralelnih vodova prilično je neugodno i unosi veći potencijal grešaka - verzija I²C ima samo dvije žice za napajanje i dvije žice za signal.

Za montiranje ekrana koristio sam četiri odstupanja od 10 mm. Odstojnice imaju svaki muški navoj na jednom kraju i ženski navoj na drugom. Provukao sam muški navoj kroz rupe na LCD -u i zategnuo M3 maticu za svaku od njih. 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, tako da ne morate kupovati dodatni hardver.

Uvjerite se da su matice jako zategnute da se stezaljke ne bi okrenule kad zategnete vijke. Također, pazite da ne zategnete vijke previše jer bi se plastični poklopac mogao deformirati i ne zabrtviti pravilno.

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

Korak 4: Montiranje trenutnog dugmeta

Montiranje trenutnog dugmeta
Montiranje trenutnog dugmeta
Montiranje trenutnog dugmeta
Montiranje trenutnog dugmeta
Montiranje trenutnog dugmeta
Montiranje trenutnog dugmeta

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

Ovaj korak je prilično jednostavan. Otpustite maticu, ali gumeni prsten držite uključenim. Umetnite dugme kroz otvor na poklopcu i pritegnite 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 punjenje

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 litijum-jonska baterija od 3,7 V 1500 mAh. Konkretni koji sam koristio izvučen je iz pokvarenog Playstation kontrolera. Bilo koja 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 vjerovatno mogli koristiti jednu duplo veću od moje bez ikakvih problema. Ćelija 18650 bi radila, ali neće stati u moje prilagođeno kućište pa ćete morati sami dizajnirati ili koristiti ormarić koji je u ponudi. 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 pravilan polaritet koji je 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 pored 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čanja. 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 ekran i senzor protoka potrebno 5V, moramo postaviti izlaz pretvarača na 5V. To se postiže okretanjem dugmeta na potenciometru malim odvijačem. S uključenim glavnim prekidačem, spojenom baterijom i priključenim multimetrom na izlaz pretvarača pojačanja, polako okrenite potenciometar dok izlaz ne očita 5V. Bit će teško dobiti očitanje od točno 5.000V, ali težite naponu 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. Tač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 konektoru. 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 dopuš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 nabavio mikro USB na USB kabel koji mi nije trebao i odrezao mikro USB konektor.

Zatim sam skinuo bijelu jaknu sa kabela kako bih otkrio samo dvije žice unutra: crvenu i crnu žicu. Neki USB kabeli će imati četiri žice: crvenu, crnu, zelenu i bijelu. Zelena i bijela 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 koristio ovaj iz Banggooda. Lemite crvenu žicu sa USB kabla na srednji jezičak (koji je vrh konektora), a crnu žicu na jezičak sa 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 korištenja, odlučio 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. Sa 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 pored 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 stabilno stanje.

Prema podacima, 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 senzora protoka
Ožičenje senzora protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka
Ožičenje senzora protoka
Ožičenje senzora protoka
Ožičenje osjetnika protoka
Ožičenje osjetnika protoka

Senzor protoka dolazi s 3-polnim JST-XH konektorom. 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 dužina, 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 za senzor, ili obrnuto, neće doći do oštećenja uređaja.

Korak 9: Instaliranje senzora protoka

Instaliranje senzora protoka
Instaliranje senzora protoka
Instaliranje senzora protoka
Instaliranje senzora protoka
Instaliranje senzora protoka
Instaliranje senzora protoka

Do ovog trenutka sav naš rad odvijao se 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. Povoljno, naš senzor protoka ima potpuno istu veličinu navoja! Jedini problem je što senzor ima muški navoj na oba kraja, pa ćemo treba spoj žensko-žensko.

U mojoj lokalnoj željezariji bile su spojnice od 1/2 od mesinga, željeza i PVC -a. PVC je bio najjeftiniji, pa sam ga nabavio. Iako bi unatrag, mesingane ili čelične bi izgledale ljepše.

Nakon što ste dobili spojnicu, jednostavno uvrnite senzor protoka u spojnicu, a zatim zavrnite drugi kraj spojnice na cijev. Senzor protoka ima strelicu koja označava željeni 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 senzora 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 trake na sve niti prije spajanja komada kako biste spriječili curenje. Nisam imao pri ruci, ali planiram to dodati u bliskoj budućnosti.

Korak 10: Arduino i Perfboard

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

Budući da ćemo morati provoditi mnogo ožičenja, dobra je ideja nabaviti komad ploče od perforacije kako bi stvari bile malo urednije. Izrezao sam pravokutnik od perfboarda otprilike 1 "na 2". Zatim sam stavio svoj Arduino Nano na sredinu ploče i označio gdje su zaglavlja prošla. Zatim sam izrezao dvije dužine ž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 Arduinovog USB priključka tako da ga uvijek priključujete 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 kompletan dijagram ožičenja koji možete slijediti ili vidjeti moje pisane korake u nastavku ako želite više vođeni pristup.

Prvo sam izrezao neke muške igle za zaglavlje i lemio ih na ploču za montažu na +5V i uzemljene šine. Zatim sam lemio još dva zaglavlja igle spojene na pinove A4 i A5 na Arduinu. Ova zaglavlja će nam omogućiti povezivanje LCD ekrana pomoću kratkospojnika za žene.

Zatim sam lemio par žica s izlaza pretvarača pojačanja na +5V i uzemljene šine. Ovo će omogućiti napajanje Arduinu, LCD -u i senzoru protoka.

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

Zadnji dio za lemljenje je senzor protoka. Budući da smo na senzor već priključili utikač od 3,5 mm, samo moramo lemiti ženski priključak 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 navrtkom. Na kraju sam lemio čahuru na masu, vrh na +5V, a prsten na digitalni pin 2.

Odabrao sam korištenje digitalnih pinova 2 i 3 za gumb i senzor protoka jer su to hardverski pinovi za prekid. Ovo će znatno olakšati pisanje koda.

Sada smo završili sa lemljenjem, ali još uvijek moramo spojiti LCD. Budući da smo lemili zaglavlja, trebaju nam samo četiri kratkospojnika za žene. Spojite "Vcc" pin na +5V, "Gnd" pin na masu, "SCL" pin na A5, a "SDA" pin na A4. Da bi se LCD ekran mogao uklopiti u kućište, morat ćemo savijati zatiče zaglavlja unatrag. Savijanje igala naprijed -natrag nekoliko puta će umoriti metal i uzrokovati lomljenje igala, 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 toku, dugme se prebacuje između prikaza troškova ili protoka
  • Kada tuš ne radi, dugme bi trebalo da obriše sve podatke i resetuje ekran
  • Senzor treba čitati pomoću rutine prekida kako bi se izbjegle grube metode ispitivanja
  • Prilikom ažuriranja ekrana trebali bismo ažurirati samo vrijednosti koje su se promijenile, a ne svaki put prebrisati cijeli ekran (to bi uzrokovalo zamjetno treperenje)

Program slijedi jednostavnu strukturu. Korištenjem 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. Kreiranjem 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 koristiti sljedeći kodni blok:

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

previousMillis = millis (); toggleLED (); }

Ovim se provjerava je li razlika između millis () (trenutno vrijeme) i previousMillis (posljednji put) veća ili jednaka 1000 milisekundi. Ako jeste, prvo što trebamo je postaviti previousMillis jednakim 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 ta što delay () stavlja vremenski razmak između instrukcija, ali ne uzima u obzir vrijeme potrebno za izvršavanje drugih instrukcija u funkciji loop (). Ako radite nešto što traje duže od pukog treptanja LED -a, poput ažuriranja LCD ekrana, vrijeme koje je potrebno nije zanemarivo, a nakon nekoliko ciklusa će se zbrajati. Ako ažurirate LCD ekran na satu, on bi brzo postao neprecizan i zaostao bi.

Dakle, sada kada razumijemo cjelokupnu strukturu programa, vrijeme je da umetnemo upute. Umjesto da ovdje objašnjavate svaki red koda, predlažem da prvo pročitate priloženi dijagram toka, koji daje pregled na visokom nivou o tome šta program radi.

Kada vidite dijagram toka, pogledajte priloženi Arduino kod. Komentarisao sam skoro svaki redak kako bi bilo jasno šta svaki red radi.

U kodu postoji nekoliko dijelova koje biste možda htjeli promijeniti. Najvažnije je cijena po litri. U mom gradu voda košta 0,2523 ¢ po litru. 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, sa web stranice grada

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

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

… i raskomentirajte ovaj redak:

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

Postoji još jedna neobičnost koju ste možda primijetili 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 se mora "stvoriti" i pohraniti.

lcd.createChar (0, cent_sign);

Kada to učinite, 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 ovome nalazi se ovdje. Naišao sam i 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. Ali prvo moramo pričvrstiti razmake od 30 mm. Paket zastoja koje sam kupio ne uključuje tako dugačke, ali dolazi s onima od 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 previše čvrsto ili riskirate da slomite plastično kućište.

Sada možemo uklopiti svu elektroniku unutra. Priključio sam punjač i pretvarač pojačanja na poklopac 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 kontakt ne dođe do kratkog spoja.

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 ekrana.

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 konektor od 3,5 mm sa senzora protoka. Preporučujem da to učinite prije uključivanja uređaja jer je moguće da utikač uspostavi neželjenu vezu dok se ubacuje.

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

Ako uključite tuš, ukupan broj bi se trebao početi povećavati. Prema zadanim postavkama, cijena je prikazana. Ako pritisnete dugme na prednjoj ploči, protok će se prikazati u donjem redu. Pritiskom na dugme 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 dugme na prednjoj ploči poništavaju se mjerenja i briše ekran.

Montaža

Način na koji ćete postaviti uređaj ovisi o rasporedu vašeg tuša. Neki tuševi mogu imati izbočinu dovoljno blizu tuš kabine da možete jednostavno postaviti uređaj tamo. Pod tušem imam košaru sa usisnim čašicama u koju sam stavio uređaj. Ako nemate luksuz ivice ili korpe, pokušajte držati uređaj uz zid dvostranom usisnom čašom. Ovo će funkcionirati samo ako koristite spremno kućište s glatkom podlogom ili ste moje prilagođeno kućište odštampali na štampač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

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

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

Ekran 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 priključen.

Ekran je prazan s isključenim pozadinskim osvjetljenjem - provjerite je li LED za napajanje na Arduinu uključen i provjerite ima li ekran 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 da li senzor protoka koji koristite ima 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, ali na kraju bih želio dodati mogućnost različitih korisnika (članova porodice, 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.

Bilo bi također super imati način za izvoz 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.

Sve ove značajke zahtijevaju korištenje EEPROM-a-Arduinove ugrađene trajne memorije. To bi omogućilo zadržavanje podataka čak i nakon isključivanja uređaja.

Još jedna korisna funkcija bila bi indikator baterije. Trenutno je jedini pokazatelj da je potrebno napuniti uređaj 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 jezivom funkcionalnošću, zbog čega softver nisam dalje razvijao.

Ostalo je na vama!

Takmičenje senzora
Takmičenje senzora
Takmičenje senzora
Takmičenje senzora

Prva nagrada na takmičenju senzora

Preporučuje se: