Ultrahangos esővíz -tartály kapacitásmérő: 10 lépés (képekkel)
Ultrahangos esővíz -tartály kapacitásmérő: 10 lépés (képekkel)
Anonim
Ultrahangos esővíz -tartály kapacitásmérő
Ultrahangos esővíz -tartály kapacitásmérő

Ha hasonlít hozzám, és van egy kis környezeti lelkiismerete (vagy csak skinflints szeretne néhány dollárt megspórolni - ami szintén én vagyok …), akkor esővíztartálya lehet. Van egy tartályom, hogy betakarítsam azt a meglehetősen ritka esőt, amit Ausztráliában kapunk - de fiú, fiú, ha itt esik, akkor tényleg esik! A tartályom körülbelül 1,5 méter magasan áll, és lábazaton van, ami azt jelenti, hogy lépéseket kell tennem a vízszint ellenőrzésére (vagy - mert olyan lusta vagyok, bizonytalanul egyensúlyozok egy régi gázpalack tetején a BBQ -n, az állandó lakóhely felállítása „lépésként” a tartály mellett).

Szerettem volna valamilyen módon ellenőrizni a vízszintet a tartályban anélkül, hogy minden mászást és egy kézzel a lefolyócsőre akasztást tennék (miközben aggódnom kell, hogy milyen pókok lehetnek mögötte - hallott már az ausztrál pókokról - igaz?) … Szóval, az életszakasz végén megújult érdeklődés iránt az elektronika iránt, és olcsó Arduino -klónok Kínából az ebay -en, úgy döntöttem, hogy megpróbálok egy „widgetet” készíteni, hogy elvégezzem a munkát helyettem.

Most az „álom” widgetem az volt, hogy véglegesen telepítve legyenek a tartályban, napelemmel feltöltött áramforrást használjak, távoli leolvasóval a garázsomban, vagy esetleg egy vezeték nélküli jeladót, amely Bluetooth -on keresztül ellenőrizhető a telefonomról, vagy akár egy ESP típusú eszköz, amely automatikusan frissülő weboldalt tárol, hogy a világ bármely pontjáról ellenőrizhessem a tartályban lévő víz szintjét az interneten… de tényleg - miért van szükségem minderre? Szóval kicsit visszahívtam a nagy eszményeimet (nos, eléggé), és megszüntettem a megoldás vezeték nélküli voltát, az állandó telepítést, a napelemes töltést, és azt a lehetőséget, hogy ellenőrizhessem a tankom szintjét a túlsó végéről (mindig feltételezve, hogy a túloldal hátsó részén elérhető a WiFi, vagyis…)

Az így létrejött projektet a fent látható kézi egységgé minősítették le, amelyet egyszerűen a tartály nyílása fölött lehet tartani, és egy nyomógombbal aktiválható, digitális leolvasással, amely a talajszintről leolvasható - sokkal praktikusabb.

Lépés: A matematika…

Miután több ötlettel játszottam a vízszint meghatározására - úgy döntöttem, hogy egy ultrahangos jeladót/vevőt használok a widgetem alapjául, és egy Arduino segítségével leolvasom és elvégzem az összes matematikát. Az érzékelő által visszaadott értékek (közvetve) távolság formájában vannak - az ultrahangos érzékelőtől a felpattanó felületig (a vízfelület - vagy a tartály alja, ha üres), és vissza, tehát szükségünk van hogy néhány dolgot tegyen ezzel, hogy elérje a tartályban maradt százalékot.

Megjegyzés: valójában az érzékelő által visszaadott érték valójában csak az az idő, amelyre a jelnek el kell hagynia az emitter oldalt, és vissza kell térnie a vevőhöz. Ez mikroszekundumokban van - de ha ismerjük a hangsebességet 29 mikroszekundum / cm (Mi? Ezt nem tudtad? Pfft …), akkor könnyen átválthatsz egy bizonyos időszakból egy távolságmérésre.

Kép
Kép

Először is - természetesen el kell osztanunk a távolságot 2 -vel, hogy elérjük az érzékelőt a felszíni távolsághoz. Ezután vonja le az érzékelőtől a maximális vízmélységig mért távolságot. A fennmaradó érték a használt víz mélysége. Ezután vonja le ezt az értéket a maximális vízmélységből, hogy megtalálja a tartályban maradt víz mélységét.

Ez az érték alapul szolgál minden más számításhoz, például ennek a vízmélységnek a maximális mélység százalékában történő meghatározásához, vagy a mélység megszorozásához az állandó „felülettel”, hogy megjeleníthető vízmennyiséget kapjunk. literben (vagy gallonban, vagy bármilyen más mértékegységben - amíg ismered a matematikát - az egyszerűség kedvéért ragaszkodom a százalékhoz).

2. lépés: Gyakorlati lehetőségek

Az egységet kézzel is lehet tartani, de ez kismértékű kisebb pontatlanságok lehetőségét hordozza magában, ha az egységet nem ugyanazon a helyen és minden alkalommal azonos szögben tartja. Bár ez csak egy nagyon kis hiba, és valószínűleg nem is az, ami regisztrálna, ez lenne az a fajta dolog, ami elhanyagolt engem.

A kézben tartás azonban sokkal nagyobb lehetőséget rejt magában, hogy az átkozott dolog a tartályba kerül, és soha többé nem látja. Tehát mindkét lehetőség csökkentése érdekében rögzíteni kell egy fahosszra, amelyet ezután a tartálynyílás fölé helyeznek - így a mérést minden alkalommal pontosan ugyanabból a magasságból és szögből kell elvégezni (és ha az tartály, legalább a fa lebeg).

A nyomógomb aktiválja az egységet (ezáltal nincs szükség be-/kikapcsolásra, és véletlenül lemerült akkumulátorra), és felgyújtja a vázlatot az Arduino -ban. Ez számos leolvasást vesz le a HC-SR04-ből, és átlagokat vesz fel (az esetleges hibás értékek enyhítésére).

Ezenkívül egy kis kódot is mellékeltem az Arduino digitális I/O érintkezőinek magas vagy alacsony szintjének ellenőrzésére, és ezt használva a készüléket úgynevezett „kalibrációs” módba állíthatom. Ebben a módban a kijelzőn egyszerűen megjelenik az érzékelő által visszaadott tényleges távolság (osztva 2 -vel), így ellenőrizni tudtam a pontosságát mérőszalaggal.

3. lépés: Az összetevők

Az egység három fő összetevőből áll…

Kép
Kép
  1. HC-SR04 ultrahangos adó/vevő modul
  2. Arduino Pro Mini mikrovezérlő
  3. 4 számjegyű 7 szegmenses LED -kijelző vagy kijelző „modul”, például TM1637

A fentiek mindegyike könnyen megtalálható az ebay -en, ha egyszerűen rákeres a félkövér betűkkel feltüntetett kifejezésekre.

Ebben az alkalmazásban a kijelző egyszerűen 3 számjegyet használ a 0-100 % -os érték megjelenítésére, vagy 4 számjegy a literek számának megjelenítésére (esetemben legfeljebb 2000), tehát bármely 4 számjegyű kijelző megteszi - nem kell aggódjon, hogy a modul tizedesjelekkel vagy kettőspontokkal rendelkezik -e. A kijelző modul „könnyebb”, mivel kevesebb tűs csatlakozást használ, de egy nyers LED kijelzőt, 12 tűvel, a kód némi módosításával (valójában az eredeti tervezésem ezen a beállításon alapult). Ne feledje azonban, hogy a nyers LED -kijelző használatához 7 ellenállás is szükséges az egyes szegmensek által felvett áram korlátozásához. Történetesen rendelkezésre állt egy TM1637 óra kijelző modul, ezért úgy döntöttem, hogy ezt használom.

A kiegészítő bitek és bobok tartalmazzák a 9 V-os elemcsipeszt (és nyilván az akkumulátort), a „push-to-make” pillanatnyi nyomógombos kapcsolót, a projektdobozt, a fejléceket, a csatlakozóvezetékeket és a 2 x 4 hüvelykes fát, amely meghaladja a tartálynyílás átmérője.

A kiegészítő biteket és bobokat (kivéve a fahasábokat) a helyi hobbielektronikai értékesítési láncomtól vásároltam - ami Jaycar Ausztráliában. Elképzelem, hogy az Egyesült Királyságban a Maplin életképes alternatíva lenne, és azt hiszem, az USA -ban is vannak ilyenek, például a Digikey és a Mouser. Más országok esetében attól tartok, hogy nem tudom, de biztos vagyok benne, hogy ha nincs megfelelő nagy utcai üzlet vagy online szolgáltató az Ön országában, akkor a kínai ebay -eladók jönnek be Önnek, ha nem gondoljon néhány hetet a szállításra (ironikus módon, annak ellenére, hogy az egyik legközelebbi szomszédunk, 6 hét vagy több nem szokatlan a Kínából Ausztráliába történő szállításhoz!).

Győződjön meg róla, hogy kap egy projektdobozt, amely elég nagy - sejtettem az enyémet, mielőtt rendelkezésre állt volna az alkatrészek, és ez tényleg nagyon szoros szorítás - lehet, hogy más nyomógombot kell szereznem magamnak, amely kevesebb helyet foglal el.

Ja, és mellesleg, a fa hossza csak néhány hulladékvágásból származik, amelyeket a garázsom sarkában tartok (több kedves pók otthonaként).

Miután megértette a felépítést és a funkcionalitást, dönthet úgy, hogy módosítja a verzióját, és tartalmaz egy ki/be kapcsolót, vagy 18650-es Li-Ion áramforrást használ napelemmel és töltésvezérlővel, hogy folyamatosan feltölthesse és készen álljon a használatra, vagy cserélje le az egyszerű LED-kijelzőt egy többsoros LCD-re vagy grafikus OLED-re több információ megjelenítési lehetőséggel, például az egyidejűleg fennmaradó ÉS liter százalékos megjelenítésével. Vagy menjen a teljesen éneklő, táncoló vezeték nélküli IoT egységbe, amelyet állandóan a tartályba telepítenek, napelemes töltéssel. Szeretném hallani a variációit és módosításait.

4. lépés: A prototípus (és kód) tesztelése

Miután megvásároltam a HC-SR04-et egy olcsó kínai forrásból az ebay-en, valójában nem számítottam arra, hogy rendkívül pontos egységet fogok kapni, ezért először ki akartam próbálni a kenyérsütőn, hátha hozzá kell adnom néhány távolságkorrekciós kódot a vázlatom.

Ezen a ponton alapvető információkat szereztem a HC-SR04 csatlakoztatásáról és használatáról, és tudomásul kell vennem a jsvester által leírt „Egyszerű Arduino és HC-SR04 példa” utasítást. Példája és tapasztalata nagyszerű kiindulópont volt számomra a kódolás elindításához.

Megtaláltam a NewPing függvénykönyvtárat a HC-SR04 számára, amely beépített funkciókat tartalmaz a többszörös leolvasások átlagának kiszámításához, ezáltal sokkal egyszerűbbé téve a kódomat.

Találtam egy könyvtárat a TM1637 óra kijelző modulhoz is, ami sokkal egyszerűbbé tette a számok megjelenítését. Az eredeti kódomban (a 4 számjegyű, 7 szegmenses kijelzőn) a számot egyes számjegyekre kellett osztanom, majd minden egyes számjegyet felépítenem a kijelzőn, tudva, hogy mely szegmenseket kell megvilágítani, majd a szám minden számjegyét végigkísérni, és ezt a számot a megfelelő kijelző számjegyre kell építeni. Ezt a módszert multiplexelésnek hívják, és gyakorlatilag csak egyetlen számjegyet jelenít meg egyszerre, de olyan gyorsan halad át rajtuk az egyik számjegyről a másikra, hogy az emberi szem nem veszi észre, és elhülyít, ha azt hiszi, hogy minden számjegy rajta van ugyanabban az időben. Akárcsak a HC-SR04 könyvtár, amely megkönnyíti a mérési műveleteket, ez a kijelzőkönyvtár gondoskodik a multiplexelésről és a számjegyek kezeléséről. A fent hivatkozott Arduino Reference oldalak néhány példát hoznak fel, és természetesen minden könyvtárhoz mintakód tartozik, amely nagy segítséget jelenthet.

Kép
Kép
Kép
Kép

n

Tehát a fenti képek a tesztberendezésemet mutatják - az egyszerűség kedvéért tesztelem az Arduino Uno készüléken, mivel ez már be van állítva ideiglenes újrahasznosítható kapcsolatokhoz a prototípus készítéséhez. A készülék itt „Kalibrálás” üzemmódban működik (vegye figyelembe, hogy a 10 -es digitális tű - a fehér vezeték - a földhöz van csatlakoztatva), és pontosan 39 cm -t mutat a dobozhoz, amelyet véletlenszerűen elhelyeztem előtte, amint azt a mérőszalag is mutatja. Ebben a módban a mérés előtt a kicsi "c" -et jelenítem meg, csak hogy jelezzem, ez nem a normál mérés.

A Vcc (5v) és a Ground mellett a HC -SR04 -nek 2 másik csatlakozóra is szüksége van - a ravaszt (sárga a 6 -os érintkezőre) és a visszhangot (zöld a 7 -es érintkezőre). A kijelzőn Vcc (5v) és Ground is szükséges, és további 2 csatlakozás - óra (kék a 8. tűhöz) és DIO (lila - 9. érintkező). Amint már említettük, az üzemmódot a magas vagy alacsony 10 -es csap (fehér) vezérli. A csatlakozások ugyanazokat a csapokat használják, mint az Arduino Pro Mini, de véglegesen forrasztottak lesznek. Az üzemmód egy jumper segítségével választható ki a háromból kettő fejrészen, amelyek Vcc -hez, 10 -es és földhöz vannak csatlakoztatva.

A HC -SR04 hivatalos specifikációi körülbelül 3 milliméteres maximális hibára vonatkoznak a maximális tervezett 4 méteres működési távolságig, úgyhogy képzeld el meglepetésemet, amikor megállapítom, hogy az egységem minden bizonnyal pontossága 2 méter volt - ami jóval meghaladja azt, amire szükségem van. A gyors és piszkos tesztelési lehetőségek korlátozott helye miatt az ezen a távolságon túli teszteredményeimet a tesztcélomtól eltérő felületekről való visszaverődések rontották el, mivel az adó sugárzása elterjedt és szélesebb területet vett át. De amíg jó a 1,5 méter - ez jól megy nekem, köszönöm szépen:-)

5. lépés: Esővízmérő Ino vázlat

A teljes kód csatolva van, de az alábbiakban néhány kivonatot közlök néhány lépés magyarázatához.

Először is a beállítás…

#befoglalni

#include #include // csapok a HC-SR04 számára #define pinTrig 6 #define pinEcho 7 NewPing szonár (pinTrig, pinEcho, 155); // 400 cm max a HC-SR04 esetén, 155 cm max a tartályhoz // LED modul csatlakozó csapjai (digitális tűk) #define CLK 8 #define DIO 9 TM1637Kijelző kijelző (CLK, DIO); // Egyéb csapok #define opMode 10

A TM1637 és a NewPing könyvtárak mellett Math könyvtárat is beépítettem, amely hozzáférést biztosít a "kerekítés" funkcióhoz. Ezt használom néhány matematikában, hogy lehetővé tegyem például a százalékos arány megjelenítését 5% -ig.

Ezután meghatározzuk a két eszköz csapjait, és elindítjuk az eszközöket.

Végül meghatározom a 10. tűt az üzemmódhoz.

// az összes szegmens kikapcsolása minden számjegyhez

uint8_t bájtok = {0x00, 0x00, 0x00, 0x00}; display.setSegments (bájt);

Ez a kódrészlet a kijelzőmodul vezérlésének egyik módját mutatja be, lehetővé téve az egyes szegmensek egyedi vezérlését minden számjegyben. A bájtok nevű tömb 4 elemét nullára állítottam. Ez azt jelenti, hogy minden bájt minden bitje nulla. A 8 bit a 7 szegmens és a tizedespont (vagy az óra típusú kijelző kettőspontja) vezérlésére szolgál. Tehát ha az összes bit nulla, akkor egyik szegmens sem világít. A setSegments művelet elküldi a tömb tartalmát a kijelzőnek, és nem jelenít meg (ebben az esetben) semmit. Minden szegmens ki van kapcsolva.

Kép
Kép

A bájt legjelentősebb bitje vezérli a DP -t, majd a fennmaradó 7 bit irányítja a 7 szegmenst G -től A -ig fordított sorrendben. Tehát például az 1 szám megjelenítéséhez B és C szegmensre van szükség, tehát a bináris ábrázolás '0b00000110' lenne. (Köszönjük a CircuitsToday.com -nak a fenti képet).

// Vegyen 10 leolvasást, és használja a medián időtartamot.

int időtartam = szonár.ping_median (10); // az időtartam mikroszekundumokban van megadva, ha (időtartam == 0) // Mérési hiba - nem meggyőző vagy nincs visszhang {uint8_t bytes = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Szegmensek az "Err" betűzéséhez display.setSegments (byte); }

Itt azt mondom a HC-SR04-nek, hogy vegyen 10 leolvasást, és adja meg az átlagos eredményt. Ha nem ad vissza értéket, akkor az egység kívül esik a tartományon. Ezután ugyanazt a technikát használom, mint a fentiekben, hogy meghatározott szegmenseket vezéreljek a 4 számjegyből, és betűket írjak (üres), E, r és r. A bináris jelölés használata kissé megkönnyíti az egyes bitek szegmensekkel való összekapcsolását.

6. lépés: A kód betöltése Arduino Pro Mini készülékre (USB nélkül)

Ahogy korábban mondtam, a kínai ebay -eladók termékei gyakran 6 hetet vagy tovább is megérkeznek, és sok prototípus -készítésem és kódírásom megtörtént, miközben vártam, hogy megérkezzen néhány alkatrész - az Arduino Pro Mini az egyik.

Egy dolgot nem vettem észre a Pro Mini kapcsán, amíg nem rendeltem meg, hogy nincs rajta USB port a vázlat letöltéséhez. Így némi eszeveszett googlizás után rájöttem, hogy ebben az esetben kétféleképpen lehet betölteni egy vázlatot - az egyikhez speciális kábelre van szükség, amely a számítógép USB -jéről megy, a Pro Mini 6 speciális tűjéhez. Ez a 6 tűből álló csoport ISP (rendszerbeli programozó) csapok néven ismert, és ezt a módszert bármikor használhatja bármely Arduino -n, ha szeretné - de mivel az USB interfész nagyjából az összes többi Arduino változatban elérhető (I gondolja), az opció használata sokkal egyszerűbb. A másik módszer megköveteli, hogy rendelkezzen egy másik Arduino-val, USB-interfésszel, hogy „köztesként” működjön.

Szerencsére az Arduino Uno birtoklása azt jelentette, hogy használhatom a második módszert, amelyet az alábbiakban felvázolok Önnek. Úgy hívják, hogy az „Arduino -t ISP -ként” használják. Dióhéjban egy speciális vázlatot tölt be az "Arduino" közötti "átmenetre", amely soros interfészsé alakítja. Ezután töltse be a tényleges vázlatot, de a normál feltöltési lehetőség helyett az IDE menü opcióját használja, amely „az Arduino internetszolgáltatóként” segítségével tölt fel. A „köztes” Arduino ezután átveszi az Ön vázlatát az IDE-ből, és továbbítja azt a Pro Mini internetszolgáltató csapjaihoz, ahelyett, hogy saját memóriájába töltené be. Nem nehéz, ha egyszer megkapja a fejét, hogyan működik, de ez egy további bonyolultsági réteg, amelyet érdemes elkerülni. Ha ez a helyzet, vagy nincs másik Arduino, amelyet "köztes" -ként használhat, akkor érdemes megvásárolnia egy Arduino Nano-t, vagy egy másik kis méretű modellt, amely tartalmazza az USB interfészt és egyszerűbbé teszi a programozást.

Íme néhány erőforrás, amelyek hasznosak lehetnek a folyamat megértésében. Az Arduino Reference kifejezetten arra utal, hogy új rendszerbetöltőt ír a céleszközre, de ugyanolyan könnyen betölthet egy vázlatot. Úgy találtam, hogy Julian Ilett videója sokkal világosabbá teszi a koncepciót, bár kihagyja azt a részt az Arduino -referenciában, amely elmagyarázza, hogyan kell összekapcsolni a két Arduinót, és helyettük egy csupasz chipet programoz.

  • Az Arduino Reference Manual - Az Arduino használata internetszolgáltatóként
  • Julian Ilett YouTube -videója - Arduino használata internetszolgáltatóként

Mivel a Pro Mini nem rendelkezik kényelmesen csoportosított 6 ISP -tűvel, dekódolnia kell, hogy a digitális tűk közül melyik kapcsolódik a 4 programozótűhöz (a másik két csatlakozó csak Vcc és Gnd - tehát elég egyszerű). Szerencsédre, én már átéltem ezt - és hajlandó vagyok megosztani veled a tudást -, hogy milyen nagylelkű ember vagyok !!

Az Arduino Uno és még sokan mások az Arduino családban a 6 érintkezőt jól elrendezik egy 3x2 méretű blokkban, mint ez (kép a www.arduino.cc oldalról).

Kép
Kép

Sajnos a Pro Mini nem. Amint az alábbiakban látható, valójában meglehetősen könnyű azonosítani őket, és továbbra is 2 db 3 tűs blokkban vannak elrendezve. A MOSI, a MISO és az SCK ugyanazok, mint a Pro Mini és az Arduino Uno digitális, 11 -es, 12 -es és 13 -as tűi, és az ISP programozáshoz egyszerűen csatlakoztassa a 11 -et a 11 -hez, a 12 -től 12 -ig és a 13 -tól 13 -ig. A Mini Reset csapját az Uno 10 tűhöz, a Pro Mini Vcc (5v)/Ground csatlakozóját pedig az Arduino +5v/Ground csatlakozóhoz kell csatlakoztatni. (Kép a www.arduino.cc oldalról)

Kép
Kép

7. lépés: Összeszerelés

Összeszerelés
Összeszerelés

Mint említettem, puntot vettem az ügyön, és sajnáltam. Az összes alkatrész beillesztése igazi szorítás volt. Valójában ki kellett hajlítanom a nyomógomb érintkezőit oldalra, és külső csomagolást kellett helyeznem, hogy kissé tovább emelhessem, hogy elférjen a doboz mélységében, és 2-3 mm-t le kellett csiszolnom. a kijelző modul táblát, hogy illeszkedjen is.

2 lyukat fúrtam a tokba, hogy az ultrahangos érzékelők átbújhassanak. Kicsit túl kicsire fúrtam a lyukakat, majd fokozatosan növeltem őket egy kicsi forgócsiszoló segítségével, hogy szép „toló illeszkedést” kapjak. Sajnos túl közel voltak az oldalakhoz ahhoz, hogy a csiszolót a dobozon belülről tudják használni, és ezt kívülről kellett megtenni, ami sok karcolást és korcsolyázási nyomot eredményezett, ahol a daráló megcsúszott - na jó, ez minden az alján amúgy - kit érdekel..?

Ezután kivágtam egy rést az egyik végén, amely megfelelő méretű ahhoz, hogy a kijelző átbújhasson. Ismét - a dobozméretre vonatkozó tippelésem hátulról megharapott, mivel a nyílás egy nagyon karcsú darabot hagyott a kijelző felett, ami elkerülhetetlenül eltört, miközben simán reszeltem. Nos, erre találták ki a szuperragasztót…

Végül, amikor az összes alkatrész nagyjából a dobozban volt elhelyezve, megmértem, hová tegyem a lyukat a fedélben, hogy a nyomógomb teste a végső rendelkezésre álló helyre essen. ÉPPEN!!!

Ezután összeforrasztottam az összes alkatrészt, hogy kipróbáljam, hogy hajlításom, csiszolásom és vágásom után is működnek -e, mielőtt összeszerelném a tokba. Láthatja az áthidaló csatlakozást közvetlenül a kijelzőmodul alatt, a 10. tűvel az Arduino -n (fehér vezeték) a Gnd -hez csatlakoztatva, így a készülék kalibrálási módba kerül. A kijelző 122 cm -t mutat a padomról - biztosan felvette az ablakkeret tetejéről visszaverődő jelet (túl alacsony ahhoz, hogy a mennyezet legyen).

Kép
Kép

Aztán a forró ragasztópisztoly előtörése és az összes alkatrész a helyére kerülése volt. Ezt követően megállapítottam, hogy a kijelző modul teteje és a fedél közötti apró rés, miután a modult a helyére ragasztották, kissé kidudorodott, ahol a fedél nem illeszkedik olyan szorosan, mint szeretném. Lehet, hogy megpróbálok tenni valamit ez ellen - vagy valószínűbb, hogy nem fogom…

Kép
Kép

8. lépés: A kész cikk

Néhány összeszerelés utáni teszt és a kódom javítása után, hogy figyelembe vegyem a fadarab mélységét, amelyhez csavartam a készüléket (amit számításaim során teljesen figyelmen kívül hagytam - d'oh !!), minden kész. Végül!

Összeszerelt tesztelés

Ha az egység csak arccal lefelé ül a padomon, nyilvánvalóan nem lesz visszavert jel, így az egység helyesen mutat hibát. Ugyanez igaz, ha a legközelebbi tükröző felület kívül esik az egység hatótávolságán.

Kép
Kép

Úgy tűnik, az asztaltól a padlóig 76 cm (nos, 72 cm plusz a fa darab 4 cm mélysége).

Kép
Kép

Az egység alsó része, amely azt mutatja, hogy az adó és a vevő túlnyúlik a fadarabon - valóban abba kellene hagynom, hogy egy fatuskónak nevezzem - ezentúl Mérőeszköz -stabilizációs és Precíziós Elhelyezés Platformként fogjuk emlegetni! Szerencsére talán ez az utolsó alkalom, hogy megemlítem;-)

Ó, ebben az összes csúnya karcolás és korcsolyázás nyomai láthatók…

Kép
Kép

… És itt van a kész tétel, normál üzemmódba helyezve, ténylegesen mérve a tartályom kapacitását 5%-os pontossággal. Egy (nagyon) esős vasárnap délután befejeztem ezt a projektet, innen az esőcseppek a készüléken, és a nagyon kellemes 90% -os olvasás.

Kép
Kép

Remélem, élvezte ezt az oktatóanyagot, és megtanult kicsit az Arduino programozásról, a fizikáról és a szonár/ultrahangos reflexió használatáról, a találgatások buktatóiról a projekttervezés során, és inspirációt kapott a saját esővíztartály -mérőórát - majd telepítsen egy esővíztartályt annak használatához, miközben egy kicsit segíti a környezetet és megtakarítja a vízszámlát.

Kérjük, olvassa el - a másnapi történésekről…!

9. lépés: Utóirat - száz (és öt) százalék?

Tehát az esős vasárnap utáni hétfőn a tank teljesen tele volt, amennyire csak lehetett. Mivel ez azon ritka alkalmak egyike, amikor valaha láttam teljesen tele, úgy gondoltam, hogy ez lenne az ideális alkalom a mérőeszköz összehasonlítására, de gondolja csak - 105%-ként regisztrált, tehát nyilvánvalóan valami baj volt.

Elővettem a nívópálcámat, és megállapítottam, hogy az eredeti feltételezésem: 140 cm, mint a maximális vízmélység, és 16 cm magasság (a tartályon kívülről készített vizuális tippek alapján) mindkettő kissé eltér a tényleges méréstől. Így a 100% -os referenciaértékem valódi adataival felvértezve tudtam módosítani a kódomat, és újratölteni az Arduino -t.

A maximális vízmélység 147 cm, a mérési pont 160 cm -nél ül, és 13 cm fejmagasságot ad (a tartály belsejében lévő fejmagasság, a tartály nyakának magassága és a darab mélysége…, nem, mi ?! Mármint a Mérőműszer -stabilizációs és precíziós elhelyezési platform mélységére gondolok!).

A maxDepth és a fejtér változóinak ennek megfelelő korrekciója, valamint a szonárobjektum maximális tartományának 160 cm -re való visszaállítása után a gyors újrapróba 100% -ot mutatott, amely 95% -ra csökkent, amikor kissé felemeltem a mérőt (hogy kis mennyiségben szimulálja a vizet használtak).

Kész a munka!

PS - ez az első kísérletem egy tanulható. Ha tetszik a stílusom, a humorérzékem, az őszinteség a hibák beismeréséhez (hé - még én sem vagyok tökéletes…), stb. - szólj, és ez lendületet adhat egy másik cselekvéshez.

10. lépés: Utógondolatok

Használható kapacitás

Tehát néhány hét telt el azóta, hogy közzétettem ezt az Instructable -t, és sok megjegyzésem volt válaszul, amelyek közül néhány alternatív mechanizmusokat javasolt - elektronikus és manuális egyaránt. De ez elgondolkodtatott, és van valami, amire valószínűleg az elején kellett volna rámutatnom.

  • A tartályomban van egy szivattyú, amely a talaj szintjén van felszerelve - valamivel a tartály alja alatt. Mivel a szivattyú a rendszer legalacsonyabb pontja, és a szivattyúból származó víz nyomás alatt van, ki tudom használni a tartályom teljes kapacitását.
  • Ettől függetlenül - ha a tartályban nincs szivattyú, és gravitációs tápellátásra támaszkodik, akkor a tartály tényleges kapacitását a csap magassága korlátozza. Ha a tartályban maradt víz alacsonyabb, mint a csap, akkor nem folyik víz.

Függetlenül attól, hogy elektronikus mérőt, kézi látóüveget vagy úszó és zászló típusú rendszert használ, ne feledje, hogy szivattyú nélkül a tartály tényleges "alapja" valójában a tartály kivezetésének magassága, ill. Koppintson a.

Ajánlott: