Versão para apreciação por júri
Transcrição
Versão para apreciação por júri
FACULDADE DE E NGENHARIA DA U NIVERSIDADE DO P ORTO Monitorização da Tiragem de Cerveja num Equipamento de Extração João Manuel Carvalho da Silva Corrêa PARA A PRECIAÇÃO POR J ÚRI Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Orientador: Prof. Joaquim Gabriel Mendes - DEMec 27 de janeiro de 2014 © João Corrêa, 2014 Resumo Atualmente a UNICER tem cerca 60000 máquinas de distribuição de cerveja instaladas em restaurantes, bares e discotecas em todo o país. Contudo, para além da informação que recebe do revendedor, não dispõe de uma contabilização dos consumos de cerveja em cada um dos pontos de venda, o que limita bastante a gestão eficiente dos recursos. Nesta dissertação analisaram-se, teoricamente, várias soluções possíveis para a monitorização dos consumos efetuados numa máquina de extração de cerveja, sendo elas a utilização de um caudalímetro ultrassónico, um caudalímetro eletrónico, um potenciómetro no manípulo da torneira, um sensor de efeito Hall na gaveta da torneira e uma célula de carga. Após esta análise, e tendo em conta a relação qualidade/preço, optou-se pela instalação do sensor de efeito Hall na torneira da máquina. Os resultados experimentais obtidos demonstram que é possível medir o volume extraído com um erro máximo de ± 5%. Estes resultados promissores permitem impulsionar o desenvolvimento futuro de novas soluções comerciais adaptadas a este ambiente e direcionadas para o mercado em questão. i ii Abstract UNICER has currently about 60000 draught beer dispensers installed in restaurants, bars and nightclubs across the country. However, beyond the information that receives from the dealer it doesn’t have a recording of beer consumption in each of the sales point, which greatly limits the efficient management of resources. On this dissertation we’ve performed a theoretical analysis of several possible solutions to monitor the consumption in an draught beer dispenser that have included the use of an ultrasonic flow meter, an electronic flow meter, a potentiometer on the knob, a Hall effect sensor inside the faucet and a load cell. After this analysis and taking into account the quality/price ratio, we’ve opted to install the Hall effect sensor on the faucet. The experimental results demonstrate that it is possible to measure the volume mined with an accuracy of ± 5%. These promising results allow us to drive the future development of new commercial solutions adapted to this environment and oriented to the market in question. iii iv Agradecimentos A realização desta dissertação revelou-se um dos marcos mais importantes no meu desenvolvimento académico. Sem o apoio, ajuda e contribuição de inúmeras pessoas com quem contacto e convivo diariamente não estaria agora a terminar este capítulo da minha vida. Gostaria, em primeiro lugar, de agradecer ao Prof. Joaquim Gabriel pela diponibilidade, orientação e suporte que me concedeu durante o decorrer do projeto. À UNICER, pela oportunidade que foi atribuida à Faculdade de Engenharia de desenvolver esta solução. Aos responsáveis da UNICER com quem contactei, pelo apoio e tempo que me dedicaram. Um agradecimento especial à Universidade do Porto pelo Projeto Pluridisciplinar 2010, “Avaliação e Optimização da Eficiência Energética de uma Maquina de Tiragem de Cerveja”, financiado pela UNICER e Santander Totta. Aos meus amigos, que sempre tiveram uma palavra de incentivo até nos momentos mais difíceis e a todos aqueles que estiveram presentes nas sessões de testes. Um muito obrigado ao Agostinho Rocha, José Olivera e Luciano Santos, por todas as contribuições que me deram para ultrapassar os obstáculos encontrados. À Ana por aturar o meu mau feitio no final de cada dia. À minha família, com especial destaque para a minha tia, que durante todo o percurso académico se privou de inúmeras noites de descanso para me ajudar. Por último, mas sempre em primeiro lugar, aos meus pais, por todos os esforços efetuados para me tornarem na pessoa que hoje sou. João Corrêa v vi “Innovation distinguishes between a leader and a follower.” Steve Jobs vii viii Conteúdo 1 2 3 4 Introdução 1.1 Contexto . . . . . . . . . 1.2 Motivação . . . . . . . . 1.3 Objetivos . . . . . . . . 1.4 Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 Estado da Arte 2.1 A cerveja . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Contextualização histórica . . . . . . . . . . . 2.1.2 Produção . . . . . . . . . . . . . . . . . . . . 2.1.3 Equipamento de extração de bebidas à pressão 2.2 Soluções já implementadas . . . . . . . . . . . . . . . 2.2.1 Kegbot ™ . . . . . . . . . . . . . . . . . . . . 2.2.2 Keg-Meter . . . . . . . . . . . . . . . . . . . 2.3 Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 5 6 6 6 7 Soluções Propostas 3.1 Descrição Geral . . . . . . . . . . . . . . . . 3.2 Hardware . . . . . . . . . . . . . . . . . . . 3.2.1 Arduino . . . . . . . . . . . . . . . . 3.2.1.1 Arduino Mega . . . . . . . 3.2.1.2 Módulo SD . . . . . . . . 3.2.1.3 Módulo RTC . . . . . . . . 3.2.1.4 Display . . . . . . . . . . . 3.2.1.5 Módulo RFID . . . . . . . 3.2.2 Caudalímetro . . . . . . . . . . . . . 3.2.2.1 Caudalímetro Ultrassónico 3.2.2.2 Caudalímetro Eletrónico . . 3.2.3 Potenciómetro . . . . . . . . . . . . 3.2.4 Sensor de efeito Hall . . . . . . . . . 3.2.5 Célula de carga . . . . . . . . . . . . 3.3 Software . . . . . . . . . . . . . . . . . . . . 3.3.1 Android . . . . . . . . . . . . . . . . 3.4 Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 11 11 12 12 12 13 13 14 16 16 17 17 18 18 19 Avaliação Experimental 4.1 Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Torneira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x CONTEÚDO . . . . . . . . . . . . . . . . . . . . . . . . 22 22 24 26 29 30 30 30 31 31 32 32 32 33 34 35 35 35 38 38 39 39 42 42 Conclusões e Trabalho Futuro 5.0.4 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.0.5 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 4.2 4.3 4.4 4.5 4.6 4.7 5 4.1.1.1 Instalação do Sensor de Efeito Hall . . 4.1.1.2 Determinação da Curva ∆V/Distância . 4.1.2 Circuito eletrónico . . . . . . . . . . . . . . . . Aquisição de Dados . . . . . . . . . . . . . . . . . . . . Base de Dados . . . . . . . . . . . . . . . . . . . . . . . Aplicação Android . . . . . . . . . . . . . . . . . . . . 4.4.1 Ecrãs . . . . . . . . . . . . . . . . . . . . . . . 4.4.1.1 Ecrã inicial . . . . . . . . . . . . . . . 4.4.1.2 Ecrã estabelecimento . . . . . . . . . 4.4.1.3 Ecrãs gerente/técnico . . . . . . . . . 4.4.1.4 Ecrã máquina . . . . . . . . . . . . . 4.4.2 Princípios de funcionamento . . . . . . . . . . . 4.4.2.1 Adicionar gerente/técnico . . . . . . . 4.4.2.2 Adicionar máquina . . . . . . . . . . 4.4.2.3 Adicionar estabelecimento . . . . . . 4.4.2.4 Visualizar estabelecimentos . . . . . . 4.4.2.5 Associar máquinas a estabelecimentos 4.4.2.6 Receber/visualizar consumos . . . . . Sincronização com o Servidor Central . . . . . . . . . . Orçamento . . . . . . . . . . . . . . . . . . . . . . . . . Análise dos resultados . . . . . . . . . . . . . . . . . . 4.7.1 Volume . . . . . . . . . . . . . . . . . . . . . . 4.7.2 Peso . . . . . . . . . . . . . . . . . . . . . . . . 4.7.3 Sincronização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Código implementado no Arduino 45 B Volume e tempo de extração 53 Referências 55 Lista de Figuras 2.1 2.2 2.3 Exportação de cerveja por país [4] . . . . . . . . . . . . . . . . . . . . . . . . . Máquina de extração inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . Keg-Meter [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 Modo de comunicação . . . . . . . . . . . . . . . . . . . . . Shields Arduino . . . . . . . . . . . . . . . . . . . . . . . . . Board Arduino Mega [18] . . . . . . . . . . . . . . . . . . . . Leitor/Gravador SD [20] . . . . . . . . . . . . . . . . . . . . Relógio de tempo real [21] . . . . . . . . . . . . . . . . . . . LCD 20x2 [22] . . . . . . . . . . . . . . . . . . . . . . . . . Sistema RFID . . . . . . . . . . . . . . . . . . . . . . . . . . Princípio de funcionamento do caudalímetro ultrassónico [10] Caudalímetro Eletrónico [12] . . . . . . . . . . . . . . . . . . Potenciómetro com carga resistiva . . . . . . . . . . . . . . . Sensor de efeito Hall [16] . . . . . . . . . . . . . . . . . . . . Célula de carga [17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11 11 12 12 13 13 14 16 17 17 18 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 Esquema de uma torneira . . . . . . . . . . . . Instalação do sensor de Hall . . . . . . . . . . Determinação da curva ∆V/distância . . . . . . Curva ∆V/Distância . . . . . . . . . . . . . . . Função polinomial de 4º grau . . . . . . . . . . Esquema de montagem . . . . . . . . . . . . . Circuito PCB . . . . . . . . . . . . . . . . . . PCB . . . . . . . . . . . . . . . . . . . . . . . Sistema de aquisição de dados . . . . . . . . . Excerto do programa Arduino . . . . . . . . . . Adaptação da função millis() . . . . . . . . . . Determinação do valor da temperatura ambiente Consolidação/Envio de dados . . . . . . . . . . Estrutura da Base de Dados . . . . . . . . . . . Ecrã Principal . . . . . . . . . . . . . . . . . . Ecrãs gerente/tecnico . . . . . . . . . . . . . . Ecrãs tipos/máquinas . . . . . . . . . . . . . . Funcionalidades estabelecimento . . . . . . . . Informações estabelecimento . . . . . . . . . . Associação de máquinas . . . . . . . . . . . . Menu consumos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 22 23 24 24 25 25 26 27 27 28 28 29 31 33 33 34 34 35 36 xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 xii LISTA DE FIGURAS 4.22 4.23 4.24 4.25 4.26 Sistema de autorização . . . . . . . Informações referente aos consumos Evolução do consumo . . . . . . . . Relação entre ∆V e o caudal . . . . Consumos efetuados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 37 39 40 42 Lista de Tabelas 3.1 Velocidade de propagação do som na água em função da temperatura [10] . . . . 14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 ∆V/Distância . . . . . . . . . . . . . . . . . . . . . . Esquema de ligações . . . . . . . . . . . . . . . . . . Orçamento . . . . . . . . . . . . . . . . . . . . . . . . Valores médios dos parâmetros de extração . . . . . . Resultados obtidos com uma amostra de 3,40×10−3 L Testes utilizando diferentes valores para a amostra . . . Testes utilizando 3,53×10−3 L como valor da amostra Valores padrão do sistema . . . . . . . . . . . . . . . . . . . . . . . 23 26 38 39 40 41 41 42 B.1 Volume e tempo de extração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 xiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv LISTA DE TABELAS Abreviaturas e Símbolos a.C. APP BD BPI CO2 d.C. GPS ICSP IDE I/O LCD LED MAC PCB PWM RFID SD SDK SO UART USB Antes de Cristo Application Software Base de Dados Banco Português de Investimento Dióxido de Carbono Depois de Cristo Global Positioning System In Circuit Serial Programming Integrated Development Environment Input & Output Liquid-Crystal Display Light-Emitting Diode Media Access Control Printed Circuit Board Pulse-Width Modulation Radio-frequency identification Secure Digital Software Development Kit Sistema Operativo Universal Asynchronous Receiver/Transmitter Universal Serial Bus xv Capítulo 1 Introdução 1.1 Contexto A cerveja é uma bebida alcoólica, de sabor amargo, com gás, na maioria dos casos servida fria. Produzida a partir de uma mistura de cereais acredita-se que se trate da primeira bebida alcoólica alguma vez produzida. Historicamente, a cerveja já era conhecida pelos antigos sumérios, egípcios, mesopotâmios e ibéricos, remontando, pelo menos, a 6000 a.C. [1]. Para ser produzida, os cereais atravessam uma série de etapas: moagem, brassagem, filtragem e ebulição do mosto, fermentação, maturação, estabilização e clarificação [2]. Depois de concluído o processo, a cerveja é armazenada, para uma posterior distribuição, em latas, garrafas e barris. Por uma questão de facilidade, o público alvo da área não comercial tem preferência pelas duas primeiras opções, sendo os barris utilizados, quase na sua totalidade, em bares, restaurantes e discotecas. A Unicer é a maior empresa de Bebidas a operar em Portugal, não só nos negócios de cervejas e águas, onde detém uma posição de extrema relevância, mas também na área dos refrigerantes, vinhos, produção e comercialização de malte. Conta com cerca de 1500 colaboradores, sendo detentora de 10 estabelecimentos de captação, produção, engarrafamento, vendas e operações. Trata-se de uma empresa detida pelo Grupo VIACER (BPI, Arsopi e Violas) e pelo grupo Carlsberg, sendo que 56% do capital é português [2]. 1.2 Motivação Numa época em que a palavra “crise” faz parte do nosso quotidiano, os mercados já implementados lutam para que as suas percentagens de venda não diminuam acentuadamente, procurando soluções para a redução de custos desnecessários. Uma das oportunidades de melhoria no negócio da cerveja tem a ver com a não existência de controlo dos consumos em cada máquina de extração, impossibilitando uma gestão eficaz do fornecimento e manutenção dos equipamentos instalados. 1 2 Introdução Não olhando a custos, a solução que melhor se enquadraria seria a implementação de um caudalímetro ultrassónico mas, como sabemos, cada cêntimo é importante, sendo fundamental ponderar alternativas. A utilização de um caudalímetro eletrónico ou de um potenciómetro na torneira de extração são algumas das hipóteses a ter em conta uma vez que a relação qualidade/preço, para estas situações, parece vantajosa. Sendo esta uma área com falta de soluções viáveis, o desafio será, pois, o de encontrar a melhor resposta para esta problemática. 1.3 Objetivos O objetivo desta dissertação é estudar e implementar uma solução que permita contabilizar o volume de cerveja que atravessa a torneira de extração. Para o atingir, devem ser tidos em conta os seguintes objetivos específicos: • Analisar soluções similares existentes no mercado; • Desenvolver uma solução de baixo custo que permita a leitura dos consumos; • Desenvolver uma aplicação para Android para a gestão dos dados obtidos; • Testar a solução em laboratório. 1.4 Estrutura do Documento Este documento encontra-se organizado em 5 capítulos. No Capítulo 2 apresenta-se o estado da arte, incluindo diversas formas de controlo de fluxo passíveis de adaptar a esta situação. O Capítulo 3 providencia as descrições das soluções a implementar, bem como as suas especificações. No Capítulo 4 são apresentadas as experiências bem como os valores obtidos. Finalmente, o Capítulo 5 apresenta as conclusões obtidas. Capítulo 2 Estado da Arte 2.1 2.1.1 A cerveja Contextualização histórica Produzida desde o ano 6000 a.C, os documentos mais antigos datam de 2600 a 2350 a.C. [1]. Desta época foram encontradas menções a Ninkasi, deusa da cerveja para os Sumérios. Na Babilónia os arqueólogos descobrem que já se produziam diferentes tipos de cerveja a partir da junção de plantas, aromas e mel. Mais recentemente, no Egito, segundo o escritor grego Ateneu de Náucratis (sec. III d.C.), a cerveja era produzida para ajudar os mais pobres pois não dispunham de possibilidades económicas para consumir vinho. Ramsés III, faraó entre 1184 e 1153 a.C. foi apelidado de faraócervejeiro após a doação, aos sacerdotes do Templo de Amon, um milhão de litros de cerveja das suas produções. A cerveja era a bebida preferida dos romanos, até que, durante a República Romana, o vinho fez com que esta fosse considerada uma bebida bárbara. Na idade média inúmeros monges utilizavam mírica, sálvia, gengibre, louro, rosmarinho e lúpulo para a sua produção. A introdução do lúpulo é atribuída aos monges do Mosteiro de San Gallo, na Suíça, como forma de preservação, sendo o processo de fermentação ainda desconhecido [3]. Hoje em dia a cerveja é mundialmente conhecida, produzida e consumida em quase todos os países. Destaque para os Países Baixos, México e Alemanha que, tal como ilustrado na figura 2.1, são os principais exportadores. 3 4 Estado da Arte Figura 2.1: Exportação de cerveja por país [4] 2.1.2 Produção O primeiro passo para a produção de uma cerveja é a elaboração do mosto. Esta etapa é dividida nas seguintes fases: • Moagem - O malte é moído até se obter uma farinha espessa, sendo os restantes cereais não maltado moídos até se obter a espessura adequada; • Brassagem - À farinha obtida na moagem é então adicionada água de forma a produzir-se o mosto ideal para a cerveja em questão. As moléculas de amido e proteínas são decompostas em estruturas mais básicas. Este processo demora entre duas a quatro horas, a uma temperatura que ronda os 75 ºC; • Filtragem do mosto - O mosto é então separado da parte insolúvel (drêche, utilizado para alimentar o gado); • Ebulição do mosto - Esta etapa serve para eliminar substâncias indesejáveis, esterilizar e fixar a concentração final do mosto. O segundo passo tem a ver com a fermentação. Aqui, os açucares são convertido, graças à levedura, em álcool e dióxido de carbono. A levedura é adicionada ao mosto arrefecido e saturado em oxigénio. Este processo tem a duração aproximada de 7 dias, estado pronto quando a levedura de fermentação baixa assenta no fundo do tanque. A maturação corresponde ao período onde se libertam as últimas substâncias voláteis indesejáveis. A cerveja é estabilizada a uma temperatura entre os 0 ºC e os 2 ºC. Por último a clarificação torna a cerveja límpida. O líquido atravessa um último filtro antes de ser armazenada e distribuída [2]. 2.1 A cerveja 2.1.3 5 Equipamento de extração de bebidas à pressão Independentemente da marca ou tamanho, todas as instalações são constituídas pelos seguintes componentes: • Botija de CO2 ; • Regulador de CO2 ; • Tubagens (para a cerveja bem como para o CO2 ); • Barril; • Torneira; • Máquina de refrigeração (figura 2.2). Aplicando pressão no interior do barril proveniente da botija de CO2 , a cerveja é extraída e conduzida até à torneira através da tubagem. Entre a botija e o barril encontra-se o regulador de CO2 , instrumento utilizado para controlar a pressão a que o barril se encontra sujeito [5]. A tubagem de aço inox responsável pelo arrefecimento da cerveja encontra-se enrolada, em forma de serpentina que, em contacto com a água gelada existente dentro da máquina, arrefece o fluído antes da sua libertação através da torneira. O manípulo da torneira permite ao consumidor controlar a extração da cerveja bem como a adição de espuma caso seja necessária. Figura 2.2: Máquina de extração inverter Uma das vantagens da utilização de uma máquina é o facto de se conseguir extrair uma cerveja fresca em qualquer altura do ano. Na grande maioria das cervejas, a sua temperatura ideal de consumo varia entre os 2,2 ºC e os 4,4 ºC. A medição da temperatura pode ser realizada de várias maneiras, algumas máquinas poderão, eventualmente, possuir um termómetro embutido mas, de um modo geral, a solução mais prática passa por colocar um termómetro num copo após a tiragem 6 Estado da Arte da cerveja. Para garantir a qualidade do produto, após a abertura de um barril, é conveniente o seu consumo num prazo máximo de 5 dias [5]. Tratando-se a cerveja de um “organismo vivo”, exige alguns cuidados de higiene e manutenção. Regularmente as tubagens necessitam de ser sujeitas a uma limpeza recorrendo a um produto específico de higienização, prevenindo assim a crescimento de bactérias ao longo das mesmas. É necessário também ter em atenção que a limpeza não deve ser realizada utilizando água muito quente pois pode danificar algum elemento e fazer com que a tiragem não seja realizada da melhor maneira. Em relação ao CO2 , a botija deve ser verificada regularmente para garantir que não existam fugas ou que a mesma se encontre vazia, fazendo com que a pressão diminua e a cerveja não possua o gás necessário para uma boa apreciação da mesma. 2.2 Soluções já implementadas Serão agora apresentados os resultados de uma pesquisa de soluções já existentes no mercado com objetivos semelhantes aos que foram propostos para esta dissertação. 2.2.1 Kegbot ™ O KegBot ™ é um sistema open source que permite a monitorização, em tempo real, de uma máquina de extração de cerveja. Tem como princípio de funcionamento um caudalímetro ultrassónico (por torneira de extração). Permite a integração com um computador de modo a monitorizar os consumos de cada cliente, gerar gráficos e logfiles [7]. 2.2.2 Keg-Meter Outro sistema já implementado no mercado é o Keg-Meter (figura 2.3). Este modo de contabilização tem como princípio de funcionamento a medição da variação do valor da pressão no barril. Figura 2.3: Keg-Meter [8] 2.3 Discussão 7 Ao contrário do KegBot ™, este sistema não pode ser integrado em qualquer máquina de extração, restringindo-se, assim, a modelos que não utilizem uma botija de CO2 para extrair a cerveja do barril. Nesta situação o barril de cerveja contém a pressão necessária para que a cerveja percorra a serpentina e chegue à torneira, sem a necessidade da utilização de uma fonte de dióxido de carbono externa. 2.3 Discussão Neste capítulo apresentou-se uma contextualização história relativa à cerveja, bem como um resumo do modo de produção, a máquina de extração e soluções específicas já existentes no mercado. Cada tecnologia possui as suas próprias vantagens e desvantagens. No que diz respeito ao KegBot ™, trata-se de uma solução muito intuitiva, rodeada de extras que facilitam em muito a monitorização dos dados obtidos mas tornando o seu preço demasiado elevado. Quanto ao Keg-Meter, a sua incorporação é extremamente fácil, pecando pelas funcionalidades reduzidas e falta de universalidade, reduzindo assim o mercado a uma pequena fração de possíveis compradores. 8 Estado da Arte Capítulo 3 Soluções Propostas Neste capítulo são apresentadas diversas soluções para resolver o problema de medição do caudal de cerveja. Em primeiro lugar será feita uma descrição geral, seguida de uma análise mais aprofundada de cada solução, bem como uma comparação entre as mesmas, apontando os prós e contras. Por último será escolhida uma solução que, posteriormente, irá ser implementada. 3.1 Descrição Geral Depois de revisto o estado da arte, e estudados os possíveis modos de contabilização do fluxo de um líquido, foram colocadas em cima da mesa várias soluções, divididas em 3 tipos distintos de acordo com a localização onde as mesmas são passíveis de ser implementadas: • Tubo de passagem de cerveja: – Caudalímetro eletrónico/ultrassónico - instalados na tubagem que conduz a cerveja entre o barril e a torneira. Serão testadas diferentes localizações tendo em conta o grau de dificuldade de instalação, espaço dentro da máquina e, principalmente, a ocorrência, ou não, de espuma; • Torneira: – Potenciómetro - acoplado ao manípulo da torneira, de modo a que, consoante o grau de abertura da mesma, o valor da resistência altere, possibilitando desta forma relacionar a resistência do potenciómetro com o volume de cerveja que atravessa a torneira; – Sensor de efeito Hall - instalado no interior da torneira, sofre a ação de um magneto instalado na gaveta da válvula, fazendo com que, à medida que a torneira abra ou fecha, a diferença de potencial nos terminais à saída do sensor varie, possibilitando, uma vez mais, determinar o volume de cerveja extraída; 9 10 Soluções Propostas • Barril: – Célula de carga - colocado na parte inferior do barril, de modo a calcular a variação da massa à medida que se vai extraindo cerveja; À exceção do caudalímetro ultrassónico, as outras soluções não requerem hardware dispendioso. A instalação dos caudalímetros, bem como do sensor de força, pode ser realizada com alguma facilidade, já o modo de instalação dos sensores na torneira requerem certas modificações para que os mesmos sejam imperceptíveis. 3.2 Hardware Em todas as experiências, os sensores estarão ligados diretamente a uma placa de desenvolvimento Arduino Mega. Numa fase inicial os resultados obtidos serão mostrados em tempo real num display e guardados no cartão de memória SD para futura análise e comparação. Numa fase posterior será abandonada a utilização do display pois todos os dados estarão disponíveis no tablet/smartphone, com a comunicação a ser efetuada pelo módulo bluetooth. Para a gravação no cartão SD utilizar-se-á um módulo de leitura/gravação genérico. Serão também utilizados os módulos BT HC-06 (comunicação entre o Arduino e o dispositivo Android), DS1307 (relógio externo). O dispositivo Android utilizado será o tablet Asus Nexus 7 - 2012. O esquema de comunicação encontra-se representado na figura 3.1. Figura 3.1: Modo de comunicação De seguida serão apresentados os módulos anteriormente mencionados. 3.2 Hardware 11 3.2.1 Arduino Arduino é uma plataforma de hardware open source baseada numa placa composta por um microprocessador Atmel AVR e portas de entrada/saída. Programado mediante o uso de uma linguagem própria, torna possível utilizar inúmeras opções alternativas, sendo as mais populares Java e C/C++/C# [18]. Com várias versões, dependendo essencialmente da capacidade de processamento do microcontrolador bem como do número de portas de I/O, possibilita a integração de diversos acessórios (shields) - placas de circuitos integrados fixadas no topo do dispositivo. Estas expansões permitem a inclusão de funções específicas, desde o controlo de servo-motores até sistemas de redes sem fios. Figura 3.2: Shields Arduino Na figura 3.2 estão representados os shields necessários para o desenvolvimento desta dissertação. 3.2.1.1 Arduino Mega Devido, não só, à necessidade de um microprocessador com capacidade de processamento suficiente para a incorporação de vários sensores/módulos, mas também à necessidade de utilizar várias portas de comunicação encontrou-se a solução ótima no Arduino Mega. O Mega (figura 3.3) é uma placa que integra um microcontrolador ATmega1280. Possui 54 pinos digitais (14 podem ser usados como saídas PWM), 16 pinos analógicos, 4 UARTs, um cristal oscilador de 16 MHz, ligação USB, entrada para fonte de alimentação, conetor ICSP e um botão de reset. É compatível com a grande maioria dos shields desenhados para os modelos Duemilanove e Diecimila [18]. Figura 3.3: Board Arduino Mega [18] 12 Soluções Propostas 3.2.1.2 Módulo SD O módulo apresentado na figura 3.4 torna possível a leitura/escrita em cartões de memória SD. Estes são, atualmente, os cartões com a melhor relação qualidade/preço, atingindo, nos modelos topo de gama, velocidades de escrita na ordem dos 30 MB/s [19]. Figura 3.4: Leitor/Gravador SD [20] 3.2.1.3 Módulo RTC Um relógio de tempo real (figura 3.5) permite que o Arduino mantenha o tempo presente. Utiliza um cristal de quartzo com frequência de oscilador de 32,768 kHz, a mesma que é utilizada nos relógios de quartzo. Graças à pilha existente no módulo, a contagem do tempo continua mesmo quando o sistema se encontra desligado. Figura 3.5: Relógio de tempo real [21] 3.2.1.4 Display Um LCD (figura 3.6) é facilmente integrado com qualquer placa Arduino, sendo assim possível visualizar informações em tempo real sem a necessidade de um computador. Existem inúmeras variedades dependendo do número de carateres por linha, número de linhas, retroiluminação, entre outras. Devido, não só, à relação qualidade/preço, mas também à informação que se irá apresentar, optou-se por um ecrã de 20 carateres por linha, com duas linhas 3.2 Hardware 13 Figura 3.6: LCD 20x2 [22] 3.2.1.5 Módulo RFID RFID, do inglês Radio-frequency identification, trata-se de um modo, que utiliza sinais de rádio como meio de transmissão, de identificação automática que permite a leitura/escrita remota através de dispositos apelidados de tags RFID (figura 3.7a). O módulo RC522, ilustrado na figura 3.7b, é barato e totalmente compatível com Arduino, sendo de fácil instalação e programação. (a) Tag RFID (b) RC522 Figura 3.7: Sistema RFID 3.2.2 Caudalímetro O caudalímetro é um instrumento de medição do caudal de um fluído [9]. Colocado nas tubagens que o transportam, existem diferentes variedades: mecânicos, eletrónicos e ultrassónicos. De modo a permitir uma leitura mais correta, o caudalímetro deve ser calibrado para o tipo de fluído em uso. No caso da cerveja a sua calibração é dificultada devido à mistura gás/líquido deste fluído. Nas subsecções seguintes será dada ênfase às variantes ultrassónica e eletrónica devido às suas aplicações práticas irem de encontro à problemática desta dissertação, uma vez que ambas podem ser ligadas ao sistema de aquisição de dados. 14 Soluções Propostas 3.2.2.1 Caudalímetro Ultrassónico O caudalímetro ultrassónico tem como princípio de funcionamento a emissão/receção de ondas ultrassónicas (ondas com frequência acima de 20 kHz, limite superior percetível ao ser humano). Estas ondas podem ser contínuas ou formadas por uma série de impulsos de curta duração, que se propagam com uma determinada velocidade v, variável, influenciada pela temperatura e densidade do líquido que atravessa [10]. A tabela 3.1 representa a variação da velocidade de propagação do som na água em função da temperatura. Tabela 3.1: Velocidade de propagação do som na água em função da temperatura [10] Temperatura (ºC) 5 10 15 20 25 30 Velocidade do som na água (m/s) 1426 1447 1466 1482 1497 1509 Um dos modelos mais comuns é o caudalímetro ultrassónico tubular (spool ultrassonic flowmeter), assim designado em virtude do tipo de trajeto único. Possui apenas um par de transdutores ultrassónicos idênticos, com faces frente-a-frente, alinhados obliquamente e em contacto com o líquido, dispondo cada um deles de um elemento piezoelétrico que funciona alternadamente como emissor e recetor de ondas ultrassónicas. O respectivo princípio de transdução baseia-se no tempo de propagação, ou seja, no tempo que a onda mecânica demora a chegar do transdutor emissor ao transdutor recetor. A esquematização do princípio de funcionamento está representada na figura 3.8. Figura 3.8: Princípio de funcionamento do caudalímetro ultrassónico [10] L f simboliza a distância total a percorrer pela onda entre os dois transdutores; L é a secção de L f que se encontra no interior do tubo, por vezes apelidada de comprimento de interrogação. Esta distância pode ser calculada através da seguinte equação: 3.2 Hardware 15 L= D sinφ (3.1) Partindo do pressuposto de que em L f −L , isto é, as reentrâncias entre os transdutores e o tubo de medição, o líquido se encontra em repouso, consideramos que a velocidade de propagação da onda é c. Relativamente ao trajeto L é necessário considerar a influência do escoamento, podendo assim dividir o problema em duas situações: • T1 → T2 (propagação para jusante): c1 = c +Cp cosφ (3.2) • T2 → T1 (propagação para montante): c2 = c −Cp cosφ (3.3) Em ambas as equações, Cp representa a velocidade média de escoamento no trajeto em questão. Os tempos de propagação referentes aos casos apresentados podem ser traduzidos através de: t1 = L c +Cp cosφ (3.4) t2 = L c −Cp cosφ (3.5) L∆t 2cosφt1t2 (3.6) e das quais se conclui que Cp = com ∆t = t2 − t1 16 Soluções Propostas O caudalímetro ultrassónico de trajeto único mede, indirectamente, a velocidade média ao longo do percurso acústico Cp e não a velocidade média de escoamento Ce . Para a sua determinação, Cp é multiplicado por um fator de correção da distribuição de velocidades k p , dependente do número de Reynolds do escoamento primário do caudalímetro. Assim sendo verica-se que: kp = 1 1, 12 − 0, 011logRe (3.7) que, relacionada com a equação 3.6 dá origem a: Ce = k p L∆t 2cosφt1t2 (3.8) Caudalímetros com dois ou mais trajetos acústicos utilizam técnicas para a determinação de Ce através dos diferentes valores de Cp (um por trajeto), reduzindo os erros de aproximação [10]. 3.2.2.2 Caudalímetro Eletrónico O caudalímetro eletrónico (figura 3.9) é constituído por uma turbina, transversal à direção de circulação do fluxo do fluído que o atravessa. Num dos extremos da turbina existe um íman que, ao girar, gera um campo magnético variável, detetado por um sensor de efeito de campo magnético (sensor de efeito Hall) que gera uma sequência de impulsos. O tempo entre cada impulso varia com a velocidade da turbina, sendo esta proporcional à velocidade de deslocamento do fluído, correspondendo a cada um deles um determinado volume V , tornando assim possível o cálculo do fluxo [11]. Figura 3.9: Caudalímetro Eletrónico [12] 3.2 Hardware 3.2.3 17 Potenciómetro O potenciómetro pode ser utilizado como divisor de tensão (figura 3.10), sendo assim possível variar a tensão de saída (nos terminais de RL ) a partir de uma tensão de entrada fixa VS aplicada entre dois dos três terminais existentes. Figura 3.10: Potenciómetro com carga resistiva A diferença de potencial entre os terminais da resistência de carga RL traduz-se através da seguinte equação: VL = R2 VS R1 + R2 (3.9) Uma das vantagens da utilização de potenciómetros como divisores de tensão, é a possibilidade de fazer variar o valor da tensão VL entre 0 V e VS [14]. 3.2.4 Sensor de efeito Hall Um sensor de efeito Hall é um transdutor que faz variar a sua tensão de saída em relação ao campo magnético a que está sujeito. Estes sensores são comummente utilizados como transdutores de proximidade ou detetores, integrados em sistemas de medição de velocidade. Sabendo o campo magnético a que está sujeito e o valor da tensão de saída, é possível determinar a distância a que o sensor se encontra do gerador de campo magnético[15]. Figura 3.11: Sensor de efeito Hall [16] 18 Soluções Propostas 3.2.5 Célula de carga A célula de carga (figura 3.12) é um transdutor de força, podendo ser colocado por baixo do barril para pesá-lo e assim estimar o conteúdo em cerveja. As células de carga são normalmente baseadas em extensometros montados numa ponte de Wheatstone. A força exterior causa uma variação de resistencia do extensometro e por consequência um desiquilíbrio ∆V na ponte [17]. Figura 3.12: Célula de carga [17] 3.3 Software Tendo em conta o hardware indicado no ponto 3.2, será necessária a utilização de um IDE para Arduino (Arduino IDE), um IDE para Android (Eclipse/Android SDK), ambos capazes de serem executados em ambiente Windows/UNIX. Relativamente à base de dados utilizar-se-á a linguagem SQLite. 3.3.1 Android Android trata-se de um sistema operativo baseado em Linux e desenhado, principalmente, para dispositivos com ecrãs táteis. Lançado pela Android Inc e comprado pela Google em 2005, foi apresentado incorporado no primeiro dispositivo em 2008 (HTC Dream). Graças à tecnologia tátil, a interação deste SO com o utilizador é baseada em gestos (tocar, arrastar, deslizar), permitindo uma aproximação entre o mundo real e o virtual. Relativamente ao hardware, o Android permite comunicar com sensores de proximidade, giroscópios, acelerómetros, Wi-Fi, GPS, entre outros módulos disponíveis em smartphones e tablets da atualidade [23]. 3.4 Discussão 19 Trantando-se de uma plataforma open source, qualquer pessoa pode desenvolver funcionalidades para melhorar a experiência do utilizador com o SO. Em Outubro de 2012 existiam aproximadamente 700000 apps disponíveis para download. É o SO mobile mais usado no planeta, tendo atingido a cota de 1 milhão de dispositivos ativados em Setembro de 2013 [24]. 3.4 Discussão Num plano teórico, a utilização de um caudalímetro ultrassónico para monitorizar o volume de extração, seria o mais indicado pois a sua precisão (±3%) é muito superior relativamente às restantes soluções apresentadas. Tratar-se-ia, também, da solução mais viável não só, devido à sua instalação ser relativamente simples, mas também porque a cerveja, no decorrer do seu trajeto, não encontraria nenhum obstáculo, evitando assim a produção de espuma. Transportada para um cenário prático, esta não é uma opção viável, uma vez que se trata de um componente cujo valor ronda os 400 euros [12], o que levaria a que o custo do equipamento de extração duplicasse. Relativamente à utilização de um caudalímetro eletrónico, o fator preço não é impeditivo pois o seu valor ronda os 10 euros [12]. A sua instalação é, em tudo, semelhante à do caudalímetro ultrassónico apesar da sua precisão ser mais baixa e, contrariamente à primeira solução apresentada, esta insere um obstáculo mecânico ao trajeto da cerveja, podendo assim, dependendo do local de instalação, levar à produção de espuma. Apesar das suas limitações, é possível inserir um potenciómetro na torneira de extração e, de um modo experimental, determinar o caudal para cada posição de abertura da torneira. Apesar do seu preço rondar os 2 euros [12], a instalação pode vir a tornar-se difícil pois será necessário alterar a estrutura da torneira. No que diz respeito à utilização do sensor de efeito Hall, é possível a sua colocação dentro da torneira, tornando-o praticamente impercetível para o utilizador. Relativamente ao custo, este varia entre 1 e 3 euros. Por último, a inclusão de um sensor de força na parte inferior do barril para a medição do peso do mesmo em relação ao volume de cerveja no seu interior, seria, à primeira vista, uma opção prática devido à sua facilidade de instalação. Pensando numa situação real de um estabelecimento concluí-se que o barril é, frequentemente, utilizado como apoio para caixas, copos, entre outros utensílios, tornando esta solução pouco viável. Após estudo e comparação das soluções apresentadas, devido à sua relação qualidade/preço decidiu-se optar pela instalação do sensor de efeito Hall por ser uma solução discreta, de baixo custo e razoavelmente eficaz. 20 Soluções Propostas Capítulo 4 Avaliação Experimental 4.1 Montagem O equipamento de extração da UNICER, tal como existe atualmente, necessita de várias alterações para que seja possível incluir o sistema de monitorização proposto. A adaptação da torneira para a incorporação do sensor bem como a inclusão de um sistema de recolha de dados são passos vitais para a conclusão do projeto. Decidiu-se ainda a integração de um sensor de temperatura para uma possível monitorização da temperatura ambiente no local de instalação da máquina. Esta integração permitirá, à UNICER, avaliar uma possível relação entre a temperatura ambiente e as falhas detetadas no sistema de refrigeração. Na próxima secção explicar-se-ão, passo a passo, as modificações realizadas no decorrer desta dissertação. 4.1.1 Torneira A torneira, ilustrada na figura 4.1 é, sem margem para dúvidas, o componente presente na máquina que necessita de uma modificação mais profunda. Figura 4.1: Esquema de uma torneira 21 22 Avaliação Experimental É neste ponto da máquina que se incorporará o sistema sensor/íman necessário para a contabilização do fluxo extraido. 4.1.1.1 Instalação do Sensor de Efeito Hall Numa fase inicial o sensor foi colocado no exterior da torneira para validar a solução. Como ilustra a figura 4.2a, colou-se o sensor na parte lateral, de modo a que ficasse alinhado com o íman que se acoplou ao êmbolo no interior da torneira. Após verificação experimental da funcionalidade do sistema, procedeu-se à furação da torneira a fim de se poder embutir o sensor. Deste modo, tornou-se menos percetível, tal como se pode comprovar na figura 4.2b. (a) versão 1 (b) versão 2 Figura 4.2: Instalação do sensor de Hall 4.1.1.2 Determinação da Curva ∆V/Distância Para se avaliar a variação da diferença de potencial em função da abertura da torneira, realizouse um teste, representado na figura 4.3, recorrendo-se a um parafuso micrométrico. Figura 4.3: Determinação da curva ∆V/distância 4.1 Montagem 23 Constatou-se que o sensor era sensível à orientação magnética, permitindo tanto uma relação proporcional como inversamente proporcional entre a distância do sensor ao imán e a diferença de potencial nos terminais de saída. Como o período em que a torneira se encontra fechada é superior ao de abertura e a eficiência energética é uma preocupação, optou-se por alinhar o sensor com o pólo norte do iman, fazendo com que, sempre que a torneira se encontre fechada, o valor da tensão na saída se aproxime de 0V. Os resultados obtidos estão descritos na tabela 4.1 Tabela 4.1: ∆V/Distância Distância (mm) 0,00 1,00 1,50 2,00 2,50 3,00 3,50 4,00 4,50 5,00 5,50 6,00 Tensão (V) 0,00 0,00 0,03 0,24 0,80 1,20 1,47 1,70 1,85 1,96 2,05 2,12 Distância (mm) 6,50 7,00 7,50 8,00 8,50 9,00 9,50 10,00 10,50 11,00 11,50 12,00 Tensão (V) 2,18 2,22 2,25 2,28 2,30 2,33 2,34 2,36 2,37 2,38 2,39 2,40 Representando os dados em forma de gráfico (figura 4.4), é possível concluir que esta função pode ser aproximada segundo um polinómio de 4º grau (figura 4.5), com um coeficiente de determinação de 0,9991 para o intervalo [2, 00; 11, 50]. Esta aproximação foi obtida recorrendo à ferramenta Curve fitting disponível no Matlab. 2.5 Diferença de potenial (V) 2 1.5 1 0.5 Amostra Aproximação 2 3 4 5 6 7 8 Distância (mm) Figura 4.4: Curva ∆V/Distância 9 10 11 11.5 24 Avaliação Experimental Figura 4.5: Função polinomial de 4º grau 4.1.2 Circuito eletrónico O circuito e o esquema de montagem adotados encontram-se representados nas figuras 4.6 e 4.7. As ligações entre os componentes e o Arduino podem ser consultadas na tabela 4.2. Figura 4.6: Esquema de montagem 4.1 Montagem 25 - 8 - ' 9 9 *1' 9LQ & 567 $ $ *1' 6/. 66 0,62 026, % *1' 9LQ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ *1' *1' 6&. VV 0,62 026, ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'L ' ' ' *1' 9 6'$ 6&/ ' ' ' 57& 5(' *5((1 %/8( ' - 9LQ *1' &/. 9 *1' &DXGDOLPHWUR ' 6'B&$5' 7; 5; - 66 6/. 026, 0,62 - &/. 6'$ 6&/ 9 9 ' ' ' ' 5; 9 *1' *1' 567 9 %7 & 5),' 5 N - 9 5 N *1' $ $ *1' - 5 5(' N *5((1 5 N %/8( 5 N *1' % /('5*% 6HQVRU+DOO $UGXLQR0HJD $ $ 7LWOH 0RQLWRUL]DomRGHXPDPiTXLQDGHH[WUDomRGHFHUYHMD 6L]H $ 'DWH 'RFXPHQW1XPEHU 0RQGD\-DQXDU\ 5HY % 6KHHW RI Figura 4.7: Circuito PCB Para facilitar a montagem do sistema desenhou-se uma PCB em forma de shield (figura 4.6). Desta forma foi possivel minimizar o espaço ocupado bem como as falhas de hardware. (a) Lado dos componente (b) Lado da solda Figura 4.8: PCB Devido ao elevado número de cruzamentos de pistas, foi necessário desenhá-la com duas camadas (lado dos componentes - figura 4.8a e lado da solda - figura 4.8b). 26 Avaliação Experimental Tabela 4.2: Esquema de ligações Componente D0 Módulo D1 Bluetooth V G CS MOSI Módulo SCK SD MISO 3.3V GND SDA SCK MOSI Módulo MISO RFID IRQ GND RST 3.3V 4.2 Arduino RX3 15 TX3 14 GND 5V GND D22 D23 D25 D24 3.3V GND D53 D52 D51 D50 – GND A5 3.3V Componente SDA Módulo SCL RTC VCC GND + LM35 OUT + SS40A OUT RED LED GREEN RGB BLUE GND Coluna Som Arduino SDA 20 SCL 21 5V GND 5V A15 GND 5V GND A14 PWM 8 – PWM 9 GND + PWM 10 - GND Aquisição de Dados Para que seja possível receber valores por parte da torneira é necessário que o sistema de aquisição de dados esteja presente na máquina de extração. Este sistema foi devidamente programado, inicialmente de modo a ser possível a visualização dos dados obtidos num ecrã LCD (figura 4.9a) e, numa fase posterior (figura 4.9b), possibilitando a consulta dos mesmos no tablet. (a) Revisão A (b) Revisão B Figura 4.9: Sistema de aquisição de dados No decorrer desta secção analisar-se-ão alguns excertos principais para o funcionamento da solução implementada. A totalidade do código encontra-se disponível no anexo A. 4.2 Aquisição de Dados 27 Sempre que se realiza a tiragem de um copo de cerveja, isto é, sempre que a torneira é aberta, o íman distancia-se do sensor de Hall, fazendo com que a diferença de potência nos terminais do mesmo varie (quanto maior for a abertura, maior será o valor da tensão dentro da gama de funcionamento 0 V ≤ Vo ≤ 2,5 V). A figura 4.10 mostra um excerto do programa desenvolvido. A cada 10 ms o Arduino lê uma amostra analógica, correspondente ao sensor. A cada 10 amostras é realizada a média, tendo assim um valor mais constante ao longo do tempo. Com esta metodologia o sistema adquire 100 amostras por segundo e converte-los em 10 valores médios. Figura 4.10: Excerto do programa Arduino Tendo em conta o tempo de extração, volume e os valores da tensão obtidos, determinou-se o volume extraído por amostra, isto é, o volume extraído durante 100 milisegundos. Para a determinação do tempo de extração adaptou-se a função milis(). Geralmente esta função monitoriza, em milisegundos, o tempo decorrido desde a inicialização do programa até ao momento em que é chamada. Após a adaptação, o timer (figura 4.11) é inicializado quando a diferença de potencial for superior a 0,10 V (início da extração) e terminado quando este valor inferior a 0,10 V. Figura 4.11: Adaptação da função millis() Após esta indicação é guardada, num ficheiro de texto presente no cartão SD, uma trama contendo a seguinte informação: • Data; • Hora; • Volume extraído; 28 Avaliação Experimental • Temperatura ambiente. Na forma: dia/mês/ano hh:mm:ss;volume;temperatura sendo que, a cada consumo, a trama é escrita numa nova linha para uma melhor organização de dados. Para a determinação de um valor mais correto da temperatura ambiente, é também realizada uma média entre 10 amostras consecutivas, como se pode verificar na figura 4.12. Figura 4.12: Determinação do valor da temperatura ambiente Quando o arduino receber o caráter ’a’ através da porta de série 3 (porta onde o módulo Bluetooth se encontra ligado), o microcontrolador envia, linha a linha, a informação do ficheiro de texto para a base de dados no dispositivo Android. Por último os dados são apagados deste ficheiro, continuando guardados num outro que regista todos os consumos efetuados. A figura 4.13 ilustra esta situação: Figura 4.13: Consolidação/Envio de dados 4.3 Base de Dados 4.3 29 Base de Dados Para que os dados pudessem ser armazenados foi necessário projetar e construir uma base de dados. Como referido na secção 3.3, utilizou-se a linguagem SQlite, tanto no tablet como no servidor central. As tabelas foram desenhadas de modo a, não ser apenas possível armazenar os dados provenientes da torneira, mas também informações relevantes necessárias para uma boa gestão por parte da UNICER. A base de dados (figura 4.14) é constituída por 6 tabelas divididas em 2 subgrupos: • Máquinas: – Máquina; – Tipo; – Consumo. • Estabelecimentos: – Estabelecimento; – Gerente; – Técnico. Figura 4.14: Estrutura da Base de Dados Cada máquina está associada a um tipo (60L, 100L, evento, entre outras), sendo que cada tipo pode conter n máquinas; 30 Avaliação Experimental A cada consumo (extração de um determinado volume de cerveja) está associada uma máquina, possuindo cada máquina m consumos; O elo de ligação entre os 2 subgrupos é realizado através da tabela máquina sendo que, para cada máquina, existe a possíbilidade de estar, ou não, associada a um e apenas um estabelecimento (uma máquina não pode estar em duas localizações distintas ao mesmo tempo). Caso não se encontre alocada, será considerada como disponível; Relativamente à tabela estabelecimento é possível definir um técnico e um gerente responsáveis, podendo cada um deles ser responsável por x estabelecimentos. Cada estabelecimento pode conter n máquinas associadas. 4.4 Aplicação Android Uma vez mais, como mencionado no ponto 3.3 a aplicação Android foi elaborada recorrendo ao IDE Eclipse. As funções implementadas foram agrupadas e divididas por ecrãs consoante a sua relação às tabelas existentes na base de dados. Como se dispunha de um tablet com Android, com a última atualização disponível (Kitkat 4.4.2), a aplicação foi otimizada para a dimensão do ecrã deste dispositivo bem como para esta versão do SO. 4.4.1 Ecrãs Nesta secção apresentar-se-ão os ecrãs mais importantes disponíves na aplicação. Devido à diversidade de conteúdos presentes na base de dados foi necessário organizá-los por categorias, tal como já se tinha mencionado no ponto 4.3. 4.4.1.1 Ecrã inicial O ecrã inicial da aplicação (figura 4.15) foi dividido em 4 secções: • Estabelecimento; • Gerente; • Máquina; • Técnico. Encontra-se também disponível, na barra de estado, o ícon "Refresh", que sincroniza a base de dados do dispositivo em utilização com a do servidor central. 4.4 Aplicação Android 31 Figura 4.15: Ecrã Principal 4.4.1.2 Ecrã estabelecimento No ecrã estabelecimento tem-se acesso às funções específicas relativas aos pontos de venda (locais onde a UNICER coloca máquinas de extração). É então possível, para o utilizador: • Adicionar/editar/remover estabelecimentos; • Associar gerentes; • Associar técnicos; • Pesquisar estabelecimentos; • Localizar estabelecimentos no mapa. No caso da associação de gerentes/técnicos, é condição necessária que os mesmos já se encontrem inseridos na base de dados. 4.4.1.3 Ecrãs gerente/técnico Nestes ecrãs o utilizador pode aceder aos conteúdos dos gerentes, bem como dos técnicos que poderão ser associados aos estabelecimentos. É então possível: • Adicionar/editar/remover gerentes; • Adicionar/editar/remover técnicos; 32 Avaliação Experimental • Pesquisar gerentes; • Pesquisar técnicos; 4.4.1.4 Ecrã máquina Esta secção engloba todas as funções relativas às máquinas de extração. Como existem diferentes versões, de acordo com as necessidades de cada ponto de venda, dividiu-se este ecrã em duas secções: • Máquinas; • Tipos de máquina. No que diz respeito aos tipos de máquina é possível: • Adicionar/editar/remover tipos; • Associar uma fotografia a cada tipo; • Pesquisar tipos. Em relação às máquinas de extração propriamente ditas, pode-se: • Adicionar/editar/remover máquinas; • Associar um tipo a cada máquina; • Associar máquinas a estabelecimentos; • Receber consumos por parte das máquinas; • Ver consumos sob a forma de gráficos (diário e mensal). 4.4.2 Princípios de funcionamento Serão agora apresentadas algumas das funcionalidades principais presentes na aplicação até agora desenvolvida. 4.4.2.1 Adicionar gerente/técnico Para que seja possível inserir um estabelecimento é necessário que existam, a priori, gerentes e técnicos na base de dados. Caso se pretenda adicionar um novo registo, basta completar todos os campos disponíveis no ecrã (figura 4.16a). Se, eventualmente, algum dos campos não se encontrar preenchido surgirá uma informação de que o mesmo é de preenchimento obrigatório, tal como se pode ver na figura 4.16b. 4.4 Aplicação Android 33 (a) Novo técnico (b) Campos obrigatórios Figura 4.16: Ecrãs gerente/tecnico 4.4.2.2 Adicionar máquina Após se terem inserido os tipos de máquina (na figura 4.17a é possível verificar a lista de tipos disponíveis na base de dados) podem-se então acrescentar máquinas de extração. Neste ecrã (figura 4.17b) acrescentar-se-á o número de série e a MAC address (sem este será impossível enviar os consumos para a base de dados). (a) Tipos de máquina (b) Nova máquina Figura 4.17: Ecrãs tipos/máquinas 34 Avaliação Experimental 4.4.2.3 Adicionar estabelecimento Depois de concretizados os passos até agora descritos, o utilizador pode então inicializar a inserção de estabelecimentos, preenchendo os campos pedidos, bem como associando o gerente e o técnico responsável (figura 4.18a). Nesta altura é também possível adicionar, no mapa, a localização do ponto de venda, colocando um pin na posição pretendida (figura 4.18b). (a) Associação de um gerente (b) Localização Figura 4.18: Funcionalidades estabelecimento (a) Informação (b) Informação detalhada Figura 4.19: Informações estabelecimento 4.4 Aplicação Android 4.4.2.4 35 Visualizar estabelecimentos À medida que são adicionados novos registos, o mapa da aplicação é automaticamente atualizado, ficando disponível um pin por localização que, quando selecionado, disponibiliza as informações mais relevantes ds estabelecimento em causa (figura 4.19a). Quando clicado novamente remete o utilizado para o ecrã com os dados detalhados, como se pode comprovar na figura 4.19b. 4.4.2.5 Associar máquinas a estabelecimentos Agora que os estabelecimentos já se encontram disponíveis pode-se proceder à associação de máquinas a cada ponto de venda (figura 4.20). Uma máquina não pode estar alocada a mais do que um estabelecimento em simultâneo, sempre que for necessário alterá-la de local, terá de ser desassociada e posteriormente associada ao novo local. Figura 4.20: Associação de máquinas 4.4.2.6 Receber/visualizar consumos Para que o grau de segurança na obtenção de dados seja médio/alto, apenas pessoas autorizadas, isto é, quem tiver na sua posse uma tag RFID válida para o efeito, poderá transferir as informações provenientes da máquina para o dispositivo android. Antes de pressionado o botão "Get", visível na figura 4.21, é necessário que o utilizador aproxime o cartão do sistema de controlo (figura 4.22). Se este for válido, acenderá uma luz de sinalização verde e produzir-se-á um sinal sonoro agudo. Caso a tag não seja autorizada, a luz indicadora tomará a cor vermelha e escutar-se-á um sinal sonoro grave. Após estes procedimentos a aplicação comunica com o Arduino existente na máquina para que, através de bluetooth, envie os novos consumos. Entenda-se 36 Avaliação Experimental por "novos consumos"os consumos realizados desde a última vez que a aplicação foi sincronizada com a máquina em questão. É também importante referir que, para que estes 2 ambientes sincronizem, é necessário que, aquando da criação de uma máquina na aplicação, se coloque a mac address correta referente ao módulo bluetooth incorporado na mesma e que, no momento em que se pretende realizar a receção dos dados, os 2 dispositivos se encontrem a uma distância não superior a 10 metros. Figura 4.21: Menu consumos Figura 4.22: Sistema de autorização 4.4 Aplicação Android 37 Relativamente à visualização da informação, pressionando o botão "Ver consumos"o utilizador é guiado para um novo ecrã onde poderá escolher a data para a qual pretender obter informação detalhada (figura 4.23a), obtendo deste modo acesso à informação diária bem como do mês corrente (figura 4.23b). (a) Escolha do dia (b) Consumos diário/mensal Figura 4.23: Informações referente aos consumos 38 Avaliação Experimental 4.5 Sincronização com o Servidor Central A sincronização com um servidor web central permite, não só guardar uma cópia dos dados existentes na base de dados, mas também a utilização de diversos dispositivos em simultâneo. Sempre que escolhida a opção refresh, a aplicação comunica, caso exista Wi-Fi, com o servidor e verifica a data da última atualização. Se esta for anterior à do momento, a app envia todos os registos entre as duas datas. Após este procedimento, os registos são processados pelo servidor, isto é, são adicionados os dados em falta, modificados os que sofreram alterações e eliminados os que já não existem. De seguida toda a informação é devolvida ao tablet e, por último, atualizada a data correspondente à última sincronização efetuada. Com a utilização do timestamp LASTSYNC não existem conflitos relativos à utilização de vários terminais pois, sempre que existirem alterações em qualquer dispositivo, os restantes acabarão por receber a atualização da base de dados. 4.6 Orçamento Durante a elaboração desta dissertação foram utilizados componentes/módulos que, numa produção em massa, poderão ser substituidos por recursos com um valor mais reduzido. No caso específico do Arduino, este pode ser substituido pelo microcontrolador que o constitui. A tabela 4.3 contém as informações relativas a um possível orçamento para a solução final. Tabela 4.3: Orçamento Componente: ATmega1280 Chip BT Módulo microSD SS40A LM35DZ/LFT1 Módulo RTC Módulo RFID Código: 1455090 CC2541F256RHAR DEV-09802 1082268 2352274 BOB-00099 RC522 Distribuidor: Farnell Farnell Sparkfun Farnell Farnell Sparkfun Ebay Total: Preço (S/IVA): 13,61 C 5,25 C 10,97 C 0,86 C 1,50 C 10,97 C 4,20 C 47,36 C É importante referir que, no decorrer desta dissertação, foram utilizados módulos de desenvolvimento pré-fabricados. Numa situação real estes poderão ser produzidos e incorporados numa pcb, baixando assim o preço de produção. Os restantes componentes como resistências, conetores e íman foram desprezadas pois o seu valor é extremamente baixo e, neste caso, foram obtidos como amostras gratuitas. Neste orçamento o componente de valor mais elevado (ATmega1280) poderá ser utilizado como controlador principal da máquina, substituindo o módulo de controlo que, hoje em dia, se encontra incorporado em todas as máquinas. Não só a sua capacidade de processamento mas também o seu reduzido tamanho são algumas das vantagens a ter em conta numa possível adaptação desta secção. Com um valor inferior a 50 euros (cerca de 9,5% do valor total da máquina), esta 4.7 Análise dos resultados 39 solução apresenta-se pouco dispendiosa tendo em conta a relação finalidade/preço bem como as suas potencialidades. 4.7 Análise dos resultados Nesta secção apresentam-se e analisam-se os resultados obtidos durante as experiências. No decorrer da componente prática conseguiu-se monitorizar o volume extraído de cerveja utilizando um caudalímetro ultrassónico, um sensor de efeito Hall e uma célula de carga (balança). 4.7.1 Volume A utilização do caudalímetro ultrassónico foi essencial para a a caracterização do sensor de efeito de Hall. Em primeiro lugar procedeu-se à extração de, aproximadamente 0,25 L de cerveja com diferentes graus de abertura da torneira, tendo em conta o valor apresentado pelo caudalímetro ultrassónico. Deste modo foi possível, através do sensor, obter diferentes valores de tensão de acordo com a abertura da torneira, bem como determinar o tempo de extração. Um desses testes pode ser visto na figura 4.24 e a sua totalidade na tabela B.1 presente no anexo B. Figura 4.24: Evolução do consumo Concluiu-se ao longo da experiência que a cerveja inicia o processo de deslocamento através da torneira quando, no sensor, se verificam, aproximadamente, 0,10 V e que, no limite, quando a torneira se encontrava totalmente aberta, obtinham-se 1,95 V. Após uma rápida análise da tabela 4.4 é também possível verificar que o tempo de extração de 0,25 L é praticamente constante (na ordem dos 7,41 segundos), o que, por ventura, torna possível de concluir que o caudal é aproximadamente constante em toda a gama de valores de funcionamento (3,37×10−2 L/s). Tabela 4.4: Valores médios dos parâmetros de extração ∆V médio (V) 1,57 Tempo médio de extração (s) 7,62 Estimativa média para 0,25 L (s) 7,41 Caudal médio (L/s) 3,37×10−2 Caudal médio (L/amostra) 3,40×10−3 40 Avaliação Experimental −3 3.8 x 10 Caudal médio (L/amostra) 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3 Amostra Valor médio 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Diferença de potencial (V) Figura 4.25: Relação entre ∆V e o caudal Relativamente ao caudal por amostra (uma a cada décima de segundo) constata-se que, em média, atravessam 3,40×10−3 L de cerveja no decorrer desse período, tal como ilustrado no gráfico da figura 4.25. Realizou-se novamente um ciclo de testes permitindo concluir a existência de um erro associado entre 11% e 17%, traduzindo-se numa margem entre 4,00×10−2 L e 6,00×10−2 L por extração. O valor deste erro refere-se à comparação de valores entre os obtidos pelo sensor com os do caudalímetro ultrassónico. Tabela 4.5: Resultados obtidos com uma amostra de 3,40×10−3 L Volume Sensor Hall (L) 0,30 0,28 0,31 0,23 0,25 Volume Caudalímetro (L) 0,36 0,33 0,35 0,26 0,29 Tempo extração (s) 10,50 9,68 10,01 7,00 8,55 Erro (%) 16,67 17,24 11,43 11,54 13,70 Associado ao cadaulímetro ultrassónico existe um erro máximo de ± 3%. A informação detalhada pode ser consultada na tabela 4.5. Uma vez que o tempo de processamento do Arduino não é instantâneo e constante, o número de amostras por segundo é, por vezes, diferente de 10, o que pode explicar o valor elevado do erro. Para colmatar esta limitação testaram-se valores superiores a 3,40×10−4 tendo em conta que, nos resultados obtidos anteriormente, o volume medido pelo sensor de Hall foi sempre inferior ao volume medido pelo caudalímetro ultrassónico. Tentou-se, deste modo, reduzir o erro de contabilização do volume extraído. Após nova série de testes, tabela 4.6, chegou-se à conclusão de que o valor 3,53×10−3 L/amostra fazia com que, em quase todas as extrações efetuadas, o caudal medido pelo sensor fosse igual ao que era medido pelo caudalímetro ultrassónico. Deste modo conseguiu-se reduzir a margem de erro relativamente ao caudalímetro ultrassónio. A tabela 4.7 comprova o que se afirmou anteriormente. 4.7 Análise dos resultados 41 Tabela 4.6: Testes utilizando diferentes valores para a amostra Volume Sensor Hall (L) 0,30 0,23 0,37 0,19 0,33 Volume Caudalímetro (L) 0,27 0,26 0,34 0,20 0,33 Tempo extração (s) 8,86 7,00 11,14 5,97 9,68 Valor da amostra (L) 3,60×10−3 3,44×10−3 3,58×10−3 3,51×10−3 3,53×10−3 Erro (%) 11,11 11,54 8,82 5,00 0,00 Nas situações onde se verificou a existência de erro, facilmente se pode verificar que, apesar de se tratar de um valor que atingiu os 5,26% num dos testes, a diferença de valores corresponde apenas a 1×10−2 L. Tabela 4.7: Testes utilizando 3,53×10−3 L como valor da amostra Volume Sensor Hall (L) 0,33 0,18 0,36 0,27 0,21 0,37 0,26 0,30 0,92 0,21 0,33 0,30 0,32 0,21 0,31 0,21 0,34 0,25 Volume Caudalímetro (L) 0,33 0,19 0,36 0,27 0,22 0,37 0,26 0,30 0,91 0,21 0,33 0,30 0,32 0,21 0,31 0,21 0,33 0,25 Tempo extração (s) 9,68 5,46 10,61 8,03 6,28 10,81 7,72 8,86 26,98 6,18 9,78 8,85 9,47 6,28 9,16 6,28 9,88 7,51 Erro (%) 0,00 5,26 0,00 0,00 4,53 0,00 0,00 0,00 1,10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 3,03 0,00 É importante referir que, durante todos os testes efetuados, consideraram-se estáveis e constantes os seguintes valores: • Instalação com ' 2 m de comprimento (barril-refrigerador); • Instalação com ' 2 m de altura (refrigerador-torneira); • Plinha = 2,26 bar; • Tambiente = 20 ºC. 42 Avaliação Experimental 4.7.2 Peso Quando o barril se encontrava cheio (massa do sistema constituido pelo barril incluindo a cerveja) o sensor de carga indicava 43,20 kg até que, no final (apenas a massa do barril) se obteve 11,30 kg, verificando-se assim um decréscimo de 31,90 kg à taxa média de 1,06 kg por litro (tabela 4.8). Tabela 4.8: Valores padrão do sistema Massa Sistema (barril + cerveja) (kg) Massa barril vazio (kg) Massa 30L cerveja (kg) Massa/litro (kg) 4.7.3 43,20 11,30 31,90 1,06 Sincronização Após a obtenção de consumos, testou-se a transferência, sem fios, dos mesmos para o tablet. Quando aproximada uma tag válida e primido o botão "Get", o LED do dispostivo Bluetooth presente na máquina sinalizou o emparelhamento e os dados foram transmitidos em poucos segundos. Posteriormente foi possível visualizar os gráficos relativos aos consumos horários e diários, como se pode ver na figura 4.26. Figura 4.26: Consumos efetuados Relativamente à sincronização com o servido central, após pressionado o botão refresh, os dados foram enviados corretamente para o servidor central. Capítulo 5 Conclusões e Trabalho Futuro Esta dissertação surgiu no âmbito da monitorização dos consumos numa máquina de extração de cerveja, tendo como objetivo principal o de encontrar uma solução, de baixo custo, que pudesse ser instalada na máquina. A contabilização dos consumos é de extrema importância, contudo, após uma revisão do estado da arte foi possível concluir que, até agora, apenas existem no mercado algumas soluções dispendiosas e/ou pouco funcionais. No decorrer desta investigação estudaram-se várias soluções, analisaram-se os pontos fortes e fracos de cada uma e implementou-se a que se considerou mais razoável. Os resultados experimentais validaram a hipótese, mostrando que era possível contabilizar o volume extraído utilizando um sensor de efeito Hall. Esta revelou-se promissora pois obtiveram-se resultados bastante precisos. A integração, na máquina de extração, da eletrónica existente nesta solução permite, não só, a resolução da problemática desta dissertação, mas também, um possível controlo de todos os componentes da máquina. Deste modo poder-se-á substituir o antigo módulo já implementado pelo microcontrolador utilizado nesta investigação, tornando a relação custo/benefício mais apelativa e aproveitando a capacidade de processamento do micro. Esta solução tem um grande potencial em comparação com as já existentes no mercado. Nos dias de hoje, as comunicações sem fios facilitam a interação do utilizador com os sistemas de informação, as aplicações mobile revolucionaram a relação que se tem com os dispositivos móveis e o preço a pagar é cada vez mais uma preocupação. 5.0.4 Contribuições Após atingir todos os objetivos propostos e analisados os resultados, realizaram-se algumas contribuições importantes. Em primeiro lugar propôs-se um modo de monitorização baseado num sensor de efeito Hall e disponibilizou-se uma análise experimental que demonstra a fiabilidade da solução. Contribuiu-se ainda para uma possível atualização do módulo de controlo da máquina de extração baseado no microcontrolador presente na solução. Por último validou-se o modelo de monitorização implementado. 43 44 Conclusões e Trabalho Futuro 5.0.5 Trabalho Futuro Após a elaboração desta dissertação sentiu-se que, apesar de se terem atingido e superado todos os objetivos propostos, seria possível melhorar certos aspetos. Deste modo propõem-se, para trabalho futuro, os seguintes pontos: • Substituição da placa de desenvolvimento Arduino Mega pelo microcontrolador ATMEGA2560 e dos módulos SD, BT, RTC e RFID pelos seus componentes, reduzindo deste modo, o custo de produção da solução; • Aperfeiçoamento e correção de bugs na aplicação Android; • Emparelhamento automático dos refrigerados com o equipamento Android; • Otimização do código implementado no Arduino, sendo assim possível a diminuição do tempo de processamento; • Criação de uma plataforma web para a gestão dos dados obtidos; • Adoção de um sistema de instalação do sensor mais intuitivo; • Realização de testes com valores de pressão diferentes de 2,26 bar. Anexo A Código implementado no Arduino #include <Time.h> #include <SD.h> #include <Wire.h> #include <DS1307RTC.h> const int sensorValue = 14; // hallSensor const int LM35 = 15; // LM35 float volume = 0; float volume2 = 0; double Caud = 0; float temperatureC = 0; File myFile; File beerFile; String dados = ""; char buffer[10]; int flagTimer = 0; unsigned long StartTime = 0; unsigned long EndTime = 0; unsigned long ElapsedTime = 0; void setup() { Serial.begin(9600); Serial3.begin(9600); setSyncProvider(RTC.get); attachInterrupt(4, increment, RISING); // caudalimetro no pino RX1 19 45 46 Código implementado no Arduino Serial.print("Initializing SD card..."); pinMode(SS, OUTPUT); if (!SD.begin(22,23,24,25)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); if (SD.exists("log.txt")) { Serial.println("log.txt exists."); Serial.println("Opening log.txt..."); myFile = SD.open("log.txt", FILE_WRITE); myFile.close(); } else { Serial.println("log.txt doesn’t exist."); Serial.println("Creating log.txt..."); myFile = SD.open("log.txt", FILE_WRITE); myFile.close(); if (SD.exists("log.txt")) { Serial.println("log.txt exists."); Serial.println("Opening log.txt...");} else { Serial.println("log.txt doesn’t exist."); } } if (SD.exists("logBeer.txt")) { Serial.println("logBeer.txt exists."); Serial.println("Opening logBeer.txt..."); beerFile = SD.open("logBeer.txt", FILE_WRITE); beerFile.close(); } else { Serial.println("logBeer.txt doesn’t exist."); Serial.println("Creating logBeer.txt..."); beerFile = SD.open("logBeer.txt", FILE_WRITE); beerFile.close(); if (SD.exists("logBeer.txt")) { Serial.println("logBeer.txt exists."); Serial.println("Opening logBeer.txt...");} Código implementado no Arduino else { Serial.println("logBeer.txt doesn’t exist."); } } } void increment() { Caud++; } void gravaDadosCartao() { dados =""; myFile = SD.open("log.txt", FILE_WRITE); beerFile = SD.open("logBeer.txt", FILE_WRITE); if (day() < 10) { dados += "0"; dados += day(); } else { dados += day(); } dados += "/"; if (month() < 10) { dados += "0"; dados += month(); } else { dados += month(); } dados += "/"; if (year() < 10) { dados += "0"; dados += year(); 47 48 Código implementado no Arduino } else { dados += year(); } dados += " "; if (hour() < 10) { dados += "0"; dados += hour(); } else { dados += hour(); } dados += ":"; if (minute() < 10) { dados += "0"; dados += minute(); } else { dados += minute(); } dados += ":"; if (second() < 10) { dados += "0"; dados += second(); } else { dados += second(); } dados += ";"; dados+= dtostrf(volume, 3, 2, buffer); volume = 0; volume2 = 0; Código implementado no Arduino dados += ";"; dados+= dtostrf(temperatureC, 3, 1, buffer); Serial.println(dados); myFile.println(dados); myFile.close(); beerFile.println(dados); beerFile.close(); } void finalizaDadosCartao() { //Serial3.println("ENTRA NO FINALIZA"); dados =""; myFile = SD.open("log.txt", FILE_WRITE); dados += "$;$;$"; //Serial.println(dados); myFile.println(dados); myFile.close(); } void leDadosCartao() { //Serial3.println("ENTRA NO LE DADOS"); myFile = SD.open("log.txt", FILE_READ); while (myFile.available()) { Serial3.write(myFile.read()); } // close the file: myFile.close(); } void removeCreateFile() { //Serial3.println("ENTRA NO REMOVE"); SD.remove("log.txt"); myFile = SD.open("log.txt", FILE_WRITE); myFile.close(); } 49 50 Código implementado no Arduino void hallFlow() { float hallFlow[9]; float value; float averageHallFlow; for (int i=0; i<10; i++) { value = analogRead(sensorValue); hallFlow[i] = value * (5.0 / 1023.0); delay(10); // 100 amostras por segundo } averageHallFlow = (hallFlow[0] + hallFlow[1] + hallFlow[2] + hallFlow[3] + hallFlow[4] + hallFlow[5] + hallFlow[6] + hallFlow[7] + hallFlow[8] + hallFlow[9])/10; Serial.print("Volume: "); Serial.print(Caud/1000); Serial.print(" "); Serial.print("Tensao: "); Serial.print(averageHallFlow); Serial.println(); Serial.print("Volume Sensor: "); Serial.print(volume); Serial.print(" "); if (averageHallFlow < 0.3) { if (volume2==volume) { volume += 0; } else { EndTime = millis(); ElapsedTime = EndTime - StartTime; Serial.print("Tempo de extracao: "); Serial.print(ElapsedTime); Código implementado no Arduino Serial.print("ms"); Serial.println(); Caud=0; flagTimer = 0; float temperature[9]; for (int i=0; i<10; i++) { temperature[i] = analogRead(LM35); delay(50); // 10 amostras por segundo } temperatureC = (temperature[0] + temperature[1] + temperature[2] + temperature[3] + temperature[4] + temperature[5] + temperature[6] + temperature[7] + temperature[8] + temperature[9])/10; temperatureC = temperatureC * 0.48828125; gravaDadosCartao(); volume2=volume; } } else if (averageHallFlow > 0.2 && flagTimer==0) { StartTime = millis(); flagTimer = 1; } else if (averageHallFlow >= 0.10 && averageHallFlow < 0.3) { volume += 0.00353; } else if (averageHallFlow >= 0.3 && averageHallFlow < 2) { volume += 0.00353; } else volume += 0; } void loop() 51 52 Código implementado no Arduino { if (Serial3.available()) { char in = Serial3.read(); Serial.println(in); if (in = ’a’) { finalizaDadosCartao(); leDadosCartao(); removeCreateFile(); } } hallFlow(); } Anexo B Volume e tempo de extração Tabela B.1: Volume e tempo de extração Volume (L) 0,26 0,26 0,25 0,25 0,26 0,26 0,25 0,25 0,26 0,26 0,26 0,26 0,27 0,25 0,25 0,25 0,26 0,26 0,26 0,26 Ddp média (V) 0,38 0,89 1,02 1,02 1,03 1,15 1,50 1,56 1,63 1,90 1,90 1,91 1,92 1,93 1,93 1,93 1,93 1,93 1,93 1,95 Tempo de extração (s) 7,47 7,58 7,48 7,37 7,78 7,78 7,17 7,38 7,58 7,79 7,79 7,89 8,20 7,58 7,48 7,58 7,58 7,58 7,58 7,58 Estimativa 0,25 L (s) 7,19 7,29 7,48 7,37 7,48 7,48 7,17 7,38 7,29 7,49 7,49 7,58 7,59 7,58 7,48 7,58 7,29 7,29 7,29 7,29 53 Caudal médio (L/s) 3,48×10−2 3,43×10−2 3,34×10−2 3,39×10−2 3,34×10−2 3,34×10−2 3,49×10−2 3,39×10−2 3,43×10−2 3,34×10−2 3,34×10−2 3,30×10−2 3,29×10−2 3,30×10−2 3,34×10−2 3,30×10−2 3,43×10−2 3,43×10−2 3,43×10−2 3,43×10−2 Caudal médio (L/amostra) 0,348×10−2 0,343×10−2 0,334×10−2 0,339×10−2 0,334×10−2 0,334×10−2 0,349×10−2 0,339×10−2 0,343×10−2 0,334×10−2 0,334×10−2 0,330×10−2 0,329×10−2 0,330×10−2 0,334×10−2 0,330×10−2 0,343×10−2 0,343×10−2 0,343×10−2 0,343×10−2 54 Volume e tempo de extração Referências [1] T. W. Young. Encyclopedia britannica. URL: http://www.britannica.com/ EBchecked/topic/58378/beer [último acesso em Junho de 2013]. [2] Unicer. URL: http://www.unicer.pt [último acesso em Junho de 2013]. [3] Sindicato nacional da indústria da cerveja. URL: http://www.sindicerv.com.br/ acerveja.php [último acesso em Junho de 2013]. [4] R Haussmann e Cesar Hidalgo. The observatory of economic complexity. URL: http: //atlas.media.mit.edu/ [último acesso em Junho de 2013]. [5] The modern kegerator. URL: http://www.kegerators.com/articles/ the-modern-kegerator.php [último acesso em Junho de 2013]. [6] Fap - federação académica do porto. URL: http://www.fap.pt [último acesso em Junho de 2013]. [7] Bevbot LLC. Kegbot. URL: https://kegbot.org/ [último acesso em Dezembro de 2013]. [8] URL: http://www.keg-meter.com/ [último acesso em Janeiro de 2014]. [9] Dicionário priberam. URL: http://www.priberam.pt [último acesso em Junho de 2013]. [10] J. D. Henriques, J. C. Palma, e A. S. Ribeiro. Medição de caudal em sistemas de abastecimento de água e de saneamento de águas residuais urbanas. Relatório técnico, Laboratório Nacional de Engenharia Civil e Instituto Regulador de Águas e Resíduos, Maio 2007. [11] A. J. Holman. Experimental methods for engineers. McGraw-Hill, 2001. [12] Aquário. URL: http://www.aquario.pt [último acesso em Junho de 2013]. [13] Ieee 100 the authoritative dictionary of ieee standards terms seventh edition. IEEE Std 1002000, páginas –, 2000. doi:10.1109/IEEESTD.2000.322230. [14] Eberhard Sengpiel. Voltage divider. URL: http://www.sengpielaudio.com/ calculator-voltagedivider.htm [último acesso em Junho de 2013]. [15] R. S. Popović. Hall effect devices. Número ISBN 0-7503-0855-9. CRC Press, 2, illustrated ed. edição, 2004. [16] Farnell. URL: http://pt.farnell.com/jsp/displayProduct.jsp?sku= 1082268&action=view&CMP=GRHB-OCTOPART-1000462 [último acesso em Dezembro de 2013]. 55 56 REFERÊNCIAS [17] URL: http://web.archive.org/web/20100726021741/http://www. loadstarsensors.com/capacitance.html [último acesso em Janeiro de 2014]. [18] Arduino. URL: http://www.arduino.cc/ [último acesso em Junho de 2013]. [19] Sd association. URL: https://www.sdcard.org/consumers/speed/ [último acesso em Dezembro de 2013]. [20] URL: http://cdn.instructables.com/F6V/F1OJ/H5ENQ08B/ F6VF1OJH5ENQ08B.MEDIUM.jpg [último acesso em Dezembro de 2013]. [21] URL: http://www.tinyosshop.com/image/cache/data/ARDUINO/ 3-600x600.JPG [último acesso em Dezembro de 2013]. [22] H. Kawamoto. The history of liquid-crystal displays. Proceedings of the IEEE, 90(4):460– 500, 2002. doi:10.1109/JPROC.2002.1002521. [23] Android, the world’s most popular mobile platform. URL: http://developer. android.com/about/index.html [último acesso em Dezembro de 2013]. [24] Canalys. form. Google’s android becomes the world’s leading smart phone platURL: http://www.canalys.com/newsroom/google%E2%80% 99s-android-becomes-world%E2%80%99s-leading-smart-phone-platform [último acesso em Dezembro de 2013].
Documentos relacionados
Relatório Final PDI - Universidade do Porto
Aplicando pressão no barril proveniente da botija de CO2 , a cerveja é extraída e conduzida até à torneira através da tubagem. Entre a botija e o barril encontra-se o regulador, instrumento utiliza...
Leia mais