Cuprins:

Economisiți apă și bani cu monitorul de apă pentru duș: 15 pași (cu imagini)
Economisiți apă și bani cu monitorul de apă pentru duș: 15 pași (cu imagini)

Video: Economisiți apă și bani cu monitorul de apă pentru duș: 15 pași (cu imagini)

Video: Economisiți apă și bani cu monitorul de apă pentru duș: 15 pași (cu imagini)
Video: SA FI CUMINTE MAMAIE CAT PLECAM :)))))))))) 2024, Iunie
Anonim
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș
Economisiți apă și bani cu monitorul de apă pentru duș

Care folosește mai multă apă - o cadă sau un duș?

De curând mă gândeam la această întrebare și mi-am dat seama că de fapt nu știu câtă apă se folosește când fac duș. Știu că, când sunt la duș, uneori mintea îmi rătăcește, gândindu-mă la o nouă idee de proiect rece sau încercând să decid ce să mănânc la micul dejun, în timp ce apa toarnă doar în scurgere. Ar fi mult mai ușor să-mi reduc consumul de apă dacă aș ști de fapt câte litri folosesc de fiecare dată!

Am făcut câteva cercetări și am constatat că diferite capete de duș pot folosi oriunde de la 9,5 litri (2,5 galoane) pe minut până la mai puțin de 6 litri (1,6 galoane) pe minut, dacă aveți instalat un restrictor de debit. Un duș foarte vechi ar putea folosi și mai multă apă.

Am decis să proiectez și să construiesc un dispozitiv care să afișeze volumul total de apă folosită pe duș, costul apei și debitul. Am instalat acest dispozitiv de câteva săptămâni și este foarte util să ai o citire live a cantității de apă folosită.

În acest Instructable, voi explica cum am construit acest lucru. Desigur, nu trebuie să îmi urmezi pașii exact! Este întotdeauna bine să folosești piese pe care le ai în jur. Am inclus linkuri către toate părțile pe care le-am folosit sau o parte echivalentă care va funcționa.

Provizii

(Toate prețurile în USD)

  • Senzor de debit - 3,87 USD
  • Ecran LCD - 2,29 USD
  • Arduino Nano - 1,59 dolari
  • Convertor Boost - 1,88 USD
  • Încărcător LiPo - 1,89 USD
  • Comutator impermeabil - 0,93 USD (nu exact pe care l-am folosit, dar ar trebui să funcționeze)
  • Buton impermeabil - 1,64 USD
  • Distanțe, șuruburi și piulițe M3 - 6,99 USD
  • 2X mufă de 3,5 mm pentru femeie - 2,86 dolari pe buc.
  • Mufă masculină de 3,5 mm - 1,48 USD
  • Ansamblu cablu de 3 mm de 3,5 mm - 3,57 USD
  • Ansamblu cablu USB - 1,74 USD
  • Cuplaj 1/2 "NPS de la femeie la femeie - 1,88 USD
  • Baterie LiPo de 500 mAh 3,7 V - 3,91 USD

Instrumente și consumabile comune

  • Fier de lipit și lipit
  • Sârmă
  • Freze de sârmă
  • Dispozitive de decupare a firelor
  • Bandă cu două fețe
  • Surubelnita Phillips
  • Imprimantă 3D (opțional)

Pasul 1: impermeabilizare

Impermeabilizare
Impermeabilizare

Cel mai dificil aspect al acestui proiect este de a face totul impermeabil. De vreme ce va locui sub duș, trebuie să poată supraviețui umidității extreme și stropilor ocazionali. Aproximativ 75% din timpul total petrecut în acest proiect a descoperit această parte.

După cum îl văd, există două opțiuni: proiectați o carcasă tipărită 3D personalizată sau încercați să o faceți să funcționeze cu o carcasă de tip raft. Din moment ce am primit recent propria mea imprimantă 3D, am decis să merg cu prima opțiune.

Dacă nu aveți acces la o imprimantă 3D, iată câteva carcase de pe rafturi pe care le-am găsit care pretind că sunt impermeabile și probabil că ar funcționa. Vă rugăm să rețineți că nu am achiziționat niciuna dintre aceste carcase, așa că nu garantez că toate componentele se vor potrivi în interior!

Banggood - cutie de 100x68x50mm cu capac transparent - 5,35 USD

Digikey - Cutie 130x80x70mm cu capac transparent - 11,65 USD

Începând cu acest punct, când mă refer la incintă, vorbesc despre una imprimată 3D.

Pasul 2: Carcasa mea personalizată imprimată 3D

Carcasa mea personalizată imprimată 3D!
Carcasa mea personalizată imprimată 3D!
Carcasa mea personalizată imprimată 3D!
Carcasa mea personalizată imprimată 3D!
Carcasa mea personalizată imprimată 3D!
Carcasa mea personalizată imprimată 3D!

După ce am lucrat câteva ore în Fusion 360, am venit cu această incintă. Are trei decupaje circulare pentru a se potrivi cu două mufe de 3,5 mm de sex feminin și un comutator de comutare. Capacul are o gaură de 16 mm pentru butonul momentan și o decupare dreptunghiulară pentru ecran, precum și cele patru găuri de montare pentru a menține ecranul în poziție. Capacul este o parte separată și are o buză pentru a preveni pătrunderea umezelii prin cusătură. Cele patru găuri de pe colțurile cutiei trebuie să țină capacul cu distanțe de 30 mm. Toate găurile șuruburilor au un diametru de 3 mm, care se potrivește cu un șurub M3.

Puteți descărca fișierele STL de pe pagina Thingiverse. Poate fi imprimat fără plute sau suporturi, dar eu am folosit suporturi doar pentru a fi în siguranță. Am folosit și umplutură 100%. Deoarece pereții sunt atât de subțiri, reducerea procentului de umplere nu schimbă cu adevărat timpul total de imprimare sau materialul total, așa că l-am menținut la 100%.

Pentru a face ecranul vizibil, acesta poate ieși fie printr-o decupare din capacul incintei, fie poate fi plasat în spatele unei ferestre transparente. Deoarece ecranul nu ar trebui să fie expus la umezeală, suntem blocați cu a doua opțiune. Din păcate, imprimarea 3D cu filament transparent este încă la început, așa că va trebui să devenim un pic creativi.

Soluția mea a fost să creez un decupaj dreptunghiular în capac și să lipesc într-o bucată de plastic transparent din unele ambalaje vegetale. Această tehnică poate fi utilizată chiar dacă nu utilizați carcasa mea personalizată; pur și simplu decupați un dreptunghi cu un cuțit utilitar sau un Dremel. Desigur, dacă utilizați o carcasă cu capac transparent, acest lucru nu este deloc necesar.

Cea mai bună sursă de plastic transparent pe care am găsit-o este producerea de ambalaje. De obicei spanacul sau alte legume cu frunze vin în recipiente mari din plastic transparent. În cazul meu, am folosit ambalajul dintr-un „piper amestecat”.

Am vrut o surplombă de 5 mm pentru a oferi o suprafață suficientă pentru lipire, așa că am decupat un dreptunghi de 27x77 mm din plastic transparent. A trebuit să tăi puțin colțurile, astfel încât șuruburile să se potrivească. Am stropit o linie de super-adeziv în jurul perimetrului decupajului, apoi am pus plasticul transparent pe. Am adăugat ceva mai mult adeziv în jurul marginii după doar pentru a mă asigura că a fost sigilat.

Pro-Tip: Așezați partea în fața unui ventilator mic în timp ce adezivul se usucă. Pe măsură ce superglue se usucă, tinde să lase în urmă un reziduu alb și tâmpit, pe care cu siguranță nu-l dorim pe fereastra noastră transparentă. Am folosit un ventilator vechi de 12V de la o sursă de alimentare pentru computer. Am lăsat lipiciul să stea 12 ore pentru a mă asigura că este complet uscat.

Pasul 3: Montarea ecranului LCD

Montarea ecranului LCD
Montarea ecranului LCD
Montarea ecranului LCD
Montarea ecranului LCD
Montarea ecranului LCD
Montarea ecranului LCD

Odată ce fereastra transparentă s-a uscat, ecranul LCD poate fi montat. LCD-ul este un afișaj de caractere 16x2 foarte popular, cu „rucsacul” I²C pre-lipit în spate. Vă recomandăm să obțineți acest ecran cu interfața I²C. Cablarea tuturor liniilor paralele este destul de enervantă și introduce un potențial mai mare de greșeli - versiunea I²C are doar două fire pentru alimentare și două fire pentru semnal.

Am folosit patru standoff-uri de 10 mm pentru a monta ecranul. Distanțierele au fiecare un fir mascul la un capăt și un fir feminin la celălalt. Am pus firul tată prin găurile de pe ecranul LCD și am strâns o piuliță M3 la fiecare. Apoi am folosit patru șuruburi M3 pentru a fixa capetele femele ale standurilor prin capacul incintei. Am primit acest pachet de standoff-uri care are cele de 10 mm pentru a monta LCD-ul și altele mai lungi pentru a ține capacul la bază. În plus, există șuruburi și piulițe M3, deci nu este nevoie să cumpărați hardware suplimentar.

Asigurați-vă că piulițele sunt foarte strânse, astfel încât atunci când strângeți șuruburile, distanțele să nu se rotească. De asemenea, asigurați-vă că nu strângeți excesiv șuruburile, altfel capacul din plastic s-ar putea deforma și nu se etanșează corect.

Rândul de 16 pini de antet de pe ecranul LCD ar trebui să fie în partea de sus - asigurați-vă că nu îl montați pe dos!

Pasul 4: Montarea butonului momentan

Montarea butonului momentan
Montarea butonului momentan
Montarea butonului momentan
Montarea butonului momentan
Montarea butonului momentan
Montarea butonului momentan

Am decis să folosesc acest buton crom cu aspect bolnav de pe panoul frontal. Le-am folosit în proiecte anterioare și îmi place foarte mult felul în care arată. Se presupune că sunt impermeabile și vin cu un inel de cauciuc pentru a preveni pătrunderea umezelii în incintă prin fire.

Acest pas este destul de simplu. Desfaceți piulița, dar păstrați inelul de cauciuc. Introduceți butonul prin orificiul din capac și strângeți piulița din partea din spate. Evitați strângerea excesivă a piuliței, altfel inelul de cauciuc va fi zdrobit și nu-i va servi scopului.

Pasul 5: Circuit de alimentare și încărcare

Circuit de alimentare și încărcare
Circuit de alimentare și încărcare
Circuit de alimentare și încărcare
Circuit de alimentare și încărcare
Circuit de alimentare și încărcare
Circuit de alimentare și încărcare

Acum vom pune împreună componentele de alimentare ale bateriei. Aceasta include bateria, comutatorul principal, placa de monitorizare / încărcare a bateriei și convertorul boost.

Bateria pe care am folosit-o este o baterie litiu-ion cu o singură celulă de 3,7 V 1500 mAh. Cel special pe care l-am folosit a fost scos de pe un controller Playstation rupt. Orice baterie Li-Ion sau LiPo cu o singură celulă va funcționa, atâta timp cât se potrivește în carcasă. Acest tip de baterie tinde să fie foarte subțire și descărcată, așa că probabil ați putea folosi una de două ori mai mare decât a mea fără probleme. O celulă 18650 ar funcționa, dar nu se va potrivi în incinta mea personalizată, deci va trebui să vă proiectați propria dvs. sau să utilizați o incintă de tip raft. Dacă este posibil, vă recomand să folosiți o baterie recuperată (așa cum am făcut-o eu), deoarece transportul bateriilor este adesea scump!

Bateria trebuie mai întâi lipită pe placa de încărcare TP4056. Dacă doriți, puteți lipi un conector JST RCY pe baterie și încărcător pentru comoditate (am făcut asta), dar nu este necesar. Asigurați-vă că respectați polaritatea corectă, așa cum este indicat de marcajele de pe placa încărcătorului, deoarece placa nu este protejată împotriva polarității inverse a bateriei!

Apoi, lipiți un fir de la ieșirea pozitivă a încărcătorului (situat lângă firul pozitiv al bateriei) la intrarea pozitivă a convertorului de impuls. Apoi lipiți un fir de la ieșirea negativă (situată lângă firul negativ al bateriei) la pinul comun (central) al comutatorului principal. În cele din urmă, lipiți un fir de la pinul normal deschis al comutatorului la intrarea negativă a convertorului boost. Dacă conectați un multimetru la ieșirea convertorului de impuls și porniți comutatorul principal, ar trebui să fie afișată o tensiune.

Deoarece Arduino, ecranul LCD și senzorul de debit au nevoie de 5V, trebuie să setăm ieșirea convertorului de impuls la 5V. Acest lucru se realizează prin rotirea butonului potențiometrului cu o șurubelniță mică. Cu comutatorul principal pornit, bateria conectată și multimetrul conectat la ieșirea convertorului de impuls, rotiți încet potențiometrul până când ieșirea indică 5V. Va fi dificil să obțineți o citire exactă de 5.000V, dar vizați o tensiune între 4.9V și 5.1V.

Deoarece carcasa mea personalizată este ținută închisă cu mai multe șuruburi, nu vrem să trebuiască să deschidem carcasa de fiecare dată când trebuie încărcată. Pentru asta am folosit o mufă pentru căști de 3,5 mm. Conectorul exact pe care l-am folosit este cel de la Digikey (pentru care sunt dimensionate decupajele din incinta mea), dar și acesta de la Banggood ar trebui să funcționeze.

Mai întâi, am introdus conectorul în gaura din partea inferioară a carcasei. Deoarece acest lucru va fi deconectat de cele mai multe ori și, prin urmare, susceptibil la pătrunderea umezelii, cel mai bine este să îl montați pe fund pentru a preveni scurgerea apei în interior. După instalarea șaibei de blocare și strângerea piuliței, am lipit două fire la filele „vârf” și „manșon” de pe conector. Pinout-ul conectorului este afișat într-una dintre imaginile mele adnotate. Am lipit celălalt capăt al firului „manșon” la intrarea negativă de pe încărcător, lângă portul micro USB. În cele din urmă, am lipit firul „vârf” pe padul + 5V, de cealaltă parte a portului USB. Portul USB de pe încărcător nu va fi utilizat, deoarece ar fi dificil să faceți ca portul USB să pătrundă în carcasă fără a permite umezirea.

Pasul 6: Cablu de încărcare

Cablu de încărcare
Cablu de încărcare
Cablu de încărcare
Cablu de încărcare
Cablu de încărcare
Cablu de încărcare

Întrucât folosim o mufă audio de 3,5 mm ca port de încărcare, trebuie să realizăm un cablu adaptor care să aibă o mufă de 3,5 mm tată la un capăt și o mufă USB A la celălalt capăt. Acest lucru ne va permite să folosim orice încărcător generic de dispozitiv mobil (cum ar fi un încărcător iPhone) pentru a încărca acest dispozitiv.

Ați putea cumpăra un ansamblu de cabluri USB cu un conector USB A la un capăt și fire de conserve la celălalt capăt, dar dacă sunteți ca mine, probabil că aveți o duzină de cabluri USB aleatorii care nu sunt necesare. În loc să cumpăr un ansamblu de cablu USB, tocmai am primit un cablu micro USB în USB A de care nu aveam nevoie și am deconectat conectorul micro USB.

Apoi, am dezbrăcat jacheta albă de pe cablu pentru a dezvălui doar două fire în interior: un fir roșu și unul negru. Unele cabluri USB vor avea patru fire: roșu, negru, verde și alb. Verde și alb sunt pentru transfer de date și pot fi ignorate. Îndepărtați izolația numai de firele roșii și negre.

Apoi veți avea nevoie de o mufă de 3,5 mm tată. L-am folosit pe acesta de la Banggood. Lipiți firul roșu de la cablul USB la clema din mijloc (care este vârful conectorului) și firul negru la clema cu manșon lung. Vedeți fotografiile mele pentru clarificare.

Vă recomandăm să conectați întotdeauna mufa de 3,5 mm înainte de mufa USB, deoarece procesul de conectare a cablului poate duce la scurtcircuitarea mufei prin priza metalică.

Pasul 7: Despre senzorul de debit

Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit
Despre senzorul de debit

Am luat acest senzor de flux de la Banggood pentru 3,87 USD. Înainte de a-l folosi, am decis să investighez cum funcționează.

Designul este surprinzător de simplu și ingenios. Componentele electronice sunt complet sigilate de apă. Există o elice rotativă gratuită care se rotește mai lent sau mai repede în funcție de debit. La un moment dat pe elice este un magnet. La exteriorul senzorului este un compartiment mic care conține un mic PCB cu două componente: un rezistor și un senzor cu efect de hală. De fiecare dată când magnetul trece pe lângă senzorul cu efect de hală, acesta comută între mare și mic. Cu alte cuvinte, comută între 5V și 0V de fiecare dată când rotirea elicei.

Pentru a citi senzorul, aplicăm + 5V firului roșu, negativ firului negru și citim semnalul digital din firul galben. În fotografia osciloscopului meu puteți vedea cum se schimbă semnalul pe măsură ce fluxul este pornit. La început, semnalul este constant zero volți. Când începe debitul, frecvența impulsurilor ajunge rapid la viteză și ajunge la o stare stabilă.

Conform fișei tehnice, senzorul produce 450 de impulsuri pe litru. Acest lucru va fi important mai târziu când scriem software-ul.

Pasul 8: Cablarea senzorului de debit

Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit
Cablarea senzorului de debit

Senzorul de debit vine cu un conector JST-XH cu 3 pini. Acest lucru nu este ideal deoarece firele sunt prea scurte, iar conectorul are contacte expuse care pot fi scurtcircuitate cu ușurință de picături de apă rătăcite. Am comandat acest ansamblu de cablu audio de 3,5 mm de la Digikey. Are o lungime de 3 ', care este lungimea perfectă, și are fire de conserve, ceea ce face ușor de lipit. Nu recomand să încercați să utilizați un cablu de căști vechi, deoarece acestea tind să aibă sârmă foarte subțire emailată, care este aproape imposibil de lipit.

Senzorul de debit are un capac din plastic, ținut de două șuruburi Phillips. Pur și simplu scoateți aceste șuruburi și scoateți placa de circuit. Nu este ținut cu niciun adeziv, ci doar ținut în poziție cu capacul din plastic. Apoi, desudați cele trei fire încălzindu-le cu un fier de lipit și ridicându-le, unul câte unul.

Apoi, lipiți cablul audio de 3,5 mm pe plăcuțe. Vă sugerez potrivirea culorilor așa cum am făcut-o. Această configurație are + 5V pe vârf, semnal pe inel și masă pe manșon. Aceasta este aceeași configurație utilizată pentru portul de încărcare, de la pasul 6. Dacă conectați accidental încărcătorul la portul senzorului, sau invers, nu va exista nici o deteriorare a dispozitivului.

Pasul 9: Instalarea senzorului de debit

Instalarea senzorului de debit
Instalarea senzorului de debit
Instalarea senzorului de debit
Instalarea senzorului de debit
Instalarea senzorului de debit
Instalarea senzorului de debit

Până în acest moment, toată munca noastră a avut loc în atelier. Dar acum, este timpul să ne îndreptăm spre baie!

În primul rând, am îndepărtat capul de duș. Acest lucru a dezvăluit un pic de țeavă care iese din perete, cu filetare tată de 1/2 NPS. Convenabil, senzorul nostru de debit are exact aceeași dimensiune a firului! Singura problemă este că senzorul are filetare tată la ambele capete, așa că vom face au nevoie de o cuplare de la femeie la femeie.

La magazinul meu local de hardware, existau cuplaje de 1/2 din alamă, fier și PVC. Cel din PVC era cel mai ieftin, așa că l-am primit. Deși, în retrospectivă, cele din alamă sau oțel ar fi arătat mai frumos.

După ce aveți cuplajul, pur și simplu înșurubați senzorul de debit în cuplaj, apoi înșurubați celălalt capăt al cuplajului pe țeavă. Senzorul de debit are o săgeată pentru a indica direcția de curgere dorită. Asigurați-vă că nu îl instalați înapoi, altfel măsurătorile ar putea fi inexacte. În cele din urmă, înșurubați capul de duș pe capătul senzorului de debit.

Desigur, presupun că dușul dvs. folosește un fir NPS de 1/2 , așa cum a făcut-o și al meu. Dacă nu este cazul, va trebui să obțineți adaptoare suplimentare.

Pro-Sfat: Adăugați o bandă de instalator de teflon la toate firele înainte de a înșuruba piesele împreună pentru a preveni scurgerile. Nu am avut la îndemână, dar intenționez să adaug acest lucru în viitorul apropiat.

Pasul 10: Arduino și Perfboard

Arduino și Perfboard
Arduino și Perfboard
Arduino și Perfboard
Arduino și Perfboard
Arduino și Perfboard
Arduino și Perfboard

Întrucât va trebui să facem o mulțime de cabluri, este o idee bună să obținem o bucată de perfboard pentru a face lucrurile puțin mai ordonate. Am tăiat un dreptunghi de perfboard aproximativ 1 "pe 2". Apoi, mi-am plasat Arduino Nano în mijlocul plăcii și am marcat unde treceau știfturile antetului. Apoi am tăiat două lungimi de anteturi pentru femei, fiecare având 15 pini. Le-am lipit pe perfboard unde le-am marcat anterior. Acest lucru ne va permite să eliminăm Arduino pentru programare.

Pro-Tip: Marcați orientarea portului USB al Arduino, astfel încât să îl conectați întotdeauna la perfboard în același mod.

Pasul 11: Cablarea totul

Cablarea totul
Cablarea totul
Cablarea totul
Cablarea totul
Cablarea totul
Cablarea totul

Acum este timpul să lipim totul împreună! Am inclus o schemă de cablare completă, pe care o puteți urma, sau vă pot vedea pașii mei în scris mai jos dacă preferați o abordare mai ghidată.

În primul rând, am tăiat niște știfturi masculine și le-am lipit pe panoul de perfuzie de pe șinele + 5V și de la sol. Apoi am lipit încă doi pini antet conectați la pinii A4 și A5 de pe Arduino. Aceste anteturi ne vor permite să conectăm ecranul LCD folosind jumperi de la o femeie la alta.

Apoi, am lipit o pereche de fire de la ieșirea convertorului de creștere la + 5V și șinele de masă. Aceasta va furniza energie Arduino, LCD-ului și senzorului de debit.

După aceea, am tăiat două fire și le-am conectat la bornele butonului. Am lipit un fir pe șina de la sol, iar celălalt pe pinul 3 digital.

Ultima parte de lipit este senzorul de debit. Deoarece am atașat deja o mufă de 3,5 mm la senzor, trebuie doar să lipim o mufă de 3,5 mm. Mai întâi am lipit trei fire - unul la fiecare dintre filele de pe cric. Apoi am introdus cricul prin carcasă și l-am fixat cu o piuliță. În cele din urmă, am lipit manșonul la sol, vârful la + 5V și inelul la pinul digital 2.

Am ales să folosesc pinii digitali 2 și 3 pentru buton și senzor de debit, deoarece sunt pini de întrerupere hardware. Acest lucru va face mult mai ușor să scrieți codul.

Acum am terminat lipirea, dar trebuie totuși să conectăm ecranul LCD. Deoarece am lipit anteturile, avem nevoie doar de patru jumperi de la o femeie la alta. Conectați pinul "Vcc" la + 5V, pinul "Gnd" la masă, pinul "SCL" la A5 și pinul "SDA" la A4. Pentru ca ecranul LCD să se potrivească în carcasă, va trebui să îndoiți știfturile antetului înapoi. Îndoirea știfturilor înainte și înapoi de mai multe ori va obosi metalul și va cauza ruperea știfturilor, așa că vă recomand să le îndoați o singură dată și să faceți acest lucru cu grijă.

Acum cablajul este complet!

Pasul 12: Programare

Programare
Programare

Acum că hardware-ul este conectat, putem programa Arduino.

Vreau ca programul să aibă următoarele caracteristici:

  • Pe prima linie, afișați un număr actualizat rapid din totalul de litri
  • Pe a doua linie, afișați costul total al apei sau debitul
  • Când dușul funcționează, butonul comută între afișarea costului sau a debitului
  • Când dușul nu funcționează, butonul ar trebui să șteargă toate datele și să reseteze ecranul
  • Senzorul trebuie citit folosind o rutină de întrerupere pentru a evita metodele de sondare brută
  • La actualizarea ecranului, ar trebui să actualizăm doar valorile care s-au schimbat, mai degrabă decât să suprascriem întregul ecran de fiecare dată (acest lucru ar provoca pâlpâiri vizibile)

Programul urmează o structură simplă. Folosind funcția millis (), putem crea întârzieri care nu opresc de fapt execuția programului. Consultați acest tutorial pentru un exemplu de clipire a unui LED fără a utiliza funcția delay ().

Funcția millis () returnează numărul de milisecunde de la pornirea Arduino. Prin crearea unei variabile „previousMillis” și scăderea Millis () - previousMillis (), putem vedea timpul scurs de la actualizarea Millis anterior.

Dacă vrem să se întâmple ceva pe secundă, putem folosi următorul bloc de cod:

if ((milis () - anteriorMilis)> = 1000) {

previousMillis = millis (); toggleLED (); }

Aceasta verifică dacă diferența dintre milis () (ora curentă) și anteriorMilis (ultima dată) este mai mare sau egală cu 1000 milisecunde. Dacă este, primul lucru pe care îl facem este să setăm anteriorMillis egal cu ora curentă. Apoi executăm orice pași suplimentari dorim. În acest exemplu, comutăm un LED. Apoi ieșim din acest bloc de cod și terminăm restul funcției loop (), înainte de a ne întoarce la început și de a o repeta din nou.

Avantajul utilizării acestei metode față de funcția de întârziere simplă () este că întârzierea () pune un decalaj de timp între instrucțiuni, dar nu ține cont de timpul necesar pentru a executa celelalte instrucțiuni din funcția buclă (). Dacă faceți ceva care durează mai mult decât să clipească un LED, cum ar fi actualizarea unui ecran LCD, timpul necesar nu este neglijabil și, după câteva cicluri, se va adăuga. Dacă actualizați ecranul LCD pe un ceas, acesta va deveni rapid inexact și va rămâne în urmă.

Așadar, acum că înțelegem structura generală a programului, este timpul să introduceți instrucțiunile. În loc să explicați fiecare linie de cod aici, vă sugerez să citiți mai întâi diagrama atașată, care oferă o imagine de ansamblu la nivel înalt a ceea ce face programul.

După ce ați văzut diagrama de flux, aruncați o privire la codul Arduino atașat. Am comentat aproape fiecare linie pentru a clarifica ce face fiecare linie.

Există câteva părți în cod pe care ați putea dori să le modificați. Cel mai important este costul pe litru. În orașul meu, apa costă 0,2523 ¢ pe litru. Găsiți următoarea linie și modificați valoarea respectivă pentru a se potrivi cu costul în care locuiți:

const float COST_PER_LITRE = 0,2523; // cost pe litru, în cenți, de pe site-ul orașului

Dacă preferați să utilizați galoane peste litri, schimbați toate liniile „LCD.print ()” care se referă la „L” sau „L / s” la „G” sau „G / s”. Apoi ștergeți următoarea linie:

const float CONVERSIE = 450,0; // păstrați acest lucru fără comentarii pentru litri

… și descomentați această linie:

const float CONVERSIE = 1703.0; // decomentați acest lucru și ștergeți linia de mai sus pentru galoane

Mai este încă o ciudățenie pe care ai observat-o în codul meu. Setul de caractere implicit nu include caracterul „¢” și nu am vrut să folosesc dolari, deoarece costul ar apărea ca „0,01 USD” sau mai puțin pentru majoritatea timpului. Prin urmare, am fost obligat să creez un personaj personalizat. Următoarea matrice de octeți este utilizată pentru a reprezenta acest simbol:

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

După crearea acestei matrice, caracterul special trebuie „creat” și stocat.

lcd.createChar (0, cent_sign);

Odată ce acest lucru este făcut, pentru a imprima caracterul personalizat folosim următoarea linie:

lcd.write (octet (0)); // imprimați semnul cenților (¢)

Ecranul LCD poate avea până la 8 caractere personalizate. Mai multe informații despre acest lucru sunt aici. De asemenea, am întâlnit acest instrument online util care vă permite să desenați caracterul personalizat utilizând o interfață grafică și va genera automat matricea de octeți personalizată.

Pasul 13: Închiderea capacului

Închiderea capacului
Închiderea capacului
Închiderea capacului
Închiderea capacului
Închiderea capacului
Închiderea capacului

În cele din urmă, aproape am terminat!

Este timpul să introduceți toate componentele electronice în incintă și să sperăm că capacul se va închide. Dar mai întâi, trebuie să atașăm separatoarele de 30 mm. Pachetul de standoff-uri pe care le-am cumpărat nu include niciunul care să fie atât de lung, dar vine cu 20mm și 10mm care pot fi atașate împreună. Am înșurubat patru separatoare în găurile de pe partea inferioară a incintei cu patru șuruburi M3 (vezi imaginile 1 și 2). Asigurați-vă că strângeți-le bine, dar nu prea strâns sau riscați să spargeți carcasa din plastic.

Acum putem monta toate componentele electronice din interior. Am atașat încărcătorul și convertorul boost la capac cu bandă dublă, așa cum se vede în a treia imagine. Apoi am înfășurat niște bandă electrică în jurul metalului expus pe cele două mufe de 3,5 mm, doar pentru a mă asigura că nimic nu este scurtcircuitat prin contactarea conectorilor.

Am reușit să fac Arduino să se potrivească așezându-l lateral, în colțul din stânga jos, cu portul USB orientat spre dreapta. Am folosit mai multe benzi față-verso pentru a fixa bateria în partea inferioară a carcasei de sub ecranul LCD.

În cele din urmă, odată ce totul este blocat mai mult sau mai puțin sigur în cutie, capacul poate fi înșurubat cu încă patru șuruburi M3.

Pasul 14: Testarea

Testarea
Testarea
Testarea
Testarea
Testarea
Testarea
Testarea
Testarea

Mai întâi conectați conectorul de 3,5 mm de la senzorul de debit. Vă recomand să faceți acest lucru înainte ca dispozitivul să fie pornit, deoarece este posibil ca mufa să realizeze o conexiune nedorită pe măsură ce este introdusă.

Apoi, porniți comutatorul principal de alimentare. Deși nu curge apă, butonul panoului frontal nu ar trebui să facă altceva decât să goliți totalul și să goliți ecranul. Deoarece totalul va fi zero în mod implicit, butonul nu pare să facă încă nimic.

Dacă porniți dușul, totalul ar trebui să înceapă să crească. În mod implicit, este afișat costul. Dacă apăsați butonul panoului frontal, debitul va fi afișat pe linia de jos. Apăsarea butonului panoului frontal va comuta între afișarea debitului și afișarea costului, atâta timp cât dușul funcționează. Odată ce dușul se oprește, apăsarea butonului panoului frontal va reseta măsurătorile și va șterge ecranul.

Montare

Modul în care alegeți să montați dispozitivul depinde de aspectul dușului. Unele dușuri ar putea avea o margine suficient de apropiată de capul de duș încât să poți pur și simplu să așezi dispozitivul acolo. În duș, am un coș atașat cu ventuze pe care am așezat dispozitivul înăuntru. Dacă nu aveți luxul unui cornier sau coș, puteți încerca să țineți dispozitivul de perete cu o ventuză dublă. Acest lucru va funcționa numai dacă utilizați o carcasă de tip raft care are un suport neted sau dacă ați imprimat carcasa personalizată pe o imprimantă cu o placă de construcție din sticlă. Dacă carcasa dvs. are un suport dur (așa cum o face și a mea), ați putea încerca să folosiți o bandă dublă, deși acest lucru ar putea lăsa resturi pe peretele dvs. de duș dacă încercați să scoateți dispozitivul.

Depanare

Ecranul este pornit, dar lumina de fundal este oprită - asigurați-vă că jumperul este instalat pe cei doi pini de pe partea laterală a modulului I ² C

Ecranul este gol, cu iluminarea din spate activată - verificați dacă adresa I ² C este corectă rulând scanerul I²C

Ecranul este aprins, dar valorile rămân zero - verificați dacă există un semnal care vine de la senzor măsurând tensiunea la pinul 2. Dacă nu există semnal, verificați dacă senzorul este conectat corect.

Ecranul este gol cu lumina de fundal oprită - verificați dacă LED-ul de alimentare de pe Arduino este aprins și verificați dacă ecranul are alimentare

Ecranul se aprinde scurt, apoi totul se oprește - probabil că setați tensiunea de la convertorul de creștere prea mare (componentele nu pot suporta mai mult de 5V)

Dispozitivul funcționează, dar valorile sunt greșite - asigurați-vă că senzorul de debit pe care îl utilizați are același factor de conversie de 450 impulsuri pe litru. Senzorii diferiți pot avea valori diferite.

Pasul 15: Acum începeți să economisiți apă

Îmbunătățiri

Versiunea actuală a software-ului funcționează suficient de bine, dar în cele din urmă aș dori să adaug posibilitatea de a avea utilizatori diferiți (membri ai familiei, colegi de casă etc.) Dispozitivul ar stoca statisticile fiecărei persoane (apă totală și număr total de dușuri) la afișați o utilizare medie a apei pentru fiecare persoană. Acest lucru ar putea încuraja oamenii să concureze pentru a utiliza cea mai mică cantitate de apă.

Ar fi, de asemenea, interesant să aveți o modalitate de a exporta datele care urmează să fie vizualizate într-o foaie de calcul, astfel încât acestea să poată fi graficate. Apoi ați putut vedea ce perioade ale anului oamenii au dușuri mai dese și mai lungi.

Aceste caracteristici ar necesita toate utilizarea EEPROM - memoria non-volatilă integrată a Arduino. Acest lucru ar permite păstrarea datelor chiar și după oprirea dispozitivului.

O altă caracteristică utilă ar fi un indicator al bateriei. În acest moment, singurul indiciu că dispozitivul trebuie reîncărcat este atunci când placa de gestionare a bateriei întrerupe alimentarea. Ar fi ușor să conectați o intrare analogică suplimentară pentru a măsura tensiunea bateriei. Nici măcar nu ar fi nevoie de un divizor de tensiune, deoarece tensiunea bateriei este întotdeauna mai mică de 5V.

Unele dintre aceste idei se învecinează cu caracteristicile fluide, motiv pentru care nu am mai dezvoltat software-ul.

Restul depinde de tine!

Concurs de senzori
Concurs de senzori
Concurs de senzori
Concurs de senzori

Premiul I la Concursul de senzori

Recomandat: