Skip to content

Aplicação JSF integrado com Arduino para monitoramento de ambiente a fim de prevenir contra incêndios.

License

Notifications You must be signed in to change notification settings

mcosta21/fire-alarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Aplicação JSF que realiza comunicação serial com Arduino UNO
para monitorar ambiente a fim de prevenir contra incêndios.

Sumário

Sobre o projeto

Banner

O projeto em questão visa o monitoramento de um determinado ambiente, de modo a prevenir riscos contra incêndios, assim foi estabelecido uma comunicação serial entre um Arduino UNO, o qual irá gerenciar os sensores, e uma aplicação JSF (Java Server Faces) para exibir as leituras e alertas conforme níveis condicionais. Logo, definiu-se a utilização dos seguintes sensores e condições a serem tratadas:

  • Sensor de gás: Detectar uma concentração de gás no ambiente igual ou superior a 30%;
  • Sensor de luz: Averigar uma luminosidade excessiva igual ou superior a 60%, que indique possíveis causas de incêncio;
  • Sensor de temperatura: Medir a temperatura ambiente do local, de modo a associar uma temperatura normal de 15°C a 35°C, sendo passível de alarmar em variações abruptas a 20% ou superiores a 35°C;
  • Sensor de presença: Detectar a presença de pessoas no ambiente, a fim de indicar níveis de incidêntes emergências;

Diante dessas definições, atribuiu-se níves de alarme de acordo com as ocorrências, resultando na seguinte tabela:

Nível Gás Luz Temperatura Presença
Normal False False False True or False
Em risco False False True True or False
Risco eminente True False True True or False
Incêndio Nível 1 False False True False
Incêndio Nível 2 True True True False
Alerta Vermelho True or False True True True

Então, a partir dos valores condicionais, foi possível atribuir um conjunto para cada leitura provida pelo Arduino, a fim de "printar" via comunicação serial, e tratar tais valores pela aplicação.

[gas,7.45%,54,0];[light,56.86%,145,0];[temp,45.00%,24.00,1];[presence,Movimento local,1,1];

Caso queira saber mais detalhes de implementação do projeto, acesse:

Visualizar Tinkercad

Componentes físicos

  • Arduino UNO;
  • Jumper;
  • Protoboard;
  • Sensor Fotoresistor LDR de 5mm;
  • Sensor de presença (PIR);
  • Sensor de temperatura TMP36;
  • Sensor de Gás MQ-5 GLP (Gás de Cozinha e Gás Natural);
  • Resistor de 10kΩ;

Componentes do Tinkercad

  • Arduino UNO;
  • Jumper;
  • Protoboard;
  • Sensor de luz ambiente;
  • Sensor de presença (PIR);
  • Sensor de temperatura TMP36;
  • Sensor de gás;
  • Piezo;
  • Display lcd 16x2;
  • Resistores de 220Ω, 1kΩ, e 10kΩ;

Estrutura

Além da criação da aplicação, foi construido um circuito similar na plataforma Tinkercad, de modo que possamos realizar testes virtualmente. Então, note que a estrutura do projeto se divide em três pastas, onde tem-se:

  • arduino: Pasta contendo o arquivo com código fonte para implementação do projeto no Arduino UNO;
  • tinkercad: Pasta contendo o arquivo com código fonte usado em simulação do circuito no Tinkercad;
  • web: Pasta referente a aplicação JSF;

Arduino e Tinkercad

A implementação do código em ambos ambientes seguiram a mesma base, diferenciado-se apenas no modelo dos sensores, que por sua vez, influencia nos valores de medição de cada um deles. E além disso, a simulação do projeto no tinkercad conta com um Display 16x2 para subir a ausência da aplicação web.

Web

Quanta a aplicação JSF, foi criado um projeto Maven com uso da IDE Eclipse e um servidor Tomcat 9 para rodar a aplicação. No arquivo pom.xml é encontrado as dependências do projeto, onde tem-se a dependência referida ao framework Primefacespara criar da interface, e a biblioteca JSerialComm, reponsável pelos métodos de comunicação serial com o arduino. Vale ressaltar que a aplicação e o arduino irão estabelecer a comunicação serial via porta USB.

Tecnologias

Basicamente, este projeto foi desenvolvimento com as seguintes tecnologias:

JSF    Primfaces    jSerialComm    Eclipse IDE    Tomcat   

Simulação

Banner

Conforme mencionado anteriormente, foi criado um circuito no Tinkercad para fins de testes, logo, você pode acessa-lo através do link abaixo.

Visualizar Tinkercad

Iniciar projeto

Com a Eclipse IDE instalado, e em posse do terminal, siga as seguintes instruções:

# Clonar o repositório
$ git clone https://github.com/mcosta21/alarme-contra-incendio

# Abra o projeto no Eclipse
Arquivo > Abrir projeto

# Adicione servidor Tomcat
Na janela `Servidores`, busque adicionar um novo servidor e localize o tipo 'Tomcar v9.0 Server'
e avance para as configurações, em seguida adicione o projeto 'alarme-contra-incendio'
clicando em `Adicionar`

# Iniciar a aplicação
Note que o servidor estará em estado de parado, clique no botão `Iniciar`

# Acesse a aplicação
No navegador, acesse 'http://localhost:8080/alarme/'

Como contribuir

As contribuições são o que torna a comunidade de código aberto um lugar incrível para aprender, inspirar e criar. Quaisquer contribuições que você fizer serão muito apreciadas.

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: (git checkout -b my-feature)
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: (git commit -m 'Add a new amazing feature')
  4. Envie as suas alterações: (git push origin my-feature)

Contato

Marcio Costa - marcioc424@gmail.com

Licença

Este projeto está sob a licença MIT.

Desenvolvido por Marcio Costa.