- Components necessaris
- Nova PM Sensor SDS011
- Mòdul de pantalla OLED de 0,96 '
- Diagrama de circuits per a l'analitzador de qualitat de l'aire
- Construint el circuit a la junta Perf
- Explicació del codi per al monitor de qualitat de l'aire
- Proves del monitor de qualitat de l’aire Arduino
La contaminació atmosfèrica és un problema important a moltes ciutats i l’índex de qualitat de l’aire empitjora cada dia. Segons l'informe de l'Organització Mundial de la Salut, hi ha més persones que moren prematurament pels efectes de les partícules perilloses que es presenten a l'aire que pels accidents de trànsit. Segons l'Agència de Protecció del Medi Ambient (EPA), l'aire interior pot ser de 2 a 5 vegades més tòxic que l'aire exterior. Així doncs, aquí construïm un dispositiu per controlar la qualitat de l’aire mesurant partícules PM2,5 i PM10 a l’aire.
Anteriorment hem utilitzat el sensor de gas MQ135 per al control de qualitat de l’aire i el sensor Sharp GP2Y1014AU0F per mesurar la densitat de pols a l’aire. Aquesta vegada, utilitzem un sensor SDS011 amb Arduino Nano per construir un analitzador de qualitat de l’aire. El sensor SDS011 pot calcular les concentracions de partícules de PM2,5 i PM10 a l’aire. Aquí es mostraran els valors PM2.5 i PM 10 en temps real a la pantalla OLED.
Components necessaris
- Arduino Nano
- Nova PM Sensor SDS011
- Mòdul de pantalla OLED de 0,96 '
- Jumper Wires
Nova PM Sensor SDS011
El sensor SDS011 és un sensor de qualitat de l’aire molt recent desenvolupat per Nova Fitness. Funciona sobre el principi de dispersió làser i pot obtenir la concentració de partícules entre 0,3 i 10 μm a l’aire. Aquest sensor està format per un petit ventilador, una vàlvula d’entrada d’aire, un díode làser i un fotodiode. L’aire entra a través de l’entrada d’aire on una font de llum (làser) il·lumina les partícules i la llum dispersa es transforma en un senyal mitjançant un fotodetector. Aquests senyals s’amplifiquen i processen per obtenir la concentració de partícules de PM2,5 i PM10.

Especificacions del sensor SDS011:
- Sortida: PM2.5, PM10
- Rang de mesura: 0,0-999,9 μg / m3
- Voltatge d'entrada: 4,7V a 5,3V
- Corrent màxim: 100mA
- Corrent de son: 2 mA
- Temps de resposta: 1 segon
- Freqüència de sortida de dades en sèrie: 1 vegada / segon
- Resolució del diàmetre de les partícules: ≤ 0,3 μm
- Error relatiu: 10%
- Rang de temperatura: -20 ~ 50 ° C
Mòdul de pantalla OLED de 0,96 '
OLED (Organic Light-Emitting Diodes) és una tecnologia autoemissora, construïda col·locant una sèrie de pel·lícules primes orgàniques entre dos conductors. Es produeix una llum brillant quan s’aplica un corrent elèctric a aquestes pel·lícules. Els OLED utilitzen la mateixa tecnologia que els televisors, però tenen menys píxels que a la majoria dels nostres televisors.

Per a aquest projecte, fem servir una pantalla OLED SSD1306 de 0,96 polzades monocroma de 7 pins. Pot funcionar en tres protocols de comunicacions diferents: mode SPI 3 Wire, mode SPI de quatre fils i mode I2C. Els pins i les seves funcions s’expliquen a la taula següent:
|
Nom del pin |
Altres noms |
Descripció |
|
Gnd |
Terra |
Pas de terra del mòdul |
|
Vdd |
Vcc, 5V |
Pin d'alimentació (tolerable de 3-5 V) |
|
SCK |
D0, SCL, CLK |
Actua com el passador del rellotge. S’utilitza tant per a I2C com per a SPI |
|
SDA |
D1, MOSI |
Pin de dades del mòdul. S’utilitza tant per a IIC com per a SPI |
|
RES |
RST, RESET |
Restableix el mòdul (útil durant SPI) |
|
DC |
A0 |
Pin de comandament de dades. S'utilitza per al protocol SPI |
|
CS |
Selecció de xip |
Útil quan s'utilitza més d'un mòdul sota el protocol SPI |
Aquí hem tractat un article complet sobre pantalles OLED i els seus tipus.
Especificacions OLED:
- IC del controlador OLED: SSD1306
- Resolució: 128 x 64
- Angle visual:> 160 °
- Voltatge d'entrada: 3.3V ~ 6V
- Color de píxels: blau
- Temperatura de treball: -30 ° C ~ 70 ° C
Seguiu l’enllaç per obtenir més informació sobre OLED i la seva interfície amb diferents microcontroladors.
Diagrama de circuits per a l'analitzador de qualitat de l'aire
El diagrama de circuits per mesurar les partícules PM2.5 i PM10 mitjançant Arduino és molt senzill i es mostra a continuació.


El sensor SDS011 i el mòdul de pantalla OLED s’alimenten amb + 5V i GND. Els pins del receptor i del transmissor de SDS011 estan connectats als pins D3 i D4 d’Arduino Nano. Com que el mòdul OLED Display utilitza la comunicació SPI, hem establert una comunicació SPI entre el mòdul OLED i Arduino Nano. Les connexions es mostren a la taula següent:
|
S.No |
Pin del mòdul OLED |
Pin Arduino |
|
1 |
GND |
Terra |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
RES |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
Construint el circuit a la junta Perf
També he soldat tots els components del tauler de perfeccionament perquè sembli net. Però també podeu fer-les en una taula de tall. Les taules que he fet són a sota. Mentre soldeu, assegureu-vos de no classificar els cables. A continuació es mostra el tauler de perf que he soldat:

Explicació del codi per al monitor de qualitat de l'aire
El codi complet d’aquest projecte es dóna al final del document. Aquí expliquem algunes parts importants del codi.
El codi utilitza les SDS011, Adafruit_GFX , i Adafruit_SSD1306 biblioteques. Aquestes biblioteques es poden descarregar des del gestor de biblioteques a l'IDE Arduino i es poden instal·lar des d'allà. Per a això, obriu l'IDE d'Arduino i aneu a Sketch> Inclou biblioteca> Gestiona biblioteques . Ara cerqueu SDS011 i instal·leu la biblioteca SDS Sensor de R. Zschiegner.
De la mateixa manera, instal·leu les biblioteques Adafruit GFX i Adafruit SSD1306 d'Adafruit.
Després d’instal·lar les biblioteques a Arduino IDE, inicieu el codi incloent els fitxers de biblioteca necessaris.
#incloure
A les línies següents, definiu dues variables per emmagatzemar els valors PM10 i PM2.5.
flotador p10, p25;
A continuació, definiu l'amplada i l'alçada OLED. En aquest projecte, utilitzem una pantalla OLED de 128 × 64 SPI. Podeu canviar les variables SCREEN_WIDTH i SCREEN_HEIGHT segons la vostra pantalla.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
A continuació, definiu els pins de comunicació SPI on està connectada la pantalla OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
A continuació, creeu una instància de visualització d'Adafruit amb l'amplada i l'alçada definides anteriorment amb el protocol de comunicació SPI.
Pantalla Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Ara dins de la funció setup () , inicialitzeu el monitor sèrie a una velocitat de transmissió de 9600 per a la depuració. A més, inicialitzeu la pantalla OLED i el sensor SDS011 amb la funció begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Dins del bucle buit (), llegiu els valors PM10 i PM2.5 del sensor SDS011 i imprimiu les lectures en un monitor sèrie.
bucle buit () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + Cadena (p25)); Serial.println ("P10:" + Cadena (p10));
Després, configureu la mida del text i el color del text amb setTextSize () i setTextColor () .
display.setTextSize (2); display.setTextColor (BLANC);
A continuació, a la línia següent, definiu la posició per iniciar el text mitjançant el mètode setCursor (x, y) . Aquí mostrarem els valors PM2.5 i PM10 a la pantalla OLED, de manera que la primera línia comença a (0,15) mentre que la segona línia comença a les coordenades (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);
I, finalment, truqueu al mètode display () per mostrar el text a la pantalla OLED.
display.display (); display.clearDisplay ();
Proves del monitor de qualitat de l’aire Arduino
Un cop el maquinari i el codi estiguin preparats, és hora de provar el dispositiu. Per a això, connecteu l'Arduino a l'ordinador portàtil, seleccioneu la placa i el port i premeu el botó de càrrega. Com podeu veure a la imatge següent, mostrarà els valors PM2.5 i PM10 a la pantalla OLED.

A continuació es dóna el vídeo i el codi de treball complet. Espero que us hagi agradat el tutorial i hàgiu après alguna cosa útil. Si teniu cap pregunta, deixeu-les a la secció de comentaris o utilitzeu els nostres fòrums per a altres consultes tècniques.
