Ik kan sinds kort de COP ook meten van de ELGA. Er ligt al tijden bovenop de ELGA een Raspberry PI voor het uitlezen van van de temperatuursensoren. Maar hoe lees ik nu precies deze nieuwe flowsensor uit?
Sensor
Ik gebruik deze sensor, een Grundfos VFS 2-40 . Deze sensor meet de flow en de temperatuur van de aanvoer bij de ELGA. De sensor levert een analoog signaal van 0.5 tot 3.5V. Bij de flowsensor betekent 0.5V dat er 2 liter/minuut voorbij komt. Bij 3.5V is dit 40 liter/minuut. De temperatuursensor levert 0.5V bij 0 graden en 3.5V bij 100 graden.
Nu nog een manier vinden om de sensor uit te lezen.
Uitlezen
Ik meet beide sensoren met een Arduino UNO WIFI. De 4 draadjes van de sensor zijn alle 4 rechtstreeks aangesloten op de Arduino. De beide sensorpins zijn aangesloten op twee analoge inputs.
Ik kan vanaf de Arduino jammer genoeg niet rechtstreeks mijn database bereiken. Dan maar de data er aktief vanaf halen, dat werkt wel. Ik kan de Arduino benaderen als een webserver en daarmee rechtstreeks de informatie van de sensoren uitlezen.
Hier lees ik analoge pin 0 uit, deze is aangesloten op de flowmeter. Hier krijg ik de cryptische waarde 299 terug. De arduino maakt van de analoge waarde ( voltage ) een digitale waarde van 0 tot 1023. Met andere woorden; De Arduino maakt van aan analoog signaal een digitale waarde waarbij 0V = 0, 5V = 1023. Dus 299 betekent eigenlijk dat er 299/1023 * 5 = 1,46V op staat. Dat kan ik dus weer omrekenen naar de flow.
Ik heb daarom eerst moeten uitzoeken wat de formule is waarmee ik met elk voltage de flow kan berekenen. De wiskunde zal ik iedereen besparen. De formule is: 12 2/3*voltage – 4 1/3. 1.46V is dus omgerekend 14,18 liter/minuut wat voorbij de sensor komt.
Ditzelfde kan ik dus doen voor de temperatuursensor.
Software
Ik heb in Java snel een programmaatje in elkaar gezet die de URL van de beide sensoren elke zoveel seconden benaderd en de waarde om zet naar de daadwerkelijke waarde. Die waarde stop ik dan weer in mijn database waarna ik weer grafieken kan maken.
Alle data wordt opgeslagen in een Oracle XE database. Met een simpele query kan ik alle actuele informatie op halen.