Lettura S0 - script python

Discussioni relative all'uso di contatori ad impulsi S0
Avatar utente
fuzero
Messaggi: 39
Iscritto il: 27/04/2017, 22:00

Re: Lettura S0 - script python

Messaggioda fuzero » 10/09/2018, 16:07

prova a lanciare lo script in python qui sotto, ti dovrebbe stampare i dati letti, se counter aumenta vuol dire che legge l'impulso:

Codice: Seleziona tutto

pin_gpio = 4
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_gpio, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

counter = 0
tpulse0 =0
while True:
    GPIO.wait_for_edge(pin_gpio, GPIO.RISING)
    tpulse1 = time.time()
    deltat = tpulse1 - tpulse0
    counter += 1
    print str(metern_id) + '(' + str(counter) + '*Wh)'
    print "diff T ",deltat
    print "power is ",3600/deltat
    print str(metern_id) + '(' + str(int(round(3600/deltat))) +'*W)'
    tpulse0 = tpulse1
    GPIO.wait_for_edge(pin_gpio, GPIO.FALLING)

GPIO.cleanup()


Avatar utente
maxsemp
Messaggi: 85
Iscritto il: 13/04/2018, 11:44

Re: Lettura S0 - script python

Messaggioda maxsemp » 10/09/2018, 18:36

Ho provato a far girare lo script modificando pin_gpio mettendo = 2, ma la risposta è quella che vedete nell'immagine allegata. Cos'è sta roba?
Scusatemi ma non capisco!!!
Immagine
Si riferisce per caso alla resistenza da 200 ohm che ho inserito su +S0?
Grazie.

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: Lettura S0 - script python

Messaggioda Flane » 10/09/2018, 22:53

No, si riferisce alal resistenza di pullup interna presente nel raspberry.
Ti avvisa che il canale che stai usando ha la resistenza di pullup interna, ma è proprio quello che si vuole

Avatar utente
maxsemp
Messaggi: 85
Iscritto il: 13/04/2018, 11:44

Re: Lettura S0 - script python

Messaggioda maxsemp » 12/09/2018, 8:46

fuzero, ho provato la ma soluzione ma lo script non gira

Immagine

Mi chiedo se per caso non abbia sbagliato a collegare la resistenza da 200 ohm, in serie al cavo +S0 (porta GPIO 2). Forse devo cambiare porta?
Grazie.

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: Lettura S0 - script python

Messaggioda Flane » 12/09/2018, 10:45

Io non ho ancora capito come fate con questo script ad avere un valore dell'energia che si somma all'ultimo valore loggato. :?:
Da quello che vedo se riavvi il raspberry l'energia parte da zero (counter=0).

MeterN necessita di un valore incrementale dell'energia, un numero che continua a crescere dall'ultima lettura salvata, ma io non vedo da nessuna parte nello script che all'avvio recuperi l'ultimo valore loggato e gli sommi poi gli impulsi letti dal contatore. :?

Come non vedo un fattore di conversione degli impulsi..... mica tutti i contatori hanno 1 impulso = 1 Wh :?

Avatar utente
maxsemp
Messaggi: 85
Iscritto il: 13/04/2018, 11:44

Re: Lettura S0 - script python

Messaggioda maxsemp » 12/09/2018, 14:04

Se non ho capito male lo script dovrebbe creare un file txt in /dev/shm, ma, nel mio caso, questo non succede. Niente file txt, quindi, niente dati, zero letture :cry:
Anche se i test command sembrano essere validi :?:

Immagine

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: Lettura S0 - script python

Messaggioda Flane » 12/09/2018, 16:20

Il file txt lo crea al primo impulso ricevuto.
Se non riceve gli impulsi .... niente file.
Prova a dargli degli impulsi manualmente, mettendo a massa per un istante la GPIO con uno spezzone di cavo.
Non avendo un antirimbalzo può essere che ti conti più di un impulso agendo in questo modo, ma alemno capisci se il problema è lato software (script) o lato hardware (contatore / cablaggio).

....e comunque rimane il problema che ho detto sopra, ed ho dei dubbi che possa funzionare correttamente.

Per quello che costa un contatore modbus ti toglie tutti i problemi, sistema ormai collaudato ed hai tutti i parametri energetici ;)

Avatar utente
fuzero
Messaggi: 39
Iscritto il: 27/04/2017, 22:00

Re: Lettura S0 - script python

Messaggioda fuzero » 12/09/2018, 17:13

prova a capire se non hai problemi di permessi sulla scrittura del file in quella posizione.
come utente da cui lanci lo script prova a dare un :
touch /run/shm/pippo.txt
ti dovrebbe creare un file vuoto pippo.txt se puoi scrivere, in caso contrario il problema sono i permessi.

@flane come tu hai sollevato è vero che non memorizzo il valore di energia assoluto ma a me funziona perchè se non ricordo male calcola la differenza a 5 minuti, stasera a casa col raspberry verifico se è proprio così ma mi ricordo che anche su reboot non mi ha dato problemi.
Giustamente il mio conteggio è fatto per un impulso= 1Kwh , in effetti se fosse diverso la variabile counter andrebbe riparametrata.

Avatar utente
maxsemp
Messaggi: 85
Iscritto il: 13/04/2018, 11:44

Re: Lettura S0 - script python

Messaggioda maxsemp » 12/09/2018, 18:54

flene, ho dato alcuni impulsi manualmente, come dici, ma non ho ottenuto nessun risultato.

fuzero, ho fatto la prova che mi hai suggerito ed ho verificato che non è un problema di permessi, perchè il file pippo è stato creato correttamente.

Ergo? Cosa posso fare?

Vi chiedo scusa se insisto, ma a questo punto mi piacerebbe riuscire a risolvere questo problema, anche solo per gusto. Grazie per il Vs. aiuto.

Avatar utente
fuzero
Messaggi: 39
Iscritto il: 27/04/2017, 22:00

Re: Lettura S0 - script python

Messaggioda fuzero » 12/09/2018, 19:12

Questa è la mia connessione, i fili marrone e blu vanno al connettore s0 che chiude il contattoImmagine

Inviato dal mio SM-G930F utilizzando Tapatalk


Torna a “Contatori ad impulsi”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti