Disclaimer

Prestare sempre attenzione a seguire le indicazioni fornite in questo blog, soprattutto se si tratta di apparecchiature elettriche collegate alla tensione di 220V. Non mi ritengo responsabile di danni causati dall'aver seguito i consigli qui pubblicati.
Grazie

sabato 29 agosto 2015

Acquisizione dati - Sensore gas remoto




Dopo aver connesso e configurato il ricevitore dati, non rimane altro che predisporre uno o più sensori remoti e iniziare a trasmettere qualche dato.

Niente di meglio che sfruttare il prototipo di rilevatore di gas che avevo a suo tempo già "costruito" e fatto funzionare con una scheda Arduino UNO

Questo è il link al posto in cui avevo descritto qualche esperimento:

Primo esperimento: un semplice rilevatore di gas

Ne faccio una versione semplificata per la semplice rilevazione di gas metano, utilizzando il sensore MQ-4 [Datasheet]



e il trasmettitore wireless RF-433 per inviare i dati al ricevitore.


Il tutto condito da un pò di collegamenti elettrici, led per indicare lo stato del sistema e pulsantino per annullare le segnalazioni.

HARDWARE

Questo è lo schema disegnato su Fritzing:


Oltre al trasmettitore Wireless RF-433 e al sensore del gas MQ-4, abbiamo anche un led rosso, uno verde e uno RGB; inoltre è presente anche un push-button nella parte sinistra dello schema. Chiaramente il tutto condito dalle resistenze necessarie per non bruciare i led, alimentati dalla linea 5V di Arduino, che, a sua volta, è alimentato, tramite trasformatore, a 12V, per garantire un maggior raggio d'azione del trasmettitore wireless, collegato alla tensione di alimentazione di Arduino e non alla linea dei 5V.

PIN 11: push-button

PIN A1: pin analogico del sensore del GAS

PIN 9: trasmissione dati wireless

PIN 12: led rosso per indicazione di attività di trasmissione wireless
PIN 8: led verde per indicazione di attività di campionamento dati dal sensore
PIN 3, 5 e 6: led RGB per indicazione sullo stato del sistema secondo la seguente legenda:

 - spento: valori all'interno della soglia normale;
 - giallo: è stato rilevato almeno un valore sopra la soglia normale ma sotto la soglia di pericolo;
 - rossoè stato rilevato almeno un valore sopra la soglia di pericolo;


Eccolo fisicamente montato e collegato:



FUNZIONAMENTO e MESSAGGISTICA

All'accensione del rilevatore, il sistema avvia una fase di riscaldamento del sensore MQ-4, prima di procedere alla campionatura dei dati; questa fase è necessaria per stabilizzare la precisione del sensore...In questa fase il led RGB lampeggia.

Successivamente alla fase di riscaldamento, inizia la raccolta dei dati.

Il campionamento del segnale del sensore avviene ogni secondo (quindi il led verde, a funzionamento normale, dovrebbe lampeggiare ogni secondo); in questo secondo vengono letti 10 campioni e calcolata la media; ogni 5 secondi viene inviato al ricevitore un segnale calcolato come la media dei 5 segnali campionati (quindi il led rosso, a funzionamento normale, dovrebbe lampeggiare ogni 5 secondi).

In caso di segnale fuori soglia, viene acceso il led RGB con il colore che indica il tipo di gravità (vedi sopra).

Il pulsante presente nel circuito serve semplicemente ad azzerare lo stato del sistema...questo perchè una volta che il sensore rileva dei segnali fuori soglia, accende il led e anche se il sistema torna con valori sotto soglia, il led rimane acceso. Il pulsante serve quindi a spegnere il led. In questo modo se avviene una rilevazione fuori soglia, è possibile accorgersene anche se non si è presenti in quel preciso momento.

Il segnale che ogni 5 secondi viene inviato al ricevitore è una stringa di testo composta nel seguente modo

GAS;VALORE;STATO|

VALORE è la media dei 5 dati campionati, STATO è un valore numerico ed indica eventuali dati fuori soglia con la seguente codifica:

 - 1: ok;
 - 2: warning
 - 3: danger

SOFTWARE

Lo sketch software di Arduino è scaricabile da questo link

DOWNLOAD

Chiaramente, come per il ricevitore, anche qui ho utilizzato le librerie RADIOHEAD per la gestione della scheda Wireless.

Routine di inizializzazione:

- viene inizializzato il ricevitore wireless RF433

- vengono inizializzati i led di stato;

- viene effettuata la fase di riscaldamento del sensore MQ-4

corpo principale del programma:

- la prima cosa che viene fatta nel loop principale e controllare se il pulsante di reset dell'avviso è stato premuto andando a controllare il relativo ingresso digitale (PIN 11); nel caso sia premuto viene messa ad OFF la variabile che gestisce lo stato del rilevatore;

- viene quindi effettuata la lettura del sensore campionando dieci valori e facendone la media; in questo frangente viene acceso il led di lettura (PIN 8);

- ogni 5 letture, effettuate ogni secondo, viene calcolato il dato media da utilizzare per il controllo dello stato e da inviare al ricevitore tramite la rete Wireless RF-433;

- il led di stato (PIN 3, 5 e 6) si aggiorna di conseguenza ed in caso di valore fuori soglia si accende del colore relativo;

- il dato calcolato viene inviato al ricevitore tramite Wireless RF-433; in questo frangente viene acceso il led di invio dati (PIN 12);

Ecco un video del funzionamento: