Ultraääni sadevesisäiliön tilavuusmittari: 10 vaihetta (kuvilla)
Ultraääni sadevesisäiliön tilavuusmittari: 10 vaihetta (kuvilla)
Anonim
Ultraääni sadevesisäiliön tilavuusmittari
Ultraääni sadevesisäiliön tilavuusmittari

Jos olet samanlainen kuin minä ja sinulla on vähän ympäristötietoa (tai olet vain skinflints, joka haluaa säästää muutaman dollarin - mikä on myös minä…), sinulla voi olla sadevesisäiliö. Minulla on tankki, jolla kerätään melko harvinainen sade, jonka saamme Australiassa - mutta voi poika, kun täällä sataa, sataa todella! Säiliöni on noin 1,5 metriä korkea ja sokkelilla, mikä tarkoittaa, että minun on päästävä ulos vaiheista veden tason tarkistamiseksi (tai - koska olen niin laiska, tasapainoile epävarmasti vanhan kaasupullon päällä BBQ: sta, joka on nyt otettu pysyvä asuinpaikka "askeleena" säiliön vieressä).

Halusin jollakin tapaa tarkistaa veden tason säiliössä ilman, että kaikki kiipeävät ja riippuvat tyhjennysputkeen yhdellä kädellä (samalla kun olen huolissani siitä, mitä hämähäkkejä sen takana voi olla - olet kuullut Australian hämähäkeistä - eikö?) … Joten, kun kiinnostus elektroniikkaan oli lisääntynyt myöhään elämässä, ja halpoja Arduino -klooneja Kiinasta ebaystä, päätin ryhtyä rakentamaan”widgetin” tekemäänkseni työn puolestani.

Nyt unelma -widgetini oli olla pysyvästi asennettu säiliöön, käyttää aurinkolähteellä ladattua virtalähdettä, jossa on kaukolukema autotallissani, tai ehkä langaton lähetin, joka käyttää Bluetoothia ja jonka voin tarkistaa puhelimestani, tai ehkä jopa ESP -tyyppinen laite, joka ylläpitää automaattisesti päivitettävää verkkosivua, jotta voin tarkistaa säiliön veden tason kaikkialta maailmasta Internetin välityksellä … mutta todella - miksi tarvitsen kaiken? Joten soitin suurille ihanteilleni hieman taaksepäin (no, melko huomattavasti) ja poistin ratkaisun langattomuuden, pysyvästi asennetun, aurinkolämmityksen ja kyvyn tarkistaa tankini taso sen takaa (aina olettaen, että takana on WiFi, eli…)

Tuloksena oleva projekti alennettiin yllä kuvattuun kämmenlaitteeseen, jota voidaan yksinkertaisesti pitää säiliön aukon päällä ja aktivoida painikkeella, jossa on digitaalinen lukema, joka voidaan lukea maanpinnasta - paljon käytännöllisempää.

Vaihe 1: Matematiikka…

Leikkiessäni useita ideoita vedenpinnan määrittämisestä - päätin käyttää ultraääni -lähetintä/-vastaanotinta widgetini perustana ja käyttää Arduinoa lukemien ottamiseen ja kaikkien laskutoimitusten tekemiseen. Anturilta palautetut lukemat ovat (epäsuorasti) etäisyyden muodossa - ultraäänianturista pintaan, josta se on poistunut (vesipinta - tai säiliön pohja, jos se on tyhjä), ja takaisin, joten tarvitsemme tehdä muutamia asioita tämän kanssa, jotta säiliöön jäävä prosenttiosuus saadaan.

Huomaa - itse asiassa anturilta palautettu arvo on oikeastaan vain se aika, joka kuluu, kun signaali poistuu lähetinpuolelta ja palaa vastaanottimeen. Tämä tapahtuu mikrosekunneissa - mutta tietäen, että äänen nopeus on 29 mikrosekuntia / cm (Mitä? Et tiennyt sitä? Pfft …), on helppo muuttaa ajanjaksosta etäisyyden mittaamiseen.

Kuva
Kuva

Ensin - tietysti meidän on jaettava etäisyys kahdella saadaksemme anturin pinnan etäisyyteen. Vähennä sitten jatkuva etäisyys anturista veden enimmäissyvyyteen. Jäljellä oleva arvo on käytetyn veden syvyys. Vähennä sitten tämä arvo veden enimmäissyvyydestä löytääksesi säiliöön jääneen veden syvyys.

Tämä arvo on sitten perusta kaikille muille laskelmille, kuten tämän veden syvyyden laskemiselle prosentteina enimmäissyvyydestä tai kertomalla syvyys vakio -pinta -alalla, jotta saadaan vesitilavuus, joka voidaan näyttää litroina (tai gallonaa tai mitä tahansa muuta yksikköä - niin kauan kuin tiedät matematiikan sen suorittamiseksi - pysyn yksinkertaisuuden vuoksi prosentteina).

Vaihe 2: Käytännöt

Laitetta voidaan pitää kädessä, mutta tämä aiheuttaa pienen mahdollisuuden pieniin epätarkkuuksiin, jos laitetta ei pidetä samassa paikassa ja samassa kulmassa joka kerta. Vaikka se olisi vain hyvin pieni virhe, eikä luultavasti edes sellainen, joka rekisteröisi, se olisi sellainen asia, joka hämäsi minua.

Kädessä pitäminen tuo kuitenkin paljon suuremman mahdollisuuden, että kirottu asia putoaa säiliöön eikä näe enää koskaan. Joten molempien näiden mahdollisuuksien lieventämiseksi se kiinnitetään puupituuteen, joka asetetaan sitten säiliön aukon päälle - niin että mittaus suoritetaan täsmälleen samalta korkeudelta ja kulmalta joka kerta (ja jos se putoaa säiliö, ainakin puu kelluu).

Painike aktivoi laitteen (eliminoi siten virtakytkimen tarpeen ja vahingossa tyhjentyneen akun mahdollisuuden) ja laukaisee luonnoksen Arduinossa. Tämä ottaa useita lukemia HC-SR04: stä ja ottaa niiden keskiarvon (virheellisten lukemien lieventämiseksi).

Lisäsin myös vähän koodia tarkistaakseni, onko yksi Arduino -digitaalinen I/O -nasta korkea tai matala, ja käytä sitä laittaaksesi laitteen kalibrointitilaan. Tässä tilassa näyttö näyttää yksinkertaisesti anturin palauttaman todellisen etäisyyden (jaettuna 2: lla), joten voisin tarkistaa sen tarkkuuden mittanauhan perusteella.

Vaihe 3: Ainesosat

Yksikkö koostuu kolmesta pääkomponentista…

Kuva
Kuva
  1. HC-SR04 ultraääni lähetin/vastaanotin moduuli
  2. Arduino Pro Mini -mikro -ohjain
  3. 4 -numeroinen 7 -segmenttinen LED -näyttö tai näyttömoduuli, kuten TM1637

Kaikki edellä mainitut löytyvät helposti ebaystä yksinkertaisesti etsimällä lihavoidulla tekstillä esitetyt termit.

Tässä sovelluksessa näyttö käyttää vain 3 numeroa näyttääkseen % -arvon 0-100 tai 4 numeroa litramäärän näyttämiseksi (enintään 2000 tapausta minun tapauksessani), joten mikä tahansa 4 -numeroinen näyttö tekee - sinun ei tarvitse huolehdi siitä, onko moduulissa desimaaleja tai kaksoispisteitä. Näyttömoduuli (LED, joka on asennettu katkaisukorttiin ja jossa on liitäntäpiiri) on helpompi, koska se käyttää vähemmän nastaliitäntöjä, mutta Arduino voi majoittaa raa'an LED -näytön, jossa on 12 nastaa, pienillä muutoksilla koodiin (itse asiassa alkuperäinen suunnitteluni perustui tähän asetukseen). Huomaa kuitenkin, että raa'an LED -näytön käyttäminen vaatii myös 7 vastusta rajoittamaan kunkin segmentin vetämää virtaa. Minulla sattui olemaan saatavilla TM1637 -kellonäyttömoduuli, joten päätin käyttää sitä.

Lisäkärkiin ja -runkoihin kuuluu 9 V: n paristoklipsi (ja tietysti akku), "push-to-make" hetkellinen painonappikytkin, projektilaatikko, otsatapit, liitäntäjohdot ja yli 2 "x4": n puutavara säiliön aukon halkaisija.

Lisäpalat ja puut (puutavaraa lukuun ottamatta) ostettiin paikallisesta harrastuselektroniikan myymäläketjusta - joka on Jaycar Australiassa. Uskon, että Yhdistyneen kuningaskunnan Maplin olisi toimiva vaihtoehto, ja mielestäni Yhdysvalloissa on muutamia, kuten Digikey ja Mouser. Muiden maiden osalta pelkään, etten tiedä, mutta olen varma, että jos sinulla ei ole sopivaa pääkatua tai online -toimittajaa maassasi, kiinalaiset ebay -myyjät tulevat puolestasi, jos et muista odottaa muutama viikko toimitusta (ironista kyllä, vaikka olemme yksi lähimmistä naapureistamme, 6 viikkoa tai enemmän ei ole epätavallista toimitettaessa Australiaan Australiasta!).

Varmista, että hankit riittävän suuren projektilaatikon - arvasin omani ennen komponenttien saatavuutta, ja se on todella todella tiukka puristus - minun on ehkä hankittava itselleni toinen painike, joka käyttää vähemmän tilaa.

Voi, ja muuten, puun pituus tuli juuri romun katkaisuista, joita pidän autotallini kulmassa (useiden näiden ihanien hämähäkkien kodina).

Kun olet ymmärtänyt skemaattiset ominaisuudet ja toiminnallisuuden, voit päättää muokata versiota ja sisällyttää siihen virtakytkimen tai käyttää 18650 litiumionivirtalähdettä, aurinkopaneelin ja latausohjaimen kanssa, jotta se pysyy jatkuvasti ladattuna ja käyttövalmiina, tai vaihda yksinkertainen LED-näyttö moniriviseen nestekidenäyttöön tai graafiseen OLED-näyttöön, jossa on enemmän tietonäyttövaihtoehtoja, kuten samaan aikaan jäljellä olevan JA-litran prosenttiosuuden näyttäminen. Tai voit mennä laulavaan, tanssivaan langattomaan IoT-yksikköön, joka on asennettu pysyvästi säiliöön Aurinkolatauksella. Haluaisin kuulla variaatioistasi ja muutoksistasi.

Vaihe 4: Prototyypin (ja koodin) testaaminen

Kun olin ostanut HC-SR04: n halvasta kiinalaisesta lähteestä ebaystä, en todellakaan odottanut saavani erittäin tarkkaa yksikköä, joten halusin testata sitä ensin leipälaudalla, jos minun on lisättävä etäisyyskorjauskoodi luonnokseni.

Tässä vaiheessa etsin perustietoja HC-SR04: n yhdistämisestä ja käytöstä, ja minun on tunnustettava jsvesterin ohjeellinen "Esimerkki yksinkertaisesta Arduinosta ja HC-SR04: sta". Hänen esimerkkinsä ja kokemuksensa olivat minulle hyvä lähtökohta aloittaa koodaus.

Löysin HC-SR04: n NewPing-funktiokirjaston, joka sisältää sisäänrakennettuja toimintoja useiden lukemien keskiarvon mittaamiseksi, mikä tekee koodistani paljon yksinkertaisemman.

Löysin myös kirjaston TM1637 -kellonäyttömoduulille, mikä teki numeroiden näyttämisestä paljon yksinkertaisempaa. Alkuperäisessä koodissani (nelinumeroinen 7-segmenttinäyttö) minun piti jakaa numero yksittäisiksi numeroiksi, rakentaa sitten jokainen yksittäinen numero näytölle tietäen, mitkä segmentit valaistaan, ja sitten selata numeron jokaista numeroa ja rakentaa numero asianmukaiseen näytön numeroon. Tätä menetelmää kutsutaan multipleksoimiseksi, ja se näyttää tehokkaasti vain yhden numeron kerrallaan, mutta se kulkee niiden läpi numerosta toiseen niin nopeasti, että ihmissilmä ei huomaa ja huijaa sinua uskomaan, että kaikki numerot ovat samaan aikaan. Kuten HC-SR04-kirjasto, joka helpottaa mittaustoimintoja, tämä näyttökirjasto huolehtii kaikesta multipleksoinnista ja numeroiden käsittelystä. Edellä linkitetyt Arduino -viitesivut antavat joitain esimerkkejä, ja tietysti jokaisessa kirjastossa on mallikoodi, joka voi olla suuri apu.

Kuva
Kuva
Kuva
Kuva

n

Joten yllä olevat kuvat osoittavat testauslaitteeni - testaan sitä Arduino Uno -laitteella yksinkertaisuuden vuoksi, koska se on jo asetettu väliaikaisiin uudelleenkäytettäviin yhteyksiin prototyyppien luomista varten. Laite toimii tässä kalibrointitilassa (huomaa, että digitaalinen nasta 10 - valkoinen johto - on kytketty maahan) ja lukee tarkasti 39 cm laatikkoon, jonka asetin satunnaisesti sen eteen, kuten mittanauha osoittaa. Tässä tilassa näytän pienen "c" mittauksen edessä, vain osoittaakseni, että se ei ole normaali mittaus.

Vcc: n (5v) ja maadoituksen lisäksi HC -SR04 tarvitsee kaksi muuta liitäntää - liipaisimen (keltainen nastaan 6) ja kaiun (vihreä nastaan 7). Näyttö tarvitsee myös Vcc (5v) ja Ground sekä kaksi muuta liitäntää - kello (sininen nasta 8) ja DIO (violetti nasta 9). Kuten jo mainittiin, toimintatilaa ohjaa korkea tai matala nasta 10 (valkoinen). Liitännät käyttävät samoja tappeja Arduino Pro Minissä, mutta ne on juotettu pysyvästi. Toimintatapa on valittavissa hyppyjohtimella kahden kolmesta otsikkotapista, jotka on kytketty Vcc, nasta 10 ja maadoitus.

HC -SR04: n viralliset tiedot väittävät jotain enintään 3 millimetrin suurinta virhettä enintään 4 metrin suunniteltuun toimintaetäisyyteen, joten kuvittele yllätykseni havaitessani, että laitteeni oli varmasti täsmälleen 2 metrin tarkkuudella - mikä on selvästi yli sen, mitä tarvitsen. Koska nopealle ja likaiselle testausasetukselle ei ole riittävästi tilaa, testitulokseni, jotka olivat tuon etäisyyden ulkopuolella, vahingoittuivat heijastuksista muista pinnoista kuin testikohteestani, kun lähettimen säde levisi ja otti laajemman alueen. Mutta niin kauan kuin se on hyvä 1,5 metriin - se tekee minut hienosti, kiitos paljon:-)

Vaihe 5: Sadevesimittarin Ino -luonnos

Koko koodi on liitteenä, mutta sisällytän alla muutamia otteita selittääkseni joitain vaiheita.

Ensinnäkin asennus…

#sisältää

#include #include // nastat HC-SR04: lle #define pinTrig 6 #define pinEcho 7 NewPing-kaikuluotain (pinTrig, pinEcho, 155); // 400 cm on maksimi HC-SR04: lle, 155 cm on maksimi säiliölle // LED-moduuliliitännät (digitaaliset nastat) #define CLK 8 #define DIO 9 TM1637Näyttö (CLK, DIO); // Muut nastat #define opMode 10

TM1637- ja NewPing -kirjastojen lisäksi olen sisällyttänyt myös matematiikkakirjaston, joka antaa minulle pääsyn pyöristystoimintoon. Käytän tätä joissakin matematiikoissa, jotta voin näyttää prosenttiosuuden esimerkiksi lähimpään 5%: iin.

Seuraavaksi määritetään kahden laitteen nastat ja käynnistetään laitteet.

Lopuksi määritän toimintatavan nastan 10.

// poista kaikki segmentit käytöstä kaikilla numeroilla

uint8_t tavua = {0x00, 0x00, 0x00, 0x00}; display.setSegments (tavua);

Tässä koodin osassa esitetään yksi tapa ohjata näyttömoduulia, joka mahdollistaa kunkin segmentin yksilöllisen hallinnan jokaisessa numerossa. Olen asettanut taulukon 4 elementin tavuiksi kaikki nollaksi. Tämä tarkoittaa, että jokaisen tavun jokainen bitti on nolla. Kahdeksan bittiä käytetään ohjaamaan jokaista seitsemää segmenttiä ja desimaalipistettä (tai kaksoispistettä kellotyypin näytössä). Joten jos kaikki bitit ovat nollaa, mikään segmenteistä ei pala. SetSegments -toiminto lähettää taulukon sisällön näytölle eikä näytä (tässä tapauksessa) mitään. Kaikki segmentit ovat pois päältä.

Kuva
Kuva

Tavun merkittävin bitti ohjaa DP: tä ja sitten loput 7 bittiä ohjaavat 7 segmenttiä G: stä A: han päinvastaisessa järjestyksessä. Esimerkiksi numeron 1 näyttäminen edellyttää segmenttejä B ja C, joten binääriesitys olisi '0b00000110'. (Kiitos CircuitsToday.com yllä olevasta kuvasta).

// Ota 10 lukemaa ja käytä keston mediaania.

int kesto = sonar.ping_median (10); // kesto on mikrosekunneissa, jos (kesto == 0) // Mittausvirhe - epävarma tai ei kaikua {uint8_t bytes = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Segmentit "Err" display.setSegments (tavua); }

Tässä kerron HC-SR04: lle ottamaan 10 lukemaa ja antamaan minulle keskimääräisen tuloksen. Jos arvoa ei palauteta, yksikkö on alueen ulkopuolella. Käytän sitten samaa tekniikkaa kuin yllä hallitakseni tiettyjä segmenttejä neljällä numerolla, kirjoittaakseni kirjaimet (tyhjä), E, r ja r. Binäärimerkintöjen käyttäminen helpottaa yksittäisten bittien liittämistä segmentteihin.

Vaihe 6: Koodin lataaminen Arduino Pro Miniin (ilman USB: tä)

Kuten aiemmin sanoin, kiinalaisten ebay -myyjien tuotteet saapuvat usein 6 viikkoa tai enemmän, ja paljon prototyyppiä ja koodin kirjoittamista tehtiin odottaessani joidenkin komponenttien saapumista - Arduino Pro Mini on yksi niistä.

Yksi asia, jota en huomannut Pro Ministä, ennen kuin olin jo tilannut sen, on, että siinä ei ole USB -porttia luonnoksen lataamiseen. Joten jonkinlaisen kiihkeän googlaamisen jälkeen huomasin, että luonnos voidaan ladata kahdella tavalla tässä tapauksessa - yksi vaatii erikoiskaapelin, joka kulkee tietokoneen USB -liitännästä Pro Mini -laitteen kuuteen erityiseen nastaan. Tämä 6 -nastainen ryhmä tunnetaan nimellä ISP (järjestelmän sisäinen ohjelmoija), ja voit itse käyttää tätä menetelmää missä tahansa Arduinossa, jos haluat - mutta koska USB -liitäntä on saatavana melkein kaikissa muissa Arduino -versioissa (I ajatella), tämän vaihtoehdon käyttäminen on paljon yksinkertaisempaa. Toinen menetelmä edellyttää, että sinulla on toinen Arduino, jossa on USB-liitäntä, jotta voit toimia "välivaiheena".

Onneksi Arduino Unon saaminen tarkoitti, että voisin käyttää toista menetelmää, jonka hahmotan sinulle alla. Sitä kutsutaan käyttämällä Arduinoa Internet -palveluntarjoajana. Lyhyesti sanottuna, lataat erityisen luonnoksen Arduinon "väliin", joka muuttaa sen sarjaliittymäksi. Lataa sitten luonnos, mutta tavallisen latausvaihtoehdon sijaan käytät IDE -valikon vaihtoehtoa, joka lataa "käyttämällä Arduinoa Internet -palveluntarjoajana". "A-väli" Arduino ottaa sitten luonnoksesi IDE: stä ja siirtää sen Pro Minin Internet-palveluntarjoajan nastoihin sen sijaan, että se lataa sen omaan muistiinsa. Se ei ole vaikeaa, kun saat pään ympärille, miten se toimii, mutta se on ylimääräinen monimutkaisuus, jota haluat ehkä välttää. Jos näin on, tai jos sinulla ei ole toista Arduinoa, jota voit käyttää välivaiheena, kannattaa ostaa Arduino Nano tai jokin muu pienikokoinen malli, joka sisältää USB-liitännän ja tekee ohjelmoinnista yksinkertaisemman mahdollisuuden.

Tässä on muutamia resursseja, joista voi olla apua prosessin ymmärtämisessä. Arduino Reference viittaa nimenomaan uuden käynnistyslataimen polttamiseen kohdelaitteeseen, mutta voit ladata luonnoksen yhtä helposti samalla tavalla. Huomasin, että Julian Ilettin video tekee käsitteestä paljon selkeämmän, vaikka hän ohittaa Arduinon viittauksen osan, joka selittää kuinka kaksi Arduinoa kytketään yhteen, ja ohjelmoi paljaan sirun leipälevylle.

  • Arduinon käyttöopas - Arduinon käyttö Internet -palveluntarjoajana
  • Julian Ilettin YouTube -video - Arduinon käyttö Internet -palveluntarjoajana

Koska Pro Mini -laitteessa ei ole 6 ISP -nastaa kätevästi ryhmiteltyinä yhteen, sinun on purettava, mitkä digitaaliset nastat liittyvät neljään ohjelmointinapaan (kaksi muuta liitäntää ovat vain Vcc ja Gnd - joten ne ovat melko yksinkertaisia). Onneksi sinulle olen jo käynyt tämän läpi - ja olen valmis jakamaan tiedon kanssasi - mikä antelias ihminen olen !!

Arduino Unossa ja monissa muissa Arduino -perheen jäsenissä on 6 nastaa kätevästi järjestetty 3x2 lohkoon, kuten tämä (kuva osoitteesta www.arduino.cc).

Kuva
Kuva

Valitettavasti Pro Mini ei. Kuten alla näet, ne on itse asiassa melko helppo tunnistaa ja ne on edelleen järjestetty kahteen 3 nastan lohkoon. MOSI, MISO ja SCK ovat samat kuin digitaaliset nastat 11, 12 ja 13 sekä Pro Mini- että Arduino Uno -laitteissa, ja Internet -palveluntarjoajan ohjelmoinnissa yhdistä vain 11-11, 12-12 ja 13-13. Minin nollausnasta tulee liittää Uno -nastaan 10 ja Pro Minin Vcc (5v)/maadoitus Arduino +5v/Ground -liitäntään. (Kuva osoitteesta www.arduino.cc)

Kuva
Kuva

Vaihe 7: Kokoonpano

Kokoonpano
Kokoonpano

Kuten mainitsin, otin tapauksen huomioon ja katuin sitä. Kaikkien komponenttien sovittaminen yhteen oli todellinen puristus. Itse asiassa minun piti taivuttaa painonapin koskettimet sivuttain ja laittaa pakkausta ulkopuolelle nostamaan sitä hieman pidemmälle, jotta se mahtuu laatikon syvyyteen, ja minun piti jauhaa 2-3 mm: n kummaltakin puolelta näyttömoduulilevyä, jotta se mahtuu myös.

Porasin koteloon 2 reikää ultraäänianturien lävistämiseksi. Porasin reiät hieman liian pieniksi ja lisäsin niitä vähitellen pienellä pyörivällä hiomakoneella, jotta voisin saada ne olemaan mukava "työntömuoto". Valitettavasti ne olivat liian lähellä sivuja voidakseen käyttää hiomakonetta laatikon sisäpuolelta, ja tämä piti tehdä ulkopuolelta, mikä aiheutti monia naarmuja ja luistimen jälkiä hiomakoneen luiskahtamisessa - no, kaikki on pohjassa joka tapauksessa - ketä kiinnostaa..?

Leikkasin sitten toisesta päästä aukon, joka on oikean kokoinen näytön lävistämiseksi. Jälleen - arvaukseni laatikon koosta puri minua takaapäin, kun korttipaikasta jäi minulle erittäin ohut pala näytön yläpuolella, joka väistämättä rikkoutui, kun arkistoin sen sileäksi. Voi hyvin - sitä varten superliima keksittiin …

Lopuksi, kun kaikki komponentit olivat karkeasti paikoillaan laatikossa, mittasin, minne reiän laittaa kanteen, jotta painikkeen runko putoaisi lopulliseen vapaaseen tilaan. VAIN!!!

Seuraavaksi juotin kaikki komponentit yhteen testatakseni, että kaikki toimivat edelleen taivutuksen, hionnan ja leikkaamisen jälkeen, ennen kuin kokoin ne kaikki koteloon. Näet hyppyliitännän juuri näyttömoduulin alapuolella, ja Arduinon (valkoinen johto) nasta 10 on kytketty Gnd: iin, jolloin laite siirtyy kalibrointitilaan. Näyttö lukee 122 cm ylös penkiltäni - sen on täytynyt ottaa vastaan ikkunakehyksen yläosasta heijastunut signaali (se on liian matala ollakseen katto).

Kuva
Kuva

Sitten kyseessä oli kuuma liimapistoolin murtaminen ja kaikkien osien kengänkiillotus. Tämän jälkeen huomasin, että pieni etäisyys näyttömoduulin yläosan ja kannen välillä, kun moduuli oli liimattu paikalleen, jätti hieman pullistuman, jossa kansi ei sovi niin tiukasti kuin haluaisin. Voisin yrittää tehdä asialle jotain jonain päivänä - tai todennäköisemmin, en…

Kuva
Kuva

Vaihe 8: Valmis artikkeli

Muutaman kokoonpanon jälkeisen testin ja koodin korjauksen jälkeen puunpalan syvyyden huomioon ottamiseksi ruuvasin laitteen kiinni (jonka jäin täysin huomiotta laskelmissani - d'oh !!), kaikki on tehty. Lopuksi!

Kokoonpanotestaus

Kun laite vain istuu kuvapuoli alaspäin penkilläni, ilmeisesti heijastumatonta signaalia ei tule, joten laite näyttää virheen oikein. Sama pätee, jos lähinnä heijastava pinta on yksikön kantaman ulkopuolella.

Kuva
Kuva

Näyttää siltä, että penkiltäni lattiaan on 76 cm (no, 72 cm plus 4 cm syvyys puunpalasta).

Kuva
Kuva

Yksikön alapuolelta, jossa näkyy lähetin ja vastaanotin, jotka ulottuvat puukappaleen yli - minun pitäisi todella lopettaa kutsumasta sitä puukappaleeksi - sitä kutsutaan tästä lähtien mittareiden vakautus- ja tarkkuussijoitusalustaksi! Onneksi tämä on viimeinen kerta, kun mainitsen sen;-)

Ooh - näet kaikki nämä ikävät naarmut ja luistinjäljet tässä…

Kuva
Kuva

… Ja tässä on valmis tuote, joka on asetettu normaaliin toimintatilaan ja mittaa itse asiassa säiliöni tilavuuden 5%: n tarkkuudella. Oli (erittäin) sateinen sunnuntai -iltapäivä, jolloin sain tämän projektin päätökseen, joten yksikön sadepisarat ja erittäin miellyttävä 90% lukema.

Kuva
Kuva

Toivon, että olet nauttinut tämän ohjeen lukemisesta ja että olet oppinut hieman Arduinon ohjelmoinnista, fysiikasta ja kaikuluotain-/ultraääniheijastuskäytöstä, arvausten käytön sudenkuopista projektisuunnittelussa ja että olet saanut inspiraatiota tehdä oma sadevesisäiliön mittari - ja asenna sitten sadevesisäiliö sen käyttämiseksi, samalla kun autat ympäristöä hieman ja säästät vesisi laskussa.

Ole hyvä ja lue - mitä tapahtui seuraavana päivänä…!

Vaihe 9: Jälkikirjoitus - sata (ja viisi) prosenttia?

Joten, sateisen sunnuntain jälkeisenä maanantaina säiliö oli aivan niin täynnä kuin mahdollista. Koska tämä on yksi harvoista kertoista, jolloin olen koskaan nähnyt sen täysin täynnä, ajattelin, että olisi ihanteellinen aika vertailla mittaria, mutta arvaa mitä - se rekisteröitiin 105 prosentiksi, joten ilmeisesti oli jotain vialla.

Otin ulos mittatikustani ja huomasin, että alkuperäiset olettamukseni 140 cm korkeimmaksi veden syvyydeksi ja 16 cm pääntilaksi (perustuvat säiliön ulkopuolelta tehtyihin visuaalisiin arvauksiin) olivat molemmat hieman pois todellisista mittauksista. Joten aseistettuna 100%: n vertailuarvon todellisilla tiedoilla pystyin säätämään koodiani ja lataamaan Arduinon uudelleen.

Suurin veden syvyys osoittautuu 147 cm: ksi, mittauspisteen ollessa 160 cm, jolloin 13 cm pääntilaa (säiliön pään korkeuden summa, säiliön kaulan korkeus ja palan syvyys … tarkoitan mittarin vakautus- ja tarkkuussijoitusalustan syvyyttä!).

Kun maxDepth- ja pääntilamuuttujat on korjattu vastaavasti ja kaikuluotainobjektin enimmäisalue on palautettu 160 cm: ksi, nopea uusintatesti osoitti 100%, joka laski 95%: iin, kun nostin mittaria hieman (simuloidaksesi pienen määrän vettä on käytetty).

Työ tehty!

PS - tämä on ensimmäinen yritykseni opettaa. Jos pidät tyylistäni, huumorintajusta, rehellisyydestä virheiden tunnustamiseen (hei - vaikka en ole täydellinen…) jne. - kerro minulle, ja se voi antaa minulle vauhtia tehdä toinen.

Vaihe 10: Jälkikäteen

Käytettävä kapasiteetti

Joten tästä Instructable -julkaisusta on nyt kulunut muutama viikko, ja olen saanut vastaukseksi monia kommentteja, joista osa on ehdottanut vaihtoehtoisia mekanismeja - sekä sähköisiä että manuaalisia. Mutta tämä sai minut ajattelemaan, ja jotain olisi pitänyt huomauttaa alussa.

  • Säiliössäni on pumppu, joka on asennettu maanpintaan - hieman säiliön pohjan alapuolelle. Koska pumppu on järjestelmän alin kohta ja pumpun vesi on paineen alaista, voin käyttää koko säiliöni.
  • Kuitenkin - jos säiliössäsi ei ole pumppua ja se perustuu painovoiman syöttöön, säiliön tehokasta kapasiteettia rajoittaa hanan korkeus. Kun säiliöön jäänyt vesi on hanan alapuolella, vettä ei virtaa.

Riippumatta siitä, käytätkö elektronista mittaria, manuaalista tarkastuslasia vai kellunta- ja lipputyyppijärjestelmää, muista vain, että ilman pumppua säiliön todellinen "pohja" on itse asiassa säiliön ulostulon tai napauta.

Suositeltava: