Construindo um Sistema IoT para Monitorar Qualidade do Ar

A qualidade do ar é um fator crítico para ambientes saudáveis, especialmente em áreas urbanas ou espaços fechados. Este artigo detalha a construção de um sistema IoT baseado no ESP8266, capaz de medir poluentes como CO₂, NH₃ e VOC, emitir alertas sonoros personalizados e integrar-se a dashboards para análise em tempo real. Combinando eletrônica, programaçãoSistema de controle de cortinas automatizadas com ESP8266Sistema de controle de cortinas automatizadas com ESP8266Descubra como automatizar cortinas com ESP8266. Aprenda componentes, montagem, programação e integração IoT para conforto e eficiência energética. e análise de dados, o projeto é aplicável em residências, escritórios, escolas e indústrias, oferecendo desde monitoramento local até automações avançadas.

🔗 Índice

Componentes necessários🔗

ComponenteDescrição
ESP8266 (NodeMCU)Microcontrolador com Wi-Fi integrado para conexão IoT
Sensor MQ-135Detecta CO₂, NH₃, NOₓ e benzeno (faixa: 10-1000 ppm)
Buzzer ativo (5V)Emite alertas sonoros em diferentes frequências
Display OLED 0.96"Exibe leituras locais (opcional)
Resistor de 10kΩPara divisão de tensão no sensor analógico
Protoboard e jumpersFacilita conexões temporárias sem solda
Fonte de alimentaçãoUSB ou bateria LiPo 3.7V

Comparativo de sensores:

SensorGases detectadosInterfacePrecisão
MQ-135CO₂, NH₃, NOₓAnalógica±15%
CCS811CO₂, TVOCI²C±10%
SGP30CO₂eq, TVOCI²C±5%

Funcionamento do sistema🔗

1. Coleta de dados:

O sensor (ex: MQ-135) gera um sinal analógico proporcional à concentração de poluentes.

2. Processamento:

O ESP8266Sistema de automação residencial com ESP8266 e controle de luzesSistema de automação residencial com ESP8266 e controle de luzesEste tutorial aborda a implementação de automação residencial com ESP8266, destacando segurança, eficiência energética, integração MQTT e interface web. converte o sinal em ppm (partes por milhão) e compara com limites pré-definidos.

3. Alerta sonoro:

Se o nível ultrapassar o limite seguro, um buzzer é acionado com padrões sonoros específicos.

4. Comunicação:

Dados são enviados via Wi-Fi para dashboardsDashboard de monitoramento remoto com ESP8266Dashboard de monitoramento remoto com ESP8266Aprenda a criar um dashboard IoT com ESP8266, integrando sensores, segurança avançada e otimização de comunicação para monitoramento remoto eficiente. ou sistemas de automação (ex: HVAC).

Fluxo do sistema:

flowchart TD A[Sensor MQ-135] --> B[Leitura analógica no ESP8266] B --> C{Processamento e comparação} C -- Nível seguro --> D[Silêncio] C -- Nível crítico --> E[Alerta sonoro e envio de dados] E --> F[Dashboard remoto]

Configuração do sensor de qualidade do ar🔗

Circuito do MQ-135

graph LR A[ESP8266] --> B[Pino A0] B --> C[Sensor MQ-135] C --> D[GND] C --> E[5V] F[Resistor 10kΩ] --> G[Divisor de tensão]

Cálculo da concentração:

$$ R_s = \frac{(V_{cc} - V_{out}) \times R_L}{V_{out}} $$

Onde:

  • \( R_s \): Resistência do sensor em função do gás
  • \( R_L \): Resistor de carga (10kΩ)

Exemplo de código para leitura:

int readAirQuality() {
  int raw = analogRead(SENSOR_PIN);
  float voltage = raw * (5.0 / 1023.0);
  return map(voltage, 0.1, 4.9, 0, 500); // Ajuste conforme calibração
}

Conexão Wi-Fi e protocolos de comunicação🔗

Conexão básica ao Wi-Fi

#include <ESP8266WiFi.h>
const char* ssid = "SUA_REDE";
const char* password = "SENHA";
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Conectado!");
}

Protocolos recomendados

Exemplo com MQTTSistema de controle de cortinas automatizadas com ESP8266Sistema de controle de cortinas automatizadas com ESP8266Descubra como automatizar cortinas com ESP8266. Aprenda componentes, montagem, programação e integração IoT para conforto e eficiência energética.:

#include <PubSubClient.h>
WiFiClient espClient;
PubSubClient client(espClient);
void reconnect() {
  while (!client.connected()) {
    client.connect("ESP8266Client");
    client.publish("casa/sensor/ar", "Conectado!");
  }
}

Lógica de programação e leitura contínua🔗

Estrutura principal

#define BUZZER_PIN D1
#define SENSOR_PIN A0
void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(SENSOR_PIN, INPUT);
  // Inicializa Wi-Fi e comunicação
}
void loop() {
  int ppm = readAirQuality();
  checkThreshold(ppm);
  delay(1000);
}

Controle de alertas

void checkThreshold(int ppm) {
  if (ppm > 300) { // Limite para CO₂
    playAlert(2); // Alerta contínuo
    Blynk.virtualWrite(V0, ppm); // Envia dados ao Blynk
  } else if (ppm > 150) {
    playAlert(1); // Alerta moderado
  }
}

Implementação do alerta sonoro🔗

Nível de riscoFrequência (Hz)Padrão sonoro
Normal0Silêncio
Moderado8001 bip a cada 5s
Alto2000Bips contínuos

Código para padrões personalizados:

void playAlert(int level) {
  switch(level) {
    case 1: // Moderado
      tone(BUZZER_PIN, 800, 500);
      delay(5000);
      break;
    case 2: // Alto
      tone(BUZZER_PIN, 2000); // Som contínuo
      break;
  }
  noTone(BUZZER_PIN); // Desliga o buzzer
}

Visualização de dados em tempo real🔗

Integração com Blynk

#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
Blynk.begin(auth, ssid, password);
Blynk.virtualWrite(V0, ppm); // Atualiza o app

DashboardDashboard de monitoramento remoto com ESP8266Dashboard de monitoramento remoto com ESP8266Aprenda a criar um dashboard IoT com ESP8266, integrando sensores, segurança avançada e otimização de comunicação para monitoramento remoto eficiente. exemplo:

pie title Poluentes (ppm) "CO₂" : 45 "VOC" : 30 "Partículas" : 25

Alternativas avançadas

  • Node-RED: Para criar fluxos de dados customizados.
  • ThingSpeak: Armazena históricos e gera gráficos temporais.

Calibração e ajuste de sensibilidade🔗

Método 1: Calibração inicial

1. Exponha o sensor ao ar livre por 24h.

2. Calcule \( R_0 \) (resistência base):

$$ R_0 = \frac{R_s}{\sqrt{\frac{ppm}{605}}} $$

Método 2: Ajuste linear

// Ajuste o mapeamento conforme testes locais
float calibratedPPM = (raw * 0.21) + 12.5;

Dica: Use um sensor comercial calibrado como referência para validar os valores.

Casos de uso práticos🔗

1. Escritórios inteligentes:

2. Indústrias químicas:

  • Monitorar vazamentos de NH₃ em tempo real.
  • Configurar alertas sonoros diferenciados por tipo de gás.

3. Escolas:

Conclusão🔗

Este projeto combina hardware acessível e programação versátil para criar um sistema de monitoramento de ar escalável. Ao integrar alertas sonoros personalizados, visualização de dados em tempo real e protocolos de comunicaçãoSistema de controle de acesso com ESP8266 e QR codeSistema de controle de acesso com ESP8266 e QR codeDescubra neste tutorial como integrar ESP8266, QR Code e sistemas criptografados, garantindo segurança e controle de acesso moderno. IoT, ele serve como base para soluções em segurança ambiental, saúde pública e automação predial. Experimente ajustar os limiares, adicionar sensores secundários (ex: DHT22 para umidade) ou expandir a lógica para controle de dispositivos externos, como exaustores ou purificadores de ar. Com criatividade e calibração cuidadosa, o sistema pode adaptar-se a cenários tão diversos quanto residências, fábricas ou espaços públicos.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados