23/02/2020, 15:41
Salve a tutti, ho un contatore Eastron SDM120A (non modbus) con uscita S0.
vorrei riuscire a calcolare la potenza istantanea e i kwh consumati ma ho dei problemi.
alcune info in più, il contatore emette 1000 impulsi/kwh
nelle istruzioni c'è scritto che l'uscita a impulsi è di tipo transistor passiva dipendente dalla polarita e richiede una fonte di alimentazione esterna 5-27Vcc e la max corrente in ingresso dovrebbe essere 27mA.
la lunghezza del cavo tra contatore e raspberry è circa una decina di metri (forse anche meno) il cavo è un cat6 di cui tre fili sono utilizzati per la seriale di un inverter solare e due sono collegati al contatore.
Ho collegato il 5v del raspberry al S0+ del contatore, il filo S0- è collegato al pin GPIO4 con una resistenza da 200Ohm in serie.
con questo programmino dovrei riuscire a leggere i watt istantanei e i watt/h
il codice va rivisto in alcuni punti ma questo lo faro in un secondo momento dopo aver risolto il problema principale
dagli output ho sempre letture enormi dei watt (tipo 250000)e i watt/h vengono incrementati come un conteggio al secondo se non piu velocemente....
ho anche provato a mettere una resistenza di pull down da 100k (ho anche provato con una da 10k) da il GPIO 4 e la massa ma senza alcun risultato...
qualcuno ha dei consigli da darmi?
forse il cavo è troppo lungo?
link scheda tecnica contatore
https://checkwatt.se/pdf/Eastron%20SDM120D.pdf
vorrei riuscire a calcolare la potenza istantanea e i kwh consumati ma ho dei problemi.
alcune info in più, il contatore emette 1000 impulsi/kwh
nelle istruzioni c'è scritto che l'uscita a impulsi è di tipo transistor passiva dipendente dalla polarita e richiede una fonte di alimentazione esterna 5-27Vcc e la max corrente in ingresso dovrebbe essere 27mA.
la lunghezza del cavo tra contatore e raspberry è circa una decina di metri (forse anche meno) il cavo è un cat6 di cui tre fili sono utilizzati per la seriale di un inverter solare e due sono collegati al contatore.
Ho collegato il 5v del raspberry al S0+ del contatore, il filo S0- è collegato al pin GPIO4 con una resistenza da 200Ohm in serie.
con questo programmino dovrei riuscire a leggere i watt istantanei e i watt/h
il codice va rivisto in alcuni punti ma questo lo faro in un secondo momento dopo aver risolto il problema principale
Codice:
import time
import RPi.GPIO as GPIO
pin_gpio = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_gpio, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
contatore = 0
t_first = 0
while True:
GPIO.wait_for_edge(pin_gpio, GPIO.RISING)
t_last = time.time()
delta = t_last - t_first
contatore = contatore + 1
watt = (3600/delta)
print watt
print contatore
t_first = t_last
GPIO.wait_for_edge(pin_gpio, GPIO.FALLING)
GPIO.cleanup()
dagli output ho sempre letture enormi dei watt (tipo 250000)e i watt/h vengono incrementati come un conteggio al secondo se non piu velocemente....
ho anche provato a mettere una resistenza di pull down da 100k (ho anche provato con una da 10k) da il GPIO 4 e la massa ma senza alcun risultato...
qualcuno ha dei consigli da darmi?
forse il cavo è troppo lungo?
link scheda tecnica contatore
https://checkwatt.se/pdf/Eastron%20SDM120D.pdf