
Sensore di fumo o gas con Raspberry Pi
Se vogliamo analizzare un certo tipo di gas con un Raspberry Pi, possiamo renderlo molto semplice con i sensori MQ, Avremo solo bisogno di sapere in ogni caso quale sensore ottenere a seconda dei gas da analizzare e il gioco è fatto, Vedremo in questo post come collegarlo e ottenere i valori. Come al solito, al termine salveremo i dati ottenuti in un database MySQL per visualizzarli da Grafana!
Cosa ho detto, il primo sarà sapere quale sensore MQ utilizzeremo, in questo post ci affideremo ad un MQ2 che analizza il Metano, GPL e fumo, ma dovresti sapere che abbiamo anche tra gli altri l'MQ3 per ottenere Alcoho, Etanolo e fumo, con l'MQ4 potremo ottenere Metano e gas naturale compresso o CNG, MQ5 per Gas Naturale & GPL, con l'MQ6 otterremo gas GPL e butano, con il monossido di carbonio MQ7, con MQ8 Idrogeno, MQ9 per monossido di carbonio e gas infiammabili, MA131 per l'ozono, MQ135 per Benzene, Alcol e fumo, MQ136 Idrogeno solforato, MQ137 per Ammoniaca, MQ138 ci darebbe i valori del benzene, Toluene, Acetone, Propano, Alcool e formaldeide gassosa… e così via fino a decidere quale sensore economico acquisteremo per rilevare i gas che ci interessano. Cosa ho detto, in questo post ci basiamo su un MQ-2.
A parte il sensore, avremo anche bisogno di un convertitore analogico-digitale, Uso un MCP3008 e anche un convertitore di livello logico 3.3 a 5V. Vediamo nell'immagine come collegare il GPIO del Raspberry al sensore. A proposito, il sensore può essere regolato se ne abbiamo bisogno con un cacciavite, Ma wow, Di solito è utile, è quello di testare…
E dal punto di vista del software, supponiamo di avere un Raspbian in esecuzione, abbiamo scaricato un meraviglioso script tutRPi da GitHub e abbiamo provato a eseguirlo, È così semplice:
[Codice sorgente]git clone https://github.com/tutRPi/Raspberry-Pi-Gas-Sensor-MQ
cd raspberry-pi-sensore-gas-mq
Pitone example.py[/Codice sorgente]
E se lo modifichiamo un po'… ognuno come ha bisogno e piace… Nel mio caso conosci già questo script che eseguirò quando avvierò il Raspberry Pi usando cron, ogni 60 Inserirà i valori ottenuti dal sensore in una tabella in un database. Vediamo allora come lo visualizziamo con Grafana… Ecco come apparirebbe lo script:
[Codice sorgente]
Da mq importa *
Importa sistema, Ore
mq = MQ();
mentre Vero:
perc = mq. MQPercentage()
perc di stampa["GAS_LPG"]
perc di stampa["CO"]
perc di stampa["FUMO"]
importare MySQLdb
db = MySQLdb.connect("DIRECCION_IP_SERVIDOR_MYSQL","UTENTE","PAROLA CHIAVE","BASE_DE_DATOS")
cursore = db.cursore()
cursore.execute("""INSERIRE NEI gas (GPL, CO, fumo) VALORI (%s, %s, %s) """,( perc["GAS_LPG"], perc["CO"], perc["FUMO"]))
db.commit()
tempo.sonno(60)
[/Codice sorgente]
Detto questo, questo script memorizza in una tabella denominata gas che hanno 4 Colonne, 3 di loro sono gas (GPL, CO e fumo) e un altro è la data, Vi lascio il codice nel caso qualcuno ne avesse bisogno e ho una tabella identica per lo script precedente:
[Codice sorgente]CREA TABELLA 'gas' (
'LPG' FLOAT NULL DEFAULT NULL,
'CO' FLOAT NULL DEFAULT NULL,
'smoke' FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
ROW_FORMAT=COMPATTO
;[/Codice sorgente]
E già nel nostro Grafana, possiamo aggiungere un Graph Dashboard in un Dashboard ad esempio ed effettuare query al DB MySQL per disegnare le metriche dei gas che stiamo analizzando. Sembra molto bello, No?? Ti lascio nel caso tu abbia bisogno delle Query che sto facendo:
[Codice sorgente]SELEZIONA fumo come valore, "Fumo" come metrico, UNIX_TIMESTAMP(dattero) come time_sec DA gas DOVE $ __timeFilter(dattero) Ordina per time_sec ASC
SELEZIONA GPL come valore, "GPL" come metrico, UNIX_TIMESTAMP(dattero) come time_sec DA gas DOVE $ __timeFilter(dattero) Ordina per time_sec ASC
SELECT CO come valore, "CO" come metrico, UNIX_TIMESTAMP(dattero) come time_sec DA gas DOVE $ __timeFilter(dattero) Ordina per time_sec ASC[/Codice sorgente]
Pronto! Spero che tu l'abbia trovato interessante, hai già visto sul blog altri tipi di sensori per connettersi ad un Raspberry Pi e conoscere lo stato del nostro ambiente! Per godere!!!