Projeto: Monitor de Qualidade do Ar com ESP8266 e OLED

A qualidade do ar é um fator crítico para saúde e bem-estar, especialmente em ambientes urbanos. Este guia detalha a construção de um monitor de qualidade do ar com 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. e display OLED, integrando sensores para medição de poluentes como CO₂, VOCs e partículas. Combinando IoT, visualização local/remota e customização, o projeto é acessível e adaptável a diversas necessidades.

O que você aprenderá:

Componentes Necessários e Especificações Técnicas🔗

ComponenteEspecificaçõesFunção
ESP8266 NodeMCU80MHz, 4MB Flash, Wi-Fi 802.11 b/g/nProcessamento e comunicação
Sensor MQ135Faixa: 10-1000 ppm (CO₂ equivalente)Detecção de gases nocivos
Display OLED 0.96"128x64 pixels, I2CVisualização local
BME280 (opcional)±1% UR, ±1 hPa pressãoMedição complementar
Fonte 5V 2ARegulador AMS1117Alimentação estável
Protoboard e fios-Conexão dos componentes

Cálculo de ConsumoSistema de controle de persianas automatizadas com ESP8266Sistema de controle de persianas automatizadas com ESP8266Descubra como automatizar persianas com ESP8266 em um guia prático, unindo eficiência energética, segurança e integração IoT para automação da sua casa. Energético:

$$ P_{total} = V_{CC} \times (I_{ESP8266} + I_{MQ135} + I_{OLED}) $$
Resultado: \( P_{total} = 3.3V \times 240mA = 0.792W \)

Circuito e Leitura do Sensor MQ135🔗

O MQ135 requer um circuito divisor de tensão para interface analógica:

graph LR A[Sensor MQ135] --> B[Resistor Load RL 20kΩ] B --> C[Pino A0 do ESP8266] C --> D[Conversão ADC 10-bit] D --> E[Valor Digital 0-1023]

Equação de Conversão para ppm:

$$ ppm = \frac{(V_{sensor} - V_{zero})}{Sensibilidade} \times 10^{6} $$
  • \( V_{zero} \): Tensão em ar limpo (~0.4V)
  • Sensibilidade: 0.1-0.3V/ppm (varia por gás)

Programação do ESP8266: Leitura e Exibição no OLED🔗

Configuração Inicial

#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
}

Loop Principal com Calibração e Alertas

void loop() {
  int rawValue = analogRead(A0);
  float voltage = rawValue * (3.3 / 1023.0);
  float ppm = (voltage - 0.4) * 1000000 / 0.2; // Ajuste conforme calibração
  display.clearDisplay();
  display.setCursor(0,0);
  display.print("Qualidade do Ar:");
  display.setCursor(0,20);
  display.print(ppm, 1);
  display.print(" ppm CO2eq");
  if (ppm > 1000) {
    display.setCursor(0, 40);
    display.print("ALERTA: Nível crítico!");
  }
  display.display();
  delay(2000);
}

Otimizações:

  • Use ESP.getVcc() para compensar flutuações de tensão.
  • Adicione filtro digital (média móvel):
#define FILTER_SIZE 5
float readings[FILTER_SIZE];
float filteredPPM = 0;
for (int i = 0; i < FILTER_SIZE-1; i++) {
  readings[i] = readings[i+1];
  filteredPPM += readings[i];
}
readings[FILTER_SIZE-1] = ppm;
filteredPPM /= FILTER_SIZE;

Display OLED: I2C vs SPI e Conexão🔗

ParâmetroI2CSPI
Velocidade400kHz10MHz
Pinos usados2 (SDA, SCL)4 (MOSI, SCK, etc)
Consumo15mA20mA

Esquema de Conexão I2CSistema 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.:

graph TD A[ESP8266] -->|SDA (D2)| B[OLED] A -->|SCL (D1)| B A -->|3.3V| B A -->|GND| B

Calibração Avançada de Sensores🔗

Sensores como o MQ135 exigem calibração rigorosa:

1. Pré-aquecimento: 24h em ar limpo.

2. Coleta Baseline: Registrar valores em ambiente controlado.

3. Teste com Gás Conhecido: Ex: 400 ppm CO₂.

4. Ajuste de Curva: Use regressão linear ou polinomial.

Matriz de Calibração:

$$ \begin{bmatrix} ppm_1 \\ ppm_2 \\ \vdots \\ ppm_n \end{bmatrix} = \begin{bmatrix} 1 & V_1 & V_1^2 \\ 1 & V_2 & V_2^2 \\ \vdots & \vdots & \vdots \\ 1 & V_n & V_n^2 \end{bmatrix} \times \begin{bmatrix} a \\ b \\ c \end{bmatrix} $$

Integração IoT via MQTT🔗

Adicione comunicação em tempo real com servidores 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()) {
    if (client.connect("ESP8266Air")) {
      client.publish("casa/sala/ar/co2", String(ppm).c_str());
    }
  }
}
void setup() {
  client.setServer("mqtt.iotserver.com", 1883);
}

Melhores Práticas:

Expansões e Otimizações🔗

1. Sensores Adicionais: Combine MQ135 com PMS5003 (partículas) e BME280 (temperatura/umidade).

2. Alarme SonoroDetector de fumaça com ESP8266 e alarme sonoroDetector de fumaça com ESP8266 e alarme sonoroMonte um detector de fumaça inteligente com ESP8266 e MQ-2. Tutorial que ensina montagem, programação e integração IoT para sistemas residenciais.: Acione um buzzer acima de 1000 ppm.

3. Log em SD Card: Armazene dados históricos.

4. 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. Web: Use Node-RED ou Blynk para visualização remota.

Circuito Expandido:

graph LR A[ESP8266] --> B[MQ135] A --> C[PMS5003] A --> D[BME280] A --> E[SD Card] A --> F[OLED] A --> G[Wi-Fi]

Conclusão🔗

Este monitor oferece uma base flexível para projetos de análise ambiental. Ao integrar múltiplos sensores, 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. e técnicas de calibração, é possível adaptá-lo a cenários residenciais, industriais ou urbanos. Experimente adicionar geolocalização (GPS NEO-6M) ou algoritmos de aprendizado de máquina para previsão de qualidade do ar, elevando o projeto a um novo patamar tecnológico.

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