Monitoramento de Ar com ESP8266 e IoT: Guia Completo
Monitoramento de CO₂: DIY com IoT para Ambientes Internos
Por que monitorar CO₂?
Em ambientes fechados, níveis elevados de dióxido de carbono (acima de 1000 ppm) reduzem a produtividade, causam sonolência e aumentam riscos de transmissão de doenças. Este projeto combina IoT e sensoriamento para criar um sistema acessível que alerta quando a ventilação é necessária, integrando funcionalidades avançadas como controle de HVAC, notificações via Telegram e análise preditiva.
📋 Índice🔗
- Introdução e Relevância do Monitoramento
- Componentes Necessários
- Princípio de Funcionamento do Sensor NDIR
- Montagem do Circuito
Detector 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. - Programação do ESP8266
Monitor de nível de água com ESP8266 para reservatóriosAprenda a monitorar e gerenciar reservatórios com sensores, ESP8266 e integração IoT em aplicações agrícolas e residenciais, de forma prática e precisa. - Calibração e Precisão
- Visualização de Dados em Tempo Real
- Aplicações Avançadas
- Manutenção e Boas Práticas
Introdução e Relevância do Monitoramento🔗
A concentração de CO₂ em ambientes internos serve como indicador crítico da qualidade do ar. Níveis acima de 1000 ppm comprometem o desempenho cognitivo, causam fadiga e aumentam a propagação de patógenos. O ESP8266
Sistema 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., com sua conectividade Wi-Fi e baixo custo, permite a criação de sistemas IoT que integram sensoriamento, processamento local e transmissão de dados para plataformas cloud, oferecendo monitoramento contínuo e ações corretivas automatizadas.
🔧 Componentes Necessários🔗
| Componente | Descrição |
|---|---|
| ESP8266 (NodeMCU) | Microcontrolador com Wi-Fi integrado para comunicação IoT |
| Sensor MH-Z19B | Sensor NDIR de CO₂ (faixa: 0-5000 ppm, precisão ±50 ppm + 3% do valor) |
| DHT22 | Sensor de temperatura e umidade (opcional para monitoramento ambiental) |
| Display OLED 0.96" | Exibe dados locais (I²C) |
| Protoboard e jumpers | Conexões temporárias |
| Fonte 5V | Alimentação estável para o sensor e ESP8266 |
🔍 Princípio de Funcionamento do Sensor NDIR🔗
O MH-Z19B usa espectroscopia de infravermelho não dispersivo (NDIR). Moléculas de CO₂ absorvem luz IR em 4.2 µm. Quanto maior a concentração, maior a absorção, seguindo a Lei de Beer-Lambert:
- C: Concentração de CO₂ (ppm)
- I/I₀: Razão entre intensidade transmitida e incidente
- σ: Coeficiente de absorção do CO₂
- L: Caminho óptico (no MH-Z19B, 5 cm)
Tecnologias de Sensores:
- MH-Z19B: Ideal para DIY, com interface UART
Sistema 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./PWM. - SCD30: Inclui medição de temperatura e umidade, porém com custo mais elevado.
🔌 Montagem do Circuito🔗
Diagrama de Conexões
Passos Críticos:
1. Use resistores
Jogo interativo com ESP8266, botões e LEDsAprenda a desenvolver um jogo interativo com ESP8266, botões e LEDs. Integre eletrônica, programação embarcada e web para criar soluções IoT inovadoras. de pull-up (10kΩ) no barramento I²C do display.
2. Alimente o sensor com 5V para evitar leituras instáveis.
3. Para sensores 5V (como o MH-Z19B), utilize conversores de nível lógico se o ESP8266
Sistema 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. operar em 3.3V.
💻 Programação do ESP8266🔗
Configuração Inicial
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <Adafruit_SSD1306.h>
// Configurações Wi-Fi
const char* ssid = "SUA_REDE";
const char* password = "SUA_SENHA";
SoftwareSerial co2Serial(3, 1); // RX (GPIO3), TX (GPIO1)
void setup() {
co2Serial.begin(9600);
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi Conectado! IP: " + WiFi.localIP().toString());
}
Leitura do Sensor MH-Z19B
byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
byte response[9];
void readCO2() {
co2Serial.write(cmd, 9);
delay(100);
if (co2Serial.available() >= 9) {
co2Serial.readBytes(response, 9);
int ppm = (response[2] << 8) | response[3];
Serial.print("CO₂: "); Serial.print(ppm); Serial.println(" ppm");
// Exemplo: Envio para ThingSpeak
sendToCloud(ppm);
}
}
void sendToCloud(int ppm) {
WiFiClient client;
String url = "/update?api_key=SUA_CHAVE&field1=" + String(ppm);
client.connect("api.thingspeak.com", 80);
client.print("GET " + url + " HTTP/1.1\r\nHost: api.thingspeak.com\r\n\r\n");
}
🎯 Calibração e Precisão🔗
1. Calibração Automática (ABC):
Desative-a em ambientes onde o CO₂ não atinja 400 ppm naturalmente:
byte disableABC[] = {0xFF,0x01,0x79,0x00,0x00,0x00,0x00,0x00,0x86};
co2Serial.write(disableABC, 9);
2. Calibração Manual:
Expõe o sensor ao ar livre por 20 minutos e envie:
byte calibCmd[] = {0xFF,0x01,0x87,0x00,0x00,0x00,0x00,0x00,0x78};
co2Serial.write(calibCmd, 9);
Dica: Valide as leituras com um sensor de referência a cada 6 meses para detectar drift.
📊 Visualização de Dados em Tempo Real🔗
Opção 1: Plataforma IoT (ThingSpeak)
void sendToCloud(int ppm) {
// Código de envio HTTP (vide seção de programação)
}
Opção 2: Dashboard Local com Node-RED
1. Configure um broker MQTT
Sistema 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. no ESP8266.
2. Crie um fluxo no Node-RED para plotar gráficos históricos e acionar alertas por e-mail acima de 1000 ppm.
Opção 3: Display OLED
Adafruit_SSD1306 display(128, 64, &Wire);
void showData(int ppm) {
display.clearDisplay();
display.setCursor(0,0);
display.print("CO₂: "); display.print(ppm); display.println(" ppm");
display.display();
}
🚀 Aplicações Avançadas🔗
Integração com HVAC
Controle exaustores via relé
Sistema de controle de bomba de água com ESP8266 para fontes decorativasAprenda a automatizar bombas de água usando ESP8266, com isolamento seguro, controle PID e integração IoT via web, MQTT e API para automação residencial. quando CO₂ > 800 ppm:
#define RELAY_PIN D6
void controlVentilation(int ppm) {
digitalWrite(RELAY_PIN, (ppm > 800) ? HIGH : LOW);
}
Notificações por Telegram
Use a biblioteca UniversalTelegramBot:
#include <UniversalTelegramBot.h>
TelegramBot bot("SEU_TOKEN");
void sendAlert(int ppm) {
bot.sendMessage("CHAT_ID", "Alerta: CO₂ em " + String(ppm) + " ppm!");
}
Machine Learning no Edge
Preveja picos usando regressão linear:
float predictCO2(float temp, float humidity) {
return 0.65 * temp + 0.2 * humidity + 400; // Coeficientes ajustáveis
}
🔧 Manutenção e Boas Práticas🔗
- Posicionamento: Instale o sensor a 1,5 m do chão, longe de janelas e fontes de calor.
- Limpeza: Use ar comprimido mensalmente para remover poeira do caminho óptico.
- Atualizações: Monitore repositórios GitHub para otimizações de firmware.
- Redundância: Em ambientes críticos (ex: hospitais), combine múltiplos sensores via rede LoRa para redundância.
Dica Pro: Em escolas/escritórios, utilize algoritmos de clustering para identificar zonas de risco com base em dados espaciais de CO₂.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Documentação Wiki do ESP8266: github.com/esp8266/esp8266-wiki/wiki
- ESP8266.com Community Forum: www.esp8266.com/viewforum.php?f=5
- GitHub - ESP8266 Community: github.com/esp8266/Arduino
- Random Nerd Tutorials: randomnerdtutorials.com/projects-esp8266/
- Site Oficial da Espressif: www.espressif.com/en/products/socs/esp8266
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 14 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás