- Componenti richiesti
- Sensore PM Nova SDS011
- Modulo display OLED da 0,96 pollici
- Schema del circuito per l'analizzatore della qualità dell'aria
- Costruire il circuito su Perf Board
- Spiegazione del codice per il monitoraggio della qualità dell'aria
- Test del monitor della qualità dell'aria di Arduino
L'inquinamento atmosferico è un problema importante in molte città e l'indice di qualità dell'aria peggiora ogni giorno. Secondo il rapporto dell'Organizzazione mondiale della sanità, più persone vengono uccise prematuramente dagli effetti delle particelle pericolose presenti nell'aria che dagli incidenti stradali. Secondo l'Environmental Protection Agency (EPA), l'aria interna può essere da 2 a 5 volte più tossica dell'aria esterna. Quindi qui costruiamo un dispositivo per monitorare la qualità dell'aria misurando le particelle PM2,5 e PM10 nell'aria.
In precedenza abbiamo utilizzato il sensore di gas MQ135 per il monitoraggio della qualità dell'aria e il sensore Sharp GP2Y1014AU0F per misurare la densità della polvere nell'aria. Questa volta utilizziamo un sensore SDS011 con Arduino Nano per costruire l'analizzatore della qualità dell'aria. Il sensore SDS011 può calcolare le concentrazioni di particelle PM2,5 e PM10 nell'aria. Qui i valori PM2.5 e PM 10 in tempo reale verranno visualizzati sul display OLED.
Componenti richiesti
- Arduino Nano
- Sensore PM Nova SDS011
- Modulo display OLED SPI da 0,96 '
- Cavi per ponticelli
Sensore PM Nova SDS011
Il sensore SDS011 è un sensore di qualità dell'aria molto recente sviluppato da Nova Fitness. Funziona secondo il principio della diffusione laser e può ottenere una concentrazione di particelle tra 0,3 e 10 μm nell'aria. Questo sensore è costituito da una piccola ventola, una valvola di ingresso dell'aria, un diodo laser e un fotodiodo. L'aria entra attraverso la presa d'aria dove una sorgente luminosa (Laser) illumina le particelle e la luce diffusa viene trasformata in segnale da un fotorilevatore. Questi segnali vengono quindi amplificati ed elaborati per ottenere la concentrazione di particelle di PM2,5 e PM10.
Specifiche del sensore SDS011:
- Uscita: PM2.5, PM10
- Intervallo di misurazione: 0,0-999,9 μg / m3
- Tensione di ingresso: da 4,7 V a 5,3 V.
- Corrente massima: 100 mA
- Corrente di sonno: 2 mA
- Tempo di risposta: 1 secondo
- Frequenza di uscita dati seriali: 1 volta / secondo
- Risoluzione del diametro delle particelle: ≤ 0,3 μm
- Errore relativo: 10%
- Intervallo di temperatura: -20 ~ 50 ° C
Modulo display OLED da 0,96 pollici
OLED (Organic Light-Emitting Diodes) è una tecnologia autoemittente, costruita inserendo una serie di film sottili organici tra due conduttori. Quando una corrente elettrica viene applicata a queste pellicole, viene prodotta una luce intensa. Gli OLED utilizzano la stessa tecnologia dei televisori, ma hanno meno pixel rispetto alla maggior parte dei nostri televisori.
Per questo progetto, utilizziamo un display OLED SSD1306 da 0,96 pollici monocromatico a 7 pin. Può funzionare su tre diversi protocolli di comunicazione: modalità SPI 3 fili, modalità SPI a quattro fili e modalità I2C. I pin e le sue funzioni sono spiegati nella tabella seguente:
Nome pin |
Altri nomi |
Descrizione |
Gnd |
Terra |
Pin di massa del modulo |
Vdd |
Vcc, 5V |
Pin di alimentazione (3-5 V tollerabile) |
SCK |
D0, SCL, CLK |
Funge da perno dell'orologio. Utilizzato sia per I2C che per SPI |
SDA |
D1, MOSI |
Pin dati del modulo. Utilizzato sia per IIC che per SPI |
RES |
RST, RESET |
Resetta il modulo (utile durante SPI) |
DC |
A0 |
Pin di comando dati. Utilizzato per il protocollo SPI |
CS |
Chip Select |
Utile quando più di un modulo viene utilizzato con il protocollo SPI |
Abbiamo coperto un articolo completo sui display OLED e sui suoi tipi qui.
Specifiche OLED:
- IC driver OLED: SSD1306
- Risoluzione: 128 x 64
- Angolo visivo:> 160 °
- Tensione di ingresso: 3,3 V ~ 6 V.
- Colore pixel: blu
- Temperatura di lavoro: -30 ° C ~ 70 ° C
Ulteriori informazioni su OLED e il suo interfacciamento con diversi microcontrollori seguendo il link.
Schema del circuito per l'analizzatore della qualità dell'aria
Lo schema del circuito per misurare le particelle PM2.5 e PM10 utilizzando Arduino è molto semplice e viene fornito di seguito.
Il sensore SDS011 e il modulo display OLED sono entrambi alimentati con + 5V e GND. I pin del trasmettitore e del ricevitore di SDS011 sono collegati ai pin D3 e D4 di Arduino Nano. Poiché il modulo display OLED utilizza la comunicazione SPI, abbiamo stabilito una comunicazione SPI tra il modulo OLED e Arduino Nano. I collegamenti sono mostrati nella tabella seguente:
S.No |
Pin del modulo OLED |
Pin di Arduino |
1 |
GND |
Terra |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Costruire il circuito su Perf Board
Ho anche saldato tutti i componenti sulla scheda perf per renderla pulita. Ma puoi anche farli su una breadboard. Le schede che ho realizzato sono di seguito. Durante la saldatura, assicurati di non ordinare i fili. La scheda perf che ho saldato è mostrata di seguito:
Spiegazione del codice per il monitoraggio della qualità dell'aria
Il codice completo per questo progetto è fornito alla fine del documento. Qui stiamo spiegando alcune parti importanti del codice.
Il codice utilizza i SDS011, Adafruit_GFX , e Adafruit_SSD1306 librerie. Queste librerie possono essere scaricate da Library Manager nell'IDE di Arduino e possono essere installate da lì. Per questo, apri l'IDE di Arduino e vai su Schizzo> Includi libreria> Gestisci librerie . Ora cerca SDS011 e installa la libreria SDS Sensor di R. Zschiegner.
Allo stesso modo, installa le librerie Adafruit GFX e Adafruit SSD1306 di Adafruit.
Dopo aver installato le librerie su Arduino IDE, avvia il codice includendo i file di libreria necessari.
#includere
Nelle righe successive, definire due variabili per memorizzare i valori PM10 e PM2.5.
float p10, p25;
Quindi, definire la larghezza e l'altezza dell'OLED. In questo progetto, stiamo utilizzando un display OLED 128 × 64 SPI. È possibile modificare le variabili SCREEN_WIDTH e SCREEN_HEIGHT in base alla visualizzazione.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Quindi definire i pin di comunicazione SPI a cui è collegato il display OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Quindi, crea un'istanza di visualizzazione Adafruit con la larghezza e l'altezza definite in precedenza con il protocollo di comunicazione SPI.
Display Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Ora all'interno della funzione setup () , inizializza il monitor seriale a una velocità di trasmissione di 9600 per scopi di debug. Inoltre, inizializza il display OLED e il sensore SDS011 con la funzione begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
All'interno del loop void (), leggere i valori PM10 e PM2.5 dal sensore SDS011 e stampare le letture su un monitor seriale.
void loop () {errore = my_sds.read (& p25, & p10); if (! errore) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Successivamente, imposta la dimensione e il colore del testo utilizzando setTextSize () e setTextColor () .
display.setTextSize (2); display.setTextColor (WHITE);
Quindi, nella riga successiva, definire la posizione in cui iniziare il testo utilizzando il metodo setCursor (x, y) . Qui visualizzeremo i valori PM2.5 e PM10 sul display OLED, quindi la prima riga inizia alle coordinate (0,15) mentre la seconda riga inizia alle coordinate (0, 40).
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (p25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (p10);
Infine, chiama il metodo display () per visualizzare il testo sul display OLED.
display.display (); display.clearDisplay ();
Test del monitor della qualità dell'aria di Arduino
Una volta che l'hardware e il codice sono pronti, è il momento di testare il dispositivo. Per questo, collega Arduino al laptop, seleziona la scheda e la porta e premi il pulsante di caricamento. Come puoi vedere nell'immagine qui sotto, mostrerà i valori PM2.5 e PM10 sul display OLED.
Il video e il codice di lavoro completi sono riportati di seguito. Spero ti sia piaciuto il tutorial e hai imparato qualcosa di utile. Se hai domande, lasciale nella sezione commenti o usa i nostri forum per altre domande tecniche.