Inhoudsopgave:

Ultrasone tankniveaumeter - Ajarnpa
Ultrasone tankniveaumeter - Ajarnpa

Video: Ultrasone tankniveaumeter - Ajarnpa

Video: Ultrasone tankniveaumeter - Ajarnpa
Video: Niveauregeling van bier en schuim met capacitieve LevelMaster sensor - EasyTeach by Wire - Rechner 2024, Juli-
Anonim
Echografie tank niveaumeter
Echografie tank niveaumeter
Echografie tank niveaumeter
Echografie tank niveaumeter

Wilt u het vloeistofniveau in een put met grote diameter, een tank of een open container controleren? Deze gids laat je zien hoe je een sonar contactloze vloeistofniveaumeter maakt met goedkope elektronica!

Bovenstaande schets geeft een overzicht van waar we met dit project naar streefden. Ons zomerhuisje heeft een put met een grote diameter om drinkwater te leveren voor gebruik in huis. Op een dag spraken mijn broer en ik over hoe onze grootvader het waterpeil handmatig meette om het waterverbruik en de instroom gedurende de zomer bij te houden om rood staan te voorkomen. We dachten dat we met moderne elektronica de traditie nieuw leven in zouden kunnen blazen, maar met minder handenarbeid. Met een paar programmeertrucs zijn we erin geslaagd om met een Arduino met een sonarmodule de afstand tot aan het wateroppervlak (l) redelijk betrouwbaar en met een nauwkeurigheid van ± enkele millimeters te meten. Dit betekende dat we het resterende volume V konden schatten, gebruikmakend van de bekende diameter D en diepte L, met een nauwkeurigheid van ongeveer ± 1 liter.

Omdat de put zich op ongeveer 25 meter van het huis bevindt en we de display binnenshuis wilden hebben, hebben we gekozen voor twee Arduino's met een datalink ertussen. U kunt het project eenvoudig aanpassen om slechts één Arduino te gebruiken als dit niet het geval voor u is. Waarom geen draadloze gegevensoverdracht gebruiken? Deels door eenvoud en robuustheid (de draad raakt minder snel beschadigd door vocht) en deels omdat we het gebruik van batterijen aan de sensorzijde wilden vermijden. Met een draad kunnen we zowel gegevensoverdracht als stroom door dezelfde kabel leiden.

1) Arduino-module in huis Dit is de belangrijkste Arduino-module. Het stuurt een triggersignaal naar de Arduino in de put, ontvangt de gemeten afstand en geeft het berekende resterende watervolume weer op een display.

2) Wellside Arduino en sonarmodule Het doel van deze Arduino is simpelweg om een triggersignaal van het huis te ontvangen, een meting uit te voeren en de afstand van de sonarmodule naar het waterniveau terug te sturen. De elektronica is ingebouwd in een (relatief luchtdichte) doos, met aan de ontvangende zijde van de sonarmodule een plastic buisje. Het doel van de buis is om meetfouten te verminderen door het gezichtsveld te verkleinen, zodat alleen het wateroppervlak door de ontvanger wordt "gezien".

Stap 1: Onderdelen, testen en programmeren

Onderdelen, testen en programmeren
Onderdelen, testen en programmeren
Onderdelen, testen en programmeren
Onderdelen, testen en programmeren
Onderdelen, testen en programmeren
Onderdelen, testen en programmeren

In dit project hebben we de volgende onderdelen gebruikt:

  • 2 x Arduino (een voor het meten van het vloeistofniveau, een voor het weergeven van de resultaten op een display)
  • Een basis 12V voeding
  • Echografie (sonar) module HC-SR04
  • LED-displaymodule MAX7219
  • 25 m telefoonkabel (4 draden: voeding, aarde en 2 datasignalen)
  • Montagedoos
  • Hete lijm
  • Soldeer

Onderdelen kosten: Ongeveer € 70

Om er zeker van te zijn dat alles naar behoren werkte, hebben we eerst alle soldeer-, bedradings- en eenvoudige tests op de bank uitgevoerd. Er zijn tal van voorbeeldprogramma's voor de ultrasone sensor en LED-module online, dus we hebben ze alleen gebruikt om ervoor te zorgen dat de gemeten afstand klopte (afbeelding 1) en dat we de ultrasone reflectie van het wateroppervlak konden opvangen op- website (foto 2). We hebben ook een aantal grondige tests van de datalink gedaan om er zeker van te zijn dat deze altijd werkt voor lange afstanden, wat helemaal geen probleem bleek te zijn.

Onderschat de tijd die aan deze stap wordt besteed niet, want het is van vitaal belang om te weten dat het systeem werkt voordat u moeite doet om alles netjes in dozen te monteren, kabels weg te graven enz.

Tijdens het testen realiseerden we ons dat de sonarmodule soms een geluidsreflectie oppikt van andere delen van de put, zoals de zijwanden en de watertoevoerbuis, en niet van het wateroppervlak. Dit betekende dat de gemeten afstand ineens veel korter zou zijn dan de werkelijke afstand tot het waterpeil. Omdat we niet zomaar middeling kunnen gebruiken om dit soort meetfouten glad te strijken, hebben we besloten om alle nieuwe gemeten afstanden die te veel afweken van de huidige afstandsschatting weg te laten. Dit is geen probleem aangezien we verwachten dat het waterpeil sowieso vrij langzaam zal veranderen. Bij het opstarten zal deze module een reeks metingen doen en de grootste ontvangen waarde (d.w.z. het laagste waterniveau) als het meest waarschijnlijke startpunt selecteren. Daarna wordt, naast de "bewaar/weggooien"-beslissing, een gedeeltelijke update van het geschatte niveau gebruikt om willekeurige meetfouten glad te strijken. Het is ook belangrijk om alle echo's te laten uitsterven voordat een nieuwe meting wordt uitgevoerd - althans in ons geval waar de muren van beton zijn en daarom erg echo-achtig.

De definitieve versie van de code die we voor de twee Arduino's hebben gebruikt, is hier te vinden:

github.com/kelindqv/arduinoUltrasonicTank

Stap 2: civiele werken

civiele werken
civiele werken

Omdat onze waterput op een afstand van het huis lag, moesten we een kleine greppel in het gazon maken om de kabel in te leggen.

Stap 3: Alle componenten aansluiten en monteren

Alle componenten aansluiten en monteren
Alle componenten aansluiten en monteren
Alle componenten aansluiten en monteren
Alle componenten aansluiten en monteren
Alle componenten aansluiten en monteren
Alle componenten aansluiten en monteren

Sluit alles aan zoals het was tijdens het testen, en hoop dat het nog steeds werkt! Vergeet niet te controleren of de TX-pin op de ene Arduino naar de RX van de andere gaat en vice versa. Zoals te zien is in afbeelding 1, hebben we de telefoonkabel gebruikt om de Arduino in de put van stroom te voorzien, om het gebruik van batterijen te vermijden.

De tweede en derde foto tonen de plastic pijpopstelling, met de zender buiten de pijp en de ontvanger binnen (ja, dit was een ongemakkelijke opnamepositie…)

Stap 4: Kalibratie

Nadat we ervoor hadden gezorgd dat de afstand van de sensor tot het waterniveau correct werd berekend, was kalibratie slechts een kwestie van het meten van de diameter van de put en de totale diepte, zodat het vloeistofvolume kan worden berekend. We hebben ook de parameters van het algoritme aangepast (tijd tussen metingen, de parameters voor gedeeltelijke update, aantal initiële metingen) om een robuuste en nauwkeurige meting te geven.

Dus hoe goed heeft de sensor het vloeistofniveau gevolgd?

We konden gemakkelijk het effect zien van een paar minuten doorspoelen van de kraan of het doorspoelen van het toilet, wat we wilden. We konden zelfs zien dat de put 's nachts met een relatief voorspelbare snelheid werd bijgevuld - en dat allemaal door slechts een blik op het display. Succes!

Opmerking: - De tijd-afstand-conversie corrigeert momenteel niet voor veranderingen in de geluidssnelheid als gevolg van temperatuurschommelingen. Dit zou een mooie toekomstige toevoeging kunnen zijn, aangezien de temperaturen in de put nogal kunnen variëren!

Stap 5: Langdurig gebruik

1 jaar update: De sensor werkt feilloos zonder tekenen van corrosie of schade ondanks de vochtige omgeving! Het enige probleem gedurende het jaar was dat zich bij koud weer (in de winter) condens op de sensor ophoopt, wat de sensor duidelijk blokkeert. Dit is in ons geval geen probleem, omdat we alleen in de zomer metingen nodig hebben, maar andere gebruikers moeten misschien creatief zijn!:) Isolatie of ventilatie zijn waarschijnlijk haalbare oplossingen. Gelukkig uitvinden!

Aanbevolen: