Web site - tecnologiadB/MonitoramentoRuidoWiki GitHub Wiki
Sistema de Monitoramento de Ruído
Frontend Web desenvolvido em PHP
O dBSimaSite é o frontend web responsável por apresentar:
- gráficos de níveis de ruído em tempo real e históricos;
- tabelas de medições minuto/segundo e por período;
- relatórios consolidados;
- diagnósticos da estação e status operacional.
Ele integra-se diretamente com a:
- API Backend (.NET)
- Banco PostgreSQL
- Estação Local (SoftwareEnvio / SoftwareExportacao)
Toda a lógica do frontend depende da API para obter as medições.
flowchart LR
User[Usuario Navegador] --> FE[dBSimaSite PHP]
FE --> API[API Backend DOTNET]
API --> DB[PostgreSQL]
FE --> Charts[JavaScript Graficos]
flowchart TB
subgraph Frontend dBSimaSite
Index[index.php<br/>Tela Inicial]
Dashboard[dashboard.php<br/>Gráficos e Indicadores]
APIClient[cliente_api.php<br/>Chamadas HTTP para a API]
Config[config.php<br/>URLs e parâmetros]
Templates[HTML/PHP Templates]
Assets[JS + CSS]
end
Index --> APIClient
Dashboard --> APIClient
APIClient --> Config
Dashboard --> Assets
Assets --> Charts[Gráficos JS]
sequenceDiagram
participant U as Usuário
participant B as Navegador
participant F as PHP Frontend
participant A as API Backend
participant D as PostgreSQL
U->>B: Acessa /dashboard.php
B->>F: Requisição GET
F->>F: Ler filtros (estação, datas)
F->>A: GET /medicoes?estacao=x&inicio=y&fim=z
A->>D: Consulta banco
D-->>A: Retorna registros
A-->>F: JSON com medições
F->>F: Processa JSON
F-->>B: HTML com dados + scripts
B->>B: Renderiza gráficos
flowchart LR
Usuario --> Navegador
Navegador --> PHPFiltro[PHP - Controlador de Filtros]
PHPFiltro --> API[API Backend]
API --> DB[(PostgreSQL)]
DB --> API
API --> PHPFiltro
PHPFiltro --> Navegador
Navegador --> Graficos[Atualização dos Gráficos JS]
-
Define URL da API Backend
-
Chave de acesso (se houver)
-
Timeouts e configurações de segurança
Exemplos:
-
index.php
-
dashboard.php
-
relatorios.php
Responsabilidades:
-
Capturar filtros (GET/POST)
-
Chamar funções de cliente HTTP
-
Renderizar templates
Funções típicas:
function api_get($rota) {
$url = API_URL . $rota;
$json = file_get_contents($url);
return json_decode($json, true);
}ou via cURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resposta = curl_exec($ch);
curl_close($ch);Normalmente usa:
-
Chart.js
-
Highcharts
-
ApexCharts
-
Ou gráficos próprios
flowchart TD
A[Chamar API Backend] --> B{Resposta OK?}
B -- Não --> C[Registrar erro em log local]
C --> D[Exibir mensagem amigável ao usuário]
B -- Sim --> E[Processar JSON de medição]
E --> F[Renderizar gráficos]
flowchart TB
PHP[PHP prepara arrays JSON] --> HTML[HTML embute dados]
HTML --> JS[Javascript inicializa graficos]
JS --> ChartLib[Biblioteca de Graficos]
ChartLib --> Canvas[Renderizacao no Canvas]
Com base na arquitetura geral:
GET /medicoesRetorna lista de medições por intervalo.
GET /medicoes/ultimaRetorna última medição (minuto/segundo).
GET /relatorios?tipo=xRetorna dados agregados.
GET /statusVerifica se a API está operacional.
flowchart LR
Usuario --> Navegador
Navegador --> Frontend[Frontend PHP]
Frontend --> API[API Backend]
API --> DB[(PostgreSQL)]
Frontend --> Charts[JS + Charts]
Charts --> Usuario
-
Centralizar cliente HTTP
-
Tratamento robusto de erros
-
Sanitização de entrada e saída
-
Separar template HTML da lógica PHP
-
Cache leve para carregamento rápido