Indholdsfortegnelse:

Ultralydstankmåler: 5 trin (med billeder)
Ultralydstankmåler: 5 trin (med billeder)

Video: Ultralydstankmåler: 5 trin (med billeder)

Video: Ultralydstankmåler: 5 trin (med billeder)
Video: Squid game #shorts 2024, Juli
Anonim
Ultralydstankmåler
Ultralydstankmåler
Ultralydstankmåler
Ultralydstankmåler

Har du brug for at overvåge væskeniveauet i en brønd med stor diameter, en tank eller en åben beholder? Denne vejledning viser dig, hvordan du laver en sonar-kontaktfri væskeniveaumåler ved hjælp af billig elektronik!

Ovenstående skitse viser en oversigt over, hvad vi sigtede efter med dette projekt. Vores sommerhus har en brønd med stor diameter til at levere drikkevand til brug i huset. En dag talte min bror og jeg om, hvordan vores bedstefar plejede at måle vandstanden manuelt for at holde styr på vandforbruget og tilstrømningen hele sommeren for at undgå kassekredit. Vi troede, at vi med moderne elektronik skulle være i stand til at genoplive traditionen, men med mindre manuelt arbejde involveret. Med et par programmeringstricks lykkedes det os at bruge en Arduino med et ekkolodsmodul til at måle afstanden ned til vandoverfladen (l) med rimelig pålidelighed og en nøjagtighed på ± et par millimeter. Dette betød, at vi kunne estimere det resterende volumen V ved hjælp af den kendte diameter D og dybde L med en ± 1 liter nøjagtighed.

Fordi brønden ligger cirka 25 m fra huset, og vi ville have displayet indendørs, valgte vi at bruge to Arduinos med et datalink imellem. Du kan nemt ændre projektet til kun at bruge en Arduino, hvis dette ikke er tilfældet for dig. Hvorfor ikke bruge trådløs dataoverførsel? Dels på grund af enkelhed og robusthed (ledningen er mindre tilbøjelig til at blive beskadiget af fugt) og dels fordi vi ville undgå at bruge batterier på sensorsiden. Med en ledning kunne vi føre både dataoverførsel og strøm gennem det samme kabel.

1) Arduino -modul i huset Dette er det vigtigste Arduino -modul. Det sender et udløsersignal til Arduino i brønden, modtager den målte afstand og viser den beregnede resterende vandmængde på et display.

2) Brøndside Arduino og ekkolodsmodul Formålet med denne Arduino er simpelthen at modtage et triggersignal fra huset, udføre en måling og sende afstanden fra ekkolodsmodulet tilbage til vandstanden. Elektronikken er indbygget i en (relativt lufttæt) boks med et plastrør fastgjort til modtagersiden af ekkolodsmodulet. Formålet med røret er at reducere målefejl ved at reducere synsfeltet, så kun vandoverfladen "ses" af modtageren.

Trin 1: Dele, test og programmering

Dele, test og programmering
Dele, test og programmering
Dele, test og programmering
Dele, test og programmering
Dele, test og programmering
Dele, test og programmering

Vi brugte følgende dele i dette projekt:

  • 2 x Arduino (en til måling af væskeniveau, en til at vise resultaterne på et display)
  • En grundlæggende 12V strømforsyning
  • Ultralyd (ekkolod) modul HC-SR04
  • LED display modul MAX7219
  • 25 m telefonkabel (4 ledninger: Strøm, jord og 2 datasignaler)
  • Monteringsboks
  • Varm lim
  • Lodde

Dele koster: Ca. 70 €

For at sikre, at alt fungerede som det skulle, lavede vi først lodning, ledninger og simpel bænktest. Der er masser af eksempler på programmer til ultralydssensoren og LED-modulet online, så vi brugte dem bare til at sikre, at den målte afstand gav mening (billede 1), og at vi var i stand til at fange ultralydsrefleksionen fra vandoverfladen på- websted (billede 2). Vi lavede også en grundig test af datalinket for at sikre, at det nogensinde fungerer over lange afstande, hvilket overhovedet ikke viste sig at være noget problem.

Undervurder ikke den tid, du har brugt på dette trin, da det er vigtigt at vide, at systemet fungerer, før du gør en indsats for at montere alt pænt i kasser, grave ned kabler osv.

Under testen indså vi, at ekkolodsmodulet nogle gange opfanger en lydreflektion fra andre dele af brønden, f.eks. Sidevæggene og vandforsyningsrøret, og ikke vandoverfladen. Det betød, at den målte afstand pludselig ville være meget kortere end den faktiske afstand til vandstanden. Da vi ikke bare kan bruge gennemsnit til at udjævne denne type målefejl, besluttede vi at kassere alle nye målte afstande, der var for forskellige fra det aktuelle afstandsestimat. Dette er ikke problematisk, da vi alligevel forventer, at vandstanden vil ændre sig ret langsomt. Ved opstart foretager dette modul en række målinger og vælger den største modtagne værdi (dvs. det laveste vandniveau) som det mest sandsynlige udgangspunkt. Ud over beslutningen om "behold/kassér" bruges der derefter en delvis opdatering af det estimerede niveau til at udjævne tilfældige målefejl. Det er også vigtigt at give alle ekkoer mulighed for at dø ud, før der foretages en ny måling - i hvert fald i vores tilfælde, hvor væggene er lavet af beton og derfor meget ekko -y.

Den sidste version af koden, vi brugte til de to Arduinos, kan findes her:

github.com/kelindqv/arduinoUltrasonicTank

Trin 2: Anlægsarbejde

Civilt arbejde
Civilt arbejde

Da vores brønd var placeret i en afstand fra huset, var vi nødt til at oprette en lille skyttegrav i græsplænen, som vi skulle sætte kablet i.

Trin 3: Tilslutning og montering af alle komponenter

Tilslutning og montering af alle komponenter
Tilslutning og montering af alle komponenter
Tilslutning og montering af alle komponenter
Tilslutning og montering af alle komponenter
Tilslutning og montering af alle komponenter
Tilslutning og montering af alle komponenter

Tilslut alt, som det var under testen, og håb, at det stadig virker! Husk at kontrollere, at TX -pin på den ene Arduino går til RX i den anden, og omvendt. Som vist på billede 1 brugte vi telefonkablet til at levere strøm til Arduino i brønden for at undgå at bruge batterier.

Det andet og tredje billede viser plastrørarrangementet, hvor senderen er placeret uden for røret og modtageren placeret indeni (ja, dette var en ubehagelig skydestilling …)

Trin 4: Kalibrering

Efter at have sørget for, at afstanden fra sensoren til vandstanden er beregnet korrekt, var kalibrering bare et spørgsmål om at måle brøndens diameter og den samlede dybde, så væskemængden kan beregnes. Vi justerede også algoritmeparametrene (tid mellem målinger, parametrene for delvise opdateringer, antallet af indledende målinger) for at give en robust og præcis måling.

Så hvor godt følte sensoren væskeniveauet?

Vi kunne let se en effekt af at skylle hanen i et par minutter eller skylle toilettet, hvilket er det, vi ønskede. Vi kunne endda se, at brønden var ved at blive genopfyldt med en relativt forudsigelig hastighed natten over - alt sammen med et enkelt blik på displayet. Succes!

Bemærk:- Tidsafstandskonverteringen korrigerer i øjeblikket ikke for ændringer i lydhastighed på grund af temperaturvariationer. Dette kan være en god fremtidig tilføjelse, da temperaturerne i brønden vil variere en del!

Trin 5: Langtidsbrug

1 års opdatering: Sensoren fungerer fejlfrit uden tegn på korrosion eller skade på trods af det fugtige miljø! Det eneste problem i løbet af året har været, at der ophobes kondens på sensoren i koldt vejr (om vinteren), hvilket naturligvis blokerer sensoren. Dette er ikke et problem i vores tilfælde, da vi kun har brug for aflæsninger om sommeren, men andre brugere skal muligvis blive kreative!:) Isolering eller ventilation er sandsynligvis mulige løsninger. Glad for at opfinde!

Anbefalede: