O Sensor de Formaldeído (HCHO) SFA40 da DFRobot é um módulo compacto de deteção de gases projetado para medir a concentração de formaldeído (HCHO) no ar.
O sensor baseia-se no chip Sensirion SFA40 e fornece medições precisas numa faixa de 0 a 1000 ppb. A tecnologia de deteção SFA40 é projetada para baixa sensibilidade cruzada. Como resultado, substâncias comuns em casa, como álcool, perfume ou vapores cítricos, têm menos probabilidade de causar leituras falsas.
O módulo também integra compensação ambiental através de um sensor de temperatura e humidade incorporado, o que ajuda a manter medições estáveis e precisas sob condições ambientais variáveis.
A placa do sensor comunica com microcontroladores através de uma interface I²C, permitindo uma integração simples com plataformas como Arduino, ESP32 ou Raspberry Pi.
Neste tutorial, aprenderás como ligar o Sensor SFA40 a um Arduino UNO e como ler dados do sensor.
Peças Necessárias
Vais precisar do Gravity: Sensor de Formaldeído (HCHO) SFA40 da DFRobot. Quanto ao microcontrolador, usei um Arduino UNO para este projeto, mas qualquer outro Arduino ou ESP32 também funcionará.

Gravity: Sensor de Formaldeído (HCHO) SFA40

Arduino Uno

Cabo USB para Arduino UNO

Conjunto de Fios Dupont

Breadboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Hardware do Sensor SFA40 HCHO
O módulo do sensor baseia-se no Sensirion SFA40 elemento de deteção de formaldeído. Este elemento utiliza tecnologia de deteção electroquímica para identificar moléculas de formaldeído no ar circundante.
Num sensor de gás electroquímico, ocorre uma reação química na superfície do eletrodo quando o gás alvo está presente. Esta reação produz um pequeno sinal elétrico proporcional à concentração do gás. A eletrónica do sensor converte este sinal num valor de medição digital.
O sistema de deteção é otimizado especificamente para formaldeído (HCHO). A química interna e as estruturas de filtragem são projetadas para minimizar reações com outros compostos orgânicos voláteis. Esta alta seletividade permite ao sensor distinguir formaldeído de muitos gases interferentes comuns.
O sensor fornece uma saída totalmente calibrada. A calibração é realizada durante a fabricação e armazenada dentro do dispositivo. O utilizador não precisa de realizar calibrações adicionais durante a operação normal.
Faixa de Medição e Precisão
O sensor SFA40 mede concentrações de formaldeído numa faixa de 0 a 1000 partes por bilião (ppb). Esta faixa cobre concentrações típicas interiores, bem como níveis elevados que podem ocorrer em ambientes mal ventilados ou em divisões com mobiliário e materiais de construção novos.
O valor de saída é reportado diretamente em partes por bilião. Isto simplifica o processamento de dados em microcontroladores, pois não é necessária conversão ou escala adicional.
Características Elétricas
O próprio elemento de deteção opera com uma tensão de alimentação entre 1,62 V e 3,6 V. O módulo Gravity inclui circuitos adicionais que permitem a operação com alimentação de 3,3 V ou 5 V quando ligado a plataformas de microcontroladores.
O consumo de energia é otimizado para aplicações de monitorização contínua. O consumo médio de corrente é aproximadamente 80 µA em modo de medição com frequência de amostragem de cerca de 2 Hz. A corrente de pico pode atingir até 2 mA durante os ciclos de medição.
Design Físico e Integração do Módulo
O próprio elemento de deteção SFA40 tem um tamanho muito compacto de aproximadamente 13 mm × 10 mm × 2,4 mm. O módulo Gravity SEN0661 integra este elemento numa placa breakout maior. O tamanho da placa é aproximadamente 32 mm × 22 mm. Inclui a regulação de tensão necessária e circuitos de interface para plataformas de microcontroladores.
O módulo também fornece um conector padrão Gravity de 4 pinos, que simplifica a ligação e permite conexão plug-and-play a placas de desenvolvimento. Podes encontrar o pinout do conector abaixo:

O sensor contém uma membrana de ventilação protetora na câmara de deteção. Esta membrana permite a difusão do gás enquanto protege os elementos internos de deteção contra poeira e contaminantes. Não remova esta membrana nem a exponha a solventes orgânicos!

Condições Ambientais de Operação
O módulo foi projetado para operar numa ampla gama de condições ambientais. A faixa de temperatura suportada vai de −40 °C a +125 °C. O sensor pode operar em níveis de humidade relativa entre 0 % e 100 %, desde que não ocorra condensação. O elemento de deteção inclui algoritmos internos para compensação de temperatura.
Especificação Técnica
A tabela seguinte resume a especificação técnica do Sensor de Formaldeído (HCHO) SFA40:
| Parâmetro | Especificação |
|---|---|
| Tipo de Sensor | Sensor electroquímico de formaldeído (HCHO) |
| Elemento de Deteção | Sensirion SFA40 |
| Faixa de Medição | 0 a 1000 ppb (partes por bilião) |
| Limite de Detecção | < 20 ppb (típico) |
| Precisão | ±20 ppb ou ±20% do valor medido (típico) |
| Sensibilidade Cruzada ao Etanol | < 0,3% |
| Interface | Interface digital I²C |
| Endereço I²C | 0x5D |
| Tensão de Operação (Sensor) | 1,62 V – 3,6 V |
| Tensão de Operação (Módulo) | 3,3 V – 5 V |
| Consumo Médio de Corrente | ~80 µA |
| Corrente de Pico | Até ~2 mA durante a medição |
| Taxa de Atualização da Medição | Até ~2 medições por segundo |
| Temperatura de Operação | −40 °C a +125 °C |
| Humidade de Operação | 0% – 100% HR (sem condensação) |
| Dimensões do Módulo | ~32 mm × 22 mm |
| Tamanho do Pacote do Sensor | ~13 mm × 10 mm × 2,4 mm |
| Unidade de Saída | Concentração de formaldeído em ppb |
| Calibração | Calibrado de fábrica |
Instalar a Biblioteca DFRobot_SFA40
Vamos usar a Biblioteca DFRobot_SFA40 para ler dados do Sensor SFA40. Para a instalar, vai à github repo da biblioteca, clica no botão verde “<> Code” e depois em “Download ZIP”, como mostrado abaixo:

Isto descarrega a Biblioteca DFRobot_SFA40 como ficheiro ZIP (DFRobot_SFA40-master.zip) para o teu computador.
De seguida, abre um novo Sketch, vai a Sketch -> Include Library -> Add .ZIP Library … para instalar a biblioteca ZIP descarregada (DFRobot_SFA40-master.zip):

Ligar o Sensor SFA40 ao Arduino UNO
O Sensor SFA40 usa a interface I2C para comunicação e é fácil de ligar. Começa por ligar o VCC a 5V e o GND ao terra. Depois, simplesmente liga a interface I2C: SDA–SDA e SCL–SCL como mostrado abaixo:

Código para ler dados do Sensor SFA40
O código seguinte demonstra como interligar o sensor SFA40 com uma placa Arduino. O sensor mede temperatura, humidade e concentração de formaldeído em partes por bilião (ppb). As leituras são impressas no Monitor Serial a cada segundo.
// https://github.com/DFRobot/DFRobot_SFA40 V 1.0.3
// www.makerguides.com
#include "DFRobot_SFA40.h"
DFRobot_SFA40 SFA40;
void display(const char* text, float value, const char* unit) {
Serial.print(text);
Serial.print(value, 1);
Serial.print(" ");
Serial.println(unit);
}
void setup() {
Serial.begin(115200);
while (SFA40.begin() != 0) {
Serial.println("Could not find sensor!");
delay(1000);
}
SFA40.startMeasurement();
}
void loop() {
uint8_t status = SFA40.readMeasurementData();
if (status == 0) {
Serial.println("\n----------------------------");
display("Temperature: ", SFA40.temperatureC, "C");
display("Temperature: ", SFA40.temperatureF, "F");
display("Humidity : ", SFA40.humidity, "%RH");
display("HOCO : ", SFA40.HCHO, "ppb");
}
delay(1000);
}
Importações
No início, o código inclui a biblioteca para o sensor SFA40. Esta biblioteca contém todas as funções necessárias para comunicar com o sensor e obter dados de medição.
#include "DFRobot_SFA40.h"
Inicialização do Objeto
De seguida, é criado um objeto chamado SFA40 da classe DFRobot_SFA40. Este objeto será usado para interagir com o sensor ao longo do programa.
DFRobot_SFA40 SFA40;
Função de Exibição
A função display() é uma função auxiliar projetada para imprimir as leituras do sensor no Monitor Serial de forma formatada. Recebe três parâmetros: um rótulo de texto, um valor em ponto flutuante e uma string de unidade. O valor é impresso com uma casa decimal.
void display(const char* text, float value, const char* unit) {
Serial.print(text);
Serial.print(value, 1);
Serial.print(" ");
Serial.println(unit);
}
Função Setup
A função setup() inicializa a comunicação serial a 115200 baud para permitir a saída de dados para o Monitor Serial. Depois tenta inicializar o sensor chamando SFA40.begin(). Se o sensor não for encontrado, imprime uma mensagem de erro a cada segundo até o sensor ser detetado. Uma vez que o sensor é inicializado com sucesso, inicia o modo de medição contínua com SFA40.startMeasurement().
void setup() {
Serial.begin(115200);
while (SFA40.begin() != 0) {
Serial.println("Could not find sensor!");
delay(1000);
}
SFA40.startMeasurement();
}
Função Loop
Dentro da função loop(), o código lê os dados mais recentes do sensor chamando SFA40.readMeasurementData(). Esta função retorna um código de estado, onde 0 indica uma leitura bem-sucedida. Se a leitura for bem-sucedida, o programa imprime uma linha separadora e depois usa a função display() para mostrar a temperatura em Celsius e Fahrenheit, humidade relativa e concentração de formaldeído (HCHO) em partes por bilião. Finalmente, o programa espera 1 segundo antes de repetir o processo.
void loop() {
uint8_t status = SFA40.readMeasurementData();
if (status == 0) {
Serial.println("\n----------------------------");
display("Temperature: ", SFA40.temperatureC, "C");
display("Temperature: ", SFA40.temperatureF, "F");
display("Humidity : ", SFA40.humidity, "%RH");
display("HOCO : ", SFA40.HCHO, "ppb");
}
delay(1000);
}
Exemplo de Saída
O exemplo seguinte mostra a saída no Monitor Serial:
---------------------------- Temperature: 22.1 C Temperature: 71.8 F Humidity : 43.2 %RH HOCO : 39.0 ppb
Conclusão
Neste tutorial aprendeste a usar o Sensor de Formaldeído (HCHO) SFA40 com um Arduino UNO. O sensor pode ser facilmente usado com outros microcontroladores, como um ESP32.
Se procuras outros sensores de gás, dá uma vista de olhos nos seguintes posts:
- Fermion MEMS VOC Gas Sensor GM-502B with Arduino
- Fermion MEMS Smoke Sensor GM-202B with Arduino
- Fermion MEMS Odor Sensor GM-512B with Arduino
- Fermion MEMS Carbon Monoxide CO Gas Sensor GM-702B with Arduino
- How to use the MQ-2 Gas Sensor with Arduino and an OLED
- How to use the MQ-4 Methane Gas Sensor With Arduino
- How to use the MQ-7 Gas Sensor with an LCD display and Arduino
- Measure Air Quality with BME680
Se tiveres alguma dúvida, não hesites em deixar nos comentários.
Boa bricolage 😉

