Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Projeto de Computação Pervasiva e Sistemas Distribuídos

Monitoramento de Salas Inteligentes: Otimização de Recursos

Visão Geral

Este projeto implementa um protótipo funcional de um Sistema Distribuído Pervasivo (Smart Environment) utilizando Python e MQTT. [cite_start]O objetivo é monitorar a ocupação de salas de aula em tempo real para otimizar o uso dos ambientes e dos recursos (climatização, iluminação)[cite: 4, 2].

O sistema demonstra a aplicação de:

  • [cite_start]Conceitos de Sistemas Distribuídos (Comunicação, concorrência, sincronização)[cite: 69].
  • [cite_start]Computação Pervasiva/Ubíqua e processamento baseado em contexto[cite: 70].
  • Arquiteturas de IoT e ambientes inteligentes.

1. Arquitetura do Sistema e Comunicação (Entregáveis 3 e 4)

1.1 Estrutura Distribuída

[cite_start]A arquitetura segue o modelo Publicação/Assinatura (Pub/Sub), garantindo o desacoplamento e a concorrência no processamento de dados[cite: 69, 70].

Componente Tipo de Nó Função no Sistema
Nós Sensores (Mín. 3) Publishers [cite_start]Geram dados simulados (Temperatura, Luminosidade, Ocupação) [cite: 9, 10, 11, 12] [cite_start]e os enviam continuamente ao Servidor[cite: 6, 35].
Servidor de Contexto (1) Subscriber/Publisher [cite_start]Recebe dados concorrentemente [cite: 38][cite_start], processa o contexto (decisão) [cite: 16, 17][cite_start], e envia comandos para o Atuador[cite: 18, 45].
Atuador Distribuído (Mín. 1) Subscriber [cite_start]Recebe comandos [cite: 48] [cite_start]e executa ações simuladas (Ligar AC, Desligar Luzes, Alerta)[cite: 20, 22, 49].

1.2 Mecanismo de Comunicação (MQTT)

  • [cite_start]Protocolo: MQTT (Message Queuing Telemetry Transport)[cite: 24].
  • [cite_start]Modelo: Publicação/Assinatura, escolhido por sua eficiência e natureza assíncrona, ideal para a disseminação de eventos para múltiplos nós[cite: 65, 71].
  • Fluxo Lógico: Sensores (PUBLISH) $\to$ Broker $\to$ Servidor de Contexto (SUBSCRIBE/PROCESSA/PUBLISH) $\to$ Broker $\to$ Atuadores (SUBSCRIBE).

2. Estratégia de Detecção de Contexto

[cite_start]O Processamento Baseado em Contexto é realizado no Servidor, que aplica regras de negócio para identificar padrões e tomar decisões automáticas[cite: 70, 45, 17].

Situação Pervasiva (Contexto) Condição (Regra de Negócio) Ação Automática (Comando)
Sala Lotada e Quente Pessoas $\ge 25$ E Temperatura $> 27.0^{\circ}\text{C}$ [cite_start]Ligar Ar-Condicionado [cite: 18]
Sala Vazia com Luz Acesa Pessoas $= 0$ E Luminosidade $\ge 400$ lux [cite_start]Apagar Luzes [cite: 18]
Temperatura Elevada Inexplicada Temperatura $> 30.0^{\circ}\text{C}$ E Pessoas $\le 5$ [cite_start]Enviar Alerta de Manutenção [cite: 23]

3. Manual de Execução e Logs (Entregáveis 2 e 3)

3.1 Pré-requisitos

  1. [cite_start]Python 3.x: Linguagem de implementação[cite: 3].
  2. Broker MQTT (Mosquitto): Instalado e rodando em localhost:1883.
  3. Ambiente Virtual (.venv): Ativado.
  4. Dependência: Instale o pacote paho-mqtt no ambiente virtual ativado:
    pip install paho-mqtt

3.2 Sequência de Iniciação dos Nós

Abra cinco janelas de terminal separadas, ative o ambiente virtual e navegue para a pasta \src em todas elas.

A ORDEM É IMPORTANTE: O Servidor e o Atuador devem iniciar primeiro.

Janela Componente Comando de Execução (na pasta \src)
1 Servidor de Contexto python Context_Server.py
2 Atuador Distribuído python Actuator_Node.py 001
3 Sensor 1 python Sensor_Node.py 001
4 Sensor 2 python Sensor_Node.py 002
5 Sensor 3 python Sensor_Node.py 003

3.3 Logs e Persistência

[cite_start]O sistema atende ao requisito de persistência [cite: 50] gerando logs na pasta \logs na raiz do projeto:

  • [cite_start]Log_Sensores.txt: Log de cada leitura enviada pelos sensores[cite: 52].
  • [cite_start]Log_Decisoes.txt: Log de decisões do servidor de contexto[cite: 53].
  • [cite_start]Log_Atuadores.txt: Log das ações dos atuadores[cite: 54].

About

Protótipo de um Sistema Distribuído Pervasivo (Smart Environment) para monitoramento de salas de aula. Implementado em Python usando arquitetura MQTT Pub/Sub para detecção e atuação automática baseada em contexto.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages