Druk meten met de computer

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Druk meten met de computer

    Electronica is tegenwoordig zo goedkoop, dat het betaalbaar wordt om ermee te hobbyen. Het idee: op internet kunnen zien wat de bufferdruk is van het vulstation.
    Nou zullen er ongetwijfeld kant-en-klaar systemen zijn, die dit voor elkaar spelen, maar zelf knutselen is leuker.

    Raspberry Pi computers zijn één van de goedkoopste tegenwoordig, de RPi Zero W kost om en nabij de 11 euro.
    En Ali-express is goed voor de componenten.

    Click image for larger version

Name:	sensor.jpg
Views:	86
Size:	18,9 KB
ID:	1862040 Drukmeter
    Deze drukmeter kost inclusief verzenden net geen 30 euro, ik heb de versie van 4MPa besteld. Aansluiting van de sensor kant is 1/4", dezelfde maat als manometers voor leidingsystemen ook gebruiken. De drukmeter geeft een stroom van 4mA tot 20mA, een vrij standaard methode in de industrie om over lange kabels sensoren aan te sluiten. De spanning mag variëren, maar de stroom blijft gelijk. Bij deze drukmeter loopt er 4mA bij 0bar en 20mA bij 400bar.

    Click image for larger version

Name:	CurrentVoltConverter.jpg
Views:	78
Size:	28,6 KB
ID:	1862041 Stroom naar Voltage converter
    De mA stroom wordt met deze module omgezet naar een voltage van 0V tot 5V. Kosten: pakweg 2 euro incl. verzenden. De twee potmeters, blauwe blokje met messing schroefje, zijn bedoeld om 4mA op 0V in te stellen en de maximale stroom op 5V. Ofschoon de drukmeter tot 400bar aankan, levert de compressor die druk niet en heb ik de 5V ingesteld voor de hoogste druk.

    Click image for larger version

Name:	ADconverter.jpg
Views:	82
Size:	23,3 KB
ID:	1862042 Analoog naar Digitaal converter
    Omdat de Rasperry Pi geen analoge signalen kan lezen, moet het voltage worden omgezet naar een binair signaal. De ADS1115 module zet het voltage om naar een 16-bits waarde, en stuurt deze via 2 kabeltjes naar de Pi. Kosten incl. verzenden: 2,50.

    Click image for larger version

Name:	rpizerow.jpg
Views:	83
Size:	38,6 KB
ID:	1862043 Raspberry Pi Zero W
    Als laatste nog nodig: een Raspberry Pi. De goedkoopste versie is de Pi Zero W, kost ca. 11 euro. En meer dan voldoende rekenkracht om een simpele meting te doen.
    Komt nog bij: een SD kaartje en een voeding met micro USB aansluiting (bijvoorbeeld een telefoonlader).

    De RPi zero W verbinden met internet gaat alleen via WiFi. Nadat ik het hele ding geprogrammeerd had, bleek het WiFi bereik bij de compressor onvoldoende te zijn, dus alles opnieuw geprogrammeerd op een gewone RPi met een ethernet aansluiting.
    .

    #2
    Click image for larger version  Name:	testopstelling2.jpg Views:	0 Size:	35,6 KB ID:	1862045
    Eerst alles aangesloten in een kleine proefopstelling. Met gebruikt leiding materiaal de sensor aangesloten op een volle tank, en een 12V accu gebruikt om de current-loop van spanning te voorzien. Als je een multimeter in de lus zet, zie je stroom oplopen van 4mA bij nul bar tot pakweg 12mA bij 200bar.
    Click image for larger version  Name:	testopstelling1.jpg Views:	0 Size:	25,4 KB ID:	1862046
    De kabels van de drukmeter aangesloten op de mA/V-converter, de zwarte en rode kabel rechtsonder op de foto.
    Van deze converter gaat het rode signaalkabeltje naar de A/D-converter.
    Van de A/D-converter gaan twee kabeltjes naar de RPi (I2C bus).
    De andere kabeltjes zijn voor 3,3V voeding naar beide converters.

    Dan het programmeren, was iets meer uitzoekwerk....
    Uiteindelijk viel dat ook wel mee:
    1. Raspbian image op de SD kaart zetten, RPi booten en de software automatisch laten bijwerken vanaf het internet.
    2. adafruit-circuitpython-ads1x15 bibliotheek installeren vanaf internet.
    3. scriptje maken dat de waarde van de A/D-converter uitleest en omrekent naar een waarde in Bar:

    Code:
    import time
    import board
    import busio
    import adafruit_ads1x15.ads1115 as ADS
    from adafruit_ads1x15.analog_in import AnalogIn
    i2c = busio.I2C(board.SCL, board.SDA)
    ads = ADS.ADS1115(i2c)
    chan = AnalogIn(ads, ADS.P0)
    pressure = chan.voltage/0.01042
    print(pressure)
    De drukmeter is lineair. De mA-V converter vertaalt de lineaire stroom naar een lineair voltage, en A/D-converter levert dus ook een waarde die eveneens lineair is met de druk.

    Om nou te bepalen wat die verhouding precies is, ben ik gewoon gaan meten met een Keller digitale manometer.
    Eerst de potmeter op de mA-V converter ingesteld op 0V bij 0bar. Daarna de 2e potmeter zo ingesteld dat deze de grootste waarde gaf bij 240bar.
    Vervolgens de druk telkens met 20bar verminderd en genoteerd welk getal de A/D converter aan de RPi doorgaf. Die waarde gedeeld door de druk levert een (gemiddelde) constante op van 0.01042 en die staat in het script.

    Gisterenavond de hele opstelling in het compressorhok gemonteerd, de drukmeter op de bufferleiding aangesloten, en alle electronica daar opnieuw aangesloten. Vanmiddag alles gevuld tot 240bar.
    MRTG is een tooltje waarmee je om de 5 minuten de waarde kunt uitlezen en in een grafiekje kunt zetten, met dit resultaat:
    Click image for larger version  Name:	pressure-day.png Views:	0 Size:	2,3 KB ID:	1862047
    Last edited by DSC; 13-03-2020, 16:31.
    .

    Comment


      #3
      Haha, goed bezig. Mooi man!

      Comment


        #4
        Ik zou de data in InfluxDB schrijven mbv python dan bijvoorbeeld Grafana gebruiken voor de visualisatie
        http://rob.lensen.nu

        Comment


          #5
          Originally posted by Inferno View Post
          Ik zou de data in InfluxDB schrijven mbv python dan bijvoorbeeld Grafana gebruiken voor de visualisatie
          Die SD kaartjes slijten best snel met veel schrijfacties, dus mrtg draait gewoon op een hosting server. RPi zelf antwoord elke 5 minuten op een vraag wat de druk is.
          Maar ik ben wel nieuwsgierig naar wat er mogelijk is.
          .

          Comment


            #6
            Je kan InfluxDB ook ergens anders draaien. Bijvoorbeeld op een Synology NAS

            Ik zou het script dan in de crontab zetten die elke 5 min naar InfluxDB schrijft. Aangezien InfluxDB niet op RPi draait geen schrijfacties
            http://rob.lensen.nu

            Comment


              #7
              Knutselen blijft leuk en de elektronica kost bijna niets meer.

              Maar sinds “de Chinees “ komplete schakelingen levert voor een paar kwartjes maak ik steeds minder. Als iets eenmaal naar wens werkt vraag ik mij zelf vaak of het wel functioneel is.




              Er zijn veel wegen die naar Keulen gaan maar ik zou in dit geval een arduino nano gebruiken van ± €1,80

              https://nl.aliexpress.com/item/32341...st.0.0.1f325f8 f9bwsG7&algo_pvid=f3f15612-ddf9-4fcf-a4ac-d21f2e9a2a37&algo_expid=f3f15612-ddf9-4fcf-a4ac-d21f2e9a2a37-0&btsid=0b0a0ac215843625570624482e6488&ws_ab_tes t= searchweb0_0,searchweb201602_,searchweb201603

              Een metaalfilmweerstand van ± 250 ohm voor stroom / spanningomzetter. (afhankelijk van de voeding van je druksensor)
              De voeding van 5V dc kan je vaak de gratis vinden van oude telefoons e.d.


              Wifi modulen zijn er ook voldoende die compatabel zijn voor arduino

              Ook de software voor arduino staat voldoende op het internet als je zie zelf niet kan schrijven.




              Maar ik heb geen buffers meer.


              Tussen zwart en wit zijn veel soorten grijs.

              Comment


                #8
                Ik heb nog nooit iets met Arduino gedaan, die Raspberry Pi had ik nog liggen. Maar ik geloof zeker dat je daarmee nog meer kosten kunt besparen!
                Raspberry heeft denk ik wel iets meer mogelijkheden. OLED displaytje:
                Click image for larger version

Name:	display.jpg
Views:	36
Size:	30,1 KB
ID:	1862068
                .

                Comment

                Working...
                X