Arduino Nano ESP32 - Sensor de CO2 SCD40
Uma sala cheia de gente vai se enchendo de CO2 aos poucos. Você não vê nem sente o cheiro, mas sente isso como uma cabeça pesada e perda de foco. Neste guia, vamos aprender a usar o sensor de CO2 SCD40 com o Arduino Nano ESP32 para colocar um número real nisso. Em detalhes, vamos aprender:
- Como o SCD40 funciona e o que fazem seus quatro pinos.
- Como conectar o SCD40 aos pinos I2C do Arduino Nano ESP32.
- Como programar o Arduino Nano ESP32 para ler o CO2 em ppm e transformá-lo em uma palavra simples sobre a qualidade do ar.
- Como ler os valores bônus de temperatura e umidade do mesmo sensor.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de CO2 SCD40
O SCD40 da Sensirion mede o CO2 verdadeiro, não um palpite de "eCO2" como o MQ135 ou o CCS811. Dentro de sua pequena câmara, uma luz infravermelha pisca ligando e desligando. O CO2 absorve parte dessa luz e faz um minúsculo "som" de pressão, e um microfone embutido o ouve. Mais CO2 dá um sinal mais forte. O módulo conversa com o Arduino Nano ESP32 por I2C, então precisa de apenas dois fios de sinal.

O módulo tem quatro pinos:
- Pino VCC: conecte a 3.3V (o sensor aceita de 2.4V a 5.5V). Algumas placas o rotulam como VIN.
- Pino GND: conecte ao GND (0V).
- Pino SDA: linha de dados I2C. Conecte ao A4 do Arduino Nano ESP32.
- Pino SCL: linha de clock I2C. Conecte ao A5 do Arduino Nano ESP32.
A maioria dos módulos SCD40 já tem resistores de pull-up I2C na placa, então você não precisa adicioná-los.
| SCD40 | |
|---|---|
| Tensão de alimentação | 2.4V a 5.5V |
| Interface | I2C, endereço 0x62 |
| Faixa de saída de CO2 | 0 a 40,000 ppm |
| Precisão de CO2 | ±(50 ppm + 5% da leitura), de 400 a 2,000 ppm |
| Nova leitura | a cada 5 segundos (a cada 30 segundos no modo de baixo consumo) |
| Precisão de temperatura | ±0.8°C (15°C a 35°C) |
| Precisão de umidade | ±6 %RH (15°C a 35°C, 20 a 65 %RH) |
| Corrente média | cerca de 15mA a 3.3V |
O Que Significam os Números de CO2?
| CO2 (ppm) | Qualidade do ar | O que fazer |
|---|---|---|
| cerca de 400 | Ar externo | Nada, este é ar fresco |
| 400 a 1000 | Bom ar interno | Nada |
| 1000 a 2000 | Abafado | Abra uma janela |
| acima de 2000 | Ruim | Ventile agora, dor de cabeça e sonolência são possíveis |
※ Nota:
A autocalibração automática (ASC) vem ATIVADA por padrão. O sensor espera ver ar fresco, de nível externo (cerca de 400 ppm), pelo menos uma vez por semana, idealmente por uma hora ou mais. Se ele nunca recebe ar fresco, suas leituras podem derivar aos poucos. Além disso, as primeiras leituras depois de ligar podem ser menos precisas.
Diagrama de Ligação
O SCD40 usa os pinos I2C padrão do Arduino Nano ESP32: A4 para SDA e A5 para SCL. Como a placa funciona a 3.3V, alimente o módulo pelo pino 3V3.

This image is created using Fritzing. Click to enlarge image
| Módulo SCD40 | Arduino Nano ESP32 |
|---|---|
| VCC | → 3V3 |
| GND | → GND |
| SDA | → A4 |
| SCL | → A5 |
Como Programar o SCD40
- Inclua as bibliotecas.
- Crie o objeto do sensor.
- Inicie o I2C e diga à biblioteca qual barramento e qual endereço usar.
- Inicie a medição periódica (um novo valor a cada 5 segundos).
- Verifique se um novo valor está pronto e depois leia-o.
A biblioteca sempre lê CO2, temperatura e umidade juntos. No primeiro sketch, imprimimos apenas o valor de CO2.
Código Arduino Nano ESP32 - Sensor de CO2 SCD40
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
- Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
- Ligue o módulo SCD40 ao Arduino Nano ESP32 de acordo com a tabela e o diagrama acima.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
- Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda da Arduino IDE.
- Digite "SCD4x" na caixa de pesquisa e procure a biblioteca Sensirion I2C SCD4x da Sensirion.
- Clique no botão Install.
- Uma janela pede para instalar uma dependência (Sensirion Core). Clique em Install All.
- Search for Sensirion I2C SCD4x created by Sensirion and click the Install button.
- Copie o código acima e cole-o na Arduino IDE.
- Clique no botão Upload para enviar o código ao Arduino Nano ESP32.
- Abra o Serial Monitor. O primeiro valor chega depois de cerca de 5 segundos.
- Respire suavemente perto do sensor por alguns segundos e veja o valor de CO2 subir e depois cair de novo.
※ Nota:
Se você vir uma mensagem de erro em vez de números, verifique se o SDA vai para o A4 e o SCL vai para o A5, e não o contrário.
Lendo a Temperatura e a Umidade do SCD40
O SCD40 tem dentro dele um pequeno sensor próprio de temperatura e umidade. Ele os usa para corrigir o valor de CO2, e a biblioteca nos entrega esses valores de graça na mesma chamada readMeasurement(). Então, sem nenhuma ligação extra, o Arduino Nano ESP32 pode mostrar os três valores. A ligação e a biblioteca continuam as mesmas de acima.
※ Nota:
O sensor esquenta um pouco enquanto trabalha, então sua temperatura pode marcar um pouco mais do que a do ambiente. Isso é bom para um monitor de ambiente, mas use um sensor dedicado se você precisar de uma temperatura precisa.
Código Arduino Nano ESP32 - CO2, Temperatura e Umidade do SCD40
Passos Rápidos
- Copie o código acima e cole-o na Arduino IDE.
- Clique no botão Upload para enviar o código ao Arduino Nano ESP32.
- Abra o Serial Monitor para ver os três valores em uma só linha.