• Nenhum resultado encontrado

Arducafé - automação e controle do consumo do café

N/A
N/A
Protected

Academic year: 2021

Share "Arducafé - automação e controle do consumo do café"

Copied!
39
0
0

Texto

(1)

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO

GRANDE DO SUL – UNIJUI

LEONARDO HENRIQUE MICHELSEN

ARDUCAFÉ – AUTOMAÇÃO E CONTROLE DO CONSUMO DE CAFÉ

Santa Rosa 2017

(2)

ARDUCAFÉ – AUTOMAÇÃO E CONTROLE DO CONSUMO DE CAFÉ

Trabalho de Conclusão de Curso de Ciência da Computação da Universidade Regional do Noroeste do Estado do Rio Grande do Sul.

Orientador: Dr. Gerson Battisti

Santa Rosa 2017

(3)

AGRADECIMENTOS

Primeiramente, quero agradecer à minha família, que sempre me deram apoio nesta longa caminhada, assim como condições para um bom aproveitamento.

Ao meu orientador Gerson Battisti pelas suas orientações e ajuda durante o desenvolvimento assim como suas lições como professor.

Aos meus colegas que seguimos está caminhada juntos, uns ajudando aos outros.

Aos professores que participaram da minha formação, assim como a instituição Unijuí que proporcionou está jornada.

A todos que me ajudaram direta ou indiretamente neste período de formação profissional, o meu muito obrigado.

(4)

MICHELSEN, L. H. ArduCafé – Automação e Controle do Consume de Café. Trabalho de Conclusão de Curso. Curso de Ciência da Computação, Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUÍ, Santa Rosa, 2017.

Com o crescente avanço da tecnologia e possibilidades infinitas de expansão, temos a possibilidade de criar e alterar o que for possível para evoluir e transformar nossas vidas. Assim pode-se desenvolver algo que mude o curso da humanidade ou até pequenos detalhes exclusivamente pessoais. Como proposta deste trabalho, temos o ArduCafé, que visa a automação e controle do consumo de café de um grupo de pessoas de uma instituição, que também pode também ser de alguma empresa ou outro estabelecimento. O nome vem da analogia do microcontrolador arduino e café, pois a plataforma arduino controla, monitora e exibe as condições desta bebida, como quantidade e temperatura. O objetivo é servir o café automaticamente depois de verificada as credenciais, que foram previamente cadastradas. Uma página Web permitirá esse cadastro, além fornecer estatísticas para os visitantes, pois as quantidades de café consumidas são monitoradas e armazenadas em um banco de dados, para posterior consultas como exemplo, maiores consumidores e comparativos.

(5)

ABSTRACT

MICHELSEN, L. H. ArduCafé – Automação e Controle do Consume de Café. Trabalho de Conclusão de Curso. Curso de Ciência da Computação, Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUÍ, Santa Rosa, 2017.

With the increasing advancement of technology and infinite possibilities of expansion, we have the possibility to create and change what is possible to evolve and transform our lives. In this way you can develop something that changes the course of humanity or even small personal details. As a proposal of this work, we have the ArduCafé, which aims at the automation and control of coffee consumption of a group of people from an institution, which may also be from some company or other establishment. The name comes from the arduino microcontroller and coffee analogy, because the arduino platform controls, monitors and displays the conditions of this drink, such as quantity and temperature. The objective is to serve the coffee automatically after verifying the credentials, which were previously registered in the Web page, where it is has the mentioned function, besides to bring statistics to the visitors, since the quantities of coffee consumed are monitored and stored in a dataBase for some queries, such as the largest consumers and comparatives.

(6)

Figura 1: Software Arduino ... 12

Figura 2: Especificações técnicas Arduino MEGA 2560 Rev3 ... 13

Figura 3: Arduino Mega 2560 Rev3 ... 13

Figura 4: Arduino Ethernet Shield W5100 ... 14

Figura 5: Arduino USB Host Shield ... 15

Figura 6: Display LCD 16x2 ... 15

Figura 7: Sensor Ultrasônico HC-SR04 ... 16

Figura 8: Leitor de Código de Barras USB ... 17

Figura 9: Sensor de Temperatura LM35 ... 17

Figura 10: Sensor Boia de Nível de Água ... 18

Figura 11: Mini Válvula Solenoide 12v ... 19

Figura 12: Arduino Mega – ICSP e Pinos SPI ... 24

Figura 13: Adição dos pinos do ICSP ... 25

Figura 14: Modificação dos Pinos ... 25

Figura 15: Ilustração do circuito montado ... 26

Figura 16: Fluxograma do Arduino ... 27

Figura 17: Estrutura Tabela Usuários ... 29

Figura 18: Pagina Inicial – parte 1 ... 30

Figura 19: Pagina Inicial – parte 2 ... 30

Figura 20: Cadastro ... 31

Figura 21: Protótipo – foto 1 ... 32

Figura 22: Protótipo – foto 2 ... 32

(7)

LISTA DE SIGLAS

API Application Programming Interface

CPU Unidade Central de Processamento

HTML HyperText Markup Language

HTTP Hyper Text Transfer Protocol

ICSP In Circuit Serial Programming

IDE Ambiente de Desenvolvimento Integrado

LED Light Emitting Diode

SGBD Sistema de Gerenciamento de Banco de Dados

SPI Serial Peripheral Interface

SQL Structured Query Language

TI Tecnologia da Informação

(8)

1 INTRODUÇÃO ... 9

2 REVISÃO BIBLIOGRÁFICA ... 10

2.1 MICROCONTROLADORES ... 10

2.1.1 Arduino Mega 2650 Rev3 ... 10

2.2 DISPOSITIVOS COMPLEMENTARES ... 13

2.2.1 Arduino Ethernet Shield W5100 ... 14

2.2.2 Arduino USB Host Shield ... 14

2.2.3 Display LCD 16x2 ... 15

2.2.4 Sensor de Distância Ultrassônico HC-SR04 ... 16

2.2.5 Leitor de Código de Barras ... 16

2.2.6 Sensor de temperatura LM35 ... 17

2.2.7 Sensor Boia de Nível de Água ... 18

2.2.8 Mini Válvula Solenoide 12v ... 18

2.3 DESENVOLVIMENTO WEB ... 19

2.3.1 Servidor de páginas Web ... 19

2.3.2 Sistema de Gerenciamento de Banco de dados ... 20

2.3.3 Programação Web ... 20 3 DESENVOLVIMENTO ... 21 3.1 METODOLOGIA ... 21 3.2 HARDWARE ... 22 3.2.1 Arduino ... 22 3.3 DISPOSITIVOS DE INTERAÇÃO ... 23 3.4 SISTEMAS WEB ... 23 3.5 PROTÓTIPO ... 23 3.5.1 Hardware ... 24

(9)

3.5.1.1 Fluxograma Desenvolvido para o Arduino ... 26

3.5.2 Sistema Web ... 28

3.5.2.1 Sistema de Banco de Dados ... 28

3.5.2.2 Página Web ... 29

3.5.3 ArduCafé ... 31

4 CONCLUSÃO ... 34

REFERÊNCIAS BIBLIOGRÁFICAS ... 35

(10)

1 INTRODUÇÃO

Muito comum em muitas empresas, estabelecimentos e instituições possuir o fornecimento de uma bebida para funcionários e frequentadores como o chimarrão, café, chá, entre outros. Na área de Tecnologia da Informação (TI), a bebida predominante é o café, sendo inclusive bastante consumido e até “disputado”.

No ambiente em que este trabalho visa ser aplicado, a bebida é servida manualmente e de maneira irrestrita. Ou seja, algumas pessoas enchem muito o copo, se servem em períodos de tempo muito curto, ou muitas vezes, como também membros de outro departamento podem também se servir sem serem barrados.

O trabalho visa automatizar o abastecimento do café para alunos e professores, além de permitir o controle do consumo e a coleta de dados para análise e exibição de estatísticas. Para implementar este processo de automação foram integradas um conjunto de dispostos eletrônicos baseados em arduino, banco de dados e serviço Web.

Para atender o objetivo proposto foram efetuadas atividades especificas como, pesquisa de componentes necessários, programação de microcontrolador, desenvolvimento de página Web e métodos de comunicação entre os mesmos.

O texto trabalho encontra-se dividido em cinco partes. No capítulo 1 apresentamos a introdução ao trabalho desenvolvido. Depois, no capitulo 2, temos o referencial teórico sobre o hardware e software para o desenvolvimento do ArduCafé. O capitulo 3 apresenta o desenvolvimento, a descrição e o funcionamento do projeto. No capítulo 4são analisados os resultados da implementação. O texto é encerrado no capítulo 5 com a conclusão.

(11)

10

2 REVISÃO BIBLIOGRÁFICA

Este capitulo está dedicado a trazer informações e imagens dos componentes e softwares utilizados no desenvolvimento do trabalho.

2.1 MICROCONTROLADORES

Conforme Denardin (2007, p.2) um microcontrolador é um sistema computacional completo, onde possui uma CPU, memória para software e dados, clock, portas de entrada/saída, além de outros possíveis periféricos, tais como, módulos de temporização e conversores analógico/digital entre outros, integrados em um mesmo componente. As partes que são integrantes em qualquer computador, e que também estão presentes, nos microcontroladores são:

 Unidade Central de Processamento;

 Sistema de clock para dar sequência às atividades da CPU;

 Memória para armazenamento de instruções e para manipulação de dados;  Entradas para interiorizar na CPU informações do mundo externo;

 Saídas para exteriorizar informações processadas pela CPU para o mundo externo;  Programa para definir um objetivo ao sistema.

2.1.1 Arduino Mega 2650 Rev3

Segundo a página oficial (ARDUINO, 2017), o arduino é uma plataforma eletrônica de código aberto baseada em hardware e software fáceis de usar. As placas Arduino podem ler entradas (por exemplo, luz em um sensor, um dedo em um botão ou uma mensagem do Twitter) e transformá-lo em uma saída (por exemplo, ativando um motor, ligando um LED, publicando algo online). Você pode informar para sua placa, o que fazer, enviando um conjunto de instruções para o microcontrolador.

Arduino é uma plataforma de prototipagem eletrônica de hardware livre e de placa única, projetada com um microcontrolador Atmel AVR com suporte de entrada/saída embutido, uma linguagem de programação padrão, a qual tem origem em Wiring, e é essencialmente C/C++. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas. Pode ser usado para o desenvolvimento de objetos interativos independentes, ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial

(12)

ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. Ela em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de Shields. (WIKIPEDIA, 2017).

Como apresentado no site oficial (ARDUINO, 2017), o arduino tem várias vantagens:

 Barato - As placas Arduino são relativamente baratas em comparação com outras plataformas de microcontroladores;

 Cross-platform - O Arduino Software (IDE), figura 1, é executado em sistemas operacionais Windows, Macintosh OSX e Linux. A maioria dos sistemas de microcontroladores são limitados ao Windows;

 Ambiente de programação simples e claro: o software Arduino (IDE) é fácil de usar para iniciantes, ainda que flexível o suficiente para usuários avançados aproveitarem também;

 Software de código aberto e extensível - O software Arduino é publicado como ferramentas de código aberto, disponível para extensão por programadores experientes. O idioma pode ser expandido através de bibliotecas C ++ e as pessoas que desejam entender os detalhes técnicos podem fazer o salto da Arduino para a linguagem de programação AVR C em que se baseia;

 Hardware de código aberto e extensível - Os planos das placas arduino são publicados sob uma licença Creative Commons, por isso os designers de circuitos experientes podem fazer sua própria versão do módulo, estendendo-a e melhorando.

(13)

12

Figura 1: Software Arduino

Fonte: Autoria própria

Para este trabalho foi o escolhido o MEGA 2560 Rev3, conforme descrito no site oficial foi projetado para projetos mais complexos. Tem 54 pinos de entrada/saída digitais, 16 entradas analógicas e mais espaço para os projetos, é a placa recomendada para impressoras 3D e projetos de robótica. Isso dá aos projetos espaço e oportunidades suficientes.

Nas figuras 2 e 3 estão apresentadas as especificações técnicas e o arduino utilizado neste trabalho:

(14)

Figura 2: Especificações técnicas Arduino MEGA 2560 Rev3

Fonte: Arduino (2017) Figura 3: Arduino Mega 2560 Rev3

Fonte: Electro Schematics (2013)

2.2 DISPOSITIVOS COMPLEMENTARES

A seguir temos os principais dispositivos complementares utilizados para o funcionamento do trabalho proposto. Como os Shields, acessórios próprios para acoplar no arduino, que se tratam de placas de circuito impresso desenvolvidos para realizar outras tarefas. Além destes, temos a interface, sensores e atuador.

(15)

14

2.2.1 Arduino Ethernet Shield W5100

Visando integração com a rede, foi escolhido o Arduino Ethernet Shield W5100, que pode ser visualizado na figura 4. “ O Arduino Ethernet Shield permite que uma placa Arduino se conecte a internet ou rede ethernet local. Ela é baseada no chip Wiznet ethernet W5100 fornecendo uma pilha TCP/IP. O Arduino Ethernet Shield suporta até quatro conexões simultâneas. ” (Lemos, 2014).

O Arduino Ethernet Shield W5100 pode ser visualizado na figura 4.

Figura 4: Arduino Ethernet Shield W5100

Fonte: Adilson Thomsen (2014) 2.2.2 Arduino USB Host Shield

O Arduino USB Host Shield pode ser visualizado na figura 5.

O Arduino USB Host Shield, permite conectar um dispositivo USB à sua placa Arduino. O Arduino USB Host Shield baseia-se no MAX3421E, que é um controlador de periféricos e host USB que contém a lógica digital e os circuitos analógicos necessários para implementar um periférico USB de velocidade total ou um host completo de baixa velocidade compatível com o USB 2.0. (ARDUINO.CC, 2017)

(16)

Figura 5: Arduino USB Host Shield

Fonte: Adilson Thomsen (2015) 2.2.3 Display LCD 16x2

Os módulos LCD são interfaces de saída muito úteis em microcontroladores. Podem ser gráficos e a caracter. São encontrados com diversas resoluções e geralmente estão disponíveis com 20 pinos para conexão.

Os módulos podem ser encontrados com LED backlight (com uma iluminação de fundo) para facilitar as leituras durante a noite. Estes módulos utilizam um controlador próprio, permitindo sua interligação com outras placas através de seus pinos, onde deve ser alimentado o módulo e interligado o barramento de dados e controle do módulo com a placa do usuário. (BARBACENA; FLEURY, 1996).

Na figura 6 temos o Display LCD 16x2 de caracteres utilizado neste projeto.

Figura 6: Display LCD 16x2

(17)

16

2.2.4 Sensor de Distância Ultrassônico HC-SR04

O sensor ultrassônico modelo HC-SR04 escolhido para este trabalho (Figura 7), permite a detecção de objetos a distância mínima de 2 cm e máxima de até 4 metros, com precisão de até 3mm (SATATIS TRONICS, 2012 apud SILVA; SCHERER, 2013).

“A detecção de objetos se dá por meio do envio de um sinal ultrassónico que é refletido no objeto e retorna ao sensor. Este sinal, quando captado, permite calcular a distância até o objeto a partir do tempo de ida e volta do sinal.”. (FRISTEC, 2012 apud SILVA; SCHERER, 2013).

Figura 7: Sensor Ultrasônico HC-SR04

Fonte: Adilson Thomsen (2015) 2.2.5 Leitor de Código de Barras

O leitor de código de barras utilizado se encontra na figura 8, o mesmo possui conexão USB para transferência de dados.

Um leitor de código de barras (ou scanner de código de barras) é um dispositivo eletrônico para leitura de códigos de barras impressos. É um scanner, que contém uma fonte de luz, uma lente e um sensor de luz para traduzir impulsos ópticos em elétricos. Além disso, quase todos os leitores de código de barras contêm um circuito decodificador para analisar os dados de imagem do código de barras fornecido pelo sensor e enviar o conteúdo do código de barras para a porta de saída do scanner. (VIKIPEDIA, 2017).

(18)

Figura 8: Leitor de Código de Barras USB

Fonte: Autoria própria 2.2.6 Sensor de temperatura LM35

O sensor utilizado pode ser visualizado na figura 9.

O LM35 é um circuito integrado sensor de Temperatura de precisão para graus centígrados, ele é um termômetro preciso e sensível, além de ser barato e fácil de encontrar aqui no Brasil. O LM35 é um sensor de precisão em centígrados e tem uma voltagem de saída analógica, sua faixa de medição é de -55 º C a +150 º C com uma precisão de ± 0,5 º C. A tensão de saída é de 10mV / º C. A sua saída pode ser conectada diretamente a uma porta de qualquer microcontrolador. (NOVAELETRONICA, 2017)

Figura 9: Sensor de Temperatura LM35

(19)

18

2.2.7 Sensor Boia de Nível de Água

O sensor de nível, figura 10, funciona como uma chave liga-desliga, abrindo ou fechando um circuito, sendo assim possível enviar um sinal para um microcontrolador como o Arduino, Pic entre outros. Pode ser utilizado tanto na parte superior do recipiente como na parte inferior, pois possui um anel de vedação e travamento por porca. Este é um sensor em ângulo de 90 graus, para instalação horizontal.

Figura 10: Sensor Boia de Nível de Água

Fonte: Banggood (2017) 2.2.8 Mini Válvula Solenoide 12v

O dispositivo aqui utilizado se trata de uma Mini Válvula Solenoide de 12v (Figura 11).

Solenoides são dispositivos eletromecânicos baseados no deslocamento causado pela ação de um campo magnético gerado por uma bobina e são muito utilizados na construção de outros dispositivos, como é o caso das válvulas para controle de fluidos. Existem diversos modelos de válvulas solenoides compreendendo uma grande faixa de dimensões e capacidades para controle desde pequenas vazões em equipamentos médicos e científicos até grandes plantas industriais. Em particular, as válvulas para baixas vazões (da ordem de mililitros por minutos) e baixas pressões têm sido amplamente aplicadas em equipamentos e montagens para uso em laboratórios clínicos e químicos. Elas são de pequenas dimensões e requerem baixa tensão e corrente de acionamento. (SILVA; LAGO, 2012).

(20)

Figura 11: Mini Válvula Solenoide 12v

Fonte: Banggood (2017)

2.3 DESENVOLVIMENTO WEB

2.3.1 Servidor de páginas Web

Servidor Web é tanto uma referência ao hardware ou software, ou ambos trabalhando juntos. (KLEINERBR; LINIELSON, 2017).

Referente ao hardware, um servidor web é um computador que armazena arquivos que compõem os sites (por exemplo, documentos HTML, imagens, folhas de estilo, e arquivos JavaScript) e os entrega para o dispositivo do usuário final. Está conectado a Internet e pode ser acessado através do seu nome de domínio (DNS), como por exemplo mozilla.org. Referente ao software, um servidor web inclui diversos componentes que controlam como os usuários acessam os arquivos hospedados (armazenados para disponibilização), no mínimo um servidor HTTP. Um servidor HTTP é um software que compreende URLs (endereços web) and e HTTP (o protocolo que seu navegador utiliza para visualizar páginas web. (KLEINERBR; LINIELSON, 2017).

De uma maneira mais simples o navegador faz uma requisição utilizando o protocolo HTTP sempre que necessitar de um arquivo hospedado no servidor. Quando a requisição chegar no servidor correto (hardware), o servidor HTTP (software) enviará a requisição também via HTTP. (KLEINERBR; LINIELSON, 2017).

Este trabalho conta com a utilização do servidor Apache, sendo um dos mais utilizados no mundo (NETCRAFT, 2016) além de ser livre e suportado em várias plataformas.

O Servidor WEB APACHE é uma implementação de um servidor HTTP, mantido pela Apache Software Foundation. Um servidor HTTP funciona recebendo, processando e enviando requisições através do protocolo HTTP (Hyper Text Transfer Protocol). Os usuários clientes acessam este tipo de serviço usando clientes-http (navegadores ou Browsers) como FireFox ou Internet Explorer, para obter conteúdo como textos, imagens, filmes ou páginas dinâmicas. (PARMA, 2007).

(21)

20

2.3.2 Sistema de Gerenciamento de Banco de dados

MySQL se tornou a opção para o gerenciamento do banco de dados neste trabalho. “O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na Internet”. (ALECRIN, 2008).

Um sistema de gerenciamento de banco de dados, ou SGBD, consiste de um software que foi projetado para auxiliar na manutenção e utilização de vastos conjuntos de dados. Um SGBD é um “software que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados” (HEUSER, 2009, p.15). Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language). (COSTA, 2016).

O MySQL é muito utilizado em conjunto com a linguagem de programação Web PHP, pois tem um bom desempenho em conjunto. É suportado por diferentes sistemas operacionais, além de ser desenvolvido utilizando o princípio do código livre, mas possui também uma licença comercial que garante suporte diferenciado dos desenvolvedores. (ALECRIN, 2008).

2.3.3 Programação Web

Como escolha para o desenvolvimento Web do trabalhado, foi usado a linguagem PHP. Segundo Parma (2007), “a sigla PHP vem do acrônimo recursivo "PHP is Hypertext Pre-processor". Trata-se de uma linguagem de scripts que roda no servidor WEB, que pode ser usada para os mais diversos fins em aplicações WEB”.

Por definição, linguagem de programação são métodos padronizados de comunicação com um computador. Um conjunto de regras sintáticas e semânticas utilizadas para programar e definir um programa. São linguagens de programação específicas para o desenvolvimento de sites e aplicações que rodem na internet, atualmente o mercado conta com diversas opções de linguagens WEB, como por exemplo, PHP, C# .NET, VB .NET e Java. (SCRIPTCASE, 2017).

O PHP é uma das línguas mais utilizadas na web, em milhões de sites no mundo. Como características, tem vantagens em ser gratuito e de código-fonte aberto, como também ele é embutido no HTML. Outra característica é ele ser executado no servidor, pois quando você acessa uma página PHP por meio de seu navegador, todo o código PHP é executado no servidor e os resultados são enviados para seu navegador, assim exibe a página já processada. (NIEDERAUER, 2011).

(22)

3 DESENVOLVIMENTO

Neste capítulo será abordado desde a metodologia até o protótipo do trabalho. A descrição geral dos procedimentos metodológicos percorridos durante a execução do trabalho está na seção 3.1. O hardware de controle utilizado é apresentado na seção 3.2. Na seção 3.3 são apresentados os dispositivos de interação que trabalham com o hardware. A seção 3.4 é dedicada as ferramentas escolhidas para o desenvolvimento do sistema Web. Com a seção 3.5, estamos com um protótipo montado e um sistema Web.

3.1 METODOLOGIA

Inicialmente temos um cenário que se trata de uma sala onde se encontra disponível um recipiente térmico com café quente, disponível para os alunos e professores para que posam se servir. Ao lado se encontra um cofrinho para doação de dinheiro para aquisição de mais café a ser disponibilizado.

O projeto se trata em automatizar o serviço de café, onde o abastecimento do copo será feito de maneira autônoma, porém, somente após a pessoa passar o seu cartão. O cartão é exigido por que será solicitado que o código do mesmo seja adicionado durante o cadastro Web, sendo que o cadastro é a exigência para que a pessoa possa usufruir do café.

Como extensão da implementação, será armazenado alguns dados para fins estatísticos, onde estes estão disponíveis em uma página Web criada para este fim. Sendo que nesta página se encontra o cadastro, que, por questões de privacidade, não será exigido o nome da pessoa, mas sim um nickname (apelido) de livre escolha para identificação.

Os dados armazenados, que serão usados para fins estatísticos, se tratam do nickname, sexo e consumo de café. No site então estará disponível para consulta os que que mais beberam em categorias, como, no geral, no último mês, masculino, feminino e também comparativo.

Como o café depende de contribuição para que continue sendo oferecido, durante a tarefa para se servir, a pessoa pode se deparar com um aviso, no display, com uma duração determinada após colocar o copo abaixo da saída. O aviso tem como base para aparecer, a quantidade de café

(23)

22

que a pessoa já bebeu no mês e mais um método aleatório de seleção, ou seja, mais café servido, mais chance de aparecer.

Também temos a implementação do controle de consumo de café diário, que limitará o consumo a uma certa quantidade em um intervalo personalizado, que após é liberado sem restrições. Desta forma se espera que mais pessoas façam bom proveito do café disponível antes que se esgote.

Está automação conta também com sensores para o melhor funcionamento e auxilio. Temos um sensor que estará posicionado de maneira que possa identificar se o copo se encontra posicionado antes de liberar o café, através de um comando para uma válvula. Também será usado sensores de nível e um sensor de temperatura para auxilio, onde estas informações serão apresentadas no display instalado próximo ao recipiente.

3.2 HARDWARE

Para o desenvolvimento do protótipo, foi escolhida a plataforma Arduino, pois esta plataforma já possui todos esses componentes integrados em uma placa de circuito impresso. A facilidade de interação com sensores digitais e analógicos oferecida pela plataforma também foi significativa no momento da escolha.

3.2.1 Arduino

Como microcontrolador, foi usado especificamente o Arduino Mega 2650 Rev3. Se trata de um microcontrolador mais robusto, com mais memória e conexões, comparado ao mais popular Arduino Uno, pois o projeto demanda um número superior de portas digitais e memória, ante as 20 portas e 32KB de memória do Arduino Uno.

Na programação do Arduino, foi utilizada a IDE do próprio Arduino, que tem a função de desenvolvimento do código, linguagem de programação com base em C++ (com pequenas modificações), gravação no microcontrolador por conexão USB no computador e acompanhamento serial.

Como descrito na seção 2.2, foi utilizado dois Shields para estender as funcionalidades da placa Arduino, para que fosse possível a implementação desejada. Pois será necessária uma

(24)

conexão Ethernet, onde o Ethernet Shield será utilizado, assim como uma entrada USB para o leitor de código de barras, onde o USB Host Shield receberá os dados de entrada.

3.3 DISPOSITIVOS DE INTERAÇÃO

Para a interação deste trabalho, é utilizado alguns dispositivos (citados na seção 2.2). Dentre eles, temos o dispositivo de interface, um Display LCD 16x2, com finalidade de exibir algumas mensagens e dados informativos para usuário.

Para que o display apresente as informações desejadas de acordo com as funcionalidades propostas são necessários sensores. Assim, há os sensores boia de nível, instalado internamente do recipiente, para informar para o software e o usuário da quantidade disponível de café. Há ainda o sensor de temperatura LM35 que traz a temperatura para o Display, assim melhor informando o usuário da condição do café.

No momento em que o usuário está apto para receber o café, existem dois dispositivos que são acionados. Primeiramente temos o sensor de distância Ultrassônico para fazer a leitura de presença do copo, que se confirmado, permite acionar o atuador, neste caso uma mini válvula solenoide, para liberar e dosar o café.

3.4 SISTEMAS WEB

Para o sistema Web foram utilizadas soluções de código livre, como o objetivo de não gerar custos para este trabalho. As soluções open source escolhidas foram Apache, PHP e MySQL, baseados nos fatores de popularidade no mercado e documentação disponível.

O Apache foi escolhido como servidor Web, para hospedar e processar o site desenvolvido na linguagem de programação PHP. Os dados serão gerenciados pelo sistema de banco de dados MySQL. Estes softwares, além de open source, são otimizados para aplicações Web.

3.5 PROTÓTIPO

Aqui entramos com algo funcional, que é o protótipo com circuito montado, rodando e um sistema Web presente.

(25)

24

3.5.1 Hardware

Naturalmente os shields para o arduino possuem a conexão ICSP (In Circuit Serial Programming), para usar a comunicação SPI sem a necessidade das punortas digitais (figura 12). Porém não possuem a extensão do ICSP para o nível superior, logo um segundo shield acoplado acima de outro shield perde a comunicação SPI. Além do fato do espelhamento para os pinos não acontecer caso exista um shield conectado pela conexão ICSP.

Conforme Monaro (2007), “o barramento SPI é uma interface de dados serial síncrona padronizada pela Motorola que funciona em modo full-duplex. Os equipamentos se comunicam em modo mestre/escravo, onde o equipamento mestre inicializa a comunicação”.

A comunicação SPI é composta por quatro canais:

- MISO (Master In Slave Out): dados enviados do Slave para o Master;

- MOSI (Master Out Slave In): dados envidados do Master para o Slave;

-SCK (Serial Clock): pulsos gerados pelo Master para sincronizar a transmissão;

- SS (Slave Select): utilizado para ativar/desativar a comunicação com um Slave;

Figura 12: Arduino Mega – ICSP e Pinos SPI

Fonte: Electro Schematics (2013)

Para resolver este problema de comunicação, depois de pesquisas e testes, foram soldados os pinos necessários (MISO, MOSI e SCK), figura 13, em uma das placas, USB Host Shield, para que a comunicação entre as três placas acontecesse.

(26)

Figura 13: Adição dos pinos do ICSP

Fonte: Autoria própria

Outro inconveniente tratado, foi a porta equivalente ao SS (Slave Select), pois ambas as placas usam a mesma porta, a porta 10. Foi necessária uma mudança física nos pinos para o funcionamento em conjunto entra as placas. Assim o USB Host Shield passou a usar os pinos 6 e 7 ao invés dos 9 e 10 e o Ethernet Shield manteve a porta 10(figura 14).

Figura 14: Modificação dos Pinos

(27)

26

Para conexão do restante dos dispositivos foi necessário também o uso alguns componentes como resistores, relé, transistor e regulador de tensão. A figura 15 mostra a ligação dos componentes, mas vale ressaltar que a figura é ilustrativa não representando o Arduino, os pinos e atuador ali demostrados.

Figura 15: Ilustração do circuito montado

Fonte: Autoria própria

Como alimentação do projeto, é utilizada uma fonte de 12V, mesmo a tensão predominante ser de 5V, a válvula solenoide necessita de alimentação 12V. Então para o restante do circuito foi adicionado um regulador de tensão de 5V. Assim também poupando o regular de tensão do arduino neste caso, que possivelmente queimaria, por sobre carga, alimentando todos outros componentes.

A necessidade do transistor se dá pela baixa corrente que o arduino pode fornecer pelas portas digitas. Então o mesmo foi utilizado para ampliar o sinal para o relé, de 5V, que faz o acionamento da válvula solenoide usando a tensão de 12V.

3.5.1.1 Fluxograma Desenvolvido para o Arduino

O arduino fica em monitoramento constante, tanto para verificar o nível de café, como para atualizar a temperatura e ainda mais para saber se algum usuário deseja servir-se.

(28)

A verificação dos sensores de nível e da temperatura tem a função de atualizar no display LCD estas informações. E a verificação de entrada de dados a partir do leitor de código de barras, tem como função iniciar o processo de servir a pessoa.

O algoritmo desenvolvido pode ser visualizado no fluxograma da figura 15.

Figura 16: Fluxograma do Arduino

Fonte: Autoria própria

Para que aconteça o funcionamento descrito no fluxograma, alguns requisitos precisam ser atendidos, como, todos componentes precisam estar devidamente interligados, uma conexão com a rede, podendo ser local, e estar conectado a uma fonte de alimentação.

Inicialmente o arduino estabelece conexão com a rede configurada, após isso, entra em modo de monitoramento aguardando resposta do leitor de código de barras de um possível usuário. Enquanto isto não acontece, os dados de temperatura e nível de café são atualizados e exibidos no display.

(29)

28

Detectada uma entrada de usuário, o Arduino solicita ao serviço web a verificação do mesmo para a autorização, ou não, do serviço. Em caso negativo, é negado o café, uma notificação é exibida e então volta para o estágio inicial. Em caso afirmativo, uma mensagem pede para que usuário se sirva e então aguarda, por determinado tempo, o copo ser posicionado, senão volta ao estágio inicial.

Uma vez posicionado o copo, uma nova verificação é feita, onde o usuário pode ou não receber um alerta de contribuição exibido no display. Este alerta tem como base o consumo prévio de café para ser exibido, se baseando na metodologia do projeto (seção 3.1), assim como a autorização. Em caso negativo, usuário é servido normalmente e seu café é registrado no banco de dados, em caso positivo deverá aguardar alguns segundos antes de servir e ser computado.

Depois do processo, o arduino volta ao estágio inicial e assim se repete até a bebida se esgotar. Porém neste caso, após a boia de nível mais baixa não dar resposta, existe uma pequena quantidade restante, sendo este restante computado manualmente pelo arduino até se esgotar ou ser reabastecido o recipiente.

3.5.2 Sistema Web

O sistema Web tem como função cadastrar novos usuários através de uma página Web, onde serão salvos dados básicos referentes ao usuário (rg, nickname, sexo, senha) em um banco de dados. Também nesta página Web estará disponível quadros com as estatísticas colhidas durante o tempo em relação ao consumo, também armazenado no banco de dados, porém registrado pelo arduino.

3.5.2.1 Sistema de Banco de Dados

Para o desenvolvimento do banco de dados do trabalho, foi feito um levantamento de requisitos básicos para o funcionamento planejado. Segue os requisitos:

 RG, para controlar os usuários ao público limitado;

 Nickname, para identificação anônima se o usuário desejar;  Sexo, para geração de maiores dados estatísticos;

(30)

Realizado o levantamento dos requisitos básicos, foi criada uma tabela que poderia conter o necessário em vista da proposta do projeto. Na figura 17 está a estrutura utilizada na tabela nomeada de ‘usuários’.

Figura 17: Estrutura Tabela Usuários

Fonte: Autoria própria

A tabela possui na primeira coluna o ‘rg’ como id primaria e única, ‘nickname’ (até 20 caracteres) como identificação, ‘sexo’ que será representado pelos números 1 e 2, ‘senha’ (criptografada, 32 caracteres), ‘data de cadastro’, ‘cafés no dia’ para o controle diário, ‘café no mês’ para fins estatísticos e avisos e ‘total de café’ desde a data de cadastro.

3.5.2.2 Página Web

A página foi desenvolvida de maneira simples e objetiva. Possui atualmente 2 telas, uma para o cadastro do usuário e outra sendo a tela inicial da página que traz consigo os dados estatísticos com 7 filtros, são eles:

 Top 3 - Pessoas que mais consumiram café neste mês;  Top 3 - Pessoas que mais consumiram café desde o começo;  Top 3 – Feminino;

 Top 3 – Masculino;

(31)

30

 Consumo de café homens versus mulheres Ativos – Média;  Quantidade de homens e mulheres cadastrados ativos.

As figuras 18, 19 e 20 servem de demonstrativo da página Web.

Figura 18: Pagina Inicial – parte 1

Fonte: Autoria própria

Figura 19: Pagina Inicial – parte 2

Fonte: Autoria própria

(32)

Figura 20: Cadastro

Fonte: Autoria própria

3.5.3 ArduCafé

Com o término da programação do arduino, do sistema Web e montagem do circuito, obteve-se uma automação e controle do consumo de café, batizado carinhosamente de ArduCafé, nome que faz referência a plataforma arduino e a bebida café.

O ArduCafé tem como base as seguintes partes:

 Arduino: monitora e controla os dispositivos montados;  Dispositivos:

o Ethernet Shield: interface com o sistema Web; o USB Host Shield: interface para comunicação USB; o Leitor de código de barras: entra com código de acesso; o Sensores de nível: monitoram a quantidade de café; o Sensor de temperatura: monitora condição do café; o Display: interface com o usuário;

o Válvula: atuador que dosa o café;

 Sistema Web: interface de cadastro ou consulta de dados estatísticos.

(33)

32

Figura 21: Protótipo – foto 1

Fonte: Autoria própria

Figura 22: Protótipo – foto 2

Fonte: Autoria própria

(34)

Figura 23: Protótipo – foto 3

Fonte: Autoria própria

O custo do projeto está disponível no Anexo A. O custo pode variar, pois depende do tipo, oferta e preços dos componentes. Neste projeto foram descartados os custos do recipiente e servidor de hospedagem.

(35)

34

4 CONCLUSÃO

Hoje basicamente o mundo gira em torno da tecnologia, novos produtos são criados e atualizados a todo momento. Na área de TI isso acontece de maneira ainda mais feroz e, com este trabalho, pode-se notar que uma situação de baixa relevância, se tornou um projeto com protótipo com possibilidade para ser colocado na ativa de fato, assim como tantas outras situações.

Foi possível constatar que a união de placas de circuito não é algo trivial, dependendo de adequações físicas e de software, como descrito no decorrer deste trabalho. Assim se depende da comunidade e de testes para que uma solução aceitável seja encontrada.

Constata-se também que é possível, através de pesquisa e desenvolvimento, fazer com que microcontroladores trabalhem em conjunto com sistemas Web, fazendo com que o conjunto agregue mais funcionalidades, se torne mais dinâmico e permite que certas funcionalidades sejam melhor implementas, visando melhor suporte ou alteração futura.

Após os testes com o protótipo, foi verificado que os mesmos funcionaram a contento. Desta maneira, fica possível a implementação de fato deste protótipo para o uso real, assim podendo dar continuidade para a implantação do mesmo no cenário descrito no início deste trabalho.

Como propostas trabalhos futuros, existe a possibilidade de ampliação deste projeto, onde no sistema Web pode ser implementado maiores funcionalidades, como o cadastro de mais dados, criação de um login para gerenciamento da conta cadastrada. Assim como a implementação de uma interface admin para alteração de dados e parâmetros pertinentes.

Também é possível fazer ajustes e trazer novas soluções para o hardware do projeto, como uma solução de conexão wireless, alteração do dispositivo de entrada ou troca de sensores por outro tipo que seja mais conveniente dependendo da situação.

Ainda é possível tornar o projeto mais simples e menos custoso se componentes forem alterados, como o display por LEDs, sensor Ultrassônico por LEDs infravermelho, sendo que desta maneira o projeto pode ser suprido com uma placa Arduino menor também.

(36)

REFERÊNCIAS BIBLIOGRÁFICAS

12V DC 2 posições 3-way pequeno mini válvula solenóide elétrico para o gás de ar / bomba. 2017, il. color. Disponível em: <http://www.electroschematics.com/7963/arduino-mega-2560-pinout/> Acesso em: 30 jun. 2017

ALECRIN, Emerson. Banco de dados MySQL e PostgreSQL. 2008. Disponível em: <https://pt.wikipedia.org/wiki/Arduino> Acesso em: 29 jun. 2017.

Arduino MEGA 2560 Rev3. Arduino. Disponível em: <https://arduino.cc/usa/arduino-mega-2560-rev3> Acesso em: 29 jun. 2017.

Arduino USB Host Shield. Arduino. Disponível em: <https://arduino.cc/usa/arduino-usb-host-shield> Acesso em: 29 jun. 2017.

Arduino. Wikipédia. Disponível em: <https://pt.wikipedia.org/wiki/Arduino> Acesso em: 29 jun. 2017.

BARBACENA, Ilton L.; FLEURY, Claudio Afonso. Display LCD. Outubro, 1996. Disponível em: <http://bioserver.cpgei.ct.utfpr.edu.br/disciplinas/XX__microcontroladores/datasheets/lcd-portugues.pdf> Acesso em: 30 jun. 2017.

DA COSTA, Alexandre Aprato Ferreira. Persistência de Dados no MySQL com Arduino: Uma Proposta Utilizando MySQL Connector/Arduino. Revista de Ciências Exatas e Tecnologia, v.

11, n. 11, p. 39-43, 2016. Disponível em:

<http://pgsskroton.com.br/seer/index.php/rcext/article/viewFile/4287/3504> Acesso em: 30 jun. 2017.

DA SILVA, Francisco Ioneiton; SCHERER, Daniel. Praxedes: Protótipo de um kit educacional de robótica baseado na plataforma Arduino. EaD & Tecnologias Digitais na Educação, v. 1, n. 1, p.

44-56, 2013. Disponível em:

<http://ojs.ufgd.edu.br/ojs/index.php/ead/article/viewFile/2654/1492> Acesso em: 30 jun. 2017.

DA SILVA, José Alberto Fracassi; DO LAGO, Claudimir Lucio. Modulo Eletronico de Controle para Valvulas Solenoides. Química Nova, v. 25, n. 5, p. 842-843, 2002. Disponível em: <http://submission.quimicanova.sbq.org.br/qn/qnol/2002/vol25n5/20.pdf> Acesso em: 30 jun. 2017.

DE AQUINO FILHO, Gilmar Ferreira; AMARAL, Luiz Henrique; GARDEZANI, Ricardo. Acionamento De Circuitos El㉠Tricos Via Web Utilizando Arduino. Revista Caribeña de

Ciencias Sociales, n. 2016_08, 2016. Disponível em:

(37)

36

DENARDIN, G. W. Microcontroladores. 2007. Disponível em:

<http://www.joinville.udesc.br/portal/professores/eduardo_henrique/materiais/apostila_micro_do _Gustavo_Weber.pdf>. Acesso em: 29 jun. 2017.

HEUSER, Carlos Alberto. Projeto de banco de dados: Volume 4 da Série Livros didáticos

informática UFRGS. 2009. Disponível em:

<http://www.academia.edu/download/32386779/_LIVRO__Projeto_de_Banco_de_Dados_-_Carlos_Alberto_Heuser.pdf> Acesso em: 30 jun. 2017.

LEMOS, Hailton David. Aplicação da Computação Ubíqua na Educação a Distancia para Elucidação da Fotossíntese no Ensino de Biologia. II Escola Regional de Informática de

Goiás-2014, p. 11. Disponível em: <http://www.inf.ufg.br/~erigo/4/o/anais-ii-erigo-2014.pdf#page=11>

Acesso em: 30 jun. 2017.

Linguagem de Programação WEB. Scriptcase. Disponível em:

<http://www.scriptcase.com.br/linguagem-programacao-web/> Acesso em: 30 jun. 2017.

MARCHESAN, Marcelo. Sistema de monitoramento residencial utilizando a plataforma

arduino. Santa Maria, 2012. Disponível em:

<http://www.redes.ufsm.br/docs/tccs/Marcelo_Marchesan.pdf> Acesso em: 30 jun. 2017.

MARIAN, Popescu. Arduino Mega 2560 Pinout. Electro Schematics, 2015, il. color. Disponível em: <http://www.electroschematics.com/7963/arduino-mega-2560-pinout/> Acesso em: 30 jun. 2017.

MONARO, Renato Machado et al. Sistema de aquisição de dados para um relé de proteção

digital de baixo custo. 2007. Tese de Doutorado. UNIVERSIDADE DE SÃO PAULO. Disponível

em:

<http://www.tcc.sc.usp.br/tce/disponiveis/18/180500/tce-18052010-115015/publico/Monaro_Renato_Machado.pdf> Acesso em: 30 jun. 2017.

MOTA, Allan. LM35 – Medindo temperatura com Arduino. Vida de Silício blog, 26 jun. 2015, il. color. Disponível em: <http://blog.vidadesilicio.com.br/arduino/basico/lm35-medindo-temperatura-com-arduino/> Acesso em: 30 jun. 2017.

NIEDERAUER, Juliano. Desenvolvendo websites com PHP. São Paulo: Novatec, 2004.

Disponível em:

<http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/650595.pdf> Acesso em: 30 jun. 2017.

O que é um servidor web (web server)?. MDM. Disponível em: <https://developer.mozilla.org/pt-BR/docs/Learn/Common_questions/o_que_e_um_web_server> Acesso em: 29 jun. 2017.

PARMA, Gabriel Cremona. Mapas Cadastrais na Internet: servidores de mapas. Simpósio

(38)

<http://marte.sid.inpe.br/col/dpi.inpe.br/sbsr@80/2006/11.16.00.04/doc/1311-1319.pdf> Acesso em: 30 jun. 2017.

Sensor de nível de água líquida montado na lateral interruptor de bóia ângulo direito. 2017, il. color. Disponível em: <https://www.banggood.com/pt/Side-mounted-Liquid-Water-Level-Sensor-Right-Angle-Float-Switch-p-956164.html> Acesso em: 30 jun. 2017.

September 2016 Web Server Survey. Netcraft. Disponível em:

<https://news.netcraft.com/archives/2016/09/19/september-2016-web-server-survey.html> Acesso em: 29 jun. 2017.

Sistema de gerenciamento de banco de dados. Wikipédia. Disponível em: <https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados> Acesso em: 29 jun. 2017.

THOMSEN, Adilson. Como utilizar o sensor ultrasônico HC-SR04. FILLIPEFLOP blog, 15 jan. 2015, il. color. Disponível em: <http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/> Acesso em: 30 jun. 2017

THOMSEN, Adilson. Como comunicar com o Arduino Ethernet Shield W5100. FILLIPEFLOP blog, 27 jan. 2014, il. color. Disponível em: <http://blog.filipeflop.com/arduino/tutorial-ethernet-shield-w5100.html> Acesso em: 30 jun. 2017

THOMSEN, Adilson. Conecte Dispositivos USB ao Arduino usando o USB Host Shield. FILLIPEFLOP blog, 6 abr. 2014, il. color. Disponível em: <http://blog.filipeflop.com/arduino/usb-host-shield.html> Acesso em: 30 jun. 2017

THOMSEN, Adilson. Controlando um LCD 16x2 com Arduino. FILLIPEFLOP blog, 11 set, il. color. 2011. Disponível em: <http://blog.filipeflop.com/display/controlando-um-lcd-16x2-com-arduino.html> Acesso em: 30 jun. 2017

What is Arduino?. Arduino. Disponível em: <https://www.arduino.cc/en/Guide/Introduction#> Acesso em: 29 jun. 2017.

(39)

38

ANEXO A – CUSTOS DO PROJETO

O custo de desenvolvimento do projeto proposto pode ser analisado a seguir:

 Arduino Mega – R$ 59,00  Ethernet Shield – R$ 35,00  USB Host Shield – R$ 63,00  Display LCD 16x2 – R$ 12,00  Leitor Código de Barras – R$ 130,00  Mini Válvula Solenoide 12v – R$ 34,00  3x Boias Sensor de Nível – R$ 30,00  Fonte 12v 1A – R$ 12,00

 Outros (fios, resistores, relé, regulador de tensão, transistor) – R$ 15,00

Referências

Outline

Documentos relacionados

A seqüência analítica • Definição do problema • Escolha do método • Amostragem • Pré-tratamento da amostra • Medida • Calibração • Avaliação •

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos

2. Identifica as personagens do texto.. Indica o tempo da história. Indica o espaço da história. Classifica as palavras quanto ao número de sílabas. Copia do texto três

SENSOR DE

Com o intuito de registrar tais alterações, anúncios de revistas premiados pelo 20º Anuário do Clube de Criação de São Paulo são apresentados de forma categórica como

Para o controle da salivação, gosto muito de usar metáforas, como pedir para o paciente imaginar um ralo dentro de sua boca, por onde a saliva escorre, ou uma torneirinha que vai

O empregador deverá realizar a avaliação ambiental de poeira de asbesto nos locais de trabalho em intervalos não superiores a seis meses.. Os registros das avaliações deverão