Kazalo:

Ultrazvočni merilnik nivoja rezervoarja: 5 korakov (s slikami)
Ultrazvočni merilnik nivoja rezervoarja: 5 korakov (s slikami)

Video: Ultrazvočni merilnik nivoja rezervoarja: 5 korakov (s slikami)

Video: Ultrazvočni merilnik nivoja rezervoarja: 5 korakov (s slikami)
Video: Merilnik nivoja vode 2024, November
Anonim
Ultrazvočni merilnik nivoja rezervoarja
Ultrazvočni merilnik nivoja rezervoarja
Ultrazvočni merilnik nivoja rezervoarja
Ultrazvočni merilnik nivoja rezervoarja

Ali morate spremljati nivo tekočine v vrtini velikega premera, rezervoarju ali odprti posodi? Ta priročnik vam bo pokazal, kako narediti sonarni brezkontaktni merilnik nivoja tekočine z uporabo poceni elektronike!

Zgornja skica prikazuje pregled, kaj smo s tem projektom želeli. Naša poletna koča ima vodnjak velikega premera za oskrbo s pitno vodo za uporabo v hiši. Nekega dne sva se z bratom pogovarjala o tem, kako je naš dedek ročno meril vodno gladino, da bi spremljal porabo in priliv vode poleti, da bi se izognil prekoračitvi. Mislili smo, da bi morali s sodobno elektroniko oživiti tradicijo, vendar z manj ročnega dela. Z nekaj programskimi triki nam je uspelo uporabiti Arduino s sonarnim modulom za merjenje razdalje do vodne površine (l) z razumno zanesljivostjo in natančnostjo ± nekaj milimetrov. To je pomenilo, da lahko z znanim premerom D in globino L ocenimo preostali volumen V z natančnostjo približno ± 1 liter.

Ker se vodnjak nahaja približno 25 m od hiše in smo želeli zaslon v zaprtih prostorih, smo se odločili za uporabo dveh Arduino s podatkovno povezavo vmes. Če temu ni tako, lahko projekt preprosto spremenite tako, da uporablja samo en Arduino. Zakaj ne bi uporabili brezžičnega prenosa podatkov? Delno zaradi preprostosti in robustnosti (žica je manj verjetno poškodovana zaradi vlage), deloma pa zato, ker smo se želeli izogniti uporabi baterij na strani senzorja. Z žico bi lahko prek istega kabla napeljali tako prenos podatkov kot napajanje.

1) Arduino modul v hiši To je glavni Arduino modul. Pošiljal bo sprožilni signal v Arduino v vrtini, sprejel izmerjeno razdaljo in na zaslonu prikazal izračunano preostalo količino vode.

2) Arduino in sonarni modul na strani vodnjaka Namen tega Arduina je preprosto sprejeti sprožilni signal od hiše, izvesti meritev in poslati razdaljo od modula sonarja do vodostaja. Elektronika je vgrajena v (relativno nepredušno zaprto) škatlo s plastično cevjo, pritrjeno na sprejemno stran modula sonarja. Namen cevi je zmanjšati merilne napake z zmanjšanjem vidnega polja, tako da sprejemnik "vidi" le vodno površino.

1. korak: Deli, testiranje in programiranje

Deli, testiranje in programiranje
Deli, testiranje in programiranje
Deli, testiranje in programiranje
Deli, testiranje in programiranje
Deli, testiranje in programiranje
Deli, testiranje in programiranje

V tem projektu smo uporabili naslednje dele:

  • 2 x Arduino (eden za merjenje nivoja tekočine, eden za prikaz rezultatov na zaslonu)
  • Osnovni 12V napajalnik
  • Ultrazvočni (sonarni) modul HC-SR04
  • LED prikazovalni modul MAX7219
  • 25 m telefonski kabel (4 žice: napajalni, ozemljitveni in 2 podatkovna signala)
  • Montažna škatla
  • Vroče lepilo
  • Spajkanje

Cena delov: približno 70 €

Da bi zagotovili, da je vse delovalo tako, kot mora, smo najprej opravili spajkanje, ožičenje in preprosto testiranje na klopi. Na spletu je na voljo veliko primerov programov za ultrazvočni senzor in LED modul, zato smo jih le uporabili za zagotovitev, da je izmerjena razdalja smiselna (slika 1) in da smo lahko ujeli ultrazvočni odsev od vodne površine na spletno mesto (slika 2). Opravili smo tudi temeljito testiranje podatkovne povezave, da bi se prepričali, ali deluje na dolge razdalje, kar pa se ni izkazalo za nikakršen problem.

Ne podcenjujte časa, porabljenega za ta korak, saj je ključnega pomena vedeti, da sistem deluje, preden se potrudite, da vse lepo namestite v škatle, izkopate kable itd.

Med preskušanjem smo ugotovili, da sonarni modul včasih pobere zvočni odsev z drugih delov vodnjaka, na primer s stranskih sten in cevi za oskrbo z vodo, in ne z vodne površine. To je pomenilo, da bi bila izmerjena razdalja nenadoma veliko krajša od dejanske razdalje do gladine vode. Ker ne moremo preprosto uporabiti povprečja za izravnavo te vrste merilne napake, smo se odločili, da zavržemo vse nove izmerjene razdalje, ki so bile preveč različne od trenutne ocene razdalje. To ni problematično, saj pričakujemo, da se bo gladina vode vseeno precej počasi spreminjala. Ob zagonu bo ta modul naredil vrsto meritev in za najverjetnejše izhodišče izbral največjo prejeto vrednost (t.j. najnižji vodostaj). Po tem se poleg odločitve »obdrži/zavrzi« uporablja delna posodobitev ocenjene ravni za izravnavo naključnih napak pri merjenju. Pomembno je tudi dovoliti, da vsi odmevi izginejo, preden izvedete novo meritev - vsaj v našem primeru, ko so stene iz betona in zato zelo odmevne.

Končno različico kode, ki smo jo uporabili za dva Arduina, najdete tukaj:

github.com/kelindqv/arduinoUltrasonicTank

2. korak: Gradbena dela

Javna dela
Javna dela

Ker je bil naš vodnjak oddaljen od hiše, smo morali na travniku ustvariti majhen jarek, v katerega smo postavili kabel.

3. korak: Priključitev in namestitev vseh komponent

Priključitev in namestitev vseh komponent
Priključitev in namestitev vseh komponent
Priključitev in namestitev vseh komponent
Priključitev in namestitev vseh komponent
Priključitev in namestitev vseh komponent
Priključitev in namestitev vseh komponent

Povežite vse, kot je bilo med testiranjem, in upam, da še vedno deluje! Ne pozabite preveriti, ali pin TX na enem Arduinu gre na RX drugega in obratno. Kot je prikazano na sliki 1, smo za napajanje Arduina v vrtini uporabili telefonski kabel, da se izognemo uporabi baterij.

Druga in tretja slika prikazuje plastično razporeditev cevi z oddajnikom zunaj cevi, sprejemnik pa znotraj (ja, to je bil neprijeten položaj za streljanje …)

4. korak: Umerjanje

Ko smo se prepričali, da je razdalja od senzorja do nivoja vode pravilno izračunana, je bila kalibracija le merjenje premera vrtine in celotne globine, tako da je mogoče izračunati prostornino tekočine. Prilagodili smo tudi parametre algoritma (čas med meritvami, parametre delne posodobitve, število začetnih meritev), da dobimo robustno in natančno meritev.

Kako dobro je torej senzor spremljal nivo tekočine?

Z lahkoto smo opazili učinek izpiranja pipe za nekaj minut ali splakovanja stranišča, kar smo želeli. Videli smo celo, da se je vrtina čez noč napolnila s sorazmerno predvidljivo hitrostjo - vse to le s pogledom na zaslon. Uspeh!

Opomba:- Pretvorba časovne razdalje trenutno ne popravlja sprememb hitrosti zvoka zaradi temperaturnih nihanj. To bi lahko bil lep dodatek v prihodnosti, saj se bodo temperature v vrtini precej razlikovale!

5. korak: Dolgotrajna uporaba

1 -letna posodobitev: Senzor deluje brezhibno brez znakov korozije ali poškodb kljub vlažnemu okolju! Edina težava med letom je, da se v hladnem vremenu (pozimi) na senzorju nabira kondenz, ki očitno blokira senzor. V našem primeru to ni problem, saj odčitke potrebujemo le poleti, drugi uporabniki pa bodo morda morali biti ustvarjalni!:) Izolacija ali prezračevanje sta verjetno izvedljivi rešitvi. Veselo izumljanje!

Priporočena: