Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Raspberry Pi Watermeter

Pagina: 1
Acties:

Vraag


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Goedemidddag,

Vanmiddag deze NPN sensor binnen gekregen met als doel deze als watermeter in te gaan zetten.

Nu heb ik heb aangesloten en geprobeerd op verschillende materialen (radiator, schroevendraaier) en natuurlijk op de watermeter. De LED gaat netjes branden op het moment dat hij een metalen object waarneemt.

Maar, met geen mogelijkheid krijg ik de waarde binnen op de Raspberry Pi.

Het betreft een Raspberry Pi 3B+ en de sensor is als volgt aangesloten:
Bruin = Pin 2 of 4 (5V)
Blauw = Pin 6 (GND)
Zwart = Pin 40 (Data)

Na
code:
1
python water_meter.py

Zie ik wel dat het tekst bestand netjes word aangemaakt met de standaard waarde. Verder gebeurt er helemaal niets.

Als ik 'kortsluiting' maak op de blauwe en zwarte draad dan verschijnt er opeens wel een +1 waarde in beeld.

Eerste keer krijg ik onderstaande melding, maar ik zou niet weten wat er nog meer op die pin zit (nooit wat op gehad) en ook andere pinnen geven het zelfde resultaat.
code:
1
2
water_meter.py:34: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_UP)



Script (water_meter.py)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import urllib2
import os

#Watermeter stand (wordt alleen initeel gebruikt als er geen bestand meterstand.txt is)
global Counter
Counter = 1154651

#Domoticz URL
domoticz_url = "http://192.168.2.1:8080"
#Domoticz IDX van de water sensor (RFXMeter)
idx = 73

#Open meterstand.txt file en lees meterstand
#Als meterstand.txt niet aanwezig is maakt script bestand aan en vult de meterstand
fn = "/home/pi/domoticz/scripts/meterstand.txt"
if os.path.exists(fn):
    f = file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = int(c)
else:
    f = open(fn, "w")
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

#Board is pin nr, BMC is GPIO nr
#Read output from water meter op pin 40
GPIO.setmode(GPIO.BOARD)
# Set GPIO 21 (Pin 40) als Input aditioneel als Pullup-Weerstand aktiveren
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_UP)

#Functie  callback
#Dit is de functie die aangeroepen wordt in de interrupt
def Interrupt(channel):
  #Teller elke interupt uitlezen en met 1 liter verhogen 
  f = file(fn, "r+")
  f = open(fn)
  inhoud = f.readline()
  a,b,c = inhoud.split()
  Counter = int(c)
  Counter = Counter + 1
  f.close()
  #Schrijf meterstand naar bestand
  f = open( fn, 'w')
  f.write( 'meterstand = ' + repr(Counter))
  f.close()
  #Send counter to domoticz JSON
  url1 = domoticz_url+'/json.htm?type=command&param=udevice&idx='+str(idx)+'&svalue='+str(Counter)
  req1 = urllib2.Request(url1)
  response1 = urllib2.urlopen(req1)
  #Voor debug => print voorbeeld van de JSON aanroep en/of de counter
  #print "JSON call = "+ str(url1)
  #print "Watermeter Counter = " + str(Counter)

#Interrupt-Event toevoegen, bij een NPN off geeft sensor een 1 en en bij detectie een 0
#Bij detectie (LED on) een 0 daarom check dalende interrupt.
GPIO.add_event_detect(40, GPIO.FALLING, callback = Interrupt, bouncetime = 350)

try:
  while True:
      time.sleep(1)
except KeyboardInterrupt:
  GPIO.cleanup()
  print "\nBye"



gpis readall
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 +-----+-----+---------+------+---+---Pi 3+--+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 0 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 1 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3+--+---+------+---------+-----+-----+



Ik kom tot 2 uitkomsten: sensor kapot of bedrading zit toch verkeerd?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods

Beste antwoord (via Toppe op 17-11-2018 09:41)


  • dennisdew16
  • Registratie: augustus 2010
  • Laatst online: 19-02 00:23
Ik heb twee weken geleden exact hetzelfde gehad(met zelfde type sensor), alleen dan met het aansluiten op een wemos mini. Heb door dit fora en nog enkele anderen het werkend gekregen.
- Heb je bij het aansluiten op de RPi ook een weerstand gebruikt tussen het signaaldraad en GND? Dit omdat er zoals vermeld anders een te hoge spanning op je RPi komt te staan. Het liefst wil je rond de 3V uitkomen, wat je met een voltage divider realiseert. Aangezien er inwendig al een 10K ohm weerstand zit tussen de 5V draad en de signaaldraad krijg je de volgende situatie:
https://imgur.com/USmJDYP
In bovenstaand voorbeeld is er een voedingsspanning van 12V aanwezig. Gebruik je een andere spanning dan kan je uitrekenen wat de weerstand(R2) moet zijn:http://www.ohmslawcalculator.com/voltage-divider-calculator

- Bij detectie gaat het rode lampje wel branden maar krijgt de RPi geen signaal: Bij mij was het zo dat de spanning van 5V te laag was. Ik heb daarna geprobeerd om de sensor met een 9V batterij te voeden en dit gaf het signaal wel door.

Ik heb een stepup converter gekocht die de 5V van de wemos omzet naar bijvoorbeeld 7,5V als voeding voor de sensor. Dit werkte voor mij prima. Onderstaand mijn situatie. Mocht het nog steeds niet werken dan hoor ik het wel :)
https://imgur.com/a/sBEMJXK

Alle reacties


  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

4980wp-Zuid-Limburg,

Weet je zeker dat de sensor het metalen plaatje van de watermeter detecteerde?
Deze sensor meet maar 4 mm diep, er zijn ook sensors die 8 mm diep meten.
Sensor moet meestal minimaal 6 volt hebben.
Gpio pinnen kunnen maar maximaal 3,3 volt aan ( al weet ik dit niet zeker bij de 3b

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
klump4u schreef op vrijdag 16 november 2018 @ 17:31:
Weet je zeker dat de sensor het metalen plaatje van de watermeter detecteerde?
Deze sensor meet maar 4 mm diep, er zijn ook sensors die 8 mm diep meten.
Sensor moet meestal minimaal 6 volt hebben.
Gpio pinnen kunnen maar maximaal 3,3 volt aan ( al weet ik dit niet zeker bij de 3b
Wat betreft het detecteren: Ja, heb dit nu uitgebreid getest en de LED gaan branden op het moment dat ik hem bij een metalen object houd. Dat zou voor mij ook de bevestiging moeten zijn dat hij werkt.

Wat betreft de 6V: Dat klopt, al zijn er ondertussen genoeg mensen die hem werkend hebben op de 5v van de Raspberry Pi.

Als ik 'kort sluiting' maak tussen de GND & Data dan krijg ik ook resultaten te zien, als ik de werking van een NPN sensor begrijp dan zou hij dit al in de sensor zelf moeten doen?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

4980wp-Zuid-Limburg,

Heb je hem ook getest op het metalen driehoekje van de watermeter?
Bij mij deed hij het ook met alle metalen die ik ervoor hield maar op de watermeter was de afstand van sensor tot metalen plaatje net te groot en dus geen detectie.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
klump4u schreef op vrijdag 16 november 2018 @ 17:39:
Heb je hem ook getest op het metalen driehoekje van de watermeter?
Bij mij deed hij het ook met alle metalen die ik ervoor hield maar op de watermeter was de afstand van sensor tot metalen plaatje net te groot en dus geen detectie.
Ja, ook daar brand de LED netjes. Heb hem al gemonteerd en op het moment dat het toilet reservoir gevuld wordt brand het ledje ook netjes.

Heb jij een water meter op je Pi? Welke code gebruik je daarvoor als ik vragen mag?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

4980wp-Zuid-Limburg,

Ik heb hem op de pi maar ik heb de 8 mm uitvoering en draai Windows10 iot op de pi.
Ook heb ik een printje tussen om een goede hoog-laag te krijgen.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • Lennyz
  • Registratie: januari 2010
  • Laatst online: 05-02 15:45
Volgens mij moet deze line:

GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Veranderd worden in dit:

GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Het is pin40 maar het is GPIO21.

  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Lennyz schreef op vrijdag 16 november 2018 @ 19:06:
Volgens mij moet deze line:

GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Veranderd worden in dit:

GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Het is pin40 maar het is GPIO21.
Ook niet. Wat ik zeg, als ik de GND en Data kort sluit krijg ik netjes een regel in beeld. De pinnen zijn dus goed.
Of ik heb de pinnen verkeerd aangesloten, of die sensor is toch kapot...?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


Acties:
  • Beste antwoord
  • 0Henk 'm!

  • dennisdew16
  • Registratie: augustus 2010
  • Laatst online: 19-02 00:23
Ik heb twee weken geleden exact hetzelfde gehad(met zelfde type sensor), alleen dan met het aansluiten op een wemos mini. Heb door dit fora en nog enkele anderen het werkend gekregen.
- Heb je bij het aansluiten op de RPi ook een weerstand gebruikt tussen het signaaldraad en GND? Dit omdat er zoals vermeld anders een te hoge spanning op je RPi komt te staan. Het liefst wil je rond de 3V uitkomen, wat je met een voltage divider realiseert. Aangezien er inwendig al een 10K ohm weerstand zit tussen de 5V draad en de signaaldraad krijg je de volgende situatie:
https://imgur.com/USmJDYP
In bovenstaand voorbeeld is er een voedingsspanning van 12V aanwezig. Gebruik je een andere spanning dan kan je uitrekenen wat de weerstand(R2) moet zijn:http://www.ohmslawcalculator.com/voltage-divider-calculator

- Bij detectie gaat het rode lampje wel branden maar krijgt de RPi geen signaal: Bij mij was het zo dat de spanning van 5V te laag was. Ik heb daarna geprobeerd om de sensor met een 9V batterij te voeden en dit gaf het signaal wel door.

Ik heb een stepup converter gekocht die de 5V van de wemos omzet naar bijvoorbeeld 7,5V als voeding voor de sensor. Dit werkte voor mij prima. Onderstaand mijn situatie. Mocht het nog steeds niet werken dan hoor ik het wel :)
https://imgur.com/a/sBEMJXK

  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
dennisdew16 schreef op vrijdag 16 november 2018 @ 19:34:
Ik heb twee weken geleden exact hetzelfde gehad(met zelfde type sensor), alleen dan met het aansluiten op een wemos mini. Heb door dit fora en nog enkele anderen het werkend gekregen.
- Heb je bij het aansluiten op de RPi ook een weerstand gebruikt tussen het signaaldraad en GND? Dit omdat er zoals vermeld anders een te hoge spanning op je RPi komt te staan. Het liefst wil je rond de 3V uitkomen, wat je met een voltage divider realiseert. Aangezien er inwendig al een 10K ohm weerstand zit tussen de 5V draad en de signaaldraad krijg je de volgende situatie:
https://imgur.com/USmJDYP
In bovenstaand voorbeeld is er een voedingsspanning van 12V aanwezig. Gebruik je een andere spanning dan kan je uitrekenen wat de weerstand(R2) moet zijn:http://www.ohmslawcalculator.com/voltage-divider-calculator

- Bij detectie gaat het rode lampje wel branden maar krijgt de RPi geen signaal: Bij mij was het zo dat de spanning van 5V te laag was. Ik heb daarna geprobeerd om de sensor met een 9V batterij te voeden en dit gaf het signaal wel door.

Ik heb een stepup converter gekocht die de 5V van de wemos omzet naar bijvoorbeeld 7,5V als voeding voor de sensor. Dit werkte voor mij prima. Onderstaand mijn situatie. Mocht het nog steeds niet werken dan hoor ik het wel :)
https://imgur.com/a/sBEMJXK
Ik gok dat de voltage nog wel eens het probleem zou kunnen zijn. Nu heb ik nog een 12V adapter liggen, gewoon aansluiten op de + & - van die sensor? Dan loopt er alleen nog maar een data draad naar de Pi toe?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • dennisdew16
  • Registratie: augustus 2010
  • Laatst online: 19-02 00:23
Toppe schreef op vrijdag 16 november 2018 @ 19:43:
[...]


Ik gok dat de voltage nog wel eens het probleem zou kunnen zijn. Nu heb ik nog een 12V adapter liggen, gewoon aansluiten op de + & - van die sensor? Dan loopt er alleen nog maar een data draad naar de Pi toe?
Als je een multimeter hebt zou je kunnen testen of er 12V op de signaaldraad komt te staan als hij metaal detecteert. Je kan echter niet 12V erop zetten en dan de signaaldraad rechtstreeks op de RPi aansluiten, dan komt er namelijk ook 12V op de RPi te staan, daar kan ie niet tegen. Dan moet je zoals in mijn afbeelding staat een weerstand van 6,8k plaatsen tussen de ground en de signaal draad (blauw en zwart).

  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
dennisdew16 schreef op vrijdag 16 november 2018 @ 19:48:
[...]


Als je een multimeter hebt zou je kunnen testen of er 12V op de signaaldraad komt te staan als hij metaal detecteert. Je kan echter niet 12V erop zetten en dan de signaaldraad rechtstreeks op de RPi aansluiten, dan komt er namelijk ook 12V op de RPi te staan, daar kan ie niet tegen. Dan moet je zoals in mijn afbeelding staat een weerstand van 6,8k plaatsen tussen de ground en de signaal draad (blauw en zwart).
Oké heb even gemeten, we lijken nu ergens te komen. Als ik er 12V op zet (+ & -) dan staat er constant nu 12v op, maa ik sluiting dan wordt dit in 1x 0,64v

Nu alleen de vraag hoeveel Ohm weerstand er tussen moet, volgens die tool die je gaf moet dat 3333.333 zijn... Die heb ik niet? :|


Edit: Ik heb nu een 6.8K weerstand aangesloten zoals je aangaf, nu blijft de data maar binnen stromen, of de sensor nou geactiveerd is of niet :?

Toppe wijzigde deze reactie 16-11-2018 20:06 (8%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

4980wp-Zuid-Limburg,

Dit is mijn schema van de print ertussen.
Heb hem aan een 12 volt voeding hangen.
Ik heb 2 watermeters, een van waterbedrijf en een bij de warmtepompboiler, ze werken allebei volgens dit schema.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Oke, we zijn iets verder.

Ik heb de sensor zover dat hij reageert op contact, had een ander script op internet gevonden dat het mogelijk moet maken om de waterstand bij de houden en te uploaden. Als hij upload doet hij dat prima.

Echter reageert hij vaker niet dan wel op het script:
code:
1
2
3
Verhoog 1
Klaar!
JSON call = http://192.168.2.1:8080/json.htm?type=command&param=udevice&idx=73&svalue=27



Waarom hij zo vaak 'mist' is mij even niet duidelijk, zodra ik de sensor 'contactloos' maak reageert het script direct...


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import urllib2
import os

#Watermeter stand (wordt alleen initeel gebruikt als er geen bestand meterstand_water.txt is)
global Counter
Counter = 0

#Domoticz URL
domoticz_url = "http://192.168.2.1:8080"
#Domoticz IDX van de water sensor (RFXMeter)
idx = 73

#Open meterstand.txt file en lees meterstand
#Als meterstand.txt niet aanwezig is maakt script bestand aan en vult de meterstand
fn = "/home/pi/domoticz/scripts/meterstand_water.txt"
if os.path.exists(fn):
    f = file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = int(c)
else:
    f = open(fn, "w")
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

#Board is pin nr, BMC is GPIO nr
#Read output from water meter op pin 19
GPIO.setmode(GPIO.BOARD)
# Set GPIO 10 (Pin 19) als Input aditioneel als Pullup-Weerstand aktiveren
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

#Functie  callback
#Dit is de functie die aangeroepen wordt in de interrupt
def Interrupt(channel):
    print('Callback function called!')
    time.sleep(0.05)         # need to filter out the false positive of some power fluctuation
    if GPIO.input(40) == 0:
       print('quitting event handler because this was probably a false positive')
       return
    #Teller elke interrupt uitlezen en met 0.5 liter verhogen (deler watermeter op 10 zetten)
    file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = int(c)
    Counter = Counter + 1
    f.close()

    print "Verhoog 1"

    #Schrijf meterstand naar bestand
    f = open( fn, 'w')
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

    print "Klaar!"
    #Send counter to domoticz JSON
    url1 = domoticz_url+'/json.htm?type=command&param=udevice&idx='+str(idx)+'&svalue='+str(Counter)
    req1 = urllib2.Request(url1)
    response1 = urllib2.urlopen(req1)

    #Voor debug => print voorbeeld van de JSON aanroep en/of de counter
    print "JSON call = "+ str(url1)
    print "Watermeter Counter = " + str(Counter)
    
    #Interrupt-Event toevoegen, sensor geeft een 0 en en bij detectie een 1
#Bij detectie een 1 daarom check stijgende interrupt.
GPIO.add_event_detect(40, GPIO.RISING, callback = Interrupt, bouncetime = 200)

try:
    while True:
      time.sleep(0.2)        
except KeyboardInterrupt:
  GPIO.cleanup()
  print "\nBye"

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • dennisdew16
  • Registratie: augustus 2010
  • Laatst online: 19-02 00:23
Toppe schreef op vrijdag 16 november 2018 @ 21:10:
Oke, we zijn iets verder.

Ik heb de sensor zover dat hij reageert op contact, had een ander script op internet gevonden dat het mogelijk moet maken om de waterstand bij de houden en te uploaden. Als hij upload doet hij dat prima.

Echter reageert hij vaker niet dan wel op het script:
code:
1
2
3
Verhoog 1
Klaar!
JSON call = http://192.168.2.1:8080/json.htm?type=command&param=udevice&idx=73&svalue=27



Waarom hij zo vaak 'mist' is mij even niet duidelijk, zodra ik de sensor 'contactloos' maak reageert het script direct...


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import urllib2
import os

#Watermeter stand (wordt alleen initeel gebruikt als er geen bestand meterstand_water.txt is)
global Counter
Counter = 0

#Domoticz URL
domoticz_url = "http://192.168.2.1:8080"
#Domoticz IDX van de water sensor (RFXMeter)
idx = 73

#Open meterstand.txt file en lees meterstand
#Als meterstand.txt niet aanwezig is maakt script bestand aan en vult de meterstand
fn = "/home/pi/domoticz/scripts/meterstand_water.txt"
if os.path.exists(fn):
    f = file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = int(c)
else:
    f = open(fn, "w")
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

#Board is pin nr, BMC is GPIO nr
#Read output from water meter op pin 19
GPIO.setmode(GPIO.BOARD)
# Set GPIO 10 (Pin 19) als Input aditioneel als Pullup-Weerstand aktiveren
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

#Functie  callback
#Dit is de functie die aangeroepen wordt in de interrupt
def Interrupt(channel):
    print('Callback function called!')
    time.sleep(0.05)         # need to filter out the false positive of some power fluctuation
    if GPIO.input(40) == 0:
       print('quitting event handler because this was probably a false positive')
       return
    #Teller elke interrupt uitlezen en met 0.5 liter verhogen (deler watermeter op 10 zetten)
    file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = int(c)
    Counter = Counter + 1
    f.close()

    print "Verhoog 1"

    #Schrijf meterstand naar bestand
    f = open( fn, 'w')
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

    print "Klaar!"
    #Send counter to domoticz JSON
    url1 = domoticz_url+'/json.htm?type=command&param=udevice&idx='+str(idx)+'&svalue='+str(Counter)
    req1 = urllib2.Request(url1)
    response1 = urllib2.urlopen(req1)

    #Voor debug => print voorbeeld van de JSON aanroep en/of de counter
    print "JSON call = "+ str(url1)
    print "Watermeter Counter = " + str(Counter)
    
    #Interrupt-Event toevoegen, sensor geeft een 0 en en bij detectie een 1
#Bij detectie een 1 daarom check stijgende interrupt.
GPIO.add_event_detect(40, GPIO.RISING, callback = Interrupt, bouncetime = 200)

try:
    while True:
      time.sleep(0.2)        
except KeyboardInterrupt:
  GPIO.cleanup()
  print "\nBye"

Ik weet even niet wat je met contactloos maken bedoelt maar als het signaal naar 0,64V gaat als je er wat voor houd dan werkt ie. Dan zou het aan het script kunnen liggen, maar daar moet ik dan even goed naar kijken. Zou je trouwens een foto kunnen maken van je opstelling zoals het nu zit?

  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30



Zeker de aansluiting is niet helemaal naar wens maar daar ga ik morgen beter naar kijken!

Bekabeling als volgt:

Zwart - Data
Blauw - GND
Bruin - 12V

12V aangesloten op zwart (-) en bruin (+)

Tussen zwart en blauw zit een 6.8K weerstand

Blauw loopt naar pin 40 op de Raspberry, zwart loopt naar pin 6 (GND).

Uiteindelijk krijg je dan:
Set 1: GND van 12V, 1 pin van 6.8K weerstand, blauw draad sensor & 1 zwarte draad naar GND Raspberry

Set 2: 1 pin van 6.8K weerstand, 1 data draad naar pin 40 Raspberry en de zwarte draad van de sensor

Set 3: 12V + van 12V & bruine draad van sensor

@dennisdew16 mocht je tijd hebben :P :9 *O*

Toppe wijzigde deze reactie 16-11-2018 23:03 (75%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Zo, nieuwe dag nieuwe kansen.

Vanochtend eerst even een PCB'tje gesoldeerd zodat ik alles fatsoenlijk kan aansluiten.

Daarna toch weer in de software gaan snuffelen en ik kom tot de conclusie dat op het moment dat ik de sensor handmatig contact laat maken (metaal, watermeter) dan werkt hij prima.

Zet ik bijvoorbeeld de kraan open op verschillende standen dan wordt hij niet altijd netjes geüpdate. Hij slaat dat stuk gewoon over.

Ik wil gewoon een if_changed ipv add_event_detected

Toppe wijzigde deze reactie 17-11-2018 11:58 (90%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • joostnl
  • Registratie: januari 2010
  • Laatst online: 20:53
Interesse heb je de uitlezing al stabiel gekregen?

  • Copitano
  • Registratie: februari 2018
  • Laatst online: 01:42

Copitano

Hoorn NH

@Toppe Deze werkt op 5V en gaat tot 8 mm diep.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 | Raspberry Pi 3B+


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
joostnl schreef op donderdag 29 november 2018 @ 12:54:
Interesse heb je de uitlezing al stabiel gekregen?
Lol, zie je berichtje nu pas: ja hij is redelijk stabiel

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Heb toevallig gister een nieuwe 5V sensor binnen gekregen, moet ‘m alleen nog even testen

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

4980wp-Zuid-Limburg,

Toppe schreef op donderdag 10 januari 2019 @ 20:34:
[...]


Lol, zie je berichtje nu pas: ja hij is redelijk stabiel
Even vragen, wat is redelijk stabiel?

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
klump4u schreef op donderdag 10 januari 2019 @ 21:03:
[...]

Even vragen, wat is redelijk stabiel?
Zn 10 liter per week wat ik er naast zit!

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Copitano
  • Registratie: februari 2018
  • Laatst online: 01:42

Copitano

Hoorn NH

@Toppe
Heb toevallig gister een nieuwe 5V sensor binnen gekregen, moet ‘m alleen nog even testen
Heb net een 12 V binnen. Niet goed doorgezocht tot ik toevallig de 5 V ook tegen kwam. Als het zonder gedoe met weerstandjes etc. werkt bestel ik ook de 5 V versie. Hoop dat die sneller is dan de 12 V versie. Besteld half november, gister binnen gekomen. Ik lees graag hoe de 5 V het doet.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 | Raspberry Pi 3B+


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Copitano schreef op donderdag 10 januari 2019 @ 21:16:
@Toppe
[...]

Heb net een 12 V binnen. Niet goed doorgezocht tot ik toevallig de 5 V ook tegen kwam. Als het zonder gedoe met weerstandjes etc. werkt bestel ik ook de 5 V versie. Hoop dat die sneller is dan de 12 V versie. Besteld half november, gister binnen gekomen. Ik lees graag hoe de 5 V het doet.
Ik ga hem alleen testen: dit werkt voor mij prima en heb dus geen reden om daad werkelijk over te stappen ;)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Copitano
  • Registratie: februari 2018
  • Laatst online: 01:42

Copitano

Hoorn NH

@Toppe Even een praktische vraag over de 12V sensor. Ik neem aan dat de zwarte draad de data draad is en bruin en blauw + en GND. Klopt dat?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 | Raspberry Pi 3B+


  • Toppe
  • Registratie: januari 2004
  • Laatst online: 19:30
Yes!

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Copitano
  • Registratie: februari 2018
  • Laatst online: 01:42

Copitano

Hoorn NH

Thx! Knippert in ieder geval al ik hem op de meter zet.

Copitano wijzigde deze reactie 10-01-2019 21:51 (89%)

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 | Raspberry Pi 3B+

Pagina: 1


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True