- Componentes necessários
- Sensor Nova PM SDS011
- Módulo de exibição OLED de 0,96 '
- Diagrama de circuito para analisador de qualidade do ar
- Construindo o Circuito na Placa Perf
- Explicação do código para monitor de qualidade do ar
- Teste do monitor de qualidade do ar Arduino
A poluição do ar é um grande problema em muitas cidades e o índice de qualidade do ar está piorando a cada dia. De acordo com o relatório da Organização Mundial de Saúde, mais pessoas morrem prematuramente pelos efeitos de partículas perigosas apresentadas no ar do que em acidentes de carro. De acordo com a Agência de Proteção Ambiental (EPA), o ar interno pode ser 2 a 5 vezes mais tóxico do que o ar externo. Portanto, aqui construímos um dispositivo para monitorar a qualidade do ar medindo as partículas PM2,5 e PM10 no ar.
Anteriormente, usamos o sensor de gás MQ135 para monitor de qualidade do ar e o sensor Sharp GP2Y1014AU0F para medir a densidade de poeira no ar. Desta vez, estamos usando um sensor SDS011 com Arduino Nano para construir o analisador de qualidade do ar. O sensor SDS011 pode calcular as concentrações de partículas PM2.5 e PM10 no ar. Aqui, os valores de PM2.5 e PM 10 em tempo real serão exibidos no display OLED.
Componentes necessários
- Arduino Nano
- Sensor Nova PM SDS011
- Módulo de exibição OLED de 0,96 'SPI
- Jumper Wires
Sensor Nova PM SDS011
O Sensor SDS011 é um sensor de qualidade do ar muito recente desenvolvido pela Nova Fitness. Ele funciona com base no princípio de espalhamento de laser e pode obter a concentração de partículas entre 0,3 a 10μm no ar. Este sensor consiste em um pequeno ventilador, válvula de admissão de ar, diodo laser e fotodiodo. O ar entra pela entrada de ar onde uma fonte de luz (Laser) ilumina as partículas e a luz espalhada é transformada em sinal por um fotodetector. Esses sinais são então amplificados e processados para obter a concentração de partículas de PM2,5 e PM10.
Especificações do sensor SDS011:
- Saída: PM2.5, PM10
- Faixa de medição: 0,0-999,9μg / m3
- Tensão de entrada: 4,7 V a 5,3 V
- Corrente máxima: 100mA
- Corrente do sono: 2mA
- Tempo de resposta: 1 segundo
- Frequência de saída de dados serial: 1 vez / segundo
- Resolução do diâmetro de partícula: ≤ 0,3μm
- Erro relativo: 10%
- Faixa de temperatura: -20 ~ 50 ° C
Módulo de exibição OLED de 0,96 '
OLED (Organic Light-Emitting Diodes) é uma tecnologia de emissão de luz própria, construída colocando uma série de filmes finos orgânicos entre dois condutores. Uma luz brilhante é produzida quando uma corrente elétrica é aplicada a esses filmes. Os OLEDs usam a mesma tecnologia dos televisores, mas têm menos pixels do que a maioria de nossas TVs.
Para este projeto, estamos usando uma tela OLED SSD1306 monocromática de 7 pinos de 0,96 ”. Ele pode funcionar em três protocolos de comunicação diferentes: modo SPI 3 fios, modo SPI quatro fios e modo I2C. Os pinos e suas funções são explicados na tabela abaixo:
Nome do Pin |
Outros nomes |
Descrição |
Gnd |
Terra |
Pino de aterramento do módulo |
Vdd |
Vcc, 5V |
Pino de alimentação (3-5 V tolerável) |
SCK |
D0, SCL, CLK |
Atua como o pino do relógio. Usado para I2C e SPI |
SDA |
D1, MOSI |
Pino de dados do módulo. Usado para IIC e SPI |
RES |
RST, RESET |
Reinicia o módulo (útil durante o SPI) |
DC |
A0 |
Pino de comando de dados. Usado para protocolo SPI |
CS |
Chip Select |
Útil quando mais de um módulo é usado sob o protocolo SPI |
Abordamos um artigo completo sobre monitores OLED e seus tipos aqui.
Especificações de OLED:
- CI do driver OLED: SSD1306
- Resolução: 128 x 64
- Ângulo visual:> 160 °
- Tensão de entrada: 3,3V ~ 6V
- Cor do pixel: azul
- Temperatura de trabalho: -30 ° C ~ 70 ° C
Saiba mais sobre OLED e sua interface com diferentes microcontroladores seguindo o link.
Diagrama de circuito para analisador de qualidade do ar
O diagrama do circuito para medir partículas PM2.5 e PM10 usando o Arduino é muito simples e é fornecido abaixo.
O sensor SDS011 e o módulo de display OLED são alimentados com + 5V e GND. Os pinos do transmissor e receptor do SDS011 são conectados aos pinos D3 e D4 do Arduino Nano. Como o módulo OLED Display usa comunicação SPI, estabelecemos uma comunicação SPI entre o módulo OLED e o Arduino Nano. As conexões são mostradas na tabela abaixo:
S.Não |
Pin do módulo OLED |
Pin Arduino |
1 |
GND |
Terra |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Construindo o Circuito na Placa Perf
Também soldei todos os componentes da placa de desempenho para torná-la perfeita. Mas você também pode fazê-los em uma placa de ensaio. As pranchas que fiz estão abaixo. Durante a soldagem, certifique-se de não separar os fios. A placa de desempenho que soldou é mostrada abaixo:
Explicação do código para monitor de qualidade do ar
O código completo para este projeto é fornecido no final do documento. Aqui estamos explicando algumas partes importantes do código.
O código usa os SDS011, Adafruit_GFX , e Adafruit_SSD1306 bibliotecas. Essas bibliotecas podem ser baixadas do Library Manager no Arduino IDE e podem ser instaladas a partir daí. Para isso, abra o Arduino IDE e vá para Sketch> Incluir Biblioteca> Gerenciar Bibliotecas . Agora procure por SDS011 e instale a biblioteca de sensores SDS de R. Zschiegner.
Da mesma forma, instale as bibliotecas Adafruit GFX e Adafruit SSD1306 da Adafruit.
Depois de instalar as bibliotecas no Arduino IDE, inicie o código incluindo os arquivos de biblioteca necessários.
#incluir
Nas próximas linhas, defina duas variáveis para armazenar os valores PM10 e PM2.5.
float p10, p25;
Em seguida, defina a largura e a altura do OLED. Neste projeto, estamos usando um display OLED SPI 128 × 64. Você pode mudar isso SCREEN_WIDTH e SCREEN_HEIGHT variáveis de acordo com a sua exibição.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Em seguida, defina os pinos de comunicação SPI onde o display OLED está conectado.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Em seguida, crie uma instância de exibição Adafruit com a largura e a altura definidas anteriormente com o protocolo de comunicação SPI.
Tela Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Agora, dentro da função setup () , inicialize o Monitor Serial a uma taxa de transmissão de 9600 para fins de depuração. Além disso, inicialize o display OLED e o sensor SDS011 com a função begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Dentro do loop void (), leia os valores PM10 e PM2.5 do sensor SDS011 e imprima as leituras em um monitor serial.
loop void () {erro = my_sds.read (& p25, & p10); if (! erro) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Depois disso, defina o tamanho e a cor do texto usando setTextSize () e setTextColor () .
display.setTextSize (2); display.setTextColor (WHITE);
Então, na próxima linha, defina a posição para iniciar o texto usando o método setCursor (x, y) . Aqui, exibiremos os valores PM2.5 e PM10 no display OLED, de forma que a primeira linha comece em (0,15) enquanto a segunda linha começa em (0, 40) coordenadas.
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);
E, finalmente, chame o método display () para exibir o texto no visor OLED.
display.display (); display.clearDisplay ();
Teste do monitor de qualidade do ar Arduino
Assim que o hardware e o código estiverem prontos, é hora de testar o dispositivo. Para isso, conecte o Arduino ao laptop, selecione a Placa e a Porta e aperte o botão de upload. Como você pode ver na imagem abaixo, ele exibirá os valores PM2.5 e PM10 no display OLED.
O vídeo de trabalho completo e o código são fornecidos abaixo. Espero que você tenha gostado do tutorial e aprendido algo útil. Se você tiver alguma dúvida, deixe-a na seção de comentários ou use nossos fóruns para outras questões técnicas.