-
Notifications
You must be signed in to change notification settings - Fork 3
3. Concepção do Sistema
Figura 1 - Diagrama funcional do sistema
A arquitetura principal do sistema é constituída de três microcontroladores da plataforma Arduino: uma delas (Arduino Mega) será o módulo de controle principal, ao qual se deu o nome de Módulo de Comunicação, que contará com o módulo Ethernet. Este recebe as informações do usuário para a configuração do sistema, e envia medições de temperatura e de funcionamento do filtro. Este comunica-se com o Web Server de gerenciamento do sistema, que armazena as informações e gera a página web de interface de gerência. Os outros dois microcontroladores têm a função de controlar os módulos de controle AC e o sistema de controle por PWM. Ao conjunto de microcontrolador e módulo de controle, se deu o nome de Módulo de Controle.
O módulo de comunicação recebe as informações via Ethernet do servidor de gerenciamento do sistema, processa as informações e codifica os sinais de controle por intermédio das saídas digitais para os módulos de controle do filtro e do aquecimento / resfriamento.
Os ventiladores e a resistência de aquecimento serão controlados por níveis de potência, com possibilidades de até 16 níveis, e cujos níveis são calculados pelo módulo de comunicação e enviados através de um barramento 5 bits, onde o primeiro bit indica se deve ser operado o resfriamento (nível 0) ou o aquecimento (nível 1), e os restantes 4 bits significam o nível de potência a ser utilizado no equipamento (passos de 6,25%). O controle da temperatura será realizado por um algoritmo PID (Proporcional-Integral-Derivativo) que fornecerá um valor de saída para o controle dos equipamentos. Este algoritmo integra uma biblioteca de distribuição pela licença MIT, para a plataforma Arduino, desenvolvida por Brett Beauregard, e distribuída pela Arduino Project.
Os módulos de controle AC funcionam pelo princípio de disparo de TRIAC (Triode for Alternating Current), semelhante ao funcionamento de um dimmer. Neste caso, o módulo de controle AC sensibiliza o cruzamento da senóide de potência da rede elétrica em 0V, e a partir daí o microcontrolador calcula o tempo de disparo de acordo com a potência de saída desejada.
Figura 2 - Formas de onda na saída do módulo de controle AC (fonte: http://www.newtoncbraga.com.br)
A conversão do nível de potência em um sinal de potência, no caso dos módulos de controle AC, demanda uma capacidade de processamento maior do microcontrolador, pois dependem da sensibilização do ponto de tensão 0V da onda senoidal de potência que provém da rede elétrica, sendo esta a razão pela qual os módulos de controle AC foram acoplados a microcontroladores segregados, e não ao microcontrolador principal. Um código mais extenso não permitiria ao microcontrolador realizar a sensibilização e disparar o TRIAC do módulo de controle AC a tempo de conseguir realizar o controle. Sendo assim, praticamente todo o núcleo de processamento se encontra no módulo de comunicação, deixando os microcontroladores dos módulos de controle livres para lidarem com controle do sinal AC.
Para o controle das ventoinhas, é utilizado um sinal PWM de frequência 500Hz e tensão de pico 12V. A plataforma Arduino emite o sinal em frequência 500Hz (padrão da plataforma), através de um algoritmo estabelecido em sua biblioteca principal, com tensão de pico de 5V, e este sinal, por sua vez, controla um transístor de potência modelo TIP122, alimentado por uma fonte chaveada.
Figura 3 - Esquema de ligação do módulo de controle PWM (fonte: http://www.rcrowley.com/)
Figura 4 - Um sinal PWM e seus parâmetros (fonte: http://www.newtoncbraga.com.br/)
O módulo de controle PWM foi acoplado ao módulo de controle de resfriamento / ventilação pois este não demanda grande capacidade de processamento, e porque ambos os equipamentos (aquecedor e conjunto de ventiladores) controlam a temperatura e terão um controle codificado no mesmo barramento.
O funcionamento do filtro terá 3 ciclos possíveis: desligado, vazão nominal e ciclo de filtragem intermitente, cada um correspondente aos valores estabelecidos no item 2.1. Dimensionamento dos Equipamentos.
O filtro é composto por um motor síncrono monofásico de 5W e um registro de fluxo. O motor é acionado diretamente por um TRIAC através de um optoacoplador próprio, e o registro de fluxo é controlado por um servo.
O fato do motor do filtro ser um motor síncrono não possibilita o seu controle através de dimmer, como no controle do aquecedor, pelo que se fez necessária a adaptação do servo ao registro de fluxo. O servo é controlado por um sinal PWM, através de um algoritmo específico na biblioteca da plataforma Arduino.
Figura 5 - Filtro com adaptação de servo no registro de fluxo
Para realizar a componentização da aplicação está foi dividida em quatro blocos sendo:
- Apresentação- Realiza a interface com o usuário;
- Servidor- Processa as requisições por sessões;
- Web Service- Publica serviços para serem consumidos por uma aplicação externa;
- Arduino- Realiza o controle do aquário, funcionando como um servidor;
Figura 6 - Esquema de interface entre usuário e módulo de comunicação
Tecnologias utilizadas:
- Java 8 – Linguagem utilizada no servidor;
- HTML- Linguagem básica da estrutura WEB;
- CSS- Mecanismo para gerenciar estilos;
- Maven- Gerenciador de dependências;
- MySQL- Banco de dados relacional;
- Eclipse- IDE para desenvolvimento;
- Frameworks utilizados:
- Spring (boot,data,mvc)- Coleção de implementações do JSE;
- Bootstrap- Biblioteca de CSS e JavaScript;
- Thymeleaf- Template Java Web;
Esta aplicação foi desenvolvida como um teste de conceito, assim não está em sua versão final e nem disponível para vendas. Ao acessar a aplicação o usuário terá as opções de realizar o login e de criar um novo usuário.
Figura 7 - Página de login na interface com o usuário.
Ao realizar o login o usuário irá visualizar todos os aquários cadastrados em seu usuário, poderá cadastrar novos aquários e realizar operações de CRUD (create, update, delete) com seu usuário.
Figura 8 - Página de interface do usuário logado
Na lista de aquários é possível visualizar os detalhes onde o usuário visualizará o resumo daquela instancia de aquário, os dados recebidos da camada do Arduino além das operações de CRUD com a instância do aquário e com os dados recebidos.
Figura 9 - Página de interface dos aquários registrados.
O servidor funciona em escopo de sessão, assim vários usuários podem acessar a aplicação simultaneamente e a atualização dos dados ocorre em uma tarefa secundaria em um tempo configurável, acessando o Web Service publicado pelo Arduino.
O código do projeto, as issues, futuras melhorias e erros encontrados estam disponíveis em: https://github.com/kevinmmartins/MyQuarium