Niveau regenwater meten

Het heeft even geduurd, maar mijn bescheiden elektronica/Arduino hobby heeft uiteindelijk geleid tot iets dat ook effectief nut heeft.

Wij hebben hier ten huize een regenwaterput, die helaas een beetje ondergedimensioneerd is. Dat betekent dat ‘ie, in relatief droge periodes, of periodes met uitzonderlijk veel vuile was, soms droogvalt. De regenwaterpomp valt dan uit, en even later de wasmachine, en de spoelbak van de WC wordt niet meer gevuld als je doorspoelt. Dan moet de put worden bijgevuld met leidingwater. Op zich geen ramp, maar het is altijd een heel gedoe: kraan openzetten en wachten tot de regenwaterput vol genoeg is, pomp opnieuw opstarten, wasmachine herstarten. Dat duurt alles bij elkaar snel een halfuur, en niet altijd op ideale momenten (lees: om half één ’s nachts). Een oplossing drong zich op om te kunnen inschatten wanneer de put bijna leeg is.

Na wat diep denkwerk heb ik besloten om het waterniveau te gaan meten met een ultrasone sensor. De installatie daarvan is nog vrij eenvoudig te doen. De sensor hangt bovenaan in de regenwaterput, dus er is weinig acrobatie of geklauter nodig, in tegenstelling tot systemen met vlotters of contactpunten in het water zelf. De meting is normaalgezien ook altijd nauwkeurig genoeg en ongevoelig aan temperatuurschommelingen, corrosie, enzovoort.

Wat doet het?

Een ultrasone sensor meet de afstand tot het waterniveau in de regenwaterput. Binnen in huis hangt een zwart bakje met een groen en een rood LED-lampje. Als de gemeten afstand tot het water minder is dan 70cm, brandt het groene lampje. Is de afstand tussen de 70 en de 80cm, dan branden groen en rood tegelijk. Meer dan 80cm, dan brandt het rode lampje. Afhankelijk van mijn inschatting van het weer en waterverbuik, vul ik de put bij wanneer rood en groen of alleen rood brandt.

Dit doet het

Dit doet het

Ten behoeve van anderen die dit ook willen doen, een volledige uiteenzetting van hoe ik dat in elkaar geknutseld heb, mét illustratie.

Zo werkt het

Zo werkt het

Zo werkt het

Wat heb je nodig

  • HC-SR04 Ultrasone sensor
    Je vindt ze goedkoop in China, maar hier zijn ze ook courant te krijgen, zij het wat duurder.
  • CAT5-kabel
    Het leuke aan netwerkkabel is dat je in één kabel acht draden hebt zitten en dus acht verbindingen kan maken. Elke draad heeft ook een andere kleur, dus je kan ze makkelijk juist aansluiten. CAT-5 is in elkaar gevlochten en afgeschermd, waardoor het signaal vrij stabiel is. Deze kabel is ook courant te krijgen in doe-het-zelf-zaken.
  • Een rioolveer
    Om de CAT5-kabel naar de regenwaterput te krijgen, moet die op één of andere manier door de bestaande leidingen die er al liggen. In een ideale wereld zijn dat wachtbuizen, in mijn wereld is dat de buis waar de pompslang al in ligt.
  • Arduino (Uno of Leonardo)
    Je kan in principe ook een Arduino Nano of Mini gebruiken. Als je ‘m in een behuizing wil stoppen, heeft de Uno wel de meeste mogelijkheden.
  • Groene en rode LED
  • Twee weerstanden die bij de LEDs passen
    Om de LEDs niet te overbelasten, sluit je ze normaal aan met een weerstand aan het negatieve contact. Welke weerstand precies, hangt wat af van de LED. Een weerstand van pakweg 200 Ω zou normaal voldoende moeten zijn.
  • Sugru
    Niet goedkoop, maar superhandig. Sugru is een soort kneedbaar siliconen-lijmrubber.
  • Soldeergereedschap
    Soldeerbout, soldeertin en een derde handje, om de uiteindelijke verbindingen met de sensor en de LEDs te maken.
  • Dremel of andere multitool
    Met een boortje en freestools. gaatjes boren is nodig in je Arduino-behuizing, waar dan de LEDs in komen. Frezen is nodig om gaten te maken voor de ‘ogen’ van de sensor en de kabel naar je Arduino in de sensor-behuizing.
  • Tangen
    Je hebt een kniptang en een striptang nodig. De eerste om draadjes door te knippen, de tweede om isolatie te verwijderen
  • Behuizing voor de sensor
    In mijn geval een rond bewaarpotje uit de Delhaize met een schroefdeksel. Maar eender wat is goed, zolang de sensor erin past.
  • Behuizing voor de Arduino
    Kocht ik bij Conrad, en was specifiek bedoeld voor de Arduino Uno. Degelijk spul, aan te raden voor al je Arduino projecten.
  • Stroomvoorziening voor de Arduino
    Deze voeding van Conrad was vrij goedkoop en had ook de perfecte 2.1mm plug om de Arduino van stroom te voorzien.
  • Computer met Arduino software op
    Dit is de eenvoudigste manier om je Arduino te programmeren.
  • USB-kabel om je Arduino op de computer aan te sluiten
    Voor de Arduino UNO heb je een ietwat ouderwetse A/B kabel nodig.
  • 3M Command strips
    Hadden we nog liggen van een Hot Wheels racebaan van de kinderen. Wellicht zijn er ook goedkopere alternatieven.
  • Kabeltjes met Dupont-connectors
    Om tijdelijk je sensor aan te sluiten.
  • Breadboard
    Elk courant verkrijgbaar breadboard is prima.
  • Touw
  • Duct-tape

Stap voor stap

Welke tegenslagen je ook tegenkomt, bedenk: “Met volharding bereikt ook de slak de ark!”

Maak eerst een testsetup van alle aansluitingen, volgens het schema uit de illustratie. Je kan de pinnetjes van de ultrasone sensor aansluiten met de dupont-connectors, de LEDs via het breadboard aansluiten en de juiste verbindingen naar je Arduino maken.

Testsetup met breadboard

Testsetup met breadboard

Dan is het moment gekomen om je Arduino op je computer aan te sluiten en er de nodige code op te zetten. Daar heb je de Arduino IDE voor nodig.

 

Arduino IDE

Arduino IDE

De code heb ik niet uit m’n duim gezogen, maar van het internet geplukt en aangepast. Dit is mijn aangepaste versie:

Als je deze code uploadt naar je Arduino, zou alles normaalgezien moeten werken.

Definitieve aansluitingen

ultrasound2sDe volgende stap is om de sensor te bevestigen aan de draadjes uit de CAT5-kabel. Nog steeds zonder dat de kabel daadwerkelijk naar de regenwaterput ligt, want je wil natuurlijk eerst weten dat de kabel werkt.

Ik heb daarvoor een aantal kabeltjes met Dupont-connectors middendoor geknipt en de afgeknipte kant vastgesoldeerd aan de draadjes uit de CAT5-kabel. De sensor kan je dan makkelijk in- en uitpluggen in de connectors. Zo kan je testen of het signaal goed door de kabel gaat, en de sensor weer verwijderen als de kabel naar de regenwaterput getrokken moet worden.

De andere kanten van de afgeknipte Dupont-kabeltjes hebben pinnetjes. Die heb ik aan de andere kant aan de CAT5-kabel gesoldeerd om de aansluiting met de Arduino Uno te kunnen maken.

De weerstandjes heb ik ook aan de negatieve polen (de korte draadjes) van de LEDs gesoldeerd en zo rechtstreeks op de Arduino aangesloten.

Kabel trekken

De CAT5-kabel naar de regenwaterput trekken was het meest spannende stuk van deze onderneming.

De eerste stap was het creëren van een trekdraad. Daarvoor heb eerst de rioolveer helemaal tot aan de regenwaterput door de bestaande leiding geduwd, er dan touw aan vastgebonden en de veer teruggetrooken.

Vervolgens heb ik de sensorkant (zonder sensor, uiteraard) van de CAT5-kabel tot een soort speerpunt gemodelleerd met duct-tape, die vervolgens bevestigd aan het uiteinde van het touw binnen in huis, en dan langs de andere kant getrokken. Met souplesse, fingerspitzengefühl, gevloek en wat ge-heen-en-weer is het zo uiteindelijk gelukt om de kabel tot aan de regenwaterput te krijgen.

Maar serieus, wachtbuizen, doen!

Behuizingen

De behuizing voor de sensor is dus een plastic potje met schroefdop. In de bodem heb ik twee gaten uitgefreesd voor de ‘ogen’ van de sensor, en in de zijkant voor de kabel.

Eens alles op z’n plaats, heb ik de doorsteken van de sensor en de kabel afgedicht met Sugro om het vocht en beesten buiten te houden.

10088-03

Arduino-behuizing

De Arduino-behuizing is relatief eenvoudig samen te stellen. Je moet wat opletten dat je alle interne bekabeling erin krijgt en niet per ongeluk kortsluiting maakt, maar voor het overige is het vrij eenvoudig. De CAT5-kabel naar de sensor heb ik door het gat voor de ethernet-aansluiting gestoken.

De sensor in de put hangen is een beetje tricky. Ik heb wat met plankjes geklooid, tot ‘ie mooi het wateroppervlak zag. Maar de ophanging is sterk afhankelijk van de situatie, dus ik ga er hier niet verder op in.

De behuizing van de Arduino heb ik binnenshuis met een 3M-kleefstrip tegen de muur gehangen, zodat de LEDs goed zichtbaar zijn. Uiteraard ook in de buurt van een stopcontact, voor de nodige stroomvoorziening.

Dat hangt nu al een maand of drie, en het werkt nog steeds. Dus al één winter overleefd.

Zo kan het ook anders

Er zijn nog twee andere opties gepasseerd, ook tijdens late-night discussies in de Open Garage, vooraleer ik voor de ultrasone sensor ging. Maar die zijn allemaal gesneuveld op hun nadelen, vooral qua praktische uitwerking:

  • Niveau meten op basis van de geleiding van het water. Dat zou vrij eenvoudig kunnen, en ook zonder Arduino of andere complexe elektronica. Twee contacten op verschillende hoogten in de put, verbonden met een stroombron en een LED. Als het water beide contacten raakt, gaat het lampje branden. Eventueel kunnen er verschillende draden gelegd worden, om zo verschillende waterstanden te kunnen zien.
    Maar: niet eenvoudig om te installeren, omdat je aan de binnenkant van de regenwaterput contactpunten moet hangen, en volgens mij vrij gevoelig aan corrosie en allerhande storingen op het signaal, valse contacten, enzovoort.
  • Niveau meten op basis van luchtdruk. Daarvoor zou een aan één kant afgesloten buis in het water gelaten worden, met bovenaan een druksensor. Naarmate het waterniveau daalt, daalt ook de luchtdruk in de buis. En dat meet je met de druksensor.
    Maar: sterk afhankelijk van hoe luchtdicht de buis is, en de gemeten luchtdruk zal ook variëren naargelang de buitentemperatuur. Voor het overige niet speciaal eenvoudig te installeren, en voor de meting heb je ook een Arduino of iets dergelijks nodig.

En nu?

De volgende logische stap is uiteraard het automatisch bijvullen van de regenwaterput. Dat is niet zonder gevaar, door een fout zou het kunnen dat de kraan met leidingwater urenlang blijft openstaan zonder dat dat nodig is.

Maar technisch is het eenvoudig te realiseren. Ik kan de Arduino van wat extra code voorzien, die de put bijvult als het niveau te laag zakt en dit lage niveau bijvoorbeeld minstens een halfuur duurt.

Om het echt geavanceerd te maken, zou ik er ook regenvoorspellingen kunnen aan hangen. Het volstaat om te weten of het de volgende uren (hard) gaat regenen om te weten of de put moet bijgevuld worden, en hoeveel.

27 reacties op “Niveau regenwater meten”

    • Beste Jurgen,

      Het werkt nog steeds perfect. Ik ben niet meer in de put zelf gaan kijken om te zien hoe de sensor erbij hangt, maar de LEDs doen het in elk geval prima en geven de correcte informatie. De Arduino zelf is ook al maanden niet zonder stroom gezet, en die blijft ook prima functioneren.

    • Hallo Wout,

      Dat is zeker mogelijk. De afstandsmeting met de ultrasone sensor is in mijn ervaring erg nauwkeurig. De code die ik draai, zet sowieso de gelezen waarden om in centimeters, dat is in principe vrij eenvoudig om te zetten naar percentages. Om die uit te lezen, zal je dan wel een schermmodule oid op je Arduino moeten hangen, maar die zijn vrij goedkoop verkrijgbaar.

  1. Beste, ik ben je project aan het nabouwen, heb alle onderdelen klaar, maar als ik de code in de arduino zet en verifieer, krijg ik een error melding:
    regel 72 : for (int i=0;i<10;i++) -> De message is: 'lt' was not declaired in this scope.
    Gezien dit mijn eerste poging is om iets te maken – complete leek wou ik vragen hoe ik dat moet oplossen.

  2. Dit was exact de basis die ik zocht.
    Momenteel heb ik een test opstelling draaien met LCD scherm waarop de inhoud in verschillende eenheden wordt weergegeven.
    Dit wordt weergegeven in liter, cm en %.
    Het enige wat nog ontbreekt is een knopje waarmee je de LCD oplicht (momenteel continu aan).
    Als er mensen zijn die interesse hebben in de broncode, geef je me maar een seintje!

    • Hallo Toon en Tony, dank om jullie info te delen. Ik heb interesse voor een lcd uitlezing. Kan je de code ff doorsturen ?->snorri@telenet.be Welke lcd gebruikte je?grt. Joris

    • Dag Tony,

      Ik heb ook interesse om dit te maken met LCD uitlezing.
      Is het mogelijk om me de code door te zenden aub? (nick@nickroels.be)
      Welk type LCD display heb je gebruikt?

      Bedankt! Nick

    • Hallo Tony
      dit lijkt zeer intersant om zoiets in een camper te bouwen voor de vuil/schoon watertank.
      zou je zo vriendelijk willen zijn een uitdraai van het programma met lcd naar mij door te mailen
      b.v.d
      Frans

  3. Heb zo ook iets gelijkaardigs geprobeerd, data werd geüpload naar ergens op het web waar ik eenvoudig kon raadplegen… Helaas heeft het niet lang geduurd of waterdamp de elektronica aantastte en het niet meer werkte.
    Waterdichte sensor was toch wat aan de dure kant.

  4. Dat is mijn vrees ook een beetje. Ik ga daarom de elektronica van de sensor bespuiten met een blanke lank en hoop zo corrosie tegen te gaan.
    De 2 'koeltorens' kunnen hopelijk tegen wat vocht :s.

    Heeft iemand foto's van hoe hij zijn installatie heeft ingebouwd?

  5. dit is zoooo cool 🙂
    allemaal net wat ik aan het zoeken was :-).
    meteen een beetje gaan shoppen. EINDELIJK een héél goed excuus om met arduino te beginnen :-).
    Deze verklikker zal naast de wilo pomp komen te hangen.

    ik heb ook interesse in de lcd-code, eventueel voor later een "upgrade uit te voeren :).

    blog van de verbouwing: http://synhakendover.de.quickconnect.to/blog

  6. Interessant projectje – zeker omdat ik met hetzelfde probleem zat: na een lange droogte had ik geen idee hoeveel water er nog in de put zat.

    Ik ben ondertussen iets verder gegaan met dit Arduino-project en heb net zoals Stijn hierboven een LCD-display geïntegreerd waarop het niveau afgelezen kan worden, en een LED-bar die in één oogopslag weergeeft wat het percentage is. Qua elektronica ben ik op 'Grove'-equipment uitgekomen, die met behulp van CAT5-connectoren soldeervrij verbinden toelaat – ik moet hierbij wel meteen zeggen dat de hardware een pak duurder is (maar dat neem ik er wel bij).

    Het programmeren (via de Arduino IDE) was in mijn ogen het minst moeilijke stukje. Mijn aanpak is wel iets anders: ik bereken een gemiddelde van een aantal metingen zodat de weergegeven waardes op het display eventuele fouten in de meting verdoezelen.

    Verder stuur ik de gegevens van mijn Arduino Uno (Wifi) om de zoveel tijd ook nog door naar ThingSpeak (via een API call, met JSON) en die gegevens kan ik dan via FreeBoard.IO ook nog raadplegen.

    Momenteel heb ik iemand die een mooie behuizing in mekaar aan het knutselen is aan de hand van een ABS-box, en die een oplossing zoekt zodat de sensor na verloop van tijd geen corrosie zal vertonen (door de natte omgeving).

    Het wordt nog spannend om de UTP-kabel vanaf de berging (daar komt mijn Arduino + display) naar de regenwaterput te trekken – gelukkig hebben we een buis met een doorsnede van circa 10 centimeter liggen zodat het waarschijnlijk wel vlot zal verlopen, fingers crossed!

    MIsschien is er nog een optie om met een solenoid klep een automatische bijvulling met leidingwater te voorzien indien het niveau in de regenwaterput te lang onder een bepaald niveau blijft, maar dat is momenteel nog maar een idee. 🙂

  7. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  8. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  9. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  10. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  11. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  12. Ik heb deze al een tijdje werkend, echter, na een paar maand deed de sonar het niet meer van de vochtigheid in de put. Ik heb nu een waterdichte gebruikt en werkt na een jaar nog steeds (te vinden bij https://www.hackerstore.nl/Producten/Sensors?f0=A…. ik heb een LCD eraan hangen en kan zelfs exact de inhoud weten van de put (moet ge natuurlijk wel de juiste binnenmaten van de put kennen)

  13. Ik denk dat mijn sensor daar onlangs ook aan bezweken is (kreeg rare metingen). Ik ga de gelegenheid te baat nemen om met een Particle Electron een nieuwe versie te maken die ik online kan opvolgen, en evt. loggen.
    De waterdichte sensor die je doorstuurt lijkt ideaal, maar ik heb ondertussen al opnieuw een reguliere sensor gekocht :/ Ik was van plan om die in te gieten in epoxyhars als vochtbescherming, maar als ik de prijzen van die hars zie, lijkt me de aankoop van een vochtbestendige sensor goedkoper.

Laat een reactie achter op stijn Reactie annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *