Mudanças entre as edições de "Especificação do Projeto 2015 1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 39: Linha 39:
 
===Visão Geral do Sistema===
 
===Visão Geral do Sistema===
  
Como definimos na aula 10, a estrutura proposta para o sistema especificado é subdividido em três subsistemas:
+
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  
 
• APP para controle do sistema de automação  
Linha 45: Linha 45:
 
• Servidor de Automação  
 
• Servidor de Automação  
  
• Controladores de Eletroeletrônicos  
+
• Controladores de Eletroeletrônicos
 
 
  
 
===APP para controle do sistema de automação ===
 
===APP para controle do sistema de automação ===
Linha 60: 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==
  
==Servidor de Automação ==
+
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:
 
 
Para desempenhar a função de Servidor da rede foi escolhido o microcontrolador Arduino.
 
 
 
A plataforma Arduino é uma ferramenta simples e fácil de usar mesmo para leigos em programacão e eletrônica. Essas características tornaram ela uma plataforma muito utilizada para o desenvolvimento de prototipos. Por se tratar de uma plataforma aberta de hardware e software, qualquer um pode montar protótipos com kits Arduino.
 
 
 
O kit Arduino é composto por um um microcontrolador que contém um código a ser executado, além de portas de entrada e saída digitais, portas para comunicação serial, portas de entrada analógicas e de saída PWM (Pulse-Width Modulation), onde é possível controlar o nível médio de tensão da saída e com isso controlar velocidade de motores, intensidade de iluminação entre outras aplicações.
 
 
 
Nessas portas de entrada e saída é possível conectar botões, sensores, LEDs ou quaisquer outros dispositivos elétricos, tornando inúmeras as possibilidades de uso para essa plataforma.
 
 
 
 
 
<center>[[Arquivo:ArduinoUno.jpg|400px]]</center>
 
 
 
 
 
Na topologia escolhida o Coordenador desempenha função fundamental na rede, ou seja, tem todo o controle da rede, assumindo um papel central e fazendo a comunicação direta com o APP e todos os dispositivos finais. Toda a informação transmitida tem que passar pelo Coordenador, por esse motivo seu código deve processar as mensagens das duas redes, Bluetooth e Zigbee.
 
 
 
 
 
A expansão das funcionalidades da plataforma Arduino é possível através da conexão de diversos shields e módulos de comunicação encontrados no mercado.
 
 
 
Para a conexão com o dispositivo Andróid, por exemplo, pode ser usado o shield bluetooth HC-06. Similar ao módulo da figura abaixo.
 
  
 +
*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>
  
<center>[[Arquivo:HC06.png|300px]]</center>
+
Vamos detalhar agora cada subsistema, visando especificar completamente o projeto.
  
 +
==Interface com Usuário ==
  
Para a comunicação entre o Servidor e os Controladores Finais foram escolhidos os módulos XBee.
+
* Realizar em sala de aula
  
XBee é a marca da Digi International para uma família de módulos de rádio comunicação. Esses rádios operam usando o protocolo ZigBee, utilizado para aplicações que exigem baixas taxas de transmissão de dados e baixo consumo de energia.
+
==Interface de Comunicação com o Servidor de Automação ==
  
 +
* Realizar em sala de aula
  
<center>[[Arquivo:Xbee_Pro2_g.jpg|300px]]</center>
+
==Servidor de Automação==
  
  
Linha 98: Linha 86:
 
<center>[[Arquivo:SubsitemaServidor.png|800px]]</center>
 
<center>[[Arquivo:SubsitemaServidor.png|800px]]</center>
  
 
+
==Controladores de Automação ==
 
 
==Controladores de Eletroeletrônicos ==
 
  
 
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 113: 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

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


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

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.

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.

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.

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.

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

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

SubsitemaServidor.png

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.

SubsitemaControlador.png


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.

Interface com Dispositivos Eletrônicos

  • A ser realizado em oficina específica