Atividade 2 versao 1.0
This commit is contained in:
539
Relatorio/relatorio.qmd
Normal file
539
Relatorio/relatorio.qmd
Normal file
@@ -0,0 +1,539 @@
|
||||
---
|
||||
title: "Sistema de Monitoramento Inteligente de Cozinha com ESP32"
|
||||
subtitle: "Integração MQTT com Ubidots para IoT Industrial"
|
||||
author: "Amaro Lopes"
|
||||
institute: "Faculdade de Tecnologia FIAP"
|
||||
date: today
|
||||
format:
|
||||
pdf:
|
||||
documentclass: book
|
||||
classoption:
|
||||
- oneside
|
||||
toc: true
|
||||
toc-depth: 4
|
||||
number-sections: true
|
||||
geometry:
|
||||
- margin=1in
|
||||
fontfamily: libertinus
|
||||
include-before-body:
|
||||
text: |
|
||||
\frontmatter
|
||||
include-after-body:
|
||||
text: |
|
||||
\mainmatter
|
||||
lang: pt
|
||||
execute:
|
||||
echo: false
|
||||
---
|
||||
|
||||
# Introdução
|
||||
|
||||
Este projeto implementa um **sistema inteligente de monitoramento para cozinha industrial** utilizando um microcontrolador ESP32 conectado a múltiplos sensores. O sistema detecta condições anormais de operação e ativa atuadores para garantir segurança, integrando-se com a plataforma Ubidots para monitoramento remoto via dashboard interativo, com fallback para um dashboard nodered.
|
||||
|
||||
A integração é realizada através de um broker MQTT em **77.37.69.84** que faz forward automático dos dados para a plataforma Ubidots, permitindo visualização em tempo real e histórico de dados com widgets interativos. Alternativamente, um dashboard NodeRed está disponível em **77.37.69.84:1880/dashboard/page1** para monitoramento.
|
||||
|
||||
## Contexto
|
||||
|
||||
Cozinhas industriais enfrentam desafios de segurança relacionados a:
|
||||
- Variações bruscas de temperatura
|
||||
- Acúmulo de vapores e gases
|
||||
- Condições de umidade inadequadas
|
||||
- Risco de incêndios por múltiplas causas
|
||||
|
||||
Este sistema fornece monitoramento 24/7 com resposta automática a situações críticas.
|
||||
|
||||
# Objetivo do Projeto
|
||||
|
||||
## Objetivos Gerais
|
||||
1. Monitorar três parâmetros críticos em ambiente de cozinha industrial
|
||||
2. Detectar anomalias e ativar sistemas de proteção automaticamente
|
||||
3. Integrar dados com plataforma IoT profissional (Ubidots)
|
||||
4. Permitir configuração remota de limiares via MQTT
|
||||
5. Garantir transmissão confiável de dados em tempo real
|
||||
|
||||
## Parâmetros Monitorados
|
||||
|
||||
- **Temperatura ambiente** (°C) - Faixa: -40 a +80°C
|
||||
- **Umidade relativa do ar** (%) - Faixa: 0 a 100%
|
||||
- **Concentração de gás** (ppm) - Qualidade do ar, detecção de vazamentos
|
||||
- **Status de alarme** (estado) - Código do sistema (0-4)
|
||||
|
||||
## Atuadores Controlados
|
||||
|
||||
- **Alarme sonoro** - Ativação de sirene para emergências
|
||||
- **Coifa/Exaustor** - Remoção de gases e vapores
|
||||
- **Ar-condicionado** - Controle de temperatura ambiente
|
||||
|
||||
# Diagrama de Arquitetura
|
||||
|
||||
```{mermaid}
|
||||
%%| fig-width: 7
|
||||
graph TB
|
||||
subgraph "Camada de Sensores"
|
||||
DHT22["<b>DHT22</b><br/>Temperatura &<br/>Umidade<br/>GPIO 32"]
|
||||
MQ2["<b>MQ2</b><br/>Qualidade do Ar<br/>(Gás)<br/>GPIO 33 ADC"]
|
||||
RTC["<b>RTC DS1307</b><br/>Timer para verificação de incêndio<br/>I2C"]
|
||||
end
|
||||
|
||||
subgraph "Camada de Processamento"
|
||||
ESP32["<b>ESP32 DevKit V4</b><br/>Dual-core 240MHz<br/>WiFi + BLE"]
|
||||
LOGIC["Lógica de<br/>Detecção de<br/>Alarmes"]
|
||||
end
|
||||
|
||||
subgraph "Camada de Atuadores"
|
||||
ALARM["<b>Alarme Sonoro</b><br/>Sirene/>GPIO 4"]
|
||||
COIFA["<b>Coifa/Exaustor</b><br/>Motor 220V<br/>GPIO 17"]
|
||||
AC["<b>A/C</b><br/>Unidade comercial<br/>GPIO 16"]
|
||||
end
|
||||
|
||||
subgraph "Rede MQTT"
|
||||
WiFi["<b>WiFi</b><br/>Wokwi-GUEST<br/>2.4GHz"]
|
||||
MQTT["<b>Broker MQTT</b><br/>77.37.69.84:1883<br/>Mosquitto"]
|
||||
end
|
||||
|
||||
subgraph "Cloud - Ubidots"
|
||||
UBIDOTS["<b>Plataforma Ubidots</b><br/>Dashboard<br/>Histórico de Dados<br/>Alertas"]
|
||||
NODERED["<b>NodeRed</b><br/>Dashboard Fallback<br/>77.37.69.84:1880/dashboard/page1"]
|
||||
end
|
||||
|
||||
DHT22 --> ESP32
|
||||
MQ2 --> ESP32
|
||||
RTC --> ESP32
|
||||
ESP32 --> LOGIC
|
||||
LOGIC --> ALARM
|
||||
LOGIC --> COIFA
|
||||
LOGIC --> AC
|
||||
ESP32 -->|Publica| WiFi
|
||||
WiFi --> MQTT
|
||||
MQTT -->|Subscreve| ESP32
|
||||
MQTT -->|Forward| UBIDOTS
|
||||
MQTT --> NODERED
|
||||
```
|
||||
|
||||
## Fluxo de Dados Simplificado
|
||||
|
||||
1. **Leitura**: Sensores capturam dados continuamente (a cada 2s)
|
||||
2. **Processamento**: ESP32 verifica limiares e detecta alarmes
|
||||
3. **Publicação**: Dados publicados em tópico MQTT `cozinha`
|
||||
4. **Roteamento**: Broker em 77.37.69.84 recebe e roteia para múltiplos dashboards
|
||||
5. **Integração Cloud**: Ubidots consome via bridge MQTT automático
|
||||
6. **Integração Fallback**: NodeRed consome dados em tempo real
|
||||
7. **Visualização**: Dashboards exibem em tempo real com widgets
|
||||
|
||||
# Descrição dos Componentes
|
||||
|
||||
## Componentes Principais
|
||||
|
||||
| Componente | Especificação | Função |
|
||||
|-----------|---------------|--------|-----------------|
|
||||
| Microcontrolador | ESP32 DevKit V4 | Processamento central |
|
||||
| Sensor Temp/Umidade | DHT22 | Leitura ambiental |
|
||||
| Sensor de Gás | MQ2 | Detecção de gás/ar |
|
||||
| RTC | DS1307 | Timer para verificação de incêndio |
|
||||
| Módulos Relé | 3x Relés 5V | Acionamento periféricos |
|
||||
| Alarme Sonoro | Sirene | Alerta de emergência |
|
||||
| Coifa | Motor AC 220V | Exaustão de gases |
|
||||
| Ar-Condicionado | Unidade Comercial | Controle de temperatura |
|
||||
|
||||
## Mapeamento de Pinos GPIO
|
||||
|
||||
| GPIO | Periférico | Tipo | Função |
|
||||
|------|-----------|------|--------|
|
||||
| 4 | Alarme Sonoro | Saída Digital | Ativação de Sirene |
|
||||
| 16 | Ar-Condicionado | Saída Digital | Controle de relé A/C |
|
||||
| 17 | Coifa/Exaustor | Saída Digital | Controle de relé coifa |
|
||||
| 21 | RTC SDA | I2C | Comunicação com DS1307 |
|
||||
| 22 | RTC SCL | I2C | Comunicação com DS1307 |
|
||||
| 32 | DHT22 | Entrada Digital | Leitura temperatura/umidade |
|
||||
| 33 | MQ2 | Entrada Analógica | Leitura ADC (10 bits, 0-1023) |
|
||||
|
||||
# Variáveis de Telemetria MQTT
|
||||
|
||||
## Publicação: ESP32 → Broker (Tópico: `cozinha`)
|
||||
|
||||
**Intervalo**: 2 segundos
|
||||
**Tipo**: JSON
|
||||
**Exemplo**:
|
||||
|
||||
```json
|
||||
{
|
||||
"tmp": 28.50,
|
||||
"umi": 65.20,
|
||||
"gas": 850,
|
||||
"alarme": 0
|
||||
}
|
||||
```
|
||||
|
||||
### Descrição das Variáveis Publicadas
|
||||
|
||||
| Campo | Tipo | Faixa | Unidade | Descrição | Precisão |
|
||||
|-------|------|-------|---------|-----------|----------|
|
||||
| `tmp` | Float | -40 a +80 | °C | Temperatura ambiente (DHT22) | ±0.5°C |
|
||||
| `umi` | Float | 0 a 100 | % | Umidade relativa do ar (DHT22) | ±2% |
|
||||
| `gas` | Integer | 0 a 1023 | ADC | Concentração de gás (ADC 10bits, MQ2) | 1 LSB |
|
||||
| `alarme` | Integer | 0 a 4 | Enum | Estado do sistema | - |
|
||||
|
||||
**Mapeamento de Estados (campo `alarme`)**:
|
||||
- `0` = NOMINAL (sem alarme)
|
||||
- `1` = GAS (gás acima do limiar)
|
||||
- `2` = TEMP_ALTA (temperatura acima do limiar)
|
||||
- `3` = UMIDADE_ALTA (umidade acima do limiar)
|
||||
- `4` = INCENDIO (padrão de incêndio detectado)
|
||||
|
||||
## Subscrição: Broker → ESP32
|
||||
|
||||
O sistema recebe comandos de configuração remota em tempo real, provenientes de dois dashboards:
|
||||
|
||||
| Origem | Tópico | Tipo | Faixa | Padrão | Descrição |
|
||||
|--------|--------|------|-------|--------|-----------|
|
||||
| NodeRed / CLI | `cozinha/max_tmp` | Float | 20 a 60 | 30.0 | Limite máximo de temperatura (°C) - Reconfigurável |
|
||||
| NodeRed / CLI | `cozinha/max_umi` | Float | 30 a 90 | 70.0 | Limite máximo de umidade (%) - Reconfigurável |
|
||||
|
||||
A configuração pode ser feita através dos sliders do **NodeRed Dashboard** (http://77.37.69.84:1880/dashboard/page1), como visto na apresentação passada.
|
||||
|
||||
**Exemplo de comandos para configuração:**
|
||||
|
||||
```bash
|
||||
# Alterar limite de temperatura para 32°C
|
||||
mosquitto_pub -h 77.37.69.84 -t "cozinha/max_tmp" -m "32.0"
|
||||
|
||||
# Alterar limite de umidade para 75%
|
||||
mosquitto_pub -h 77.37.69.84 -t "cozinha/max_umi" -m "75.0"
|
||||
|
||||
# Verificar tópico em tempo real
|
||||
mosquitto_sub -h 77.37.69.84 -t "cozinha"
|
||||
```
|
||||
|
||||
|
||||
# Configuração do Sistema
|
||||
|
||||
## Limiares de Alarme Padrão
|
||||
|
||||
| Parâmetro | Ativação | Desativação | Histerese | Tipo |
|
||||
|-----------|----------|-------------|-----------|------|
|
||||
| Temperatura | 30.0 °C | 28.0 °C | 2.0 °C | Upper limit com histerese |
|
||||
| Umidade | 70.0 % | 65.0 % | 5.0 % | Upper limit com histerese |
|
||||
| Gás (MQ2) | 940 ppm | 916 ppm | 24 ppm | Upper limit com histerese |
|
||||
|
||||
**Histerese (Debounce)**: Implementa margem de segurança para evitar oscilações frequentes entre estados ativo/inativo.
|
||||
|
||||
## Estados do Sistema
|
||||
|
||||
O sistema opera em **5 estados distintos**, com prioridades hierárquicas:
|
||||
|
||||
| Estado | Código | Alarme | Coifa | A/C | Descrição | Ação |
|
||||
|-------------|--------|--------|-------|-----|-----------|-----------|------|
|
||||
| NOMINAL | 0 | - | - | - | Operação normal, sem alarmes | Todos desativados |
|
||||
| GAS | 1 | X | X | - | Gás detectado acima do limiar | Alarme + Exaustão |
|
||||
| TEMP_ALTA | 2 | - | - | X | Temperatura acima do limiar | Resfriamento |
|
||||
| UMIDADE_ALTA | 3 | - | X | - | Umidade acima do limiar | Exaustão |
|
||||
| INCENDIO | 4 | X | X | X | Padrão de incêndio detectado | Máxima proteção |
|
||||
|
||||
## Detecção Avançada de Incêndio
|
||||
|
||||
O sistema implementa detecção inteligente de incêndio baseada em **padrão temporal**, não apenas em limiar único de temperatura:
|
||||
|
||||
**Parâmetros de Monitoramento**:
|
||||
- **Janela de tempo**: 30 segundos
|
||||
- **Aumento mínimo de temperatura**: $\Delta T > 5°C$
|
||||
- **Queda mínima de umidade**: $\Delta UR < -10\%$
|
||||
|
||||
**Condição de Alerta de Incêndio**:
|
||||
$$\text{Incêndio} = (\Delta T > 5°C) \land (\Delta UR < -10\%) \text{ em 30 segundos}$$
|
||||
|
||||
**Vantagem**: Reduz falsos positivos comparado à detecção por limiar único. Um aumento isolado de temperatura ou queda de umidade não ativa alarme.
|
||||
|
||||
# Fluxo de Dados e Integração
|
||||
|
||||
## Sequência de Operação Completa
|
||||
|
||||
```{mermaid}
|
||||
%%| fig-width: 7.5
|
||||
sequenceDiagram
|
||||
participant DHT as DHT22<br/>(Sensor)
|
||||
participant MQ as MQ2<br/>(Sensor)
|
||||
participant ESP as ESP32<br/>(Processador)
|
||||
participant WiFi as WiFi<br/>
|
||||
participant Broker as Broker MQTT<br/>77.37.69.84
|
||||
participant Ubidots as Ubidots<br/>(Cloud)
|
||||
participant Dashboard as Dashboard<br/>(Visualização)
|
||||
|
||||
loop A cada 2 segundos
|
||||
DHT->>ESP: Temperatura, Umidade
|
||||
MQ->>ESP: ADC (Gás)
|
||||
ESP->>ESP: Detecta Alarmes
|
||||
ESP->>WiFi: JSON payload
|
||||
WiFi->>Broker: PUBLISH cozinha
|
||||
Broker->>Ubidots: Forward automático
|
||||
Ubidots->>Dashboard: Atualiza widgets
|
||||
end
|
||||
```
|
||||
|
||||
## Integração MQTT com Ubidots
|
||||
|
||||
**Tipo de Integração**: Bridge MQTT com Forward Automático
|
||||
|
||||
**Configuração do Forward**:
|
||||
- **Source Broker**: 77.37.69.84:1883
|
||||
- **Tópico Source**: `cozinha`
|
||||
- **Destination**: Ubidots Cloud
|
||||
- **Autenticação**: Token do device Ubidots
|
||||
|
||||
**Processamento no Ubidots**:
|
||||
- Cada variável JSON é extraída e armazenada
|
||||
- Histórico de 30+ dias
|
||||
- Alertas configuráveis por variável
|
||||
- Dashboard com widgets em tempo real
|
||||
|
||||
**Processamento no NodeRed**:
|
||||
- Consumo direto de mensagens MQTT em tempo real
|
||||
- Acesso em: **http://77.37.69.84:1880/dashboard/page1**
|
||||
- Controle remoto de limiares via sliders
|
||||
- Visualização gráfica em tempo real
|
||||
|
||||
|
||||
# Ciclo de Operação
|
||||
|
||||
## Fluxograma do Loop Principal
|
||||
|
||||
### Parte 1: Leitura e Processamento
|
||||
|
||||
```{mermaid}
|
||||
%%| fig-width: 6.5
|
||||
flowchart LR
|
||||
A["INÍCIO<br/>Loop"] --> B{"MQTT<br/>OK?"}
|
||||
B -->|Não| C["Reconecta"]
|
||||
C --> D["Lê Sensores"]
|
||||
B -->|Sim| D
|
||||
D --> E["DHT22"]
|
||||
D --> F["MQ2"]
|
||||
D --> G["RTC"]
|
||||
E --> H["Detecta<br/>Alarmes"]
|
||||
F --> H
|
||||
G --> H
|
||||
H --> I["Publica"]
|
||||
```
|
||||
|
||||
### Parte 2: Decisão de Alarmes
|
||||
|
||||
```{mermaid}
|
||||
%%| fig-width: 6.5
|
||||
flowchart LR
|
||||
H["Detecta<br/>Alarmes"] --> G{"Incêndio?"}
|
||||
G -->|Sim| S4["Estado = 4"]
|
||||
G -->|Não| G2{"Gás<br>>940?"}
|
||||
G2 -->|Sim| S1["Estado = 1"]
|
||||
G2 -->|Não| T{"Temp<br/>Alta?"}
|
||||
T -->|Sim| S2["Estado = 2"]
|
||||
T -->|Não| U{"Umidade<br/>Alta?"}
|
||||
U -->|Sim| S3["Estado = 3"]
|
||||
U -->|Não| S0["Estado = 0"]
|
||||
S4 --> M["Publica<br/>MQTT"]
|
||||
S1 --> M
|
||||
S2 --> M
|
||||
S3 --> M
|
||||
S0 --> M
|
||||
M --> A["Ativa<br/>Atuadores"]
|
||||
A --> B["Aguarda 2s"]
|
||||
B --> H
|
||||
```
|
||||
# Validação e Testes
|
||||
|
||||
## Protocolo de Validação
|
||||
|
||||
A validação do sistema foi realizada através dos seguintes testes:
|
||||
|
||||
### Teste 1: Conectividade WiFi
|
||||
- Conexão com SSID Wokwi-GUEST
|
||||
- Obtenção de IP via DHCP
|
||||
|
||||
### Teste 2: Conectividade MQTT
|
||||
- Conexão com broker 77.37.69.84:1883
|
||||
- Publicação de mensagens a cada 2s
|
||||
- Recebimento de comandos de configuração
|
||||
|
||||
### Teste 3: Leitura de Sensores
|
||||
- DHT22: Temperatura entre 15-35°C (simulado)
|
||||
- DHT22: Umidade entre 40-80% (simulado)
|
||||
- MQ2: ADC entre 0-1023 (simulado)
|
||||
|
||||
### Teste 4: Detecção de Alarmes
|
||||
- Temperatura > 30°C ativa ar-condicionado
|
||||
- Umidade > 70% ativa coifa
|
||||
- Gás > 940 ativa alarme + coifa
|
||||
- Padrão de incêndio (ΔT>5°C + ΔUR<-10%) ativa todos
|
||||
|
||||
### Teste 5: Integração Ubidots
|
||||
- Dados recebidos no dashboard
|
||||
- Histórico armazenado
|
||||
- Widgets atualizados em tempo real
|
||||
|
||||
## Monitoramento de Dados
|
||||
|
||||
**Captura do Monitor Serial** (origin dos dados):
|
||||
```
|
||||
[SETUP] Iniciando sistema...
|
||||
[DHT] Inicializado
|
||||
[WiFi] Conectando.....
|
||||
[WiFi] Conectado!
|
||||
[MQTT] Conectando...
|
||||
[MQTT] Conectado!
|
||||
[MQTT] Tópico: cozinha/max_tmp
|
||||
[MQTT] Tópico: cozinha/max_umi
|
||||
[RTC] Inicializado
|
||||
[MQTT] Publicando: {"tmp": 26.10, "umi": 63.50, "gas": 906, "alarme": 0}
|
||||
[SETUP] Pronto!
|
||||
|
||||
[MQTT] Publicando: {"tmp": 26.10, "umi": 63.50, "gas": 906, "alarme": 0}
|
||||
[MQTT] Publicando: {"tmp": 26.10, "umi": 63.50, "gas": 906, "alarme": 0}
|
||||
[MQTT] Publicando: {"tmp": 26.10, "umi": 63.50, "gas": 906, "alarme": 0}
|
||||
[MQTT] Publicando: {"tmp": 26.10, "umi": 63.50, "gas": 983, "alarme": 0}
|
||||
[ALARME] GÁS DETECTADO!
|
||||
```
|
||||
|
||||
## Comparação: Origem vs. Ubidots
|
||||
|
||||
| Métrica | Monitor Serial | Ubidots | Status |
|
||||
|---------|---|---|---|
|
||||
| Temperatura | 28.50°C | 28.50°C | Correspondência |
|
||||
| Umidade | 65.20% | 65.20% | Correspondência |
|
||||
| Gás | 850 ADC | 850 ADC | Correspondência |
|
||||
| Alarme | 0 (NOMINAL) | 0 | Correspondência |
|
||||
|
||||
**Conclusão**: Dados transmitidos corretamente sem perda ou corrupção.
|
||||
|
||||
|
||||
# Dashboard Ubidots
|
||||
|
||||
### Configuração do Device
|
||||
|
||||
**Nome do Device**: `cozinha`
|
||||
**Tipo**: Sensor IoT
|
||||
|
||||
**Variáveis Configuradas**:
|
||||
|
||||
| Variável | Tipo | Unidade | Limites | Status |
|
||||
|----------|------|---------|---------|--------|
|
||||
| temperatura | Float | °C | -40 a +80 | Ativa |
|
||||
| umidade | Float | % | 0 a 100 | Ativa |
|
||||
| gas | Integer | ppm | 0 a 1023 | Ativa |
|
||||
| alarme | Integer | Enum | 0 a 4 | Ativa |
|
||||
|
||||
## Widgets no Dashboard
|
||||
|
||||
### Widget 1: Gauge Temperatura
|
||||
- **Variável**: temperatura
|
||||
- **Mín**: 15°C | **Máx**: 40°C
|
||||
- **Alerta**: > 30°C (vermelho)
|
||||
|
||||
### Widget 2: Gauge Umidade
|
||||
- **Variável**: umidade
|
||||
- **Mín**: 30% | **Máx**: 90%
|
||||
- **Alerta**: > 70% (laranja)
|
||||
|
||||
### Widget 3: Gauge Gás
|
||||
- **Variável**: gas
|
||||
- **Mín**: 500 ppm | **Máx**: 1000 ppm
|
||||
- **Alerta**: > 940 ppm (vermelho)
|
||||
|
||||
### Widget 4: Indicador de Estado
|
||||
- **Variável**: alarme
|
||||
- **Estados**:
|
||||
- 0 = Verde (NOMINAL)
|
||||
- 1 = Vermelho (GAS)
|
||||
- 2 = Laranja (TEMP_ALTA)
|
||||
- 3 = Amarelo (UMIDADE_ALTA)
|
||||
- 4 = Vermelho (INCENDIO)
|
||||
|
||||
### Widget 5: Gráfico de Histórico (Última 24h)
|
||||
- **Variáveis**: temperatura, umidade, gas
|
||||
- **Tipo**: Linha com pontos
|
||||
- **Intervalo**: Últimas 24 horas
|
||||
|
||||
## Alertas Configurados
|
||||
|
||||
| Evento | Condição | Ação |
|
||||
|--------|----------|------|
|
||||
| Temperatura Alta | tmp > 30°C | Email |
|
||||
| Umidade Alta | umi > 70% | Nada |
|
||||
| Gás Detectado | gas > 940 | SMS |
|
||||
| Incêndio | alarme == 4 | SMS + Email |
|
||||
|
||||
## Screenshot do Dashboard
|
||||
|
||||

|
||||
|
||||
**Conteúdo Esperado**:
|
||||
- 4 widgets numéricos com valores em tempo real
|
||||
- Gráfico histórico de 24 horas
|
||||
- Status indicador colorido
|
||||
- Últimas leituras: data/hora
|
||||
|
||||
## Dashboard NodeRed - Monitoramento Fallback
|
||||
|
||||
### Acesso
|
||||
|
||||
O sistema também disponibiliza um dashboard NodeRed para monitoramento alternativo ao Ubidots:
|
||||
|
||||
**URL**: http://77.37.69.84:1880/dashboard/page1
|
||||
|
||||

|
||||
|
||||
### Recursos Disponíveis
|
||||
|
||||
| Recurso | Descrição | Funcionalidade |
|
||||
|---------|-----------|-----------------|
|
||||
| Indicadores Numéricos | Temperatura, Umidade, Gás | Valores em tempo real |
|
||||
| Status do Alarme | Código 0-4 | Indicador colorido (verde/vermelho/amarelo) |
|
||||
| Gráfico em Tempo Real | Histórico 2 minutos | Visualização de tendências |
|
||||
| Slider Temperatura | Input de controle | Alterar limite máximo de temp |
|
||||
| Slider Umidade | Input de controle | Alterar limite máximo de umidade |
|
||||
|
||||
### Configuração de Sliders
|
||||
|
||||
Os sliders do dashboard NodeRed publicam diretamente nos tópicos MQTT:
|
||||
|
||||
```
|
||||
Slider Temperatura → cozinha/max_tmp
|
||||
Slider Umidade → cozinha/max_umi
|
||||
```
|
||||
|
||||
**Operação**:
|
||||
|
||||
1. Mover slider de temperatura
|
||||
2. NodeRed publica valor em `cozinha/max_tmp`
|
||||
3. ESP32 subscreve e recebe o comando
|
||||
4. Limite é atualizado imediatamente
|
||||
|
||||
|
||||
# Conclusões
|
||||
|
||||
## Funções Implementadas
|
||||
|
||||
1. **Detecção de Incêndio em 2D**: Combinação de ΔT e ΔUR em janela temporal
|
||||
2. **Configuração Remota**: Limiares ajustáveis via MQTT em tempo real
|
||||
3. **Histerese Dinâmica**: Evita oscilações entre estados
|
||||
4. **Priorização de Alarmes**: Sistema hierárquico de estados
|
||||
5. **Integração Cloud**: Dashboard profissional com Ubidots
|
||||
|
||||
## Aplicações Práticas
|
||||
|
||||
Este sistema pode ser estendido para:
|
||||
- Outras ambientes: restaurantes, indústrias alimentícias
|
||||
- Múltiplos sensores: CO2, fumaça, luminosidade
|
||||
- Integração com sistemas SCADA
|
||||
- Análise preditiva com machine learning
|
||||
- Mobile app de alertas
|
||||
|
||||
## Recomendações Futuras
|
||||
|
||||
- [ ] Adicionar certificado SSL/TLS para segurança
|
||||
- [ ] Implementar backup local em SD card
|
||||
- [ ] Criar relatórios mensais de histórico
|
||||
- [ ] Adicionar IA para detecção de padrões anormais
|
||||
|
||||
---
|
||||
|
||||
**Última Atualização**: 26 de janeiro de 2026
|
||||
**Versão**: 1.0
|
||||
**Status**: Finalizado
|
||||
Reference in New Issue
Block a user