Sisukord:

Säästke vett ja raha duššiveemonitoriga: 15 sammu (piltidega)
Säästke vett ja raha duššiveemonitoriga: 15 sammu (piltidega)
Anonim
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga
Säästke vett ja raha duššiveemonitoriga

Kumb kasutab rohkem vett - vann või dušš?

Mõtlesin hiljuti sellele küsimusele ja mõistsin, et ma ei tea tegelikult, kui palju vett duši all käies kasutatakse. Ma tean, et duši all käies vajub mu mõte vahel ringi, mõeldes mõnele uuele lahedale projektiideele või proovides otsustada, mida hommikusöögiks süüa, samal ajal kui vesi lihtsalt voolab kanalisatsiooni. Oleks palju lihtsam oma veetarbimist vähendada, kui ma tegelikult teaksin, mitu liitrit ma iga kord kasutan!

Uurisin natuke ja leidsin, et kui teil on paigaldatud voolupiiraja, võivad erinevad dušipead kasutada 9,5 liitrit (2,5 gallonit) minutis kuni 6 liitrit (1,6 gallonit) minutis. Väga vana dušš võiks kasutada veelgi rohkem vett.

Otsustasin kavandada ja ehitada seadme, mis näitaks ühe dušši kohta kasutatava vee kogumahtu, vee maksumust ja voolukiirust. Olen seda seadet mõne nädala jooksul installinud ja kasutatav veekoguse reaalajas lugemine on tõesti mugav.

Selles juhendis selgitan, kuidas ma selle ehitasin. Muidugi ei pea te täpselt minu samme järgima! Alati on hea kasutada lamavaid osi. Olen lisanud lingid kõikidele kasutatud osadele või samaväärsele osale, mis töötab.

Tarvikud

(Kõik hinnad USA dollarites)

  • Vooluandur - 3,87 dollarit
  • LCD -ekraan - 2,29 dollarit
  • Arduino Nano - 1,59 dollarit
  • Võimendusmuundur - 1,88 dollarit
  • LiPo laadija - 1,89 dollarit
  • Veekindel lüliti - 0,93 dollarit (pole täpselt see, mida kasutasin, kuid see peaks töötama)
  • Veekindel nupp - 1,64 dollarit
  • Seisud, M3 kruvid ja mutrid - 6,99 dollarit
  • 2X emane 3,5 mm pistik - 2,86 dollarit ea.
  • Meeste 3,5 mm pistik - 1,48 dollarit
  • 3,5 mm 3 -tolline kaablikomplekt - 3,57 dollarit
  • USB -kaabli komplekt - 1,74 dollarit
  • 1/2 "NPS-naissoost ühendus-1,88 dollarit
  • 500 mAh 3,7 V LiPo aku - 3,91 dollarit

Tööriistad ja tavalised tarvikud

  • Jootekolb ja jootekolb
  • Traat
  • Traadilõikurid
  • Traadi eemaldajad
  • Kahepoolne teip
  • Phillipsi kruvikeeraja
  • 3D -printer (valikuline)

Samm: veekindlus

Veekindlus
Veekindlus

Selle projekti kõige keerulisem aspekt on muuta kogu asi veekindlaks. Kuna see asub duši all, peab see taluma äärmist niiskust ja aeg -ajalt pritsimist. Umbes 75% kogu projektile kulunud ajast oli selle osa väljamõtlemine.

Minu nägemuses on kaks valikut: kujundage kohandatud 3D-prinditud ümbris või proovige panna see töötama riiulil oleva korpusega. Kuna sain hiljuti oma 3D -printeri, otsustasin valida esimese variandi.

Kui teil pole 3D-printerile juurdepääsu, siis siin on mõned riiulipesad, mille olen leidnud, et need on veekindlad ja tõenäoliselt töötavad. Pange tähele, et ma pole kumbagi neist korpustest ostnud, seega ei garanteeri ma, et kõik komponendid mahuvad sisse!

Banggood - 100x68x50mm läbipaistva kaanega karp - 5,35 dollarit

Digikey - 130x80x70mm läbipaistva kaanega karp - 11,65 dollarit

Siit edasi, kui ma viitan korpusele, räägin ma oma 3D -trükist.

2. samm: minu kohandatud 3D -prinditud ümbris

Minu kohandatud 3D trükitud ümbris!
Minu kohandatud 3D trükitud ümbris!
Minu kohandatud 3D trükitud ümbris!
Minu kohandatud 3D trükitud ümbris!
Minu kohandatud 3D trükitud ümbris!
Minu kohandatud 3D trükitud ümbris!

Pärast mitu tundi Fusion 360 -s töötamist jõudsin selle korpuseni. Sellel on kolm ümmargust väljalõiget, mis mahutavad kahte naissoost 3,5 mm pistikut ja ühe lülituslüliti. Kaanel on hetkeline nupp 16 mm avaga ja ekraani jaoks ristkülikukujuline väljalõige ning neli kinnitusava ekraani paigal hoidmiseks. Kaas on eraldi osa ja sellel on huul, mis aitab vältida niiskuse tungimist õmbluse kaudu. Karbi nurkades asuvad neli auku peavad kaant kinni hoidma 30 mm vaheseintega. Kõik kruviavad on läbimõõduga 3 mm, mis sobib M3 kruviga.

STL -failid saate alla laadida minu Thingiverse lehelt. Seda saab trükkida ilma parvedeta ja tugedeta, kuid ma kasutasin tuge ainult ohutuse huvides. Kasutasin ka 100% täiteainet. Kuna seinad on nii õhukesed, ei muuda täitmisprotsendi vähendamine tegelikult kogu trükiaega ega kogu materjali, seega hoidsin seda lihtsalt 100%juures.

Ekraani nähtavaks tegemiseks võib see kas ulatuda läbi korpuse kaane väljalõike või asetada läbipaistva akna taha. Kuna ekraan ei tohiks niiskuse käes olla, oleme jäänud teise variandi juurde. Kahjuks on läbipaistva hõõgniidiga 3D -printimine alles lapsekingades, nii et peame olema natuke loomingulised.

Minu lahendus oli luua kaanesse ristkülikukujuline väljalõige ja liimida mõnest köögiviljapakendist läbipaistva plastiku tükk. Seda tehnikat saab kasutada isegi siis, kui te ei kasuta minu kohandatud korpust; lihtsalt lõigake ristkülik kasuliku noa või Dremeli abil välja. Muidugi, kui kasutate läbipaistva kaanega korpust, pole seda üldse vaja.

Parim läbipaistva plasti allikas, mille olen leidnud, on pakend. Tavaliselt tulevad spinat või muud lehtköögiviljad suurtesse läbipaistvatesse plastmahutitesse. Minu puhul kasutasin "pipraga" pakendit.

Tahtsin 5 mm üleulatust, et anda liimimiseks palju pinda, nii et lõikasin läbipaistvast plastikust välja 27x77 mm ristküliku. Pidin natuke nurki trimmima, et kruvid sobiksid. Pritsisin väljalõike ümbermõõdule superliimi joone ja panin seejärel läbipaistva plastiku peale. Lisasin serva ümber natuke rohkem liimi, et veenduda selle tihendamises.

Nõuanne: asetage osa liimi kuivamise ajal väikese ventilaatori ette. Kui superliim kuivab, kipub see endast maha jätma alatu valge jäägi, mida me kindlasti oma läbipaistvale aknale ei soovi. Kasutasin vana 12V ventilaatorit arvuti toiteallikast. Lasin liimil 12 tundi seista, veendumaks, et see on täiesti kuiv.

Samm: LCD -ekraani paigaldamine

LCD -ekraani paigaldamine
LCD -ekraani paigaldamine
LCD -ekraani paigaldamine
LCD -ekraani paigaldamine
LCD -ekraani paigaldamine
LCD -ekraani paigaldamine

Kui läbipaistev aken on kuivanud, saab LCD -ekraani paigaldada. LCD on ülipopulaarne 16x2 tähemärgiline ekraan, mille tagaküljele on eelnevalt joodetud I²C "seljakott". Soovitan tungivalt selle ekraani hankimist I²C liidesega. Kõigi paralleelsete liinide ühendamine on üsna tüütu ja toob kaasa rohkem vigu - I²C versioonil on ainult kaks toitejuhet ja kaks signaali.

Ekraani paigaldamiseks kasutasin nelja 10 mm vaheseina. Eraldiseisvad kummaski otsas on isasniit ja teises sisemine niit. Panin välisniidi läbi LCD -ekraani aukude ja keerasin igale külge M3 mutri. Seejärel kasutasin nelja M3 kruvi, et kinnitada vaheseinte naissoost otsad läbi korpuse kaane. Sain selle eralduspaketi, milles on 10 mm LCD -ekraani paigaldamiseks ja pikemad, et kaan aluse külge kinni hoida. Lisaks on olemas M3 kruvid ja mutrid, nii et te ei pea täiendavat riistvara ostma.

Veenduge, et mutrid on väga pingul, nii et kruvide pingutamisel takistused ei pöörduks. Veenduge ka, et te ei keeraks kruvisid üle, vastasel juhul võib plastkaas deformeeruda ega sulgeda korralikult.

16 päise tihvti rida LCD -ekraanil peaks olema üleval - veenduge, et te ei paigaldaks LCD -ekraani tagurpidi!

4. samm: hetkelise nupu paigaldamine

Hetkelise nupu paigaldamine
Hetkelise nupu paigaldamine
Hetkelise nupu paigaldamine
Hetkelise nupu paigaldamine
Hetkelise nupu paigaldamine
Hetkelise nupu paigaldamine

Otsustasin kasutada seda haige välimusega kroomitud nuppu esipaneelil. Olen neid varasemates projektides kasutanud ja mulle väga meeldib, kuidas nad välja näevad. Need peaksid olema veekindlad ja neil on kummist rõngas, mis takistab niiskuse sattumist korpusele niitide kaudu.

See samm on üsna lihtne. Keerake mutter lahti, kuid hoidke kummirõngas peal. Sisestage nupp kaaneava kaudu ja keerake mutter tagaküljelt kinni. Vältige mutri liigset pingutamist, vastasel juhul puruneb kummist rõngas ja see ei täida oma eesmärki.

Samm: toite- ja laadimisahel

Toite- ja laadimisahel
Toite- ja laadimisahel
Toite- ja laadimisahel
Toite- ja laadimisahel
Toite- ja laadimisahel
Toite- ja laadimisahel

Nüüd paneme kokku aku toite komponendid. See hõlmab akut, pealülitit, aku jälgimis-/laadimisplaati ja võimendusmuundurit.

Aku, mida ma kasutasin, on 3,7 V 1500 mAh üheelemendiline liitiumioonaku. Konkreetne, mida ma kasutasin, võeti katkisest Playstationi kontrollerist. Iga üheelemendiline Li-Ion või LiPo aku töötab seni, kuni see teie korpusesse sobib. Seda tüüpi patareid kipuvad olema väga õhukesed ja lamedad, nii et tõenäoliselt saaksite minuga kaks korda suuremat ilma probleemideta kasutada. 18650 rakk toimiks, kuid see ei mahu minu kohandatud korpuse sisse, nii et peate ise kujundama või kasutama riiulil olevat korpust. Kui võimalik, soovitan kasutada päästetud akut (nagu mina), sest patareide saatmine on sageli kallis!

Aku tuleks esmalt joota laadimisplaadile TP4056. Soovi korral saate mugavuse huvides aku ja laadija külge jootma JST RCY pistiku (ma tegin seda), kuid see pole vajalik. Jälgige kindlasti õiget polaarsust, nagu on märgitud laadimisplaadil olevatele märkidele, kuna plaat ei ole aku vastupidise polaarsuse eest kaitstud!

Seejärel jootke traat laadija positiivsest väljundist (mis asub aku positiivse juhtme kõrval) võimendusmuunduri positiivse sisendini. Seejärel jootke traat negatiivsest väljundist (mis asub aku negatiivse juhtme kõrval) pealüliti tavalise (keskmise) tihvtini. Lõpuks jootke traat lüliti tavaliselt avatud tihvtist võimendusmuunduri negatiivse sisendini. Kui ühendate võimendusmuunduri väljundiga multimeetri ja lülitate pealüliti sisse, peaks kuvama pinget.

Kuna meie Arduino, LCD -ekraan ja vooluandur vajavad kõik 5 V, peame võimendusmuunduri väljundiks seadma 5 V. See saavutatakse, keerates potentsiomeetri nuppu väikese kruvikeerajaga. Kui pealüliti on sisse lülitatud, aku on ühendatud ja multimeeter on ühendatud võimendusmuunduri väljundiga, keerake potentsiomeetrit aeglaselt, kuni väljund näitab 5 V. Täpselt 5000 V näitu on raske saada, kuid püüdke saavutada pinge vahemikus 4,9 V ja 5,1 V.

Kuna minu kohandatud korpust hoitakse mitme kruviga kinni, ei taha me korpust iga kord, kui seda vaja laadida, avada. Kasutasin selleks 3,5 mm kõrvaklappide pesa. Täpne pistik, mida ma kasutasin, on see Digikey pistik (mille jaoks on minu korpuse väljalõiked mõeldud), kuid see Banggoodi pistik peaks samuti töötama.

Esiteks sisestasin pistiku korpuse kõige alumisse auku. Kuna see on enamasti vooluvõrgust lahti ühendatud ja seetõttu vastuvõtlik niiskusele, on kõige parem paigaldada see põhja, et vältida vee sisse tilkumist. Pärast lukuseibi paigaldamist ja mutri pingutamist jootsin kaks juhtmest pistiku "otsa" ja "hülsi" sakkide külge. Pistiku pistikupesa on näidatud ühel minu märkustega pildil. Jootsin "varruka" juhtme teise otsa laadija negatiivse sisendi juurde, mikro -USB -pordi kõrvale. Lõpuks jootsin "otsa" juhtme +5V padja külge, mis asub USB -pordi teisel poolel. Laadija USB -porti ei kasutata, kuna oleks raske panna USB -port korpusesse tungima ilma niiskust sisse laskmata.

Samm: laadimiskaabel

Laadimiskaabel
Laadimiskaabel
Laadimiskaabel
Laadimiskaabel
Laadimiskaabel
Laadimiskaabel

Kuna kasutame laadimispordina 3,5 mm helipistikut, peame valmistama adapteri kaabli, mille ühes otsas on isane 3,5 mm pistik ja teises otsas USB A pistik. See võimaldab meil selle seadme laadimiseks kasutada mis tahes üldist mobiilseadme laadijat (näiteks iPhone'i laadijat).

Võite osta USB -kaablikomplekti, mille ühes otsas on USB A -pistik ja teises otsas tinatatud juhtmed, kuid kui olete nagu mina, on teil tõenäoliselt kümmekond juhuslikku USB -kaablit, mida te ei vaja. USB -kaablikomplekti ostmise asemel sain just mikro -USB -A -kaabli, mida ma ei vajanud, ja lõikasin mikro -USB -pistiku välja.

Järgmisena eemaldasin valge jope kaablilt, et näha ainult kahte juhtmest: punast ja musta traati. Mõnel USB -kaablil on neli juhtmest: punane, must, roheline ja valge. Roheline ja valge on mõeldud andmete edastamiseks ja neid saab ignoreerida. Eemaldage isolatsioon ainult punastest ja mustadest juhtmetest.

Järgmisena vajate isast 3,5 mm pistikut. Ma kasutasin seda Banggoodist. Jootke punane juhe USB -kaablist keskmisele sakile (mis on pistiku ots) ja must juhe pikkade varrukatega. Täpsustamiseks vaadake minu fotosid.

Soovitan alati ühendada 3,5 mm pistiku enne USB -pistikut, kuna kaabli ühendamise protsess võib põhjustada pistiku lühise metallpistikus.

7. samm: vooluanduri kohta

Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta
Vooluanduri kohta

Võtsin selle vooluanduri Banggoodist 3,87 dollari eest. Enne selle kasutamist otsustasin uurida, kuidas see toimib.

Disain on üllatavalt lihtne ja geniaalne. Elektroonika on veest täielikult suletud. Olemas on tasuta pöörlev propeller, mis pöörleb aeglasemalt või kiiremini sõltuvalt voolukiirusest. Ühel hetkel on propelleril magnet. Anduri välisküljel on väike sektsioon, mis sisaldab väikest trükkplaati koos kahe komponendiga: takisti ja saaliefekti andur. Iga kord, kui magnet möödub saaliefekti andurist, lülitub see kõrge ja madala vahel. Teisisõnu, see lülitub 5–0 V vahele iga kord, kui propeller pöörleb.

Anduri lugemiseks rakendame punasele juhtmele +5V, mustale negatiivse ja loeme kollasest juhtmest digitaalse signaali. Minu ostsilloskoobi fotol näete, kuidas signaal voolu sisselülitamisel muutub. Alguses on signaal pidevalt nullvolti. Kui vool algab, tõuseb impulsside sagedus kiiresti ja saavutab püsiseisundi.

Andmelehe kohaselt väljastab andur 450 impulssi liitri kohta. See on hiljem tarkvara kirjutamise ajal oluline.

8. samm: vooluanduri juhtmestik

Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik
Vooluanduri juhtmestik

Vooluanduriga on kaasas 3-kontaktiline JST-XH pistik. See ei ole ideaalne, kuna juhtmed on liiga lühikesed ja pistikul on avatud kontaktid, mida võivad hulkuvad veepiisad kergesti lühistada. Tellisin selle 3,5 mm helipistiku kaablikomplekti Digikeyst. See on 3 'pikk, mis on ideaalne pikkus ja sellel on tinatud juhtmed, mis muudab jootmise lihtsaks. Ma ei soovita proovida vana kõrvaklappide juhet, kuna neil on tavaliselt väga õhuke emailitud traat, mida on peaaegu võimatu joota.

Vooluanduril on plastkate, mida hoiavad kinni kaks Phillipsi kruvi. Lihtsalt eemaldage need kruvid ja tõmmake trükkplaat välja. Seda ei hoita ühegi liimiga kinni, vaid hoitakse plastkaanega paigal. Seejärel jootke kolm juhet jootekolviga üles kuumutades ja ükshaaval maha tõstes.

Seejärel jootke 3,5 mm helikaabel patjade külge. Soovitan sobitada värvid nii nagu mina. Selle konfiguratsiooni otsas on +5 V, rõngal on signaal ja varrukal on maandus. See on sama konfiguratsioon, mida kasutati laadimispordi jaoks alates 6. sammust. Kui ühendate laadija kogemata anduri porti või vastupidi, ei kahjusta see seadet.

9. samm: Vooluanduri paigaldamine

Vooluanduri paigaldamine
Vooluanduri paigaldamine
Vooluanduri paigaldamine
Vooluanduri paigaldamine
Vooluanduri paigaldamine
Vooluanduri paigaldamine

Siiani on kogu meie töö toimunud töökojas. Aga nüüd on aeg minna vannituppa!

Esiteks eemaldasin duššipea. See näitas lühikest toru, mis ulatub seinast välja 1/2 NPS -isekeermestusega. Mugavalt on meie vooluanduril täpselt sama keerme suurus! Ainus probleem on see, et anduril on mõlemas otsas isekeermestus, nii vajada naissoost naissoost sidumist.

Minu kohalikus ehituspoes olid 1/2 haakeseadised messingist, rauast ja PVC -st. PVC oli odavaim, nii et ma sain selle. Kuigi tagantjärele mõeldes oleksid messingist või terasest tooted ilusamad.

Kui haakeseadis on olemas, keerake lihtsalt vooluandur haakeseadisesse ja seejärel keerake haakeseadise teine ots toru külge. Vooluanduril on nool, mis näitab kavandatud voolusuunda. Veenduge, et te ei paigaldaks seda tagurpidi, vastasel juhul võivad mõõtmised olla ebatäpsed. Lõpuks keerake dušipea vooluanduri otsa külge.

Muidugi eeldan, et teie dušš kasutab 1/2 NPS -niiti, nagu minu oma. Kui see nii pole, peate hankima täiendavad adapterid.

Nõuanne: lisage teflonist torulukksepi teip kõikidele niitidele enne tükkide kokku keeramist, et vältida lekkeid. Mul polnud neid käepärast, kuid kavatsen selle lähitulevikus lisada.

Samm: Arduino ja Perfboard

Arduino ja Perfboard
Arduino ja Perfboard
Arduino ja Perfboard
Arduino ja Perfboard
Arduino ja Perfboard
Arduino ja Perfboard

Kuna me peame palju juhtmeid tegema, on hea mõte muretseda tükike laudist, et muuta asjad natuke korrastatumaks. Lõikasin täisplaadist ristküliku umbes 1 "2". Järgmisena asetasin oma Arduino Nano tahvli keskele ja märkisin, kust päise tihvtid läbi läksid. Seejärel lõikasin kaks pikkust naissoost päiseid, igaüks 15 tihvti pikk. Jootsin need parfüürile, kus ma varem märgin. See võimaldab meil Arduino programmeerimiseks eemaldada.

Nõuanne: märkige Arduino USB-porti suund, nii et ühendate selle alati sama moodi.

Samm 11: kõikide juhtmete ühendamine

Juhtmed Kõik
Juhtmed Kõik
Juhtmed Kõik
Juhtmed Kõik
Juhtmed Kõik
Juhtmed Kõik

Nüüd on aeg kõik kokku joota! Olen lisanud täieliku ühendusskeemi, mida saate järgida, või vaadake allpool minu kirjalikke samme, kui eelistate rohkem juhitud lähenemist.

Esiteks lõikasin välja mõned isased päisepoldid ja jootsin need +5V ja maapinnaga rööbaste külge. Siis jootsin veel kaks päise tihvti, mis olid ühendatud Arduino tihvtidega A4 ja A5. Need päised võimaldavad meil ühendada LCD-ekraani naissoost naissoost džemprite abil.

Järgmiseks jootsin võimendusmuunduri väljundist paar juhtmest +5V ja maandusrööpad. See annab voolu Arduinole, LCD -le ja vooluandurile.

Pärast seda lõikasin kaks juhtmest läbi ja ühendasin need nupu klemmidega. Jootsin ühe juhtme maandusrööpa külge ja teise digitaalse tihvti 3 külge.

Jootmise viimane osa on vooluandur. Kuna me juba anduri külge kinnitasime 3,5 mm pistiku, peame lihtsalt jootma 3,5 mm pistiku. Esmalt jootsin kolm juhet - üks tungraua iga saki külge. Seejärel sisestasin tungraua korpuse kaudu ja kinnitasin selle mutriga. Lõpuks jootsin varruka maapinnale, otsa +5V ja rõnga digitaalse tihvti 2 külge.

Valisin nupu ja vooluanduri jaoks digitaalseid tihvte 2 ja 3, kuna need on riistvara katkestusnõelad. See muudab koodi kirjutamise palju lihtsamaks.

Nüüd oleme jootmise lõpetanud, kuid LCD -ekraan tuleb siiski ühendada. Kuna me jootsime päiseid, vajame lihtsalt nelja naissoost naist. Ühendage tihvt "Vcc" +5 V, "Gnd" tihvt maandusega, "SCL" tihvt A5 -ga ja "SDA" tihvt A4 -ga. Selleks, et LCD -ekraan korpusesse mahuks, peame päise tihvtid tahapoole painutama. Tihvtide mitu korda edasi -tagasi painutamine väsitab metalli ja põhjustab tihvtide purunemise, seega soovitan neid painutada ainult üks kord ja tehke seda ettevaatlikult.

Nüüd on juhtmestik valmis!

12. samm: programmeerimine

Programmeerimine
Programmeerimine

Nüüd, kui riistvara on kõik ühendatud, saame Arduino programmeerida.

Soovin, et programmil oleksid järgmised funktsioonid:

  • Esimesel real kuvatakse kiiresti uuendatav liitrite koguarv
  • Teisel real näidake vee kogumaksumust või voolukiirust
  • Kui dušš töötab, lülitub nupp kulude või voolukiiruse kuvamise vahel
  • Kui dušš ei tööta, peaks nupp kustutama kõik andmed ja lähtestama ekraani
  • Andurit tuleks lugeda katkestusrutiini abil, et vältida jämedaid küsitlusmeetodeid
  • Ekraani värskendamisel peaksime värskendama ainult muutunud väärtusi, mitte kogu ekraani iga kord üle kirjutama (see põhjustaks märgatavat värelemist)

Programm järgib lihtsat ülesehitust. Funktsiooni millis () kasutades saame tekitada viivitusi, mis tegelikult ei takista programmi täitmist. Vaadake sellest õpetusest LED -i vilkumise näidet ilma funktsiooni delay () kasutamata.

Funktsioon millis () tagastab millisekundite arvu pärast Arduino sisselülitamist. Luues muutuja "previousMillis" ja lahutades Millis () - previousMillis (), näeme eelmiseMillise värskendamisest möödunud aega.

Kui tahame, et midagi juhtuks üks kord sekundis, saame kasutada järgmist koodiplokki:

kui ((millis () - eelmineMillis)> = 1000) {

previousMillis = millis (); toggleLED (); }

See kontrollib, kas erinevus millis () (praegune aeg) ja eelmise Millise (viimane kord) vahel on suurem või võrdne 1000 millisekundiga. Kui see on nii, siis esmalt teeme eelmise Millise võrdseks praeguse ajaga. Seejärel viime läbi kõik vajalikud täiendavad sammud. Selles näites lülitame sisse LED -i. Seejärel väljume sellest koodiplokist ja lõpetame ülejäänud silmuse () funktsiooni, enne kui naaseme algusesse ja kordame seda uuesti.

Selle meetodi kasutamise eelis lihtsa delay () funktsiooni ees on see, et delay () paneb juhiste vahele ajavahe, kuid ei arvesta aega, mis kulub funktsiooni loop () muude juhiste täitmiseks. Kui teete midagi, mis võtab kauem aega kui lihtsalt LED -i vilkumine, näiteks värskendate LCD -ekraani, ei ole kuluv aeg sugugi tühine ja mõne tsükli möödudes läheb see kokku. Kui värskendate LCD -ekraani kella, muutub see kiiresti ebatäpseks ja jääb maha.

Nüüd, kui me mõistame programmi üldist ülesehitust, on aeg juhised sisestada. Selle asemel, et siin iga koodirida selgitada, soovitan teil kõigepealt lugeda lisatud vooskeemi, mis annab kõrgetasemelise ülevaate programmi tegevusest.

Kui olete vooskeemi näinud, vaadake lisatud Arduino koodi. Olen kommenteerinud peaaegu igat rida, et oleks selge, mida iga rida teeb.

Koodis on mõned osad, mida võiksite muuta. Kõige tähtsam on liitri hind. Minu linnas maksab vesi 0,2523 ¢ liiter. Leidke järgmine rida ja muutke seda väärtust, et see vastaks teie elukoha kuludele:

const float COST_PER_LITRE = 0,2523; // liitri hind, sentides, linna veebisaidilt

Kui eelistate gallonite kasutamist üle liitrite, muutke kõik "LCD.print ()" read, mis viitavad "L" või "L/s" väärtusele "G" või "G/s". Seejärel kustutage järgmine rida:

const float CONVERSION = 450,0; // jätke see liitrite eest kommenteerimata

… Ja tühistage see rida:

const float CONVERSION = 1703,0; // tühista see kommentaar ja kustuta ülalpool rida gallonite kohta

On veel üks veidrus, mida olete minu koodis märganud. Vaikimisi tähemärkide komplekt ei sisalda tähte "¢" ja ma ei tahtnud dollareid kasutada, sest enamikul juhtudel kuvatakse maksumus "0,01 dollarit" või vähem. Seetõttu olin sunnitud looma kohandatud tegelase. Selle sümboli tähistamiseks kasutatakse järgmist baidimassiivi:

bait sent_sign = {B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100};

Pärast selle massiivi loomist tuleb erimärk "luua" ja salvestada.

lcd.createChar (0, sent_sign);

Kui see on tehtud, kasutame kohandatud märgi printimiseks järgmist rida:

lcd.write (bait (0)); // prindi sendimärk (¢)

LCD -ekraanil võib olla kuni 8 kohandatud tähemärki. Lisateavet selle kohta leiate siit. Samuti leidsin selle kasuliku veebitööriista, mis võimaldab teil graafilise liidese abil kohandatud märgi joonistada ja see loob automaatselt kohandatud baidimassiivi.

13. samm: kaane sulgemine

Kaane sulgemine
Kaane sulgemine
Kaane sulgemine
Kaane sulgemine
Kaane sulgemine
Kaane sulgemine

Lõpuks oleme peaaegu lõpetanud!

On aeg kogu elektroonika korpusesse toppida ja loota, et kaas sulgub. Kuid kõigepealt peame kinnitama 30 mm vaheseinad. Minu ostetud vaheseinte pakett ei sisalda ühtegi nii pikka, kuid kaasas on 20 mm ja 10 mm, mida saab kokku kinnitada. Kruvisin nelja M3 kruviga korpuse põhjas olevatesse aukudesse neli eraldusvõimet (vt pilte 1 ja 2). Pingutage need kindlasti kindlalt, kuid mitte liiga tihedalt, vastasel juhul võite plastkorpuse puruneda.

Nüüd mahutame kogu elektroonika sisse. Laadija ja võimendusmuunduri kinnitasin kaane külge kahepoolse teibiga, nagu näha kolmandal pildil. Seejärel keerasin elektrilindi ümber kahele 3,5 mm pistikupesale paljastatud metallile, et tagada pistikutega kontakteerudes midagi lühist.

Suutsin Arduino sobivaks muuta, asetades selle küljele, vasakusse alumisse nurka, USB -port paremale. Kasutasin rohkem kahepoolset teipi, et kinnitada aku LCD-ekraani all oleva korpuse põhja.

Lõpuks, kui kõik on enam -vähem kindlalt karpi kinni jäänud, saab kaane veel nelja M3 kruviga alla keerata.

14. samm: testimine

Testimine
Testimine
Testimine
Testimine
Testimine
Testimine
Testimine
Testimine

Ühendage esmalt vooluanduriga 3,5 mm pistik. Soovitan seda teha enne seadme sisselülitamist, sest pistik võib sisestamise ajal soovimatu ühenduse luua.

Seejärel lülitage toitelüliti sisse. Kuigi vesi ei voola, ei tohiks esipaneeli nupp peale kogutühjendamise ja ekraani tühjendamise midagi muud teha. Kuna kogusumma on vaikimisi null, ei näi nupp veel midagi tegevat.

Kui lülitate duši sisse, peaks koguarv suurenema. Vaikimisi kuvatakse maksumus. Kui vajutate esipaneeli nuppu, kuvatakse voolukiirus alumisel real. Esipaneeli nupu vajutamine vahetab vooluhulga ja kulude kuvamise vahel, kuni dušš töötab. Kui dušš peatub, lähtestab esipaneeli nupp mõõtmised ja tühjendab ekraani.

Paigaldamine

Seadme paigaldamise viis sõltub teie dušši paigutusest. Mõnel duššil võib olla eend duššipea lähedal, et saaksite seadme lihtsalt sinna paigutada. Duši all on mul iminappadega kinnitatud korv, kuhu ma seadme asetasin. Kui teil pole edeva või korvi luksust, võite proovida seadet kahepoolse iminapaga seina külge hoida. See toimib ainult siis, kui kasutate riiulist korpust, millel on sujuv tagakülg, või prindite minu kohandatud korpuse klaasist ehitusplaadiga printerile. Kui teie korpuse tagakülg on karm (nagu minu oma), võite proovida kasutada kahepoolset teipi, kuigi see võib seadme eemaldamisel jätta dušiseinale jääke.

Tõrkeotsing

Ekraan on sisse lülitatud, kuid taustvalgus on välja lülitatud - veenduge, et hüppaja oleks paigaldatud kahele tihvtile I ² C mooduli küljel

Ekraan on tühi ja taustavalgus on sisse lülitatud - kontrollige, kas I² C aadress on õige, käivitades I²C skanneri

Ekraan on sisse lülitatud, kuid väärtused jäävad nulliks - kontrollige, kas andurilt tuleb signaal, mõõtes pinti pin 2. Kui signaali pole, kontrollige, kas andur on korralikult ühendatud.

Ekraan on tühi ja taustavalgus on välja lülitatud - kontrollige, kas Arduino toite LED -tuli põleb, ja kontrollige, kas ekraanil on toide

Ekraan lülitub lühidalt sisse, siis kõik peatub - tõenäoliselt seadisite võimendusmuunduri pinge liiga kõrgeks (komponendid ei talu rohkem kui 5 V)

Seade töötab, kuid väärtused on valed - veenduge, et kasutataval vooluanduril oleks sama teisendustegur 450 impulsi liitri kohta. Erinevatel anduritel võivad olla erinevad väärtused.

Samm: alustage nüüd vee säästmist

Parandused

Tarkvara praegune versioon töötab piisavalt hästi, kuid lõpuks tahaksin lisada võimaluse kasutada erinevaid kasutajaid (pereliikmed, majakaaslased jne). Seade salvestab iga inimese statistika (kogu vesi ja duššide koguarv) kuvada iga inimese keskmine veetarbimine. See võib julgustada inimesi võistlema, et kasutada võimalikult vähe vett.

Samuti oleks lahe, kui oleks võimalus arvutustabelis vaadatavaid andmeid eksportida, et neid saaks graafiliselt joonistada. Siis sai näha, millistel aastaaegadel on inimestel sagedasem ja pikem dušš.

Kõik need funktsioonid nõuaksid EEPROMi-Arduino sisseehitatud püsimälu. See võimaldaks andmeid säilitada ka pärast seadme väljalülitamist.

Teine kasulik funktsioon oleks aku indikaator. Praegu näitab seade, et aku tuleb uuesti laadida, kui akuhaldur lülitab toite välja. Aku pinge mõõtmiseks oleks lihtne ühendada täiendav analoogsisend. Pingejaoturit poleks isegi vaja, kuna aku pinge on alati alla 5 V.

Mõned neist ideedest piirnevad funktsioonide roomamisega, mistõttu ma ei arendanud tarkvara edasi.

Ülejäänud on teie otsustada!

Andurite võistlus
Andurite võistlus
Andurite võistlus
Andurite võistlus

Võitjate konkursi esimene auhind

Soovitan: