Monitoramento de Umidade: Guia Completo com ESP8266

Manter a umidade controlada em salas de servidores é essencial para prevenir corrosão, condensação e falhas em equipamentos críticos. Este guia detalha a construção de um sistema de monitoramento com ESP8266, capaz de enviar alertas em tempo real, integrar-se a 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. profissionais e operar em faixas de segurança pré-definidas. Combinando teoria e prática, o projeto é adaptável para ambientes industriais e corporativos, com opções de redundância e segurança avançada.

Índice

Componentes Necessários🔗

ComponenteEspecificaçõesFunção
ESP8266 (NodeMCU)Wi-Fi 802.11 b/g/nProcessamento e comunicação
Sensor DHT220-100% UR (±2% precisão)Medição de umidade e temperatura
Sensor BME280Opcional para redundânciaFailover em caso de falha do DHT22
Buzzer passivo5V, 20mAAlerta sonoro para níveis críticos
LEDs vermelho/verde5mm, 20mAIndicadores visuais de status
Resistores 220Ω1/4WLimitação de corrente para LEDs
Protoboard e jumpers-Conexões temporárias

Conceitos Básicos: Por que Monitorar a Umidade?🔗

A umidade inadequada em salas de servidores causa:

  • Corrosão eletrolítica: Danifica placas e conectores metálicos.
  • Eletricidade estática: Risco de descargas (< 40% UR).
  • Condensação: Formação de água (> 60% UR), levando a curtos-circuitos.

Equação de umidade relativa (simplificada):

$$ UR = \frac{Vₛ}{Vₘ} \times 100\% $$

Onde:

  • \( Vₛ \): Tensão do sensor
  • \( Vₘ \): Tensão máxima de referência

Funcionamento do Sistema🔗

graph TD A[DHT22/BME280 coleta dados] --> B[ESP8266 processa dados] B --> C{Umidade > 60% ou < 40%?} C -->|Sim| D[Ativa LED vermelho + Buzzer] C -->|Não| E[Ativa LED verde] B --> F[Envia dados para dashboard via HTTP/MQTT]

Faixas de operação:

  • Ideal: 40% a 60% UR
  • Crítico: < 40% (alerta estática) ou > 60% (alerta corrosão)

Configuração do Hardware🔗

Conexões para Sensor Digital (DHT22):

graph LR ESP8266 -->|3.3V| DHT22(VCC) ESP8266 -->|D4| DHT22(Dados) ESP8266 -->|GND| DHT22(GND) ESP8266 -->|D1| LED_Verde ESP8266 -->|D2| LED_Vermelho ESP8266 -->|D8| Buzzer

Conexões para Sensor Analógico (Ex: Capacitivo):

graph LR ESP8266 -->|3.3V| Sensor(VCC) ESP8266 -->|A0| Sensor(Sinal) ESP8266 -->|GND| Sensor(GND)

Notas:

  • Para sensores de 5V, use divisores de tensão.
  • Adicione um capacitor de 100nF entre VCC e GND para filtrar ruídos.

Programação do ESP8266🔗

Opção 1: Leitura Digital com DHT22

#include <DHT.h>
#include <ESP8266WiFi.h>
#define DHTPIN D4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "SUA_REDE";
const char* password = "SUA_SENHA";
void setup() {
  pinMode(D1, OUTPUT); // LED Verde
  pinMode(D2, OUTPUT); // LED Vermelho
  pinMode(D8, OUTPUT); // Buzzer
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  dht.begin();
}
void loop() {
  float humidity = dht.readHumidity();
  if (isnan(humidity)) {
    // Falha na leitura: Ativar redundância com BME280
    return;
  }
  if (humidity < 40 || humidity > 60) {
    digitalWrite(D2, HIGH);
    tone(D8, 1000);
    digitalWrite(D1, LOW);
  } else {
    digitalWrite(D1, HIGH);
    digitalWrite(D2, LOW);
    noTone(D8);
  }
  delay(2000);
}

Opção 2: Leitura Analógica com Filtro Média Móvel

const int sensorPin = A0;
float readings[10], total = 0, average = 0;
void setup() {
  Serial.begin(115200);
  for (int i = 0; i < 10; i++) readings[i] = 0;
}
void loop() {
  total -= readings[0];
  for (int i = 0; i < 9; i++) readings[i] = readings[i+1];
  readings[9] = analogRead(sensorPin);
  total += readings[9];
  average = total / 10;
  float humidity = (average / 1023.0) * 100;
  // Aplicar curva de calibração específica do sensor
  Serial.print("Umidade: ");
  Serial.println(humidity);
  delay(1000);
}

Dashboard e Integração com IoT🔗

Dashboard HTML/JavaScript (Local):

<!DOCTYPE html>
<html>
<body>
  <h2>Monitor de Umidade</h2>
  <div id="humidity">Carregando...</div>
  <script>
    setInterval(() => {
      fetch('http://IP_ESP8266')
        .then(response => response.text())
        .then(data => {
          document.getElementById("humidity").innerHTML = data;
        });
    }, 3000);
  </script>
</body>
</html>

Plataformas Profissionais:

1. ThingSpeak:

#include <ThingSpeak.h>
WiFiClient client;
unsigned long channelID = SEU_ID;
const char* writeAPIKey = "SUA_CHAVE";
void setup() {
  ThingSpeak.begin(client);
}
void loop() {
  ThingSpeak.writeField(channelID, 1, humidity, writeAPIKey);
}

2. Blynk:

#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
char auth[] = "SEU_TOKEN";
void setup() {
  Blynk.begin(auth, ssid, password);
}
void loop() {
  Blynk.virtualWrite(V1, humidity);
}

Testes e Validação🔗

1. Calibração:

  • Compare com um higrômetro profissional.
  • Ajuste a equação de conversão usando regressão linear.

2. Testes de Estresse:

  • Simule umidade crítica com um gerador de vapor ou sílica gel.
  • Verifique a latência dos alertas (meta: < 5 segundos).

3. Segurança:

server.on("/", []() {
  if (!server.authenticate("admin", "senha"))
    return server.requestAuthentication();
  server.send(200, "text/html", "<h1>Dados Protegidos</h1>");
});

Considerações Finais🔗

1. Redundância: Use dois sensores (ex: DHT22Monitor de umidade com ESP8266 para armáriosMonitor de umidade com ESP8266 para armáriosGaranta a preservação de documentos e obras de valor com nosso sistema IoT avançado. Use ESP8266 e DHT22 para monitorar e controlar a umidade em tempo real. + BME280) para aumentar a confiabilidade.

2. Escalabilidade: Adicione relésSistema 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. para controlar desumidificadores ou ventiladores automaticamente.

3. Manutenção: Implemente auto-teste inicial no boot para verificar sensores e conexão Wi-Fi.

4. Energia: Para ambientes sem energia constante, utilize baterias com módulo UPS e deep sleepSistema 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..

Exemplo de Código para Deep SleepSistema 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.:

void setup() {
  ESP.deepSleep(60e6); // Dorme por 1 minuto
}

Este projeto combina acessibilidade e profissionalismo, permitindo adaptações para diversas necessidades industriais. A integração com sistemas existentes (como SCADA ou Telegram) amplia sua utilidade, transformando-o em uma solução completa para gestão ambiental de infraestruturas críticas.

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