-
Notifications
You must be signed in to change notification settings - Fork 3
Home
1. INTRODUÇÃO
O hobby do aquarismo é muito gratificante. Não se trata apenas de criar um peixe, mas sim criar um ecossistema fechado, com fauna e flora, colônias de bactérias nitrificantes que decompõem a amônia resultante da decomposição da matéria orgânica que vai apodrecendo, entre outros elementos que embelezam e autonomizam o aquário. O maior temor do aquarista é ter uma falha em algum sistema de suporte do seu aquário, como o sistema de filtro, ou de controle de temperatura. Quando esses equipamentos falham, o aquarista sofre perdas financeiras que podem variar, mas as perdas sentimentais quase sempre são mais profundas, afinal trata-se de um animal de estimação. Existem sistemas completos de controle de aquário, que controlam desde a iluminação até à geração de ondas. São importados e complicados de se manusear, sendo considerados em muitos casos overkill: um sistema muito complexo e caro para controlar parâmetros bem simples. Por essa razão, considera-se um nicho de mercado os sistemas mais simplificados e com uma sofisticação mínima, que possibilite ao aquarista manter uma supervisão à distância. Arduino é uma plataforma eletrônica capaz de ler entradas, processá-las e transformá-las em saídas. É um hardware programável por intermédio de uma linguagem de programação específica, a Arduino programming language (baseado em Wiring). Para realizar a programação da placa, utiliza-se um software IDE (Integrated Development Environment) o Arduino Software (IDE), baseado em Processing (ARDUINO, 2017). Atualmente no mercado, existem placas periféricas que podem ser acopladas à plataforma Arduino, denominadas Shields, que permitem ao Arduino mais funções de comunicação, controle ou sensibilização do ambiente. São exemplos o Ethernet Shield W5100, baseado no controlador Ethernet Wiznet W5100, e que pode fornecer ao Arduino a capacidade de se comunicar em redes TCP/IP (ARDUINO, 2017); O Dimmer Shield, um controlador de corrente elétrica tipo Dimmer, baseado no uso do TRIAC, que corta a corrente senoidal num determinado ângulo, controlando assim a potência dissipada num receptor que esteja associado a ele. Servlet é um servidor de pequenas dimensões comumente utilizado para processar requisições pelo protocolo HTTP e devolver uma resposta ao cliente possibilitando o gerenciamento de páginas HTML não estáticas. Servlet container é um pequeno servidor que permite a manipulação de requisições e respostas. MVC é um padrão de arquitetura que separa a representação da aplicação em três camadas, sendo estas: O modelo, representando a entidade que se quer realizar operações, a view, que estabelece como o dado será representado; E o controller, que irá gerenciar as requisições.
2. O DIMENSIONAMENTO DE UM AQUÁRIO
Existem diversos parâmetros de um aquário que devem ser controlados para que se desenvolva a vida dentro do mesmo. Alguns deles são a temperatura da água, o pH da água, a quantidade de amônia livre na água, quantidade de matéria orgânica depositada sobre o substrato do aquário, entre outros. Algumas espécies de peixes não gostam de água movimentada, que em casos extremos podem causar esterilidade do peixe, pelo que o controle do fluxo de água que entra e sai do aquário deve ser também observada. Neste projeto, apenas a temperatura da água tem um controle direto, enquanto que alguns outros parâmetros são controlados indiretamente pelo ciclo de filtragem aplicado ao filtro hang-on, que tem como base a premissa de que o Betta splendens não tolera movimentação de água.
2.1. Dimensionamento dos Equipamentos
2.1.1. Filtro
Um filtro deve ter filtragem mecânica, química e orgânica, e a capacidade (em l⁄h) de cerca de 5 a 10 vezes o volume do aquário, considerando a carga orgânica que a espécie vai produzir (AQUAFLUX,2017). O Betta splendens é uma espécie que produz pouca carga orgânica. Considerando estes fatores, a vazão do filtro deverá ser de: 30×5=150 l⁄h Sendo assim, optou-se pelo filtro tipo hang on da marca Atman, e do modelo HF-0100, que tem uma vazão especificada de 160 l⁄h. O ciclo de filtragem que será aplicado será o de 8:1, ou seja, 8 períodos de filtragem fraca (com pouca vazão) e 1 período de filtragem máxima (vazão nominal do filtro). Neste caso, os períodos serão de 15 minutos, pelo que o filtro deverá funcionar em velocidade máxima durante 15 minutos e em velocidade baixa durante 2 horas.
2.1.2. Resfriamento
O resfriamento do aquário (em casos extremos) será realizado de acordo com o princípio da 1ª lei da termodinâmica de Newton, que estabelece que durante a mudança de fase de uma substância, existe a transferência de calor, cujo nome específico é calor latente. Aproveita-se este princípio para que, por intermédio de dois ventiladores, provoque-se a evaporação da água superficial, que vai demandar calor da água mais profunda do aquário, retirando calor da mesma, e resfriando a água do aquário.
2.1.3. Aquecimento
Um aquecedor para um aquário deve tem uma potência (em W) igual ao seu volume (em l) (VIDA, 2017). Sendo assim, para este caso, seria necessário um aquecedor de 30W. Uma vez que o sistema terá a temperatura controlada por um algorítimo, decidiu-se por um aquecedor de potência maior, para se obter maior rapidez nas correções, sendo de 50W.
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.
3.1. Módulo de Comunicação
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.
3.2. Módulos de Controle
3.2.1. Ventiladores e resistência de aquecimento
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.
3.2.2. Filtro
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
3.3. Aplicação
3.3.1. Arquitetura básica
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;
3.3.2. Especificação e funcionamento
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. Repositório: O código do projeto, as issues, futuras melhorias e erros encontrados estam disponíveis em: https://github.com/kevinmmartins/MyQuarium
REFERÊNCIAS BIBLIOGRÁFICAS
The APACHE Software Foundation. Apache Tomcat®. Disponível em: http://tomcat.apache.org/. Acesso em: 23 ago. 2017.
AQUAFLUX Aquarismo e Aquapaisagismo. Filtragem no Aquário. Disponível em: http://www.aquaflux.com.br/conteudo/artigos/filtragem-no-aquario-1352700816.php. Acesso em: 19 ago. 2017.
AQUAFLUX Aquarismo e Aquapaisagismo. Resfriamento Peltier: usar ou não no controle de temperatura de um aquário?. Disponível em: http://www.aquaflux.com.br/conteudo/artigos/resfriamento-peltier-usar-ou-nao-no-controle-de-temperatura-de-um-aquario-1444353294.php. Acesso em: 19 ago. 2017
ARDUINO. Arduino AG. Arduino – Introduction. Disponível em https://www.Arduino.cc/en/Guide/Introduction. Acesso em: 19 ago. 2017.
ARDUINO. Arduino AG. Arduino Ethernet Shield V1. Disponível em https://www.Arduino.cc/en/Main/ArduinoEthernetShieldV1. Acesso em: 19 ago. 2017.
ATMAN. Chuangxing Electrical Appliances Co.,Ltd. HF Hang-on Filter. Disponível em: http://en.chuangxing.com.cn/products_detail/productId=219.html. Acesso em:19 ago. 2017.
BERTULANI, Carlos. 1ª lei da termodinâmica. Rio de Janeiro, 17 set. 1999. Disponível em: http://www.if.ufrj.br/~bertu/fis2/calor/calor.html. Acesso em: 19 ago. 2017.
BOOTSTRAP. Build responsive, mobile-first projects on the web with the world's most popular front-end component library. Disponível em: http://getbootstrap.com/. Acesso em: 08 nov. 2017.
ECLIPSE. Eclipse Is... An amazing open source community of Tools, Projects and Collaborative Working Groups. Discover what we have to offer and join us. Disponível em: https://www.eclipse.org/home/. Acesso em: 08 nov. 2017.
DICAS de Aquário. Aquecedor e Termostato Para que Serve (sic). Disponível em: http://dicasdeaquarionet.blogspot.com.br/2013/03/aquecedor-e-termostato-para-que-serve.html. Acesso em: 19 ago. 2017.
JAVA. JAVA E VOCÊ, FAÇA DOWNLOAD HOJE. Disponível em: https://www.java.com/pt_BR/. Acesso em: 08 nov. 2017.
MYSQL. MySQL. Disponível em: < https://www.mysql.com/>. Acesso em: 23 ago. 2017.
SPRING. Let’s build a better Enterprise. Disponível em: https://spring.io/. Acesso em: 23 ago. 2017.
THYMELEAF. Thymeleaf is a modern server-side Java template engine for both web and standalone environments. Disponível em: http://www.thymeleaf.org/. Acesso em: 08 nov. 2017.
VIDA no Aquário. Dimensionando o Aquecedor do Aquário. Disponível em: http://www.vidanoaquario.com.br/dimensionando-corretamente-o-aquecedor-do-aquario/. Acesso em: 19 ago. 2017.