Especificação do Projeto 2015 1: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Casagrande (discussão | contribs)
Casagrande (discussão | contribs)
 
(8 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 59: Linha 59:
Os controladores de eletroeletrônicos tem a função de executar os comandos enviados pelo APP, tais como acender lâmpadas, fechar persianas, ligar aparelhos de ar-condicionado. Os Controladores recebem as mensagens pela rede sem fio e executam os comandos determinados pelo usuário, acionando os eletroeletrônicos. Esses Controladores também enviam mensagens de confirmação de recebimento de mensagem e status dos eletroeletrônicos para o Coordenador.
Os controladores de eletroeletrônicos tem a função de executar os comandos enviados pelo APP, tais como acender lâmpadas, fechar persianas, ligar aparelhos de ar-condicionado. Os Controladores recebem as mensagens pela rede sem fio e executam os comandos determinados pelo usuário, acionando os eletroeletrônicos. Esses Controladores também enviam mensagens de confirmação de recebimento de mensagem e status dos eletroeletrônicos para o Coordenador.


==Especificando o Projeto do Cliente==


Pensando agora em nosso projeto, precisamos ampliar um pouco mais o sistema baseado nos módulos arduino pois já temos bem definido nos requisitos o que desejamos projetar para realizar o controle da iluminação, refrigeração e simulação de presença solicitado pelo cliente. Para tanto, podemos detalhar nosso projeto em 5 subsistemas possíveis:
*INTERFACE DO USUÁRIO - o App que engloba quatro partes: controle de temperatura, controle de iluminação, simulação de presença e alarmes;<br>
*INTERFACE DE COMUNICAÇÃO COM O SERVIDOR DE AUTOMAÇÃO -  o protocolo para envio de comandos de leitura e escrita no servidor de automação;<br>
*SERVIDOR DE AUTOMAÇÃO - o módulo arduino com protocolo para envio de comandos de leitura e escrita aos controladores;<br>
*CONTROLADORES DE AUTOMAÇÃO - o módulo arduino com protocolo para atuação e leitura de dispositivos eletrônicos usando portas analógicas, digitais e PWM;<br>
*INTERFACE DE ELETRÔNICOS - circuitos adicionais para a atuação e medição dos circuitos de iluminação de refrigeração.<br>
Vamos detalhar agora cada subsistema, visando especificar completamente o projeto.
==Interface com Usuário ==
* Realizar em sala de aula
==Interface de Comunicação com o Servidor de Automação ==
* Realizar em sala de aula
==Servidor de Automação==




Linha 66: Linha 86:
<center>[[Arquivo:SubsitemaServidor.png|800px]]</center>
<center>[[Arquivo:SubsitemaServidor.png|800px]]</center>


==Controladores de Eletroeletrônicos ==
==Controladores de Automação ==


O microcontrolador Arduino também foi escolhido para desempenhar a função de Controlador de Eletroeletrônicos e o módulo Xbee para a comunicação com o Servidor.
O microcontrolador Arduino também foi escolhido para desempenhar a função de Controlador de Eletroeletrônicos e o módulo Xbee para a comunicação com o Servidor.
Linha 79: Linha 99:
Em seguida é feito um looping verificando a chegada de mensagens nos pinos usados para a comunicação com o módulo XBee. Caso seja detectada a chegada de uma mensagem, os campos da mensagem são extraídos com o uso da biblioteca XBee.
Em seguida é feito um looping verificando a chegada de mensagens nos pinos usados para a comunicação com o módulo XBee. Caso seja detectada a chegada de uma mensagem, os campos da mensagem são extraídos com o uso da biblioteca XBee.


Os valores dos pinos enviados do Aplicativo de Automação variam de 1 a 6, assim, uma função identifica o tipo de mensagem e define a porta correta que deve ser comutada ou lida conforme  o esquema da figura abaixo.
==Interface com Dispositivos Eletrônicos==
 
<center>[[Arquivo:PortasArduino.png|600px]]</center>
 
 
Como exemplo, se o programa receber na variável ''APP_command'' o tipo de mensagem ''MSG_DIGITALWRITE'' com valor 10 e na variável ''pin_num'' o valor 1, o subsistema de Gerenciamento de comando App executa o comando solicitado no pino digital 2 (primeiro pino digital após pinos 0 e 1, RX e TX). Se o programa receber na variável ''APP_command'' o tipo de mensagem ''MSG_DIGITALWRITE'' com valor 10 e na variável ''pin_num'' o valor 2, o subsistema de Gerenciamento de comando App executa o comando solicitado no pino digital 4 (segundo pino digital após pinos 0 e 1, RX e TX).
 
De maneira semelhante, a função processa o valor correto dos pinos digitais PWM e dos pinos analógicos.
 
A figura abaixo relaciona possíveis eletroeletrônicos com as portas do Arduino e respectivos tipos de sinal usados para seu controle.
 
<center>[[Arquivo:SimbolosEletros.png|600px]]</center>
 
 
Com o valor correto da porta definido pela função anterior, os comandos são executados conforme os parâmetros recebidos.
 
Se o controlador receber corretamente a mensagem do servidor e executar os comandos conforme solicitado, é montada e enviada em seguida uma mensagem de retorno para confirmar o recebimento da mensagem ou enviar valores de retorno.
 
Valor com tamanho igual a 1 byte enviado como  decimal. Define tipo de mensagem para que o microcontrolador  ligado ao dispositivo final execute um comando de acionamento ou desligamento de um dos seus pinos digitais. Após o envio desse tipo de mensagem é aguardado mensagem de confirmação do tipo 12.
 
Os pinos reservados para acionamento digital na placa Arduino, ou seja, com valores 0 ou 1 são os pinos:
 
D2, D4, D7, D8, D12, D13.
 
'''MSG_ANALOGWRITE 11 (1 Byte )
 
Valor com tamanho igual a 1 byte enviado como  decimal. Define tipo de mensagem para que o microcontrolador  ligado ao dispositivo final execute um acionamento de um  dos pinos digitais com PWM. Após o envio desse tipo de mensagem é aguardado mensagem de confirmação do tipo 12.
 
Os pinos reservados para acionamento  digital com PWM, ou seja, com valores que podem variar entre 0 e 255 são os pinos:
 
D3, D5, D6, D9, D10, D11.
 
'''MSG_DIGITALREAD 13 (1 Byte )'''
 
Valor com tamanho igual a 1 byte enviado como  decimal. Define mensagem de pedido de leitura de uma das portas digitais seguintes:
 
D2, D4, D7, D8, D12, D13.
 
Após o envio desse tipo de mensagem é aguardado mensagem de resposta do tipo 15, com o valor solicitado (0 ou 1) num de seus campos.
 
 
'''RSP_LEITURA 15 (1 Byte )'''
 
Valor com tamanho igual a 1 byte enviado como  decimal. Tipo de mensagem de resposta que define o valor de leitura da porta digital PWM solicitada em mensagens do tipo 13 e 14.
 
'''MSG_STATUS 16 (1 Byte )'''
 
Valor com tamanho igual a 1 byte enviado como  decimal. Define mensagem de pedido de leitura de uma das portas analógicas do microcontrolador.
As portas analógicas do microcontrolador que permitem essa leitura são as seguintes:
 
A0, A1, A2, A3, A4, A5.
 
 
'''Porta'''
 
Valor com tamanho igual a 1 byte enviado como  decimal. Pode assumir valores de 1 a 6 e indicam a porta onde o eletroeletrônico está ligado no Controlador.
 
'''Valor'''


Valor com tamanho igual a 1 byte enviado como  decimal. Assume valores entre 0 e 255 e indicam o estado do eletroeletrônico ou o valor de ajuste.
* A ser realizado em oficina específica

Edição atual tal como às 01h04min de 14 de maio de 2015

1 Especificação do Projeto

Recordando do modelo em cascata, avançamos para a etapa de PROJETO. Como vimos, cada processo transforma um produto para produzir um novo produto como saída. Em seguida, o novo produto torna-se a entrada do processo seguinte. A tabela abaixo lista os processos e produtos do modelo cascata, situando no destaque em amarelo, o ponto onde estamos

Entrada de Produto Processo Saída de Produto
Comunicação dos Requisitos Engenharia de Requisitos Documento de Especificação de Requisitos
Documento de Especificação de Requisitos Projeto Documento de Especificação do Projeto
Documento de Especificação do Projeto Implementação/Programação Módulos de software executáveis
Módulos de software executáveis Integração e Testes Módulos integrados no produto
Módulos integrados no produto Entrega Produto de software entregue
Produto de software entregue Manutenção Requisitos alterados

Reveja melhor estes processos e produtos, na animação do modelo Waterfall.

modelo Waterfall (FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/waterfallmodel.html
modelo Waterfall (FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/waterfallmodel.html


1.1 Visão Geral do Sistema

Como definimos na aula 12, a estrutura proposta para o sistema especificado é subdividido em três subsistemas:

• APP para controle do sistema de automação

• Servidor de Automação

• Controladores de Eletroeletrônicos

1.2 APP para controle do sistema de automação

O App permite a comunicação e o controle do sistema. Ele atua como interface Homem-Máquina, enviando mensagens ao Servidor de Automação. Essas mensagens são enviadas como Strings e contém campos que definem parâmetros da mensagem. A comunicação entre o APP e o Servidor é feita usando tecnologia Bluetooth.

1.3 Servidor de Automação

O Servidor do sistema, pode comunicar-se nas duas redes (Bluetooth e ZigBee) e faz a ponte entre o APP e os dispositivos finais, recebendo e encaminhando as mensagens nas duas redes.

1.4 Controladores de Eletroeletrônicos

Os controladores de eletroeletrônicos tem a função de executar os comandos enviados pelo APP, tais como acender lâmpadas, fechar persianas, ligar aparelhos de ar-condicionado. Os Controladores recebem as mensagens pela rede sem fio e executam os comandos determinados pelo usuário, acionando os eletroeletrônicos. Esses Controladores também enviam mensagens de confirmação de recebimento de mensagem e status dos eletroeletrônicos para o Coordenador.

2 Especificando o Projeto do Cliente

Pensando agora em nosso projeto, precisamos ampliar um pouco mais o sistema baseado nos módulos arduino pois já temos bem definido nos requisitos o que desejamos projetar para realizar o controle da iluminação, refrigeração e simulação de presença solicitado pelo cliente. Para tanto, podemos detalhar nosso projeto em 5 subsistemas possíveis:

  • INTERFACE DO USUÁRIO - o App que engloba quatro partes: controle de temperatura, controle de iluminação, simulação de presença e alarmes;
  • INTERFACE DE COMUNICAÇÃO COM O SERVIDOR DE AUTOMAÇÃO - o protocolo para envio de comandos de leitura e escrita no servidor de automação;
  • SERVIDOR DE AUTOMAÇÃO - o módulo arduino com protocolo para envio de comandos de leitura e escrita aos controladores;
  • CONTROLADORES DE AUTOMAÇÃO - o módulo arduino com protocolo para atuação e leitura de dispositivos eletrônicos usando portas analógicas, digitais e PWM;
  • INTERFACE DE ELETRÔNICOS - circuitos adicionais para a atuação e medição dos circuitos de iluminação de refrigeração.

Vamos detalhar agora cada subsistema, visando especificar completamente o projeto.

3 Interface com Usuário

  • Realizar em sala de aula

4 Interface de Comunicação com o Servidor de Automação

  • Realizar em sala de aula

5 Servidor de Automação

O programa para o Servidor é dividido em subsistemas. Cada um desses subsistemas e suas funcionalidades são mostrados na figura abaixo.

6 Controladores de Automação

O microcontrolador Arduino também foi escolhido para desempenhar a função de Controlador de Eletroeletrônicos e o módulo Xbee para a comunicação com o Servidor.

O programa do Controlador também é dividido em subsistemas como mostrado abaixo.


No início do programa dos Controladores são definidos os tipos de mensagem, e o endereço do módulo XBee do Servidor de Automação. Também é definida a comunicação com o módulo XBee a uma velocidade de 9600bps e as portas 2 a 13 como saída (output).

Em seguida é feito um looping verificando a chegada de mensagens nos pinos usados para a comunicação com o módulo XBee. Caso seja detectada a chegada de uma mensagem, os campos da mensagem são extraídos com o uso da biblioteca XBee.

7 Interface com Dispositivos Eletrônicos

  • A ser realizado em oficina específica