
Turinys:
- 1 žingsnis: matematika…
- 2 žingsnis: praktiniai dalykai
- 3 žingsnis: Ingredientai
- 4 žingsnis: išbandykite prototipą (ir kodą)
- 5 žingsnis: lietaus vandens matuoklio eskizas
- 6 veiksmas: kodo įkėlimas į „Arduino Pro Mini“(be USB)
- 7 žingsnis: Surinkimas
- 8 žingsnis: baigtas straipsnis
- 9 žingsnis: „PostScript“- šimtas (ir penki) procentai?
- 10 žingsnis: pasvarstymai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59

Jei esate kažkas panašaus į mane ir turite šiek tiek aplinkos sąžinės (arba tik skinflintas trokšta sutaupyti keletą dolerių - tai taip pat ir aš …), galite turėti lietaus vandens rezervuarą. Turiu baką, kad nuimčiau gana retą lietų, kurį gauname Australijoje - bet berniukas, vaikeli, kai čia lyja, tai tikrai lyja! Mano bakas stovi maždaug 1,5 m aukščio ir yra ant cokolio, o tai reiškia, kad turiu išeiti žingsnius, kad patikrintų vandens lygį (arba - kadangi esu toks tingus, nesaugiai balansuoju ant seno dujų baliono, esančio kepsninėje. nuolatinė gyvenamoji vieta kaip „žingsnis“šalia bako).
Norėjau kokiu nors būdu patikrinti vandens lygį bake be jokio lipimo ir viena ranka nekabinti ant kanalizacijos vamzdžio (nerimaudamas, kokie vorai gali būti už jo - girdėjai apie Australijos vorus - tiesa?) … Taigi, vėl pradėjus domėtis elektronika, o „ebay“- pigūs „Arduino“klonai iš Kinijos, nusprendžiau sukurti „valdiklį“, kad galėčiau atlikti darbą už mane.
Dabar mano „svajonių“valdiklis turėjo būti visam laikui sumontuotas rezervuare, naudoti saulės energija įkrautą maitinimo šaltinį su nuotoliniu nuskaitymu mano garaže, o gal belaidį siųstuvą naudojant „Bluetooth“, kurį galėčiau patikrinti iš savo telefono, o gal net ESP tipo įrenginys, kuriame yra automatiškai atnaujinamas tinklalapis, kad galėčiau patikrinti vandens lygį savo bake iš bet kurios pasaulio vietos internete … bet iš tikrųjų - kam man viso to reikia? Taigi aš šiek tiek (gerai, gana) susigrąžinau savo didžiausius idealus ir atsisakiau sprendimo belaidžio ryšio, nuolatinio įdiegimo, saulės įkrovimo ir galimybės patikrinti savo bako lygį iš užpakalinės pusės (visada darant prielaidą, kad užpakalinėje pusėje yra „WiFi“, tai yra …)
Gautas projektas buvo perkeltas į rankinį įrenginį, matytą aukščiau, kurį galima tiesiog laikyti virš bako angos ir įjungti paspaudus mygtuką su skaitmeniniu rodmeniu, kurį galima nuskaityti nuo žemės lygio - daug praktiškiau.
1 žingsnis: matematika…
Pasidomėjęs keliomis idėjomis, kaip nustatyti vandens lygį - nusprendžiau naudoti ultragarsinį siųstuvą/imtuvą, kaip pagrindą savo valdikliui, ir naudoju „Arduino“, kad galėčiau skaityti ir atlikti visus matematinius veiksmus. Rodmenys, gauti iš jutiklio, yra (netiesiogiai) atstumo pavidalu - nuo ultragarso jutiklio iki paviršiaus, nuo kurio jis atšoko (vandens paviršiaus - arba rezervuaro dugno, jei jis tuščias), ir vėl, todėl mums reikia tai padaryti keletą dalykų, kad būtų pasiektas procentas, likęs rezervuare.
PASTABA - iš tikrųjų iš jutiklio grąžinama vertė yra tik laikas, per kurį signalas išeina iš spinduliuotės pusės ir grįžta į imtuvą. Tai yra mikrosekundės, tačiau žinant, kad garso greitis yra 29 mikrosekundės / cm

Pirmiausia - žinoma, mes turime padalinti atstumą iš 2, kad jutiklis pasiektų paviršiaus atstumą. Tada atimkite pastovų atstumą nuo jutiklio iki maksimalaus vandens gylio. Likusi vertė yra panaudoto vandens gylis. Tada atimkite šią vertę iš maksimalaus vandens gylio, kad surastumėte rezervuare likusio vandens gylį.
Ši vertė yra pagrindas bet kokiems kitiems skaičiavimams, pvz., Apskaičiuojant šio vandens gylio procentą nuo didžiausio gylio arba padauginus gylį iš pastovaus „paviršiaus ploto“, kad būtų gautas vandens tūris, kurį galima parodyti litrais (arba galonais ar bet kokiu kitu vienetu - jei žinote, kaip tai padaryti) - paprastumo dėlei laikausi procentų).
2 žingsnis: praktiniai dalykai
Prietaisas gali būti laikomas rankoje, tačiau tai sukelia nedidelę netikslumų galimybę, jei įrenginys nelaikomas toje pačioje vietoje ir tuo pačiu kampu kiekvieną kartą. Nors tai būtų tik labai nedidelė klaida ir tikriausiai net ne tokia, kuri būtų užregistruota, tai būtų toks dalykas, kuris mane nuvylė.
Tačiau, laikant rankoje, atsiranda daug didesnė tikimybė, kad prakeiktas daiktas nukris į baką ir daugiau niekada nebus matomas. Taigi, norint sušvelninti abi šias galimybes, jis bus pritvirtintas prie medžio ilgio, kuris vėliau uždedamas virš rezervuaro angos, kad matavimas būtų atliekamas kiekvieną kartą iš to paties aukščio ir kampo (ir jei jis nukristų bakas, bent jau mediena plūdės).
Paspaudus mygtuką, įjungiamas įrenginys (taip nebereikia įjungimo/išjungimo jungiklio ir netyčia išsikrauna baterija) ir suaktyvinamas eskizas „Arduino“. Tai paima daugybę HC-SR04 rodmenų ir paima jų vidurkį (siekiant sušvelninti bet kokius neteisingus rodmenis).
Aš taip pat įtraukiau šiek tiek kodo, norėdamas patikrinti, ar nėra aukšto ar žemo vieno iš „Arduino“skaitmeninių įvesties/išvesties kaiščių, ir naudoju jį, kad įjungčiau įrenginį į vadinamąjį „kalibravimo“režimą. Šiuo režimu ekrane tiesiog rodomas faktinis atstumas (padalytas iš 2), kurį grąžina jutiklis, todėl galėčiau patikrinti jo tikslumą pagal matuoklį.
3 žingsnis: Ingredientai
Įrenginį sudaro trys pagrindiniai komponentai…

- Ultragarsinis siųstuvo-imtuvo modulis HC-SR04
- „Arduino Pro Mini“mikrovaldiklis
- 4 skaitmenų 7 segmentų LED ekranas arba ekrano „modulis“, pvz., TM1637
Visa tai, kas išdėstyta pirmiau, galima lengvai rasti „ebay“, paprasčiausiai ieškant terminų, paryškintų paryškintu šriftu.
Šioje programoje ekrane paprasčiausiai naudojami 3 skaitmenys, kad būtų rodoma % vertė nuo 0 iki 100, arba 4 skaitmenys, rodantys litrų skaičių (mano atveju ne daugiau kaip 2000), todėl bet koks 4 skaitmenų ekranas tiks - jums to nereikia nerimauti, ar modulyje yra dešimtainių taškų, ar dvitaškių. Ekrano „modulis“(šviesos diodas, sumontuotas ant pertraukos plokštės, su sąsajos mikroschema) yra lengvesnis, nes jame naudojama mažiau kaiščių jungčių, tačiau „Arduino“gali pritaikyti neapdorotą 12 ekranų LED ekraną su nedideliais kodo pakeitimais (iš tikrųjų mano originalus dizainas buvo pagrįstas šia sąranka). Tačiau atminkite, kad norint naudoti neapdorotą LED ekraną, taip pat reikia 7 rezistorių, kad būtų apribota kiekvieno segmento srovė. Atsitiktinai turėjau TM1637 laikrodžio rodymo modulį, todėl nusprendžiau jį naudoti.
Papildomi antgaliai ir bobos apima 9 V akumuliatoriaus spaustuką (ir akumuliatorių, aišku), momentinį „paspaudimo“mygtuką, projektinį langelį, antgalių kaiščius, jungiamuosius laidus ir ilgesnę nei 2 x 4 colių medieną bako angos skersmuo.
Papildomos antgaliai ir bobos (išskyrus medienos gabalą) buvo nupirktos iš mano vietinės pomėgių elektronikos parduotuvės grandinės, kuri yra Jaycar Australijoje. Manau, kad „Maplin“Jungtinėje Karalystėje būtų perspektyvi alternatyva, ir manau, kad JAV yra keletas tokių, tokių kaip „Digikey“ir „Mouser“. Bijau, kad nežinau kitų šalių, tačiau esu įsitikinęs, kad jei jūsų šalyje trūksta tinkamo parduotuvės ar internetinio tiekėjo, Kinijos „ebay“pardavėjai pasieks jus, jei to nepadarysite. nepamirškite laukti kelių savaičių pristatymo (ironiška, kad nepaisant to, kad esame viena iš artimiausių mūsų kaimynų, 6 savaitės ir daugiau nėra neįprasta pristatyti į Australiją iš Kinijos!).
Įsitikinkite, kad įsigijote pakankamai didelę projekto dėžutę - prieš turėdamas komponentų spėjau, kad mano, ir tai tikrai labai stipriai suspaudžiama - man gali prireikti nusipirkti kitokį mygtuką, kuris užima mažiau vietos.
O, beje, medienos ilgis tiesiog atsirado dėl kai kurių atraižų, kurias laikau savo garažo kampe (kaip daugiau tų mielų vorų namai).
Kai suprasite vaizdą ir funkcionalumą, galite nuspręsti pritaikyti savo versiją ir įtraukti įjungimo/išjungimo jungiklį arba naudoti 18650 ličio jonų maitinimo šaltinį su saulės skydeliu ir įkrovimo valdikliu, kad jis būtų nuolat papildomas ir paruoštas naudoti, arba pakeiskite paprastą LED ekraną į kelių eilučių skystųjų kristalų ekraną arba grafinį OLED su daugiau informacijos rodymo parinkčių, pvz., rodomas tuo pačiu metu likęs procentas IR litrų. Arba galite naudoti nuolat dainuojantį, šokantį belaidį belaidį daiktų interneto įrenginį, sumontuotą rezervuare su saulės įkrovimu. Norėčiau išgirsti apie jūsų variantus ir pakeitimus.
4 žingsnis: išbandykite prototipą (ir kodą)
Įsigijęs „HC-SR04“iš pigaus Kinijos šaltinio „ebay“, tikrai nesitikėjau gauti labai tikslaus įrenginio, todėl norėjau pirmiausia jį išbandyti ant duonos lentos, jei man reiktų pridėti tam tikrą atstumo pataisos kodą mano eskizas.
Šiuo metu aš ieškojau pagrindinės informacijos apie tai, kaip prijungti ir naudoti HC-SR04, ir turiu pripažinti „jsvester“nurodomą „Paprasta„ Arduino “ir„ HC-SR04 “pavyzdį“. Jo pavyzdys ir patirtis buvo puikus atspirties taškas, nuo kurio pradėjau koduoti.
Radau „NewPing“funkcijų biblioteką, skirtą HC-SR04, kurioje yra įmontuota funkcija, leidžianti apskaičiuoti kelių skaitymų vidurkį, taip mano kodas tampa daug paprastesnis.
Radau ir TM1637 laikrodžio rodymo modulio biblioteką, kuri žymiai supaprastino skaičių rodymą. Pradiniame kode (4 skaitmenų 7 segmentų ekrane) turėjau padalyti numerį į atskirus skaitmenis, tada ekrane sudaryti kiekvieną atskirą skaitmenį, žinodamas, kuriuos segmentus reikia apšviesti, ir tada pereiti kiekvieną numerio skaitmenį ir sudaryti tą numerį ant atitinkamo ekrano skaitmens. Šis metodas vadinamas multipleksavimu ir veiksmingai parodo tik vieną skaitmenį vienu metu, tačiau perkelia juos iš vieno skaitmens į kitą taip greitai, kad žmogaus akis to nepastebi ir suklaidina jus manydami, kad visi skaitmenys yra Tuo pačiu metu. Kaip ir HC-SR04 biblioteka, palengvinanti matavimo operacijas, ši ekranų biblioteka rūpinasi visu multipleksavimu ir skaitmenų tvarkymu. „Arduino“informaciniai puslapiai, susieti su aukščiau, pateikia keletą pavyzdžių, ir, žinoma, kiekvienoje bibliotekoje yra kodo pavyzdys, kuris gali labai padėti.


n
Taigi aukščiau esančiose nuotraukose parodytas mano bandomasis įrenginys - paprastumo dėlei aš jį išbandau savo „Arduino Uno“, nes tai jau nustatyta laikinam pakartotinai naudojamam prototipų sujungimui. Prietaisas čia veikia „kalibravimo“režimu (atkreipkite dėmesį, kad skaitmeninis kaištis 10 - balta viela - prijungtas prie žemės) ir tiksliai nuskaito 39 cm langelį, kurį atsitiktinai įdėjau priešais jį, kaip parodyta juostos matuoklyje. Šiuo režimu prieš matavimą rodau mažą „c“, tik norėdamas parodyti, kad tai nėra normalus matavimas.
Be Vcc (5v) ir įžeminimo, HC -SR04 reikia dar 2 jungčių - gaiduko (geltonas iki 6 kaiščio) ir aido (žalias iki 7 kaiščio). Ekranui taip pat reikia Vcc (5v) ir Ground, ir dar 2 jungtys - laikrodis (mėlynas iki 8 kaiščio) ir DIO (purpurinis iki 9 kaiščio). Kaip jau minėta, darbo režimą valdo didelis arba žemas 10 kaištis (baltas). Jungtyse bus naudojami tie patys kaiščiai „Arduino Pro Mini“, tačiau jie bus visam laikui lituojami. Veikimo režimą bus galima pasirinkti naudojant trumpiklį per du iš trijų antgalių kaiščių, atitinkamai prijungtų prie Vcc, 10 kaiščio ir įžeminimo.
Oficialios „HC -SR04“specifikacijos nurodo kažką panašaus į maksimalią vos 3 milimetrų paklaidą iki didžiausio suprojektuoto 4 metrų veikimo atstumo, todėl įsivaizduokite, kad nustebau sužinojęs, kad mano įrenginys tikrai buvo tokio tikslumo iki 2 metrų, o tai gerokai viršija tai, ko man reikia. Dėl ribotos erdvės greitam ir nešvariam bandymui nustatyti mano bandymo rezultatai, esantys už to atstumo, buvo sugadinti atspindžių nuo kitų paviršių nei mano bandymo taikinys, nes siųstuvo spindulys pasklido ir užėmė platesnę sritį. Bet kol bus gerai iki 1,5 metro - tai man bus gerai, ačiū:-)
5 žingsnis: lietaus vandens matuoklio eskizas
Visas kodas pridedamas, tačiau žemiau pateiksiu keletą ištraukų, paaiškinančių kai kuriuos veiksmus.
Visų pirma, sąranka…
#įtraukti
#include #include // kaiščiai HC-SR04 #define pinTrig 6 #define pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // 400 cm yra maksimumas HC-SR04, 155 cm-maks. Bakui // LED modulio prijungimo kaiščiai (skaitmeniniai kaiščiai) #define CLK 8 #define DIO 9 TM1637Display display (CLK, DIO); // Kiti smeigtukai #define opMode 10
Be TM1637 ir „NewPing“bibliotekų, aš taip pat įtraukiau matematikos biblioteką, kuri suteikia man prieigą prie „apvalinimo“funkcijos. Aš naudoju tai kai kuriose matematikos programose, kad, pavyzdžiui, galėčiau parodyti procentą 5% tikslumu.
Toliau apibrėžiami dviejų įrenginių kaiščiai ir paleidžiami įrenginiai.
Galiausiai aš apibrėžiu 10 veikimo režimo kaištį.
// išjungti visus segmentus visiems skaitmenims
uint8_t baitai = {0x00, 0x00, 0x00, 0x00}; display.setSegments (baitai);
Šiame kodo skyriuje parodytas vienas ekrano valdymo modulio valdymo būdas, leidžiantis individualiai valdyti kiekvieną kiekvieno skaitmens segmentą. Aš nustatiau 4 masyvo elementus, vadinamus baitais, į nulį. Tai reiškia, kad kiekvienas kiekvieno baito bitas yra lygus nuliui. 8 bitai naudojami valdyti kiekvieną iš 7 segmentų ir dešimtainį tašką (arba dvitaškį laikrodžio tipo ekrane). Taigi, jei visi bitai yra nuliniai, tada nė vienas segmentas nebus apšviestas. Operacija „setSegments“siunčia masyvo turinį į ekraną ir nerodo (šiuo atveju) nieko. Visi segmentai išjungti.

Svarbiausias baito bitas valdo DP, o likę 7 bitai - 7 segmentus nuo G iki A atvirkštine tvarka. Pavyzdžiui, norint parodyti skaičių 1, reikalingi B ir C segmentai, todėl dvejetainis atvaizdavimas būtų „0b00000110“. (Ačiū „CircuitsToday.com“už paveikslėlį aukščiau).
// Paimkite 10 rodmenų ir naudokite vidutinę trukmę.
int trukmė = sonar.ping_median (10); // trukmė yra mikrosekundėmis, jei (trukmė == 0) // Matavimo klaida - neįtikinama arba nėra aido {uint8_t baitai = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Segmentai rašyti "Err" display.setSegments (baitai); }
Čia aš liepiu HC-SR04 atlikti 10 rodmenų ir pateikti vidutinį rezultatą. Jei vertė negrąžinama, vienetas yra už diapazono ribų. Tada aš naudoju tą pačią techniką, kaip aprašyta aukščiau, kad valdyčiau konkrečius 4 skaitmenų segmentus, rašyčiau raides (tuščias), E, r ir r. Naudojant dvejetainį žymėjimą, šiek tiek lengviau susieti atskirus bitus su segmentais.
6 veiksmas: kodo įkėlimas į „Arduino Pro Mini“(be USB)
Kaip jau sakiau anksčiau, prekės iš Kinijos „ebay“pardavėjų dažnai atkeliauja per 6 ar daugiau savaičių, o daug mano prototipų kūrimo ir kodo rašymo buvo padaryta laukiant, kol atvyks kai kurie komponentai - „Arduino Pro Mini“yra vienas iš jų.
Vienas dalykas, kurio nepastebėjau apie „Pro Mini“, kol jo jau neužsakiau, yra tai, kad jame nėra USB prievado eskizui atsisiųsti. Taigi, po siautulingo googlinimo, sužinojau, kad šiuo atveju yra du būdai įkelti eskizą - vienam reikia specialaus kabelio, einančio iš kompiuterio USB, iki 6 konkrečių „Pro Mini“kaiščių. Ši 6 kaiščių grupė yra žinoma kaip ISP (sistemos programuotojo) smeigtukai, ir jūs iš tikrųjų galite naudoti šį metodą bet kuriame „Arduino“, jei norite, bet kadangi USB sąsaja yra prieinama beveik visuose kituose „Arduino“variantuose (I pagalvokite), naudojant šią parinktį yra daug paprasčiau. Kitas metodas reikalauja, kad turėtumėte kitą „Arduino“su USB sąsaja, kad galėtumėte veikti kaip „tarpininkas“.
Laimei, turėdamas „Arduino Uno“reiškiau, kad galėjau naudoti antrąjį metodą, kurį aprašysiu žemiau. Jis vadinamas naudojant „Arduino kaip IPT“. Trumpai tariant, į „tarpinį“„Arduino“įkeliate specialų eskizą, kuris paverčia jį serijine sąsaja. Tada įkelkite savo eskizą, bet vietoj įprastos įkėlimo parinkties naudojate parinktį iš IDE meniu, kuri įkeliama „naudojant„ Arduino “kaip IPT“. Tada „tarpinis“„Arduino“paima jūsų eskizą iš IDE ir perduoda jį „Pro Mini“IPT kaiščiams, o ne įkelia jį į savo atmintį. Supratus, kaip tai veikia, nėra sunku, tačiau tai yra papildomas sudėtingumo sluoksnis, kurio galbūt norėsite išvengti. Jei taip yra, arba neturite kito „Arduino“, kurį galėtumėte naudoti kaip „tarpinį“, tuomet galbūt norėsite nusipirkti „Arduino Nano“arba vieną iš kitų mažų formų modelių, kuriuose yra USB sąsaja ir programavimas tampa paprastesne perspektyva.
Štai keletas šaltinių, kurie jums gali padėti suprasti procesą. „Arduino Reference“konkrečiai nurodo naujo įkrovos įkėlimo į tikslinį įrenginį įrašymą, tačiau eskizą galite įkelti taip pat lengvai. Radau, kad Juliano Ilett vaizdo įrašas daro šią sąvoką daug aiškesnę, nors jis praleidžia „Arduino“nuorodos dalį, kurioje paaiškinama, kaip sujungti abu „Arduino“, ir vietoj to užprogramuoja duoną ant duonos lentos.
- „Arduino“informacinis vadovas - „Arduino“kaip IPT naudojimas
- Juliano Ilett „YouTube“vaizdo įrašas - „Arduino“naudojimas kaip IPT
Kadangi „Pro Mini“nėra patogiai sugrupuotų 6 IPT kaiščių, turite iššifruoti, kuris iš skaitmeninių kaiščių yra susijęs su 4 programavimo kaiščiais (kitos dvi jungtys yra tik „Vcc“ir „Gnd“, taigi yra gana nesudėtingos). Jūsų laimei, aš tai jau patyriau ir noriu pasidalinti žiniomis su jumis - koks aš dosnus žmogus !!
„Arduino Uno“ir daugelis kitų „Arduino“šeimos 6 kaiščiai yra lengvai išdėstyti 3x2 bloke, kaip šis (vaizdas iš www.arduino.cc).

Deja, „Pro Mini“to nedaro. Kaip matote žemiau, juos iš tikrųjų gana lengva atpažinti ir jie vis dar yra suskirstyti į 2 blokus po 3 kaiščius. „MOSI“, „MISO“ir „SCK“yra tokie patys kaip skaitmeniniai kaiščiai 11, 12 ir 13 „Pro Mini“ir „Arduino Uno“, o ISP programavimui tiesiog prijunkite 11–11, 12–12 ir 13–13. „Mini“atstatymo kaištis turi būti prijungtas prie „Uno“kaiščio 10, o „Pro Mini“Vcc (5v)/įžeminimas - prie „Arduino +5v/Ground“. (Nuotrauka iš www.arduino.cc)

7 žingsnis: Surinkimas

Kaip jau minėjau, ėmiau puntą į bylą ir apgailestauju. Sudėti visus komponentus buvo tikras suspaudimas. Tiesą sakant, aš turėjau išlenkti mygtuko kontaktus į šoną ir uždėti pakuotę iš išorės, kad ją šiek tiek pakeltumėte, kad ji tilptų į dėžutės gylį, ir aš turėjau šlifuoti 2-3 mm nuo kiekvienos pusės. ekrano modulio plokštę, kad ji taip pat tilptų.
Korpuse išgręžiau 2 skyles, kad ultragarso jutikliai galėtų įsmeigti. Aš išgręžiau skyles šiek tiek per mažas, o po to palaipsniui jas padidinau, naudodamas mažą sukamąjį šlifuoklį, kad galėčiau pasiekti, kad jos būtų gražios „stumdomos“. Deja, jie buvo per arti šonų, kad būtų galima naudoti šlifuoklį iš dėžutės vidaus, ir tai turėjo būti padaryta iš išorės, todėl atsirado daug įbrėžimų ir čiuožimo žymių, kur malūnėlis paslydo - o gerai, viskas apačioje šiaip - kam tai rūpi..?
Tada aš išpjoviau lizdą viename gale, kuris yra tinkamo dydžio ekranui pradurti. Vėlgi - mano spėjimas dėl dėžutės dydžio man įkando gale, nes lizdas paliko labai ploną gabalėlį virš ekrano, kuris neišvengiamai sulūžo, kol aš jį sklandžiai padaviau. Na, šiam tikslui buvo išrasti superklijai …
Galiausiai, kai visi komponentai buvo maždaug išdėstyti dėžutėje, aš išmatavau, kur įdėti skylę dangtelyje, kad mygtuko korpusas patektų į galutinę laisvą vietą. TIK !!!
Be to, aš sujungiau visus komponentus, kad išbandyčiau, ar jie vis dar veikia po mano lenkimo, šlifavimo ir kirpimo, prieš surinkdami juos į dėklą. Galite pamatyti jungiamąjį jungtį tiesiai po ekrano moduliu, o „Arduino“(baltas laidas) 10 kaištis prijungtas prie „Gnd“, todėl įrenginys įjungiamas į kalibravimo režimą. Ekranas rodo 122 cm aukštį nuo mano suolo - jis tikriausiai priėmė signalą, atsispindintį nuo lango rėmo viršaus (jis per žemas, kad būtų lubos).

Tada buvo išmuštas karštas klijų pistoletas ir visi komponentai pritvirtinti prie batų. Tai padaręs, pastebėjau, kad nedidelis tarpas tarp ekrano modulio viršaus ir dangčio, kai modulis buvo priklijuotas, paliko šiek tiek iškilimų, kai dangtelis ne taip tvirtai telpa, kaip norėčiau. Galbūt vieną dieną pabandysiu ką nors padaryti - arba labiau tikėtina, kad to nepadarysiu …

8 žingsnis: baigtas straipsnis
Po kelių bandymų po surinkimo ir mano kodo pataisymo, kad būtų atsižvelgta į medžio gabalo gylį, prie kurio priveržiau įrenginį (į kurį visiškai neatsižvelgiau skaičiuodama - d'oh !!), viskas padaryta. Pagaliau!
Surinktas bandymas
Kai įrenginys tiesiog sėdi veidu į mano suolą, akivaizdu, kad nebus atspindėto signalo, todėl įrenginys teisingai parodo klaidos būseną. Tas pats pasakytina, jei artimiausias atspindintis paviršius yra už prietaiso diapazono ribų.

Atrodo, kad nuo mano stalo iki grindų yra 76 cm (gerai, 72 cm plius 4 cm medžio gabalo gylis).

Apatinė įrenginio pusė, rodanti, kad siųstuvas ir imtuvas pakyla ant medžio gabalo - tikrai turėčiau nustoti jį vadinti medžio gabalu - nuo šiol ji bus vadinama matuoklio stabilizavimo ir tikslaus išdėstymo platforma! Laimei, tai turbūt paskutinis kartas, kai tai paminėsiu;-)
Oho - čia galite pamatyti visus tuos bjaurius įbrėžimus ir čiuožimo žymes …

… ir štai baigtas daiktas, įjungtas įprastu darbo režimu, iš tikrųjų matuoja mano bako talpą 5%tikslumu. Tai buvo (labai) lietinga sekmadienio popietė, kai baigiau šį projektą, taigi lietaus lašai ant įrenginio ir labai malonus 90% skaitymas.

Tikiuosi, kad jums patiko skaityti šią pamokomą medžiagą ir šiek tiek sužinojote apie „Arduino“programavimą, fiziką ir sonaro/ultragarsinio atspindžio naudojimą, spėlionių panaudojimo planuojant projektą spąstus ir įkvėpėte savo lietaus vandens rezervuaro matuoklį - tada sumontuokite lietaus vandens rezervuarą, kad galėtumėte jį naudoti, šiek tiek padėdami aplinkai ir sutaupydami vandens sąskaitą.
Prašome perskaityti - kas nutiko kitą dieną …!
9 žingsnis: „PostScript“- šimtas (ir penki) procentai?
Taigi pirmadienį po lietingo sekmadienio bakas buvo visiškai pilnas, koks tik galėjo būti. Kadangi tai yra vienas iš nedaugelio kartų, kai aš jį mačiau visiškai pilną, aš maniau, kad būtų tinkamiausias laikas matuoklio etalonui, bet atspėkite - jis užregistruotas kaip 105%, todėl akivaizdžiai kažkas negerai.
Išsitraukiau matuoklį ir sužinojau, kad mano pradinės prielaidos - 140 cm kaip didžiausias vandens gylis ir 16 cm aukštis (remiantis vizualiomis prielaidomis, padarytomis iš rezervuaro išorės), buvo šiek tiek nukrypusios nuo faktinių matavimų. Taigi, apsiginklavęs tikrais savo 100% etalono duomenimis, galėjau pataisyti savo kodą ir iš naujo įkelti „Arduino“.
Didžiausias vandens gylis yra 147 cm, o matavimo taškas yra 160 cm, o tai suteikia 13 cm aukščio galvai (galvos aukščio suma bake, bako kaklo aukštis ir gabalo gylis), ne, ką ?! Turiu omenyje matuoklio stabilizavimo ir tikslaus išdėstymo platformos gylį!).
Atitinkamai ištaisius maxDepth ir galvos aukščio kintamuosius, taip pat iš naujo nustačius maksimalų sonaro objekto diapazoną į 160 cm, greitas pakartotinis tyrimas parodė, kad 100% sumažėjo iki 95%, kai šiek tiek pakėliau matuoklį (kad būtų imituotas nedidelis naudojamas vanduo).
Darbas atliktas!
PS - tai pirmas mano bandymas pamokyti. Jei jums patinka mano stilius, humoro jausmas, sąžiningumas pripažįstant klaidas (ei, net aš nesu tobulas …) ir tt - praneškite man, ir tai gali paskatinti mane padaryti kitą.
10 žingsnis: pasvarstymai
Naudojama talpa
Taigi jau praėjo kelios savaitės nuo tada, kai paskelbiau šį „Instructable“, ir atsakydamas turėjau daug pastabų, iš kurių kai kurios pasiūlė alternatyvius mechanizmus - tiek elektroninius, tiek rankinius. Bet tai privertė mane susimąstyti ir turbūt turėjau iš pradžių atkreipti dėmesį į kažką.
- Mano bakas turi siurblį, kuris sumontuotas žemės lygyje - šiek tiek žemiau bako pagrindo. Kadangi siurblys yra žemiausias sistemos taškas, o vanduo iš siurblio yra spaudžiamas, galiu naudoti visą savo bako talpą.
- TAČIAU - jei jūsų rezervuare nėra siurblio ir jis priklauso nuo gravitacinio tiekimo, tuomet efektyvią bako talpą riboja jūsų čiaupo aukštis. Kai rezervuare likęs vanduo bus žemesnis už čiaupą, vanduo nebebus tekėjęs.
Taigi, nepriklausomai nuo to, ar naudojate elektroninį matuoklį, ar rankinį matymo stiklą, ar plūdės ir vėliavos tipo sistemą, tiesiog žinokite, kad be siurblio efektyvi jūsų bako „bazė“iš tikrųjų yra bako išleidimo angos aukštis arba bakstelėkite.
Rekomenduojamas:
Lietaus detektorius naudojant „Arduino“ir lietaus lašo jutiklį: 8 žingsniai

Lietaus detektorius naudojant „Arduino“ir lietaus lašo jutiklį: Šioje pamokoje sužinosime, kaip aptikti lietų naudojant lietaus jutiklį ir išgirsti garsą naudojant garso signalą ir OLED ekraną bei „Visuino“. Žiūrėkite vaizdo įrašą
Realaus laiko šulinio vandens temperatūra, laidumas ir vandens lygio matuoklis: 6 žingsniai (su nuotraukomis)

Realaus laiko šulinio vandens temperatūros, laidumo ir vandens lygio matuoklis: šiose instrukcijose aprašoma, kaip sukurti nebrangų, realaus laiko vandens skaitiklį, skirtą stebėti temperatūrą, elektros laidumą (EC) ir vandens lygį iškastuose šuliniuose. Skaitiklis skirtas pakabinti iškasto šulinio viduje, matuoti vandens temperatūrą, EB ir
Ultragarsinis lietaus matuoklis: Raspebbery Pi atvira oro stotis: 1 dalis: 6 žingsniai

Ultragarsinis lietaus matuoklis: „Raspebbery Pi“Atvira orų stotis: 1 dalis. Komercinis IoT (daiktų internetas) orų stotys yra brangios ir nėra prieinamos visur (kaip Pietų Afrikoje). Ekstremalios oro sąlygos mus užklumpa. SA išgyvena sunkiausią sausrą per kelis dešimtmečius, žemė įkaista ir ūkininkauja
„Arduino Nano“talpos matuoklis: 8 žingsniai (su nuotraukomis)

„Arduino Nano“talpos matuoklis: Šis projektas yra praktiškai trys komponentai, nes jis sudarytas iš 16x2 LCD ekrano, 10K potenciometro ir „Arduino Nano“, o likusios dalys yra PCB, sukurtos naudojant „EasyEda“programinę įrangą, 1 X 40 HEADER, 0,1 "; SPACING ir 1x6 FEMAL
Lietaus vandens šliuzas: 11 žingsnių (su nuotraukomis)

Lietaus vandens šliuzas: Stipri liūtis gali sukelti perpildymą virš mūsų: šaligatvių, lietaus vandens šulinių, polderių ir mūsų pylimų. Kad taip neatsitiktų, mes išradome lietaus vandens šliuzą! Lietaus vandens šliuzas skaitmeniniu būdu apskaičiuoja atstumą tarp lietaus vandens