- Componentes necessários
- Sensor infravermelho de gravidade CO2
- Módulo de exibição OLED de 0,96 '
- Diagrama de circuito
- Código Arduino para medir a concentração de CO2
- Testando a interface do sensor de CO2 infravermelho de gravidade
A concentração crescente de dióxido de carbono no ar tornou-se um problema sério agora. De acordo com o relatório da NOAA, a concentração de ozônio CO2 atingiu 0,0385 por cento (385 ppm) e é a maior quantidade em 2,1 milhões de anos. Isso significa que em um milhão de partículas de ar, existem 385 partículas de dióxido de carbono. Esse aumento do nível de CO2 afetou gravemente o meio ambiente e nos levou a enfrentar situações como as mudanças climáticas e o aquecimento global. Existem muitos dispositivos de medição da qualidade do ar instalados nas estradas para informar o nível de CO2, mas também podemos construir um dispositivo de medição de CO2 DIY e instalá-lo em nossa área.
Neste tutorial, faremos a interface do sensor infravermelho de gravidade de CO2 com o Arduino para medir a concentração de CO2 em PPM. O sensor infravermelho de gravidade de CO2 é um sensor analógico de CO2 de alta precisão. Ele mede o conteúdo de CO2 na faixa de 0 a 5000 ppm. Você também pode verificar nossos projetos anteriores, onde usamos o sensor de gás MQ135, o sensor Sharp GP2Y1014AU0F e o sensor Nova PM SDS011 para construir um monitor de qualidade do ar.
Componentes necessários
- Arduino Nano
- Sensor infravermelho de gravidade CO2 V1.1
- Jumper Wires
- Módulo de exibição OLED de 0,96 'SPI
- Tábua de pão
Sensor infravermelho de gravidade CO2
O sensor de CO2 por infravermelho por gravidade V1.1 é o mais recente sensor de CO2 por infravermelho analógico de alta precisão lançado pela DFRobot. Este sensor é baseado na tecnologia de infravermelho não dispersivo (NDIR) e tem boa seletividade e dependência livre de oxigênio. Integra compensação de temperatura e suporta saída DAC. A faixa de medição efetiva deste sensor é de 0 a 5000ppm com uma precisão de ± 50ppm + 3%. Este sensor infravermelho de CO2 pode ser usado em HVAC, monitoramento da qualidade do ar interno, processo industrial e monitoramento de proteção de segurança, monitoramento do processo de produção agrícola e pecuária.
Pinagem do sensor infravermelho de CO2 :
Conforme mencionado anteriormente, o sensor infravermelho de CO2 vem com um conector de 3 pinos. A figura e a tabela abaixo mostram as atribuições dos pinos para o sensor infravermelho de CO2:
Pin No. |
Nome do Pin |
Descrição |
---|---|---|
1 |
Sinal |
Saída Analógica (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Especificações e recursos do sensor infravermelho de CO2 :
- Detecção de gás: dióxido de carbono (CO2)
- Tensão operacional: 4,5 ~ 5,5 V DC
- Tempo de pré-aquecimento: 3min
- Tempo de resposta: 120s
- Temperatura de operação: 0 ~ 50 ℃
- Umidade operacional: 0 ~ 95% UR (sem condensação)
- À prova d'água e anticorrosão
- Alto ciclo de vida
- Interferência anti-vapor de água
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:
Já cobrimos o OLED e seus tipos em detalhes no artigo anterior.
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
Saiba mais sobre OLED e sua interface com diferentes microcontroladores seguindo o link.
Diagrama de circuito
O diagrama de circuito para interface do sensor de CO2 infravermelho analógico de gravidade para Arduino é fornecido abaixo:
O circuito é muito simples, pois estamos apenas conectando o sensor de CO2 infravermelho de gravidade e o módulo de display OLED com o Arduino Nano. O sensor infravermelho de CO2 e o módulo de display OLED são alimentados com + 5V e GND. O pino de sinal (saída analógica) do sensor de CO2 é 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, ele deve se parecer com o seguinte:
Código Arduino para medir a concentração de CO2
O código completo para este sensor de CO2 infravermelho analógico por gravidade para o projeto Arduino é fornecido no final do documento. Aqui estamos explicando algumas partes importantes do código.
O código usa a Adafruit_GFX , e Adafruit_SSD1306 bibliotecas. Essas bibliotecas podem ser baixadas do Library Manager no Arduino IDE e instalá-lo a partir daí. Para isso, abra o Arduino IDE 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. O sensor infravermelho de CO2 não requer nenhuma biblioteca, pois estamos lendo os valores de tensão diretamente do pino analógico do Arduino.
Depois de instalar as bibliotecas no Arduino IDE, inicie o código incluindo os arquivos de biblioteca necessários. O sensor de poeira não requer nenhuma biblioteca, pois a leitura é feita diretamente do pino analógico do Arduino.
#incluir
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 de CO2 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); analogReference (DEFAULT);
Dentro da função loop () , primeiro leia os valores do sinal no pino analógico do Arduino chamando a função analogRead () . Depois disso, converta esses valores de sinal analógico em valores de tensão.
void loop () {int sensorValue = analogRead (sensorIn); tensão flutuante = sensorValue * (5000 / 1024,0);
Depois disso, compare os valores de tensão. Se a tensão for 0 V, significa que ocorreu algum problema com o sensor. Se a tensão for maior que 0 V, mas menor que 400 V, significa que o sensor ainda está em processo de pré-aquecimento.
if (tensão == 0) {Serial.println ("Falha"); } else if (voltagem <400) {Serial.println ("pré-aquecimento"); }
Se a tensão for igual ou superior a 400 V, converta-a para valores de concentração de CO2.
senão {diferença_tensão interna = tensão-400; concentração flutuante = diferença_tensão * 50,0 / 16,0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (concentração);
E, por último, chame o método display () para exibir o texto no visor OLED.
display.display (); display.clearDisplay ();
Testando a interface do sensor de CO2 infravermelho de gravidade
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:
Observação: antes de usar o sensor, deixe-o aquecer por aproximadamente 24 horas para obter os valores PPM corretos. Quando liguei o sensor pela primeira vez, a concentração de saída de CO2 foi de 1500 PPM a 1700PPM e após um processo de aquecimento de 24 horas, a concentração de saída de CO2 diminuiu para 450 PPM a 500 PPM, que são os valores PPM corretos. Portanto, é necessário calibrar o sensor antes de usá-lo para medir a concentração de CO2.
É assim que um sensor infravermelho de CO2 pode ser usado para medir a concentração precisa de CO2 no ar. O código completo e o vídeo de trabalho são fornecidos abaixo. Em caso de dúvidas, deixe-as na seção de comentários ou utilize nossos fóruns para ajuda técnica.