O sensor de gás analógico Fermion VOC da DFRobot é um módulo compacto de deteção de compostos orgânicos voláteis (VOC) projetado para integração com plataformas de microcontroladores como Arduino e ESP32.
Ele utiliza tecnologia de sistemas microeletromecânicos (MEMS) para fornecer alta sensibilidade a uma variedade de VOCs, incluindo etanol, formaldeído e tolueno na faixa aproximada de 1 a 500 ppm.
Neste tutorial, aprenderás a medir concentrações de VOC e a ativar um alarme sonoro ou piscar um LED se a concentração de VOC ficar demasiado alta.
Peças Necessárias
Vais precisar de um sensor de gás Fermion VOC da DFRobot. Quanto ao microcontrolador, usei um Arduino Uno para este projeto, mas qualquer outro Arduino ou ESP32 também funcionará.
Para o nosso sistema de alarme de gás, precisaremos de um LED ou um buzzer, que podes adquirir na Amazon. Também usaremos um OLED para mostrar os valores medidos de VOC num ecrã. Listei abaixo o pequeno OLED SSD1306 128×64 que utilizei.

Sensor de Gás MEMS Fermion VOC

Buzzer Passivo

Kit de Resistores & LED

Ecrã OLED

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 de Gás Fermion VOC
O sensor de gás analógico Fermion VOC da DFRobot é uma placa compacta de deteção de gases projetada para detetar compostos orgânicos voláteis (VOCs), como etanol, formaldeído, tolueno e outros.
Baseia-se no chip GM-502B, que utiliza tecnologia de sistemas microeletromecânicos (MEMS) para alcançar um formato pequeno com baixo consumo de energia e características de resposta rápida.
A placa mede aproximadamente 13 mm por 13 mm com uma espessura de cerca de 2,5 mm. A imagem abaixo mostra a placa com o sensor GM-502B no topo e um regulador de tensão por baixo:

O módulo destina-se à deteção qualitativa de concentrações de VOC em vez de análise quantitativa precisa. Note que a DFRobot também oferece sensores calibrados, mas são maiores e mais caros (link).
Características Elétricas e Saída
O sensor opera numa faixa de tensão de alimentação de 3,3 V a 5 V, que corresponde aos níveis lógicos da maioria das placas de desenvolvimento Arduino e ESP32. Quando alimentado, o dispositivo consome menos de 20 mA de corrente operacional e gera muito pouco aquecimento próprio devido ao seu design MEMS.
A concentração de gás é representada por uma saída de tensão analógica que varia proporcionalmente à quantidade de VOC detectada no ar circundante. A tensão de saída está na faixa de 0…VCC.
Faixa de Deteção e Sensibilidade
O sensor pode detetar VOCs comuns como etanol, formaldeído e tolueno numa faixa de 1 ppm a 500 ppm. A sensibilidade é quantificada pela razão da resistência no ar limpo (R0) para a resistência numa concentração conhecida de VOC (Rs), com uma especificação típica de R0/Rs ≥ 3 a uma concentração de etanol de 50 ppm. Como mencionado antes, a saída do sensor não é um valor calibrado de concentração.
Especificações Ambientais e de Vida Útil
O elemento sensor é projetado para operar numa faixa de temperatura ambiente de aproximadamente -10 °C a +50 °C e humidade relativa de 15 % a 90 % (sem condensação). O fabricante especifica uma vida útil de pelo menos cinco anos quando o sensor é usado em condições atmosféricas normais sem contaminação excessiva.
Como os sensores de VOC respondem a uma ampla classe de gases orgânicos, fatores ambientais como humidade, temperatura e a presença de outros gases também podem afetar a saída.
Pinagem
Fisicamente, a placa expõe três pinos para conexão: saída analógica (A), tensão de alimentação (VCC) e terra (GND). A imagem abaixo mostra a pinagem da placa:

Esquemas
A imagem seguinte mostra o esquema da placa do sensor de gás Fermion VOC:

Podes ver o regulador de tensão e o chip sensor GM-502B com o resistor de carga de 20K na saída VOUT.
Preparação
O sensor de gás vem com uma película protetora que precisas remover. Se olhares para o topo do sensor, verás uma película amarela a cobrir os orifícios de entrada de ar. Usa uma pinça para retirar a película. As fotos abaixo mostram o sensor com a película protetora completa, a meio de ser removida e completamente removida:

Note que o sensor requer um período de aquecimento para atingir estabilidade operacional. Isto pode levar vários minutos na primeira utilização até que as leituras se estabilizem. Se não usares o sensor por um longo tempo, é recomendado deixá-lo funcionar entre 24 a 72 horas:

Especificação Técnica
A tabela seguinte resume a especificação técnica do sensor de gás Fermion VOC:
| Parâmetro | Especificação |
|---|---|
| Tipo de Sensor | Sensor de gás VOC baseado em MEMS |
| Gases Alvo | Compostos orgânicos voláteis (ex.: etanol, formaldeído, tolueno) |
| Faixa de Deteção | Aproximadamente 1 ppm a 500 ppm |
| Tipo de Saída | Saída de tensão analógica |
| Tensão de Operação | 3,3 V a 5 V DC |
| Corrente de Operação | < 20 mA |
| Resistência de Carga (RL) | 20 kΩ (a bordo) |
| Temperatura de Operação | -10 °C a +50 °C |
| Humidade de Operação | 15 % a 90 % HR (sem condensação) |
| Característica de Resposta | A tensão de saída aumenta com o aumento da concentração de VOC |
| Tempo de Aquecimento | Vários minutos (estabilização inicial necessária) |
| Vida Útil Esperada | ≥ 5 anos (em condições normais) |
| Dimensões | Aprox. 13 mm × 13 mm × 2,5 mm (elemento sensor) |
| Pinos de Interface | VCC, GND, Saída Analógica |
E aqui está um link para a folha de dados do GM-502B com mais dados técnicos:
Sensor de Gás Fermion VOC versus Sensor de Gás MQ-135
Uma alternativa comum ao sensor Fermion VOC é o mais antigo sensor MQ-135 MQ-135. A seguir, uma breve comparação entre os dois sensores.
Tecnologia e Princípio de Deteção
O sensor Fermion VOC usa tecnologia MEMS (sistemas microeletromecânicos) que responde a compostos orgânicos voláteis alterando a resistência interna e produzindo uma tensão analógica proporcional. O seu design é otimizado para baixo consumo, tamanho compacto e deteção qualitativa de VOC na faixa de 1–500 ppm, com aquecimento próprio mínimo e rápida recuperação.
Em contraste, o MQ-135 é um sensor semicondutor de óxido metálico (MOS) que incorpora uma camada sensora aquecida de dióxido de estanho (SnO₂). O sensor apresenta ampla sensibilidade cruzada a gases como amoníaco, benzeno, compostos relacionados com CO₂ e fumo. Sensores MOS como o MQ-135 têm consumo de energia muito maior e requerem um período de aquecimento mais longo antes das leituras se estabilizarem.
Condições de Operação e Consumo de Energia
O sensor Fermion VOC opera de 3,3 V a 5 V com corrente muito baixa (< 20 mA), tornando-o adequado para sistemas embutidos de baixo consumo e monitorização contínua sem um aquecedor separado.
O MQ-135, no entanto, normalmente funciona a cerca de 5 V e usa uma corrente significativa para o aquecedor (geralmente ~100–200 mA ou mais), o que aumenta o consumo total.
Gases Alvo e Sensibilidade
Ambos os sensores respondem a VOCs, mas o Fermion é especificamente ajustado para detetar VOCs típicos interiores como etanol, formaldeído e tolueno, e pode fornecer uma resposta analógica relativamente consistente dentro da sua faixa especificada.
O MQ-135, por outro lado, tem sensibilidade ampla a muitos gases incluindo amoníaco, fumo e vários poluentes do ar; isto pode ser uma vantagem para indicação geral da qualidade do ar, mas a falta de seletividade dificulta distinguir um gás de outro ou calibrar para concentrações precisas.
Calibração e Estabilidade
Sensores baseados em MEMS como o Fermion tendem a estabilizar mais rápido, com tempo mínimo de “burn-in”, e são menos afetados pela temperatura ambiente porque não dependem de uma câmara aquecida.
Sensores MQ-135 geralmente requerem pré-burn-in (geralmente 24–48 horas) e recalibração regular para resultados estáveis, e as suas leituras são fortemente influenciadas pela temperatura e humidade.
Ligação do Sensor de Gás VOC ao Arduino UNO
Ligar o sensor a um Arduino UNO é simples. Liga VCC a 5V (ou 3,3V), GND ao terra e A à entrada analógica A0 como mostrado abaixo:

Exemplos de Código
Leitura da concentração de gás
Neste primeiro exemplo, simplesmente lemos os valores medidos pelo sensor de gás e imprimimos no Monitor Serial:
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0);
Serial.println(val);
delay(100);
}
Verás valores entre 0 e 1023, dependendo da quantidade de gases VOC no ambiente.
Se o sensor ainda não estiver completamente aquecido, verás uma sequência de valores a diminuir continuamente no Monitor Serial:

Após vários minutos, as medições estabilizam. No meu caso, num valor em torno de 643:

Se expuseres o sensor a perfume ou outro gás VOC, verás um aumento súbito no valor medido:

Como o sensor não está calibrado, não podes usá-lo para medir concentrações reais em ppm (partes por milhão) ou mg/m 3 de gases VOC. No entanto, podes usá-lo para construir um alarme de gás, que faremos na próxima secção.
Alarme de Gás com LED
O código seguinte implementa um alarme de gás simples. Liga um LED se o valor medido de VOC ultrapassar um limiar predefinido de 700:
byte sensorPin = A0;
byte ledPin = 13;
int threshold = 700;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int val = analogRead(sensorPin);
digitalWrite(ledPin, val > threshold ? HIGH: LOW);
delay(100);
}
Liguei o LED com um resistor de 220 Ohm ao GPIO 13 como LED de alarme, conforme mostrado abaixo:

Note que para um sistema de alarme fiável, podes querer adicionar também um sensor de temperatura e um de humidade, pois as leituras do sensor de gás são afetadas pela temperatura e humidade. A figura abaixo mostra a dependência da resistência do sensor, que é proporcional à tensão que o Arduino lê, em relação à humidade relativa:

Alarme de Gás com Buzzer Passivo
Em vez de um LED, podes também usar um buzzer como sinal de alarme. No código seguinte, um buzzer passivo é ativado se o valor medido de VOC ultrapassar o limiar:
byte sensorPin = A0;
byte buzzerPin = 11;
int threshold = 700;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
int val = analogRead(sensorPin);
if (val > threshold) {
tone(buzzerPin, 500);
} else {
noTone(buzzerPin);
}
delay(100);
}
A imagem seguinte mostra como adicionar o buzzer ao circuito. Começa por ligar o terminal negativo do buzzer ao GND do Arduino (fio preto). Depois liga o terminal positivo através de um resistor de 100Ω ao GPIO 11 (fio vermelho):

Certifica-te de que a polaridade do buzzer está correta e que é um buzzer passivo ligado a uma porta GPIO com capacidade PWM. Para mais informações, vê o tutorial Active and Passive Piezo Buzzers with Arduino.
Se tiveres um buzzer ativo, deves usar o código do alarme com LED anterior, pois não funcionará corretamente com o comando tone().
Mostrar a Concentração de VOC no OLED
Neste último exemplo, mostramos os valores medidos de VOC num pequeno OLED. O código imprime “VOC” e o valor no centro do ecrã e atualiza o valor mostrado a cada 100 ms:
#include "Adafruit_SSD1306.h" // Version 2.5.16
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.setTextColor(WHITE, BLACK);
oled.clearDisplay();
}
void loop() {
static char text[30];
int val = analogRead(A0);
oled.setTextSize(2);
oled.setCursor(45, 10);
oled.print("VOC");
sprintf(text, " %d ", val);
oled.setTextSize(2);
oled.setCursor(35, 40);
oled.print(text);
oled.display();
delay(100);
}
Note que terás de instalar a biblioteca Adafruit_SSD1306 para controlar o OLED. Podes instalá-la via o Library Manager como de costume:

Ligar o OLED ao Arduino é fácil. Liga SDA e SCL do OLED aos pinos A4 e A5 do Arduino. Quanto à alimentação: como o OLED pode funcionar a 5V, podemos partilhar as linhas de alimentação. Liga VCC a 5V e GND a GND. A imagem abaixo mostra a ligação completa:

Se precisares de ajuda com o OLED, dá uma vista de olhos ao tutorial Use SSD1306 I2C OLED Display With Arduino.
Conclusão
Neste tutorial aprendeste a usar o sensor de gás Fermion VOC com um Arduino UNO para medir gases compostos orgânicos voláteis (VOC). O sensor pode ser facilmente usado com outros microcontroladores como o ESP32 também.
Sensores de gás MEMS têm a vantagem de serem pequenos, consumirem muito pouca energia (< 20mA) e terem um curto tempo de aquecimento. No entanto, ainda são afetados pela temperatura ambiente e humidade.
Além disso, o sensor de gás Fermion VOC usado aqui não está calibrado e, portanto, não pode ser usado diretamente para medir concentrações reais de VOC em unidades ppm, por exemplo. Em teoria, poderias calibrar o sensor tu mesmo, mas na prática isso seria difícil. A DFRobot também oferece sensores calibrados, mas são maiores e mais caros (link).
Note que existe uma série inteira de diferentes sensores MEMS disponíveis. Para uma visão geral, vê o artigo Review of the DFRobot Fermion MEMS Gas Sensor Series e para detalhes os nossos posts dedicados:
- 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
- Fermion MEMS Multi-Gas Sensor MiCS-5524 with Arduino
Se tiveres alguma dúvida, não hesites em deixar nos comentários.
Boas experiências 😉

