Innehållsförteckning:

Nivåmätare för ultraljud: 5 steg (med bilder)
Nivåmätare för ultraljud: 5 steg (med bilder)

Video: Nivåmätare för ultraljud: 5 steg (med bilder)

Video: Nivåmätare för ultraljud: 5 steg (med bilder)
Video: SMC | LFE - Elektromagnetisk digital flödesvakt 2024, November
Anonim
Nivåmätare för ultraljud
Nivåmätare för ultraljud
Nivåmätare för ultraljud
Nivåmätare för ultraljud

Behöver du övervaka vätskenivån i en brunn med stor diameter, en tank eller en öppen behållare? Den här guiden visar dig hur du gör en ekolodsfri kontaktnivåmätare med billig elektronik!

Skissen ovan visar en översikt över vad vi siktade på med detta projekt. Vår sommarstuga har en brunn med stor diameter för att leverera dricksvatten för användning i huset. En dag pratade min bror och jag om hur vår farfar brukade mäta vattennivån manuellt för att hålla koll på vattenförbrukningen och tillströmningen under hela sommaren för att undvika kassakredit. Vi trodde att med modern elektronik borde vi kunna återuppliva traditionen, men med mindre manuellt arbete inblandat. Med några programmeringstrick lyckades vi använda en Arduino med en ekolodsmodul för att mäta avståndet ner till vattenytan (l) med rimlig tillförlitlighet och en noggrannhet på ± några millimeter. Detta innebar att vi kunde uppskatta den återstående volymen V med hjälp av den kända diametern D och djupet L med ungefär ± 1 liters noggrannhet.

Eftersom brunnen ligger cirka 25 meter från huset och vi ville ha displayen inomhus valde vi att använda två Arduinos med en datalänk däremellan. Du kan enkelt ändra projektet för att använda bara en Arduino om detta inte är fallet för dig. Varför inte använda trådlös dataöverföring? Dels på grund av enkelhet och robusthet (det är mindre troligt att tråden skadas av fukt) och dels för att vi ville undvika att använda batterier på givarsidan. Med en kabel kunde vi leda både dataöverföring och ström via samma kabel.

1) Arduino -modul i husetDetta är den huvudsakliga Arduino -modulen. Den kommer att skicka en triggersignal till Arduino i brunnen, ta emot det uppmätta avståndet och visa den beräknade återstående vattenvolymen på en display.

2) Arduino- och ekolodsmodul på bronsidan Syftet med denna Arduino är helt enkelt att ta emot en triggersignal från huset, utföra en mätning och skicka tillbaka avståndet från ekolodsmodulen till vattennivån. Elektroniken är inbyggd i en (relativt lufttät) låda, med ett plaströr fäst på mottagarsidan av ekolodsmodulen. Syftet med röret är att minska mätfel genom att minska synfältet så att endast vattenytan "ses" av mottagaren.

Steg 1: Delar, testning och programmering

Delar, testning och programmering
Delar, testning och programmering
Delar, testning och programmering
Delar, testning och programmering
Delar, testning och programmering
Delar, testning och programmering

Vi använde följande delar i detta projekt:

  • 2 x Arduino (en för att mäta vätskenivå, en för att visa resultaten på en display)
  • En grundläggande 12V strömförsörjning
  • Ultraljud (ekolod) modul HC-SR04
  • LED -displaymodul MAX7219
  • 25 m telefonkabel (4 ledningar: ström, jord och 2 datasignaler)
  • Monteringslåda
  • Varmt lim
  • Löda

Delkostnad: Cirka € 70

För att se till att allt fungerade som det skulle gjorde vi först lödning, kabeldragning och enkla bänktester. Det finns gott om exempelprogram för ultraljudssensorn och LED-modulen online, så vi använde dem bara för att se till att det uppmätta avståndet var meningsfullt (bild 1) och att vi kunde fånga ultraljudsreflektionen från vattenytan på- webbplats (bild 2). Vi gjorde också en noggrann testning av datalänken för att säkerställa att den alltid fungerar på långa avstånd, vilket inte visade sig vara något problem alls.

Underskatta inte den tid som läggs ner på detta steg, eftersom det är viktigt att veta att systemet fungerar innan du anstränger dig för att montera allt snyggt i lådor, gräva ner kablar etc.

Under testet insåg vi att ekolodsmodulen ibland hämtar en ljudreflektion från andra delar av brunnen, till exempel sidoväggar och vattenförsörjningsrör, och inte vattenytan. Detta innebar att det uppmätta avståndet plötsligt skulle bli mycket kortare än det faktiska avståndet till vattennivån. Eftersom vi inte helt enkelt kan använda medelvärdet för att utjämna denna typ av mätfel, bestämde vi oss för att kasta alla nya uppmätta avstånd som var för olika från den aktuella avståndsuppskattningen. Detta är inte problematiskt eftersom vi förväntar oss att vattennivån ändras ganska långsamt ändå. Vid start kommer denna modul att göra en serie mätningar och välja det största mottagna värdet (dvs. den lägsta vattennivån) som den mest troliga utgångspunkten. Därefter, utöver beslutet "behåll/kassera", används en delvis uppdatering av den uppskattade nivån för att utjämna slumpmässiga mätfel. Det är också viktigt att låta alla ekon dö ut innan en ny mätning utförs - åtminstone i vårt fall där väggarna är gjorda av betong och därför mycket eko -y.

Den slutliga versionen av koden som vi använde för de två Arduinos hittar du här:

github.com/kelindqv/arduinoUltrasonicTank

Steg 2: Anläggningsarbeten

Civilverk
Civilverk

Eftersom vår brunn låg på ett avstånd från huset, var vi tvungna att skapa en liten gräv i gräsmattan för att sätta in kabeln.

Steg 3: Anslutning och montering av alla komponenter

Anslutning och montering av alla komponenter
Anslutning och montering av alla komponenter
Anslutning och montering av alla komponenter
Anslutning och montering av alla komponenter
Anslutning och montering av alla komponenter
Anslutning och montering av alla komponenter

Anslut allt som det var under testningen, och hoppas att det fortfarande fungerar! Kom ihåg att kontrollera att TX -stiftet på en Arduino går till RX på den andra, och vice versa. Som visas på bild 1 använde vi telefonkabeln för att försörja Arduino i brunnen för att undvika att använda batterier.

Den andra och tredje bilden visar plaströrsarrangemanget, med sändaren placerad utanför röret och mottagaren placerad inuti (ja, det här var en obekväm skjutposition …)

Steg 4: Kalibrering

Efter att ha säkerställt att avståndet från sensorn till vattennivån beräknas korrekt, var kalibreringen bara att mäta brunnens diameter och det totala djupet så att vätskevolymen kan beräknas. Vi justerade också algoritmparametrarna (tid mellan mätningar, parametrarna för delvis uppdatering, antalet initiala mätningar) för att ge en robust och exakt mätning.

Så hur bra spårade sensorn vätskenivån?

Vi kunde enkelt se en effekt av att spola kranen i några minuter, eller att spola toaletten, vilket är vad vi ville. Vi kunde till och med se att brunnen fyllde på med en relativt förutsägbar hastighet över en natt - allt bara genom en blick på displayen. Framgång!

Obs:- Tidsavståndskonverteringen korrigerar för närvarande inte för förändringar i ljudets hastighet på grund av temperaturvariationer. Detta kan vara ett trevligt framtida tillskott, eftersom temperaturen i brunnen kommer att variera en hel del!

Steg 5: Långtidsanvändning

1 års uppdatering: Sensorn fungerar felfritt utan tecken på korrosion eller skada trots den fuktiga miljön! Det enda problemet under året har varit att kondens samlas på sensorn under kallt väder (på vintern), vilket uppenbarligen blockerar sensorn. Detta är inte ett problem i vårt fall eftersom vi bara behöver avläsningar under sommaren, men andra användare kan behöva bli kreativa!:) Isolering eller ventilation är förmodligen genomförbara lösningar. Glad att uppfinna!

Rekommenderad: