Spring naar de inhoud

Stromend water

    Soms wil je weten hoeveel water er door jouw kraan stroom. Of dit nu afkomstig is van het net, of uit je eigen regenput, meten is weten. Want laat ons eerlijk zijn, hoeveel mensen weten nu echt hoeveel ze verbruiken? Meestal weet je het wel ongeveer, a-peu-pres, bij benadering. Maar het zou toch zoveel beter zijn om tot op de liter te weten wat er stroomt? Niet alleen voor je portemonee, maar ook voor het milieu.

    En dan kan je zo anticipeteren op je verbruik. Denk bv bij lekkende leiding, vergeten kraantje, besproeien van je moestuin, gazon of border, wat loopt er naar je vijver, of naar straat…

    Hardware

    De setup is relatief simpel, eens je het door hebt. Volgende zaken heb je nodig:

    • Waterstroommeter
      Deze heb je rond de 10 à 20 euro
    • Raspberry pi (zero)
      * verder genoemd als rpz
      Kostprijs rond de 40 euro.
      Je kan deze natuurlijk ook nog voor andere zaken inschakelen. Ik denk aan temperatuur- en vochtsensoren, uitgang voor automatishe kranen, backupservertje…
    • Een domoticaserver (optioneel)
      Je kan de data natuurlijk ook stockeren op de rpz, maar met een domoticaserver kan je andere evenementen triggeren. Alerting, stoppen van de pompen, historiek bijhouden…

    Interconnectie

    De meeste meters kan je eenvoudig op volgende wijze aansluiten op de raspberry pi. Wel opletten dat in de meeste gevallen dit wat soldeerwerk vraagt. Je zal 3 kabeltjes moeten verbinden met de juiste pinnen. Dus een goede (lees kleine!) soldeerbout is wel vereist.

    • USB1: Normale 5V= voeding van de Raspberry PI.
    • Pin 1: Rode kabel (voeding 3.3V)
    • Pin 6: Zwarte kabel (massa of grond)
    • Pin 7: Gele kabel (data naar GPIO 4)

    Ter illustratie:

    Software

    Raspberry OS

    Een standaard installatie, zonder desktop is meer dan voldoende. In ‘c’ heb je enkel python en mqtt nodig. Ik zou volgende 2 configuraties willen aanbevelen vooraleer je een scherm loskoppelt:

    • Inloggen via ssh toestaan
      Dan kan je ten alle tijde inloggen vanop je pc. Ook een goed wachtwoord is hier een aanrader. Goed in de vorm van bescherming tegen hackers, en goed voor jezelf om makkelijk te onthouden. Ook even opletten dat de RPZ nogal es durven in qwerty te staan.
    • WIFI netwerk instellen.
      Ik geef ook de voorkeur aan een vast IP-adres. Dan ben je zeker dat je RPZ niet ergens anders op je netwerk gaat zitten.

    Extra’s

    Om alles correct te laten verlopen, moet je eerst volgende software installeren:

    • sudo apt install -y mosquitto mosquitto-clients

    Maak een bestandje aan met /etc/mosquitto/conf.d/hostname.conf (hostname in jouw geval natuurlijk), met volgende lijnen erin:

    listener 1883
    allow_anonymous true

    • sudo apt install pip
    • pip install paho-mqtt python-etcd

    Even reboot om alles correct te laden. Je kan ook de services herstarten, maar een reboot is sneller dan dat je de commado’s kan typen.

    Data script

    Onderstaand een klein scriptje die je moet runnen op de raspberry pi. Persoonlijk gebruik ik altijd de folder /diy/ voor mijn scripts. Handig om te weten wat ik deed, en nog handiger omdat dit meestal de enige folder is die ik vervolgens moet backuppen.

    Het kan zijn dat je in dit bestandje de flow frequency moet wijzigen. Dit hangt een beetje af van je flowmeter (hardware). Bij gelegenheid ga ik dit nog wat verder uitwerken, hoe je maw deze frequentie kan meten indien dit niet gekend is.

    /diy/water_flow.py

    !/usr/bin/python
    import RPi.GPIO as GPIO
    import time, sys
    import paho.mqtt.publish as publish

    FLOW_SENSOR_GPIO = 4
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(FLOW_SENSOR_GPIO, GPIO.IN, pull_up_down = GPIO.PUD_UP)

    MQTT_SERVER = “127.0.0.1”

    global count
    count = 0

    def countPulse(channel):
    global count
    if start_counter == 1:
    count = count+1

    GPIO.add_event_detect(FLOW_SENSOR_GPIO, GPIO.FALLING, callback=countPulse)

    while True:
    try:
    start_counter = 1
    time.sleep(2)
    start_counter = 0
    flow = (count / 7.5) # Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
    print(“The flow is: %.3f Liter/min” % (flow))
    publish.single(“WaterFlow”, flow, hostname=MQTT_SERVER)
    count = 0
    time.sleep(1)
    except KeyboardInterrupt:
    print(‘\nkeyboard interrupt!’)
    GPIO.cleanup

    Testen

    Wil je zien of dit allemaal correct werkt?
    Dit kan eenvoudig getest worden via:

    • python /diy/water_flow.py
      Dit zou elke 2 seconden de output moeten tonen. Blaas maar even in je metertje.
      Stoppen doe je door CTRL & C, of een reboot.
    • mosquitto_sub -v -h localhost -p 1883 -t ‘#’
      Door dit commando te runnen, zou je de MQTT boodschappen moeten zien passeren.
      Stoppen doe je door CTRL & C, of een reboot.

    Data

    De data wordt ahv mqtt doorgestuurd naar een domoticaserver. In mijn geval is dit openHAB. Aan de hand van deze waarden kan je dan netjes de historiek zien van je waterverbruik. Maar ook allerlei zaken triggeren. Denk maar bv alarmering bij openstaande kranen. Of automatisch sluiten van zaken na x-aantal liter water, ik denk dan aan de moestuin, borders en zelfs gras.

    Zo kan je netjes opvolgen wanneer, hoeveel en hoelang er water stroomde:

    Meting van 2 verschillende regenputten

    En kan je aan hand van een paar simpele berekeningen netjes zien hoeveel regen- en/of stadwater verbruikt. Altijd goed om te weten wat je bespaart, of waar je nog zou kunnen besparen.

    Totaal waterverbruik = stadwaters + regenwater

    Een reactie achterlaten?