- Componentes necessários
- Módulo de exibição OLED de 0,96 '
- Preparando o Sensor MQ-135
- Diagrama de circuito para interface MQ135 com Arduino
- Calculando o R
- Código para medir CO2 usando o sensor Arduino MQ135
- Testando a interface do sensor MQ-135
O nível de CO2 atmosférico da Terra está aumentando dia a dia. A média global de dióxido de carbono na atmosfera em 2019 era de 409,8 partes por milhão e em outubro de 2020 é de 411,29. O dióxido de carbono é um dos principais gases do efeito estufa e responsável por cerca de três quartos das emissões. Portanto , o monitoramento do nível de CO2 também começou a ganhar importância.
Em nosso projeto anterior, usamos o sensor de CO2 por infravermelho por gravidade para medir a concentração de CO2 no ar. Neste projeto, vamos usar um sensor MQ-135 com Arduino para medir a concentração de CO2. Os valores de concentração de CO2 medidos serão exibidos no módulo OLED e, por último, também compararemos as leituras do sensor Arduino MQ-135 com as leituras do sensor infravermelho de CO2. Além do CO2, também medimos a concentração de gás GLP, fumaça e amônia usando o Arduino.
Componentes necessários
- Arduino Nano
- Sensor MQ-135
- Jumper Wires
- Módulo de exibição OLED de 0,96 'SPI
- Tábua de pão
- Resistor 22KΩ
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. Você também pode aprender mais sobre os fundamentos da tela OLED e seus tipos lendo o artigo vinculado. 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 |
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
Preparando o Sensor MQ-135
MQ-135 Gas Sensor é um sensor de qualidade do ar para detectar uma ampla gama de gases, incluindo NH3, NOx, álcool, benzeno, fumaça e CO2. O sensor MQ-135 pode ser adquirido como um módulo ou apenas como um sensor sozinho. Neste projeto, estamos usando um módulo sensor MQ-135 para medir a concentração de CO2 em PPM. O diagrama de circuito para a placa MQ-135 é fornecido abaixo:
O resistor de carga RL desempenha um papel muito importante em fazer o sensor funcionar. Este resistor muda seu valor de resistência de acordo com a concentração do gás. De acordo com a folha de dados MQ-135, o valor do resistor de carga pode variar de 10KΩ a 47KΩ. A folha de dados recomenda que você calibre o detector para 100 ppm de NH3 ou 50 ppm de concentração de álcool no ar e use um valor de resistência de carga (RL) de cerca de 20 KΩ. Mas se você rastrear seus traços de PCB para encontrar o valor de seu RL na placa, você pode ver um resistor de carga de 1KΩ (102).
Portanto, para medir os valores de concentração de CO2 apropriados, você deve substituir o resistor de 1KΩ por um resistor de 22KΩ.
Diagrama de circuito para interface MQ135 com Arduino
O esquema completo para conectar o sensor de gás MQ-135 ao Arduino é fornecido abaixo:
O circuito é muito simples, pois estamos conectando apenas o sensor MQ-135 e o módulo de display OLED com o Arduino Nano. O sensor de gás MQ-135 e o módulo de exibição OLED são alimentados com + 5V e GND. O pino Analog Out do sensor MQ-135 é conectado ao pino A0 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 |
Depois de conectar o hardware de acordo com o diagrama de circuito, a configuração do sensor Arduino MQ135 deve ser semelhante a abaixo:
Calculando o R
Agora que sabemos o valor de RL, vamos prosseguir com o cálculo dos valores de R o em ar puro. Aqui, vamos usar MQ135.h para medir a concentração de CO2 no ar. Portanto, primeiro baixe a biblioteca MQ-135 e, em seguida, pré-aqueça o sensor por 24 horas antes de ler os valores R o. Após o processo de pré-aquecimento, use o código abaixo para ler os valores R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } loop vazio () {MQ135 gasSensor = MQ135 (A0); // Anexe o sensor ao pino A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); atraso (1000); }
Agora, uma vez que você obteve os valores R o, vá para Documentos> Arduino> bibliotecas> pasta MQ135-master e abra o arquivo MQ135.h e altere os valores RLOAD e RZERO.
/// A resistência de carga na placa #define RLOAD 22.0 /// Resistência de calibração no nível de CO2 atmosférico #define RZERO 5804.99
Agora role para baixo e substitua o valor ATMOCO2 com o CO2 atmosférico atual que é 411,29
/// Nível de CO2 atmosférico para fins de calibração # define ATMOCO2 397,13
Código para medir CO2 usando o sensor Arduino MQ135
O código completo para fazer a interface do sensor MQ-135 com o Arduino é fornecido no final do documento. Aqui, estamos explicando algumas partes importantes do código do Arduino MQ135.
O código usa a Adafruit_GFX , e Adafruit_SSD1306 , e MQ135.h bibliotecas. Essas bibliotecas podem ser baixadas do Library Manager no Arduino IDE e instalá-lo a partir daí. Para isso, abra o IDE Arduino e vá para Sketch <Incluir Biblioteca <Gerenciar Bibliotecas . Agora procure Adafruit GFX e instale a biblioteca Adafruit GFX de Adafruit.
Da mesma forma, instale as bibliotecas Adafruit SSD1306 da Adafruit. A biblioteca MQ135 pode ser baixada aqui.
Depois de instalar as bibliotecas no Arduino IDE, inicie o código incluindo os arquivos de bibliotecas necessários.
#include "MQ135.h" #include
Em seguida, defina a largura e a altura do OLED. Neste projeto, estamos usando um display OLED SPI 128 × 64. Você pode alterar o 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);
Depois disso, defina o pino do Arduino onde o sensor MQ-135 está conectado.
int sensorIn = A0;
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 com a função begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Dentro da função loop () , primeiro leia os valores do sinal no pino analógico do Arduino chamando a função analogRead () .
val = leitura analógica (A0); Serial.print ("raw =");
Então, na próxima linha, chame gasSensor.getPPM () para calcular os valores de PPM. Os valores PPM são calculados usando o resistor de carga, R 0, e a leitura do pino analógico.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Depois disso, defina o tamanho e a cor do texto usando setTextSize () e setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
Então, na próxima linha, defina a posição onde o texto começa usando o método setCursor (x, y) . E imprima os valores de CO2 no display OLED usando a função display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
E, por último, chame o método display () para exibir o texto no visor OLED.
display.display (); display.clearDisplay ();
Testando a interface do sensor MQ-135
Assim que o hardware e o código estiverem prontos, é hora de testar o sensor. Para isso, conecte o Arduino ao laptop, selecione a Placa e a Porta e aperte o botão de upload. Em seguida, abra seu monitor serial e aguarde algum tempo (processo de pré-aquecimento), então você verá os dados finais. Os valores serão exibidos no display OLED conforme mostrado abaixo:
É assim que um sensor MQ-135 pode ser usado para medir com precisão o CO2 no ar. O código Arduino do sensor de qualidade do ar MQ135 completo e o vídeo de trabalho são fornecidos abaixo. Se você tiver alguma dúvida, deixe-a na seção de comentários.