www.errorediridondanzaciclicodotcom

  • Home
  • relay logger
  • BACK P.P.

  • Un logger per il relay

    Questo dispositivo è stato pensato per un uso industriale.
    Mi è capitato sul lavoro che fosse emersa l’esigenza di monitorare il funzionamento di un relay per capire quante volte era intervenuto.
    Sempre con il solito Raspi ho deciso di fare un logger minimale che, una volta collegato ad un contatto “pulito” di un relay, registrasse le aperture (o chiusure) che avvenivano.
    Poiché questo apparato doveva essere messo in prossimità di quadri elettrici in produzione, non poteva essere dotato di monitor e tastiera. Il controllo deve avvenire con SSH che, rimanendo interno alla rete, non richiede aperture di porte sul router e può quindi essere inserito in ogni (o quasi) rete aziendale.
    Tuttavia per accedere al Raspi da un altro pc bisogna conoscerne l’IP che, essendo uno strumento ad impiego saltuario e non fisso nella rete, deve rimanere con IP assegnato in DHCP.

    Per questo motivo, come si vede dalla foto, il logger ha un display che mostra, all’accensione, il proprio indirizzo IP.
    Ho utilizzato un display già dotato di interfaccia i2c che permette il collegamento al Raspi con solo 4 fili: Vcc (5v), GND, SDA ed SCL. Tutto il lavoro lo svolgono le librerie e gli script di visualizzazione.

    Ho preso le librerie disponibili su GitHub di RPLCD, effettuato i test e, una volta appurato che tutto funzionasse, ho iniziato a preparare lo script di visualizzazione.
    Con l’aiuto di Adafruit (cambiando ovviamente gli import da librerie differenti) ho preparato lo script in Python e, alla fine, dopo pochi secondi dall’accensione, ecco comparire sul display l’indirizzo IP.
    Una riga con la data, l’ora e i secondi mi permette di controllare che tutto stia funzionando.
    Per la parte di logger, sempre in Python, ho preparato lo script che lancio una volta collegato. Nello schema a blocchi sotto si vede il percorso che si può scegliere all’avvio, mediante risposte da riga di comando.

    La prima scelta è tra un relay NO e NC, a seconda di cosa si vuole monitorare: l’apertura di un NC o la chiusura di un NO.
    Si passa poi alla scelta tra il funzionamento come ‘logger’ o come ‘allarme’. Il logger registrerà ogni azione del relay con la durata di funzionamento.
    L’allarme è una scelta differente (poteva anche essere implicita nel logger) perché permette di fare un’ulteriore scelta, tra l’invio o no di notifiche push.
    Facendo infatti la scelta di inviare notifiche push, ad ogni azionamento del relay lo script manda una notifica attraverso l’applicazione Pushover.
    Sia come logger che come allarme (in ambedue le scelte di push) rimane poi un’ultima scelta tra cancellare o meno i file su cui vengono scritti i dati.
    In caso di più relay o di letture in periodi differenti, spetta all’utente se ripartire ogni volta da zero o “appendere” i dati successivi.
    Tutti i dati sono visibili sui rispettivi file di testo per le analisi finali.

    Per il collegamento al relay (CONTATTI PULITI!) ho previsto una spina con un filo volante da usare al momento della preparazione del quadro da monitorare.