Upload
lenhi
View
215
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA DA COMPUTAÇÃO
Felipe Alves Leal
SMART PET FEEDER – ALIMENTADOR REMOTO PARA CÃES E GATOS
Orientador: Prof. Dr. Alessandro Brawerman
Co-Orientadora: Profa. Dra. Andreia De Paula Vieira
Curitiba, 2015
RESUMO
A vida contemporânea é movimentada e muitas vezes cães e gatos são deixados
sozinhos em casa enquanto os donos estão no trabalho. O Smart Pet Feeder permite
o fornecimento de alimentação balanceada e controle remoto, possibilitando aos
proprietários de cães e gatos agendar e/ou controlar as refeições dos seus animais,
reduzindo custos de locomoção do trabalho para casa e liberando porções controladas
de alimentos. Além da relevância para a alimentação dos animais, o Smart Pet Feeder
também permite aplicar e desenvolver tecnologias para a indústria animal, como a
Internet das Coisas (IoT) na alimentação de animais de companhia. Neste contexto, o
objetivo deste trabalho de conclusão de curso é desenvolver um alimentador para
cães e gatos, que seja operacional, monitorável e programável remotamente,
possibilitando o controle da alimentação do animal de acordo com horários pré-
determinados, por longos períodos. A maioria dos alimentadores automáticos para
cães e gatos disponíveis no mercado mundial funcionam ou por um sistema de
gravidade simples ou utilizam temporizadores. Neste sentido, o Smart Pet Feeder é
inovador, pois fornece controle no volume de alimento fornecido, servindo porções
balanceadas e reduzindo as perdas de alimentos. Este alimentador possibilita o
manejo meticuloso da alimentação de cães e gatos remotamente.
Palavras-chave: Internet das Coisas, smartphone, sistemas embarcados, alimentador
para animais, bem-estar animal.
ABSTRACT
Contemporary life is busy and often cats and dogs are left alone at home while the
owners are at work. The Smart Pet Feeder allows for the delivery of a balanced
nutrition and remote control, enabling owners of dogs and cats to schedule and/or
control the meals of the animals, reducing mobility costs from work to home and
releasing controlled food portions. Besides the relevance to animal feeding, the Smart
Pet Feeder also allows the application and development of technologies for the animal
industry, such as the Internet of Things (IoT) in feeding companion animals. In this
context, the aim of this undergraduate thesis is to develop a feeder for dogs and cats,
which is operational, and allows for remote monitoring and programming, being
controlled according to predetermined times, for long periods. Most automatic feeders
for dogs and cats available in the global market work either by a simple gravity system
or use timers. In this sense, the Smart Pet Feeder is innovative because it provides
control of the volume of food provided, serves balanced portions and reduces food
losses. This feeder allows for the meticulous feeding management of dogs and cats
remotely.
Keywords: Internet of Things, smartphone, embedded systems, pet feeder, animal
welfare.
SUMÁRIO
1. INTRODUÇÃO ........................................................................................................ 6
1.1. OBJETIVO GERAL .............................................................................................. 7
1.2. OBJETIVO ESPECÍFICOS ................................................................................... 7
2. FUNDAMENTAÇÃO TEÓRICA ............................................................................... 8
2.1. ALIMENTAÇÃO E BEM-ESTAR DE CÃES E GATOS ......................................... 8
2.2. TRABALHOS RELACIONADOS ........................................................................ 10
3. ESPECIFICAÇÕES TÉCNICAS ............................................................................ 11
3.1. ANÁLISE DE REQUISITOS ............................................................................... 13
3.2. RESTRIÇÕES .................................................................................................... 13
3.3. DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE
SISTEMAS ................................................................................................................ 14
4. DESENVOLVIMENTO .......................................................................................... 16
4.1. HARDWARE ...................................................................................................... 16
4.1.1. SMARTPHONE COM SISTEMA OPERACIONAL APPLE IOS ....................... 17
4.1.2. SENSORES INFRAVERMELHO ..................................................................... 17
4.1.3. MOTOR DE PASSO ........................................................................................ 18
4.1.4. BALANÇA ........................................................................................................ 19
4.1.5. ADS1115 ......................................................................................................... 21
4.1.6. RASPBERRY PI B ( REV 1 ) ........................................................................... 22
4.2. SOFTWARE ....................................................................................................... 23
4.2.1. AMBIENTE DE DESENVOLVIMENTO ........................................................... 23
4.2.2. DIAGRAMA DE CASOS DE USO ................................................................... 23
4.2.2.1. DESCRIÇÃO DOS CASOS DE USO ........................................................... 24
4.2.3. DIAGRAMA DE CLASSES .............................................................................. 27
4.2.3.1. DIAGRAMA DE CLASSES DO APLICATIVO CLIENTE NO IPHONE ......... 28
4.2.4. DIAGRAMA DE SEQUÊNCIA ......................................................................... 29
4.2.4.1 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO ACIONAMENTO .................... 30
4.2.4.2 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RELATÓRIO .......................... 31
4.2.4.3 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RECIPIENTE ......................... 32
4.2.4.4 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RESERVATÓRIO .................. 33
4.2.4.5 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO AGENDAMENTO ................... 34
4.2.5. PROTOTIPAÇÃO DE TELAS .......................................................................... 35
4.2.5.1 TELA DO RELATÓRIO ................................................................................. 35
4.2.5.2 TELA DO ACIONAMENTO IMEDIATO ......................................................... 36
4.2.5.3 TELA DE VISUALIZAÇÃO DO RESERVATÓRIO ......................................... 37
4.2.5.4 TELA DE VISUALIZAÇÃO DO RECIPIENTE ................................................ 38
4.2.5.5 TELA DE VISUALIZAÇÃO DO AGENDAMENTOS ....................................... 39
4.2.5.6 TELA PARA ADICIONAR HORARIO ............................................................ 40
4.2.5.7 TELA PARA ESCOLHA DO DIAS DA SEMANA ........................................... 41
4.3. COMUNICAÇÃO ................................................................................................ 42
5. TESTES E RESULTADOS .................................................................................... 43
5.1. PRECISÃO DA BALANÇA ................................................................................. 43
5.2. PRECISÃO DO SENSOR DO RESERVATÓRIO ............................................... 44
5.3. TESTE DE DESEMPENHO DE COMANDOS VARIADOS ................................ 45
5.4. TESTE DE ASSERTIVIDADE DE COMANDOS VARIADOS ............................. 46
6. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS ...................................... 48
7 BIBLIOGRAFIA ...................................................................................................... 49
6
1. INTRODUÇÃO
Segundo a Associação Brasileira de Indústria de Produtos para Animais de
Estimação (ABINPET), o número de animais de companhia tem aumentado em todo
mundo. Nos lares dos brasileiros, por exemplo, existe um número superior a 30
milhões de animais (ABINPET, 2013). No passado, os animais auxiliavam os humanos
na caça, segurança ou serviam como fonte de alimentação, e atualmente eles são
fonte de companhia e afeto. Hoje é possível encontrarmos nas prateleiras dos pet
shops presentes especiais, novidades para enriquecer a vida dos animais, alimentos
diferenciados, objetos e equipamentos que podem ou não promover o bem-estar dos
animais de estimação.
A rotina agitada e frenética da vida moderna acaba intercalando as horas de
afeto e cuidado com viagens, compromissos de trabalho e poucas pausas. Neste
contexto é importante levantar potenciais problemas de manejo, comportamento e
saúde que possam comprometer a o bem-estar dos animais.
Pensando nesta necessidade do mercado, este trabalho apresenta um
alimentador automatizado para cães e gatos, com o intuito de prevenir possíveis
negligências com relação ao fornecimento de uma alimentação balanceada aos
animais e ao mesmo tempo conciliar os compromissos da vida moderna.
Este alimentador permite agendamento dos horários de alimentação,
monitoramento dos níveis de consumo dos alimentos e ajuste automático da
programação de acordo com a preferência do animal ou recomendação do veterinário,
além de ser possível controlá-lo, via um aplicativo iOS, através da Internet.
7
1.1. OBJETIVO GERAL
O objetivo geral deste trabalho é o desenvolvimento de um alimentador para
cães e gatos, controlado remotamente, através da Internet, por meio de um
smartphone.
1.2. OBJETIVO ESPECÍFICOS
Para atingir o objetivo principal deste trabalho de conclusão de curso, vários
pequenos passos foram elaborados, formando os objetivos específicos deste trabalho
onde foi desenvolvido 1) um aplicativo para o sistema operacional iOS, na linguagem
Swift 2, no ambiente de desenvolvimento integrado Xcode e 2) um protótipo de
alimentador automático para cães e gatos controlado e monitorado remotamente e
que realiza as seguintes tarefas:
a) Obtenção de conhecimentos necessários sobre bem-estar animal, bem
como sobre a linguagem Swift 2 para iOS e na IDE Xcode;
b) Levantamento bibliográfico de trabalhos relacionados, sejam eles
acadêmicos ou comerciais;
c) Desenvolvimento de um aplicativo iOS para controle e monitoramento
remoto pelo iPhone, possibilitando visualização do estado do
reservatório, recipiente e motor, emissão de relatório sobre o consumo
e despejo da ração, acionamento do motor imediato e/ou agendamento
de horário.
d) Criação do servidor com o sistema operacional Windows Server 2012
R2, instalação do Apache Web Server (http://www.apache.org),
instalação do php (http://www.php.net) para o desenvolvimento em Slim
Framework (http://www.slimframework.com/) do webservice e
modelagem de um banco de dados em MySQL (http://www.mysql.com).
e) Construção de um protótipo de estrutura do reservatório, possibilitando
adição dos sensores infravermelho, da balança (cédula de carga) e do
motor de passo com fuso sem fim;
f) Desenvolvimento de um protocolo de comunicação entre hardware e
software.
8
2. FUNDAMENTAÇÃO TEÓRICA
A aplicação de tecnologias inovadoras para a indústria animal, é algo novo no
Brasil. Qualquer tecnologia desenvolvida para este nicho de mercado deve
primeiramente considerar a perspectiva do animal e seu bem-estar no contexto do
desenvolvimento, e também as preferências do usuário. Assim, este capítulo
apresenta conceitos teóricos relacionados a questões de nutrição animal, de mercado
e de tecnologias que forneçam soluções de ponta para a sociedade.
2.1. ALIMENTAÇÃO E BEM-ESTAR DE CÃES E GATOS
O processo de alimentar animais domésticos é uma tarefa especializada. O
mercado proporciona diversas opções com as mais diferentes finalidades. A
alimentação animal no Brasil é regulamentada pelo Ministério da Agricultura (MAPA,
2015), o órgão responsável pela fiscalização do setor de produtos destinados à
alimentação animal. Fórmulas pré-estabelecidas determinam as necessidades diárias
dos animais de acordo com o peso ou com a saúde. Por esta razão, vários animais
de companhia precisam ser mantidos em uma dieta controlada. Deixar a ração o dia
todo disponível faz com que esta absorva umidade e acabe se deteriorando, o que
pode inclusive tornar-se atrativo a roedores e vetores como baratas e camundongos
que disseminam doenças aos seres humanos e aos animais (ALBANO, 2015).
Não somente a escolha do tipo de ração é importante, mas também a
quantidade que será disponibilizada ao animal. Uma forma de estabelecer a
quantidade de ração é seguir a descrição nas embalagens ou seguir a recomendação
do médico-veterinário ou nutricionista.
Cada animal possui um metabolismo diferente e necessidades proteicas e
nutricionais das mais variadas. Portanto, há a necessidade de escolher uma
alimentação adequada para cada espécie (ALBANO, 2015). Ignorar esta regra quase
sempre não traz consequências imediatas, mas provoca reações desagradáveis, a
médio e longo prazo (ALBANO, 2015).
De acordo com Martins (2005) um gato obeso pode desenvolver doenças como
diabetes, hipertireoidismo, doenças cardíacas, circulatórias, hepáticas, articulares e
doenças de pele. Os cães devem receber a ração de maneira fracionada e em horário
fixo, principalmente os destinados à guarda. Segundo Albano (2015), os cães tendem
9
a ter sonolência após as refeições, portanto deixar quantidades de ração a noite toda,
pode causar obesidade e reforçar a sonolência durante a madrugada. Gatos possuem
o costume de alimentarem-se várias vezes ao dia, portanto, é recomendado deixar
ração seca e fresca e água sempre à disposição, e a ração não pode ficar exposta o
tempo todo, pois há redução da palatabilidade. Embora os gatos gostem de comer o
dia todo, a quantidade de alimento em cada refeição/dia deve ser limitada (MARTINS,
2005).
Estar livre de fome é uma liberdade fundamental de qualquer animal. Esta
liberdade foi discutida de forma articulada pela primeira vez em 1965, quando o
governo do Reino Unido encomendou uma investigação, liderada pelo professor
Roger Brambell, sobre o bem-estar dos animais (BRAMBELL REPORT, 1965). O
Relatório Brambell afirmou que os animais devem ter cinco liberdades básicas
atendidas: 1) estarem livres de fome ou de sede pelo pronto acesso à água fresca e
à dieta que o mantenha em plena saúde e vigor; 2) estarem livres de desconforto, em
um ambiente apropriado, que inclui abrigo e uma área confortável de descanso; 3)
estarem livres de dor, lesão ou doenças por prevenção ou diagnóstico rápido e
tratamento; 4) terem a liberdade de expressarem seus comportamentos naturais, em
um espaço suficiente, instalações adequadas e em companhia de sua espécie; 5)
estarem livres de medo e angústia, com ausência de sofrimento mental.
Apesar da fome ser uma liberdade fundamental do animal, o livre acesso a
alimentos de alta qualidade pode resultar em obesidade, levando a patologias e,
portanto, comprometendo a saúde e o bem-estar (por exemplo, DE PAULA VIEIRA et
al., 2008). Assim, um alimentador automático que promova o bem-estar dos animais
deve saciar a fome dos animais, deve ser confortável e não aversivo, deve permitir a
exibição de seus comportamentos naturais e deve promover uma boa saúde, como
por exemplo prevenir a obesidade. A observação dos comportamentos espécie-
específicos bem como durante a interação do animal com o alimentador é fundamental
para a validação do alimentador na perspectiva do animal e direcionará a inovação de
práticas de alimentação de animais nos próximos anos (BRAMBELL REPORT, 1965;
DE PAULA VIEIRA et al., 2008).
10
2.2. TRABALHOS RELACIONADOS
Esta seção apresenta soluções disponíveis hoje no mercado que de alguma
forma utilizam princípios/tecnologias de alguma forma semelhantes aos adotados
neste trabalho de conclusão de curso. O primeiro exemplo é o SuperFeeder
(SUPERFEED, 2015), criado em 1992 com a primeira produção em 1994. A
especialidade foi a fabricação e venda de alimentadores automáticos de qualidade
segundo os fabricantes que buscavam desenvolver um alimentador verdadeiramente
confiável, para alimentos em flocos, que não só poderia ser usado em uma base
temporada de férias, mas também poderia ser instalado de forma permanente. O
SuperFeeder é um alimentador automático para animais, porém a limitação do
alimentador, é a falta de um dispositivo de agendamento de horários, que poderia ser
resolvida com a compra de um temporizador eletromecânico a parte que possibilitaria
configurar o tempo de intervalo entre cada acionamento do motor.
Outro alimentador que existe no mercado internacional é o CatFi (CATFI, 2015).
O CatFi Pro (anteriormente conhecido como Bistro) é o alimentador inteligente com
tecnologia de reconhecimento facial para gatos. No topo do monitoramento remoto, o
CatFi Pro permite o acompanhamento das estatísticas de consumo dos gatos (peso,
alimentação e entradas de água) com uma função de alerta. Um grande diferencial do
CatFi é o reconhecimento facial e vale destacar que projeto do CatFi foi financiado
através de doações no valor de US$ 240.680,00, cuja campanha de arrecadação
finalizou em 14 de agosto de 2014.
11
3. ESPECIFICAÇÕES TÉCNICAS
Para a integração das funcionalidades do Smart Pet Feeder, foi desenvolvido
um aplicativo para o smartphone que solicita e permite informar por meio de uma
interface de hardware e software de boa usabilidade, quantas vezes por dia se deseja
liberar alimento para o animal, bem como seus respectivos horários e volume. Este
alimentador é diferente de outros alimentadores automáticos disponíveis no mercado
brasileiro, pois ele fornece flexibilidade de 100% nos horários de alimentação (por
exemplo, não há obrigatoriedade de alimentar o animal de oito em oito horas com
preconizam outros alimentadores).
As informações fornecidas pela balança digital, antes que o novo alimento seja
liberado no comedouro (por exemplo, se haverá um reabastecimento completo ou
parcial), levam em consideração os eventuais restos de ração deixados pelo animal.
A liberação do alimento no reservatório de ração para o comedouro, é acionado por
um motor de passo, que em seguida aciona uma rosca sem fim para que a nova
porção de alimento seja liberada no comedouro conforme volume definido pela
programação do proprietário.
A Figura 3.1 mostra um diagrama da arquitetura do projeto, que está dividido
conforme as 3 vertentes de desenvolvimento tanto de hardware e software (servidor
e usuário final). O bloco azul, da Figura 3.1 representa o hardware, parte chave do
protótipo para que se atinja um dos objetivos deste trabalho. Nele existe um atuador,
representado pelo MOTOR DE PASSO com a função de transportar a comida para o
recipiente, um SENSOR IR que mede o nível do reservatório de ração, um
RECIPIENTE BALANÇA com um extensômetro para capturar a massa do recipiente
de ração que é enviada para um ADC ADS1115 que converte o sinal analógico para
digital, a RASPBERRY PI encarregada de receber todas estas informações, realizar
os devidos cálculos/processamentos e as enviar através da INTERFACE ETHERNET
para o servidor. O bloco laranja da Figura 3.1 representa a parte do servidor, que
graças ao WEB SERVICE controla os dados/operações entre o hardware e o usuário
final. O servidor também possui um serviço de banco de dados que persiste os dados.
O bloco verde da Figura 3.1 representa o USUÁRIO FINAL, é através destes
processos que o usuário poderá interagir com o sistema, através do SMARTPHONE
ou pelo NAVERGADOR WEB.
12
Figura 3.1 – Diagrama da arquitetura do Smart Pet Feeder.
Ao lado esquerdo da Figura 3.2 está representada a visão geral do projeto, e
ao lado direito suas funcionalidades descritas abaixo.
Figura 3.2 – Visão geral e recursos do Smart Pet Feeder
Funcionalidades do Smart Pet Feeder:
Conexão com a Internet;
Monitoração/controle remoto pelo smartphone;
Acionamento imediato de ração;
Acionamento de ração com agendamento de horário;
Visualização do nível do recipiente;
Visualização do nível do reservatório de ração;
Visualização de um gráfico referente à quantidade de ração depositada e à
quantidade de ração consumida;
Alerta sobre a falta de ração no reservatório;
Bloqueio do acionamento caso o reservatório esteja vazio;
13
Verificação da quantidade de ração a ser inserida (por exemplo, caso já exista
ração no recipiente, um alerta é enviado, evitando-se assim o desperdício de
ração).
Abaixo, na Figura 3.3, está apresentado o protótipo em etapas de montagem,
isto é, de acordo com a distribuição de peças e placas na montagem do produto
interna e externamente, concretizando-se sua organização final.
Figura 3.3 – Protótipo Smart Pet Feeder
3.1. ANÁLISE DE REQUISITOS
Depois de pesquisas e leituras sobre as tecnologias disponíveis para
alimentadores automáticos, foram definidos como requisitos do SMART PET FEEDER
os seguintes itens:
Não ser aversivo ao animal e atender às suas necessidades nutricionais;
Ser de fácil de uso pelo proprietário e pelo animal;
Ser de fácil higienização e com fácil reposição de ração;
Monitoramento adequado da quantidade de ração: Através de um sensor que
perceba a quantidade de alimento existente no pote do animal, para evitar que
mais alimento seja liberado para o mesmo animal que não ingeriu a porção
anterior;
Programação de tempo e quantidade: é preciso que o produto se adapte da
melhor forma possível para todos os tipos de animais (cães e gatos) e também
para a idade e necessidade nutricional de cada um.
3.2. RESTRIÇÕES
O produto possui alguns requisitos mínimos para o correto funcionamento.
Alguns destes requisitos são a alimentação por uma fonte chaveada de 5V de tensão
14
e com uma corrente de no mínimo 8A. A conexão à Internet, é crucial, o protótipo não
é a prova d’água e funciona em temperatura ambiente entre 5ºC e 30ºC (outras
temperaturas não foram testadas).
3.3. DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE
SISTEMAS
Embarcado no protótipo, existe um circuito de controle que tem a função de
acionar o motor de passo, a captura de informações dos sensores, o conversor
analógico-para-digital (ADS1115) junto com o amplificador operacional de precisão
(INA125) da balança, como ilustrado pela Figura 3.4.
Os conectores FIOS MOTORES são conectados de acordo com as cores dos
fios do motor. Existe um optoacoplador que protege o circuito TTL para um de
potência. Além disso, o INA1 é responsável pela amplificação dos sinais recebidos
pela BALANCA1. A saída do INA1 é conectada à entrada A0 do ADS1 que converte
a entrada analógica da balança para um valor digital que é enviado através de uma
comunicação I2C para a Raspberry Pi. Foi necessário utilizar este ADC, pois a
Raspberry Pi não possui nativamente uma porta de ADC.
16
4. DESENVOLVIMENTO
Este capítulo apresenta o desenvolvimento realizado no projeto. Começando
pela explicação do desenvolvimento do hardware, logo em seguida explanamos sobre
o desenvolvimento de software e finalizamos esclarecendo a comunicação realizada
no conjunto do projeto.
4.1. HARDWARE
Neste trabalho fica perceptível a necessidade da utilização de alguns
componentes de hardware para o correto funcionamento do protótipo final. Para tanto
são apresentados a seguir os componentes utilizados na confecção do referido
projeto.
O fluxograma da Figura 4.1 mostra os processos realizados pelo sistema do
firmware para executar as devidas funcionalidades do SMART PET FEEDER,
iniciando a captura do nível do reservatório, sequencialmente capturando o nível do
recipiente e enviando estes dados para o servidor. Em seguida, o servidor é deve
responder se existe acionamento do motor para executar, caso contrário volta-se ao
início. Caso exista o acionamento, o firmware liga o motor, e ao chegar-se ao estado
desejado, finaliza o processo voltando para o início. Se ainda não chegou-se ao
estado desejado do peso, o motor é acionado novamente e assim por diante.
Figura 4.1 – Fluxograma do Firmware
17
4.1.1. SMARTPHONE COM SISTEMA OPERACIONAL APPLE IOS
Para execução do aplicativo, bem como controle do alimentador, foi utilizado
um smartphone iPhone 5, processador com 1.3 GHz, 16GB de armazenamento,
resolução da tela de 1136x640px, sistema operacional Apple iOS 9 e Wi-Fi.
4.1.2. SENSORES INFRAVERMELHO
Este sensor de proximidade infravermelho é um módulo de reflexão fotoelétrico
que integra um emissor IR e um receptor IR. Contudo este sensor possui um maior
alcance que os tradicionais, podendo variar de 3 à 80 cm com o ajuste do parafuso na
parte de trás do sensor (FILIPEFLOP, 2015).
Neste projeto foi utilizado o sensor infravermelho E18-D80NK que apresenta as
seguintes características e o circuito do mesmo encontra-se na Figura 4.2:
Tensão de operação: 5VDC
Corrente de operação: 10-15mA
Faixa de detecção: 3-80cm
Diâmetro sensor: 18mm
Comprimento sensor: 45mm
O circuito do E18-D80NK, apresentado na Figura 4.2 possui um LED
infravermelho emissor, representado por D1, que emite para o Fotodiodo (D2), para o
U1:A e para o amplificador operacional LM393 configurado como comparador. O
resultado é a recepção de luz infravermelha resultante da diferença de tensão pelo
trimmer (RV1).
Figura 4.2 - Circuito do E18-D80NK / Sensor Infravermelho
18
A parte interna do encapsulamento do sensor infravermelho utilizado é
mostrada na Figura 4.4. A Figura 4.3 apresenta a distribuição onde fica os quatros
sensores na parte superior do protótipo.
Figura 4.3– Parte superior do Smart Pet Feeder
Figura 4.4 – Sensor infravermelho parte interna
4.1.3. MOTOR DE PASSO
O motor de passo AK23/15F6FN1.8 é uma solução eficiente para este projeto
pois possui posicionamento preciso. Dada a sua robustez possui baixíssimo índice de
manutenção. Otimizado para trabalhar com resoluções de micropasso, que garante
uma precisão maior ao sistema de movimentação (ROBOCORE, 2015).
O AK23/15F6FN1.8 na configuração unipolar, que foi escolhido para este
projeto, apresenta as seguintes características:
NEMA: 23
19
Tensão de operação: 3VDC
Corrente de operação: 3A
Holding Torque: 15,0 kgf.cm
Ângulo do passo: 1.8°
N° de passos: 200
Quantidade de fios: 6
O motor de passo utilizado é mostrado na Figura 4.5 que ilustra a parte inferior
do protótipo.
Figura 4.5 – Parte inferior do Smart Pet Feeder
4.1.4. BALANÇA
Existem diferentes maneiras de capturar o peso de objetos em geral. Para este
projeto, após diferentes testes e pesquisas, optamos pela Mini Balança Digital
Diamond CBR1051 que possui não apenas o melhor custo benefício, mas que teve
sua arquitetura inicial, transdutor e estrutura física, mantidos. O circuito inicial foi
retirado e um novo circuito foi desenvolvido especialmente para o projeto, e pode ser
conferido na Figura 4.8. Nas Figuras 4.6 observamos o resultado final em relação a
balança e na Figura 4.7 podemos ver o seu formato inicial.
20
Figura 4.6 – Balança acoplada no protótipo
Figura 4.7 – Balança Digital Diamond CBR1051
Fonte: MERCADO LIVRE, 2015
A balança apresenta as seguintes características:
Transdutor de alta precisão de 0,1g até 500g;
Medidas aproximadas do produto: 15 cm x 7,5 cm x 1,5 cm;
A saída da ponte de wheatstone é ligada diretamente nos pinos 6 (entrada
positiva) e 7 (entrada negativa) do amplificador de instrumentação INA125, dando um
ganho de 64 vezes conforme a equação abaixo:
𝐺 = 4 +60𝑘Ω
𝑅𝐺
Ganho de 64 vezes para RG = 1kΩ.
A Figura 4.9 demonstra esquema elétrico e os pinos do amplificador de
instrumentação INA125 (Burr-Brown® 2009).
O resultado da amplificação do sinal é ligado às portas A0 do módulo ADS1115.
O esquema elétrico do sensor com o amplificado de instrumentação está
exemplificado na Figura 4.8.
21
Figura 4.8 – Esquemático do circuito para captura da informação da balança.
Figura 4.9 – Esquema elétrico do amplificador de instrumentação INA125 (Burr-Brown® 2009).
4.1.5. ADS1115
A Raspberry Pi não possui um conversor analógico para digital internamente,
sendo necessário utilizar um modulo externo do ADS1115, para que a saída analógica
do INA125 seja convertido para digital. A grande vantagem deste módulo é a sua
resolução de 16 bit com um consumo de 150μA.
Neste projeto foi utilizado o ADS1115 que apresenta as seguintes
características:
Tensão de operação: 2.0V à 5.5V
22
Corrente de operação: 150μA
16 bits de resolução
860 amostras por segundo
4 entradas por módulo
O esquemático do circuito do ADS1115 que foi utilizado no projeto, é mostrado
na Figura 4.10.
Figura 4.10 – Circuito do módulo ADS1115
4.1.6. RASPBERRY PI B ( REV 1 )
O Raspberry Pi é uma plataforma microcontrolada do tamanho de um cartão
de crédito, cujo chip baseado em uma Broadcom BCM2835 SoC, possui arquitetura
ARM1176JZF-S em seu processador de 700 MHz, 512MB de memória RAM, duas
portas USB e um controlador Ethernet 10/100. Esta placa é designada para executar
sistemas operacionais baseados no kernel Linux. (ADAFRUIT, 2015)
Na estrutura da Raspberry Pi já existe tanto saída Ethernet 10/100 (RJ45)
quanto portas USB, logo para o Smart Pet Feeder que é crucial o acesso à internet,
pois ela nativamente oferece solução tanto para conexão cabeada quanto para
situações que usem um adaptador USB WIFI.
23
4.2. SOFTWARE
Esta seção abordará detalhadamente o projeto dos softwares desenvolvidos
para o sistema proposto. Primeiramente, será descrito os ambientes de
desenvolvimento utilizados em cada software.
4.2.1. AMBIENTE DE DESENVOLVIMENTO
A programação de aplicativos para o iOS 9 é feita em Swift 2. Esta linguagem
é bastante semelhante ao Java script, linguagem criada recentemente para
desenvolvimento de programas de qualquer produto da Apple (computadores rodando
o sistema operacional OSX, dispositivos móveis rodando o iOS), por fornecer a melhor
performance dentro destes sistemas.
A programação do sistema que roda no Servidor, é feita em PHP, utilizando o
Slim Framework devido à facilidade que este Framework oferece para o uso de Web
Service - RESTful.
Para o banco de dados do servidor, que é responsável por armazenar o nível
do reservatório, nível do recipiente, estado do motor, horários, e etc. é utilizado o
MySQL 5.6.24 - MySQL Community Server (GPL).
4.2.2. DIAGRAMA DE CASOS DE USO
O diagrama de Casos de Uso de um software separa cada interação entre o
usuário e o sistema. Com isso, é possível explicar de forma detalhada cada
funcionalidade do sistema, e as ações do usuário.
Analisando as funcionalidades desejadas para o sistema proposto tem-se o
Diagrama de Casos de Uso do Cenário do aplicativo Cliente no iPhone, conforme a
Figura 4.11:
24
Figura 4.11 – Diagrama de Casos de Uso do Cenário do aplicativo Cliente no iPhone
4.2.2.1. DESCRIÇÃO DOS CASOS DE USO
Caso de Uso – Visualizar Relatório:
Este caso de uso é iniciado quando o usuário decide visualizar o relatório, isto
é, apresenta um gráfico da quantidade de ração depositada e o que foi
consumido pelo animal no dia.
1. O usuário navega até a seção "Relatório" no aplicativo.
2. O aplicativo requer através de Web Service a consulta dos dados no banco de
dados do servidor.
3. O servidor retorna para o usuário também utilizando Web Service, os dados da
ração depositada e o que foi consumido no recipiente.
Alternativas:
2a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a Internet, uma mensagem de erro é exibida.
Caso de Uso – Visualizar Nível do Reservatório:
Este caso de uso é iniciado quando o usuário decide visualizar nível do
reservatório.
25
1. Usuário navega até a seção "Reservatório" no aplicativo.
2. O aplicativo requer através de Web Service a consulta dos dados no banco de
dados do servidor.
3. Servidor retorna para o usuário também utilizando Web Service, os dados do
nível que encontra-se o reservatório.
Alternativas:
2a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a Internet, uma mensagem de erro é exibida.
Caso de Uso – Visualizar Nível do Recipiente:
Este caso de uso é iniciado quando o usuário decide visualizar o nível do
recipiente.
1. O usuário navega até a seção "Recipiente" no aplicativo.
2. O aplicativo requer através de Web Service a consulta dos dados no banco de
dados do servidor.
3. O servidor retorna para o cliente também utilizando Web Service, os dados do
nível que encontra-se o recipiente.
Alternativas:
2a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a Internet, uma mensagem de erro é exibida.
Caso de Uso – Visualizar Agendamentos:
Este caso de uso é iniciado quando o usuário decide visualizar a lista de
horários já cadastrados, que devem ser acionados conforme o horário
programado.
1. O usuário navega até a seção "Agendamento" do aplicativo.
2. O aplicativo requer através de Web Service a consulta da lista de horários.
3. O servidor busca no banco de dados todos os horários requisitados, consulta o
estado para saber se está ativo ou não, e os dias da semana que está
programado.
4. O servidor retorna para o cliente também utilizando Web Service, a lista dos
agendamentos resultantes.
Alternativas:
26
2a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor
por falta de conexão com a Internet, uma mensagem de erro é exibida.
Caso de Uso – Adicionar Agendamento:
Este caso de uso é iniciado quando o usuário decide adicionar um novo agendamento.
1. O usuário navega até a seção "Agendamento" do aplicativo.
2. O usuário seleciona no canto superior direito o símbolo de “+”.
3. O usuário escolhe a hora e minuto para realizar o acionamento do depósito de
ração.
4. O usuário seleciona a quantidade de ração.
5. O usuário escolhe a quantidade de dias da semana que deseja repetir o
acionamento do depósito de ração.
6. O usuário decide o estado do agendamento, isto é, se ativado ou desativado.
7. O aplicativo requer através de Web Service a adição do novo agendamento.
8. O banco de Dados é atualizado.
9. O servidor retorna para o cliente também utilizando Web Service, a nova lista
de agendamentos atualizadas.
Alternativas:
7a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a internet, uma mensagem de erro é exibida.
Caso de Uso – Editar Agendamento:
Este caso de uso é iniciado quando o usuário decide editar ou remover algum
agendamento já adicionado no sistema.
1. O usuário navega até a seção "Agendamento" do software.
2. O usuário escolhe um agendamento dentre os agendamentos cadastrados, e
clica sobre o escolhido.
3. O usuário consegue então editar ou remover o agendamento selecionado.
4. O software requer através de Web Service a alteração/remoção do
agendamento selecionado no servidor.
5. O banco de dados é atualizado.
6. O servidor retorna para o cliente também utilizando Web Service, a lista de
agendamentos atualizadas.
Alternativas:
27
4a. Se o aplicativo falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a internet, uma mensagem de erro é exibida..
Caso de Uso – Acionamento imediato de ração:
Este caso de uso é iniciado quando o usuário decide realizar o acionamento
imediato de ração.
1. O usuário navega até a seção "Acionamento" do aplicativo.
2. Seleciona a quantidade de ração.
3. O usuário clica para ativar o acionamento.
4. O aplicativo requer através de Web Service, a alteração do estado do motor no
servidor.
5. Banco de Dados é atualizado.
6. O Smart Pet Feeder requer através do Web Service, a consulta do estado do
motor.
7. Até chegar na quantidade selecionada o funcionamento do motor é contínuo
sendo que ao chegar no peso maior ou igual ao selecionado, o motor pára, e o
Smart Pet Feeder envia através do Web Service, a alteração do estado do
motor.
8. O servidor retorna para o cliente também utilizando Web Service, o estado do
motor atualizado.
Alternativas:
4a. Se o software falhar ao tentar transmitir o pedido de consulta ao servidor por
falta de conexão com a internet, uma mensagem de erro é exibida.
4.2.3. DIAGRAMA DE CLASSES
Diagrama de Classes é uma representação da estrutura e relações das classes
que servem de modelo para objetos. É uma modelagem muito útil para o sistema,
definindo todas as classes que o sistema necessita possuir (VARGAS, 2011).
28
4.2.3.1. DIAGRAMA DE CLASSES DO APLICATIVO CLIENTE NO IPHONE
Figura 4.12 – Diagrama de Classes do aplicativo Cliente no iPhone.
A Figura 4.12 ilustra o Diagrama de Classes do Cliente. No Cliente, tudo parte
de uma Splash Screen, que em seguida verifica o funcionamento do sistema
representado pela classe Controle do Sistema. Esta, tem 14 ações. Consultar Motor,
Acionar Motor, Parar Motor, Consultar Relatório, Adicionar Relatório, Consultar Nível
Reservatório, Editar Nível Reservatório, Consultar Nível Recipiente, Editar Nível
Recipiente, Consultar Lista de Agendamentos, Consultar Agendamento, Adicionar
Agendamento, Editar Agendamento e Remover Agendamento.
Consultar Motor leva à classe Acionamento, que possui os atributos Estado,
PesoDesejavel, PesoAtual, obtidos do servidor para apresentar para o usuário. A
partir desta classe, tem-se 3 ações: Consultar Motor, Acionamento Motor e Parada.
29
Consultar Relatório leva à classe Relatório, que possui os atributos Data,
QtdDepositada, QtdConsumida, obtidos do servidor para apresentar para o usuário. A
partir desta classe, tem-se 2 ações: Consultar e Adicionar.
Consultar Nível Reservatório leva à classe Reservatório, que possui o atributo
Peso, obtidos do servidor para apresentar para o usuário. A partir desta classe, tem-
se 2 ações: Consultar e Editar.
Consultar Nível Recipiente leva à classe Recipiente, que possui o atributo Nível,
obtidos do servidor para apresentar para o usuário. A partir desta classe, tem-se 2
ações: Consultar e Editar.
Consultar Lista de Agendamento leva à classe Agendamento, que possui o
Horario, QtdRacao, DiasDaSemana e Estado. A partir desta classe, tem-se 4 ações:
Consultar, Adicionar, Editar e Remover.
4.2.4. DIAGRAMA DE SEQUÊNCIA
Diagrama de Sequência (ou Diagrama de Sequência de Mensagens) é um
diagrama usado em UML (Unified Modeling Language), representando a sequência
de processos em um programa de computador. Como um projeto pode ter uma grande
quantidade de métodos em classes diferentes, pode ser difícil determinar a sequência
global do comportamento do mesmo. O diagrama de sequência representa esta
informação de uma forma simples e lógica (VARGAS, 2011).
30
4.2.4.1 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO ACIONAMENTO
Figura 4.13 – Diagrama de Sequência do cenário Acionamento
Conforme ilustra a Figura 4.13, toda vez em que é feito qualquer tipo de
acionamento tanto o agendado quanto o imediato, o cliente deve enviar um pedido de
acionamento para o servidor. O servidor, por sua vez realiza a atualização do estado
do motor e também do peso desejável no banco de dados, com as atualizações feitas,
a Raspberry ao realizar a consulta no servidor, coleta estas informações e executa o
motor, até chegar no peso desejável. Ao chegar no peso maior ou igual ao solicitado,
o motor pára e a Raspberry envia para o servidor uma nova atualização do valor de
estado do motor, assim como o peso atual. O banco de dados retorna o resultado da
consulta que é então enviado pelo servidor para o usuário (iPhone) que mostra o
resultado de forma amigável e clara.
31
4.2.4.2 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RELATÓRIO
Figura 4.14 – Diagrama de Sequência do cenário Relatório
O cenário mostrado na Figura 4.14. ilustra a sequência a ser seguida pelo
usuário para visualizar o relatório. Desta vez o servidor realiza a busca da quantidade
de ração depositada no recipiente e a quantidade de ração consumida. O banco de
dados retorna então os valores para o servidor, que são então enviados e
apresentados pelo servidor para o usuário (iPhone), através de um gráfico.
32
4.2.4.3 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RECIPIENTE
Figura 4.15 – Diagrama de Sequência do cenário Recipiente
O cenário mostrado na Figura 4.15. ilustra, o caminho do usuário ao realizar uma
consulta sobre a quantidade de ração que existe no recipiente e a sequência a ser
seguida. Ela é semelhante à consulta do relatório, contudo neste caso o servidor
realiza a busca do peso atual do recipiente no banco de dados. O banco de dados
retorna então o peso do recipiente para o servidor, e o envia para o usuário (iPhone),
que mostra o valor em gramas.
33
4.2.4.4 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO RESERVATÓRIO
Figura 4.16 – Diagrama de Sequência do cenário Reservatório
O cenário mostrado na Figura 4.16. ilustra, a consulta do usuário sobre o nível
em que se encontra o reservatório. A sequência a ser seguida, é semelhante à
consulta do relatório e à consulta do recipiente, porém neste caso o servidor realiza a
busca do nível do reservatório no banco de dados. O banco de dados retorna então
do nível do reservatório para o servidor, e envia para o usuário (iPhone), que mostra
o nível atual.
34
4.2.4.5 DIAGRAMA DE SEQUÊNCIA DO CENÁRIO AGENDAMENTO
Figura 4.17 – Diagrama de Sequência do cenário agendamento.
O cenário mostrado na Figura 4.17. ilustra, a sequência de adição do
agendamento pelo usuário. Neste caso o servidor realiza a inserção dos valores,
horários, dias da semana, estado e peso desejável no banco de dados. O banco de
dados então retorna o sucesso da adição das informaçnoes para o servidor, que envia
a informação para o usuário (iPhone), atualizando a lista de agendamentos.
35
4.2.5. PROTOTIPAÇÃO DE TELAS
Através da prototipação de telas (Figuras 4.18; 4.19; 4.20; 4.21; 4.22; 4.23;
4.24), pode-se ter uma idéia de como o sistema será desenvolvido. Isto permite
importantes melhorias na interface do programa ainda em etapa de desenvolvimento,
tornando uma eventual correção bem mais fácil.
4.2.5.1 TELA DO RELATÓRIO
Figura 4.18 – Tela de Relatório.
A tela consiste em fornecer o gráfico referente à quantidade de ração
depositada em gramas na cor cinza e a quantidade de ração na cor de um verde
azulado. Esta é a tela que vem logo em seguida ao Splash Screen. Na parte inferior
existe uma Tab Bar e a partir dela o usuário pode acessar todas as funcionalidades
do cliente pelo iPhone:
Visualizar relatório;
Ir para a tela de Acionamento imediato;
Ir para a tela de Nível do Reservatório;
Ir para a tela de Nível do Recipiente;
Ir para a tela de Agendamentos;
36
4.2.5.2 TELA DO ACIONAMENTO IMEDIATO
Figura 4.19 – Tela do Acionamento Imediato.
Nesta tela, o usuário tem controle do acionamento imediato. Ele visualiza o
estado do motor, consegue editar a quantidade de ração para o depósito no recipiente
através do switch ao lado do acionamento que faz o motor ser acionado
instantaneamente.
37
4.2.5.3 TELA DE VISUALIZAÇÃO DO RESERVATÓRIO
Figura 4.20 – Tela de Visualização Do Reservatório.
Nesta tela, o usuário visualiza o estado do reservatório, assim como o sistema
e o nível do reservatório. Como existem 4 sensores no Smart Pet Feeder, o nível mais
alto será o 4, como mostra a Figura 4.19.
38
4.2.5.4 TELA DE VISUALIZAÇÃO DO RECIPIENTE
Figura 4.21 – Tela de Visualização Do Recipiente.
Nesta tela, o usuário visualiza o estado do recipiente, além de informar o peso
da ração que já se encontra no recipiente, o nível máximo de ração permitido neste
protótipo é de 100g. Como ilustrado na figura 4.20, o recipiente deve estar 50%
abastecido.
39
4.2.5.5 TELA DE VISUALIZAÇÃO DO AGENDAMENTOS
Figura 4.22 – Tela de Visualização Do Agendamentos.
Nesta tela, o usuário visualiza todos os agendamentos, cujos dados são
fornecidos pelo banco de dados do servidor. Agendamentos que foram removidos não
aparecem aqui. A partir da parte superior desta tela o usuário pode atualizar os dados
fornecidos pelo banco de dados do servidor ou adicionar um novo agendamento.
40
4.2.5.6 TELA PARA ADICIONAR HORARIO
Figura 4.23 – Tela para Adicionar Horário.
Nesta tela, o usuário seleciona a hora e os minutos para o agendamento e a
quantidade de gramas que deseja para o depósito de ração. A partir desta tela o
usuário pode ir para a tela de Escolha dos Dias da Semana, seleciona os dias, o
estado deste agendamento (ativado/desativado) e salva o novo agendamento no
servidor.
41
4.2.5.7 TELA PARA ESCOLHA DO DIAS DA SEMANA
Figura 4.24 – Tela para escolha dos Dias da semana.
Nesta tela, pode-se visualizar todos os dias da semana, e é possível a seleção
dos dias da semana caso desejar-se repetir o acionamento. Para salvar as escolhas
basta clicar em voltar.
42
4.3. COMUNICAÇÃO
Os Web services RESTful são serviços construídos com o estilo de arquitetura
RESTful. A construção de Web services com a abordagem RESTful está surgindo
como uma alternativa popular ao uso de tecnologias baseadas em SOAP para
implantação de serviços na Internet, por ser mais leve e ter a capacidade de transmitir
dados diretamente via HTTP (NETBEANS, 2015).
Web services criados sobre o protocolo HTTP geralmente possuem formatos
leves, se utilizarmos os métodos GET, DELETE, POST e PUT como padronização de
acesso (LECHETA, 2015). A Tabela 1 ilustra o que fazer para consultar as
informações do motor. Neste caso, é só realizar um GET na página /rpi/serial/motor/,
retornando no formato de JSON os dados do motor. Se realizarmos um PUT logo será
possível através do parâmetro statusMotor, atualizar o valor do estado do motor. Essa
lógica vale para toda a Tabela 1.
Logo o padrão REST utiliza os próprios métodos do protocolo HTTP para criar
a lógica necessária para o Web service (LECHETA, 2015).
URI Método Parâmetros Efeito
/rpi/serial/motor/ GET Consultar informações do motor.
PUT statusMotor Atualizar informações do motor.
/rpi/serial/reservatorio/ GET Consultar informações do reservatório.
POST nivelReservatorio Atualizar informações do reservatorio.
/rpi/serial/recipiente/ GET Consultar informações do recipiente.
POST pesoRecipiente Atualizar informações do recipiente.
/rpi/serial/horarios/ GET id, serial, horario,
qtd, ativo, seg, ter,
qua, qui, sex, sab,
dom
Consultar todos os agendamentos.
/rpi/serial/horario/ POST horário, qtd, ativo,
seg, ter, qua, qui,
sex, sab, dom
Adicionar um novo agendamento.
/rpi/serial/horario/id GET Buscar um agendamento.
PUT horário, qtd, ativo,
seg, ter, qua, qui,
sex, sab, dom
Atualizar um agendamento.
DELETE Remover um agendamento.
Tabela 1 – URIs de acesso a recursos e métodos HTTPs aceito por cada uma delas.
43
5. TESTES E RESULTADOS
Para certificar que o projeto apresentado atingiu seus objetivos específicos,
alguns testes de validação foram realizados e os resultados estão apresentados em
sequência. Para a realização dos testes do aplicativo foi utilizado um iPhone 5 com
capacidade de 16GB. O micro-controlador Raspberry Pi é a versão 1, modelo B com
memória RAM de 512MB, com 800MHz, processador ARM em que uma das duas
portas USB foi conectada a um mini adaptador TP-Link Wireless N USB 300 Mbps
(Modelo: TL-WN823N). O mesmo foi responsável pela conexão da Raspberry à
Internet. Abaixo seguem as características do computador utilizado como servidor
local:
Processador Intel Atom N455 1.66GHz / 512KB de memória cachê;
2GB de memória RAM;
Sistema Operacional Windows Server 2012 R2;
Latência entre o cliente e o servidor: menor que 2 milissegundos.
Na sequência serão apresentados os testes para validação relacionado à
precisão da balança, precisão do sensor do reservatório e testes de assertividade dos
comandos variados.
5.1. PRECISÃO DA BALANÇA
O teste de precisão da balança foi realizado para verificar a efetividade do peso
selecionado, e o que realmente era liberado de ração para o recipiente. Este teste foi
praticado com a seguinte metodologia, inicialmente o recipiente foi completamente
esvaziado, com o aplicativo aberto no smartphone. Foi selecionada a opção do
acionamento imediato, e escolhido o valor do peso desejável. Em seguida, houve a
ativação do despejo da ração para o recipiente, e com o término da execução,
visualizou-se o peso do recipiente no aplicativo. Armazenou-se o valor, e
seguidamente retirou-se a ração que havia sido inserida, realizando-se a medição em
uma balança externa. Posteriormente, comparou-se o valor resultante da balança com
o que era exibido no aplicativo.
O gráfico da Figura 5.1 apresenta os resultados das 50 medições realizadas
individualmente para cada padrão de peso 25g, 50g, 75g e 100g. Observa-se que
existe uma variação de 0g a 11g a mais do que era solicitado, na maioria dos testes.
44
Com estes dados foi possível então realizar os cálculos para descobrir a média
em cada peso. No peso de 25g, a média foi de 28,54g, no peso 50g, a média foi de
54,42g, no peso de 75g, a média foi de 78,42g e no peso de 100g, a média foi 104,92g.
Portanto, a variação média total é de 7%, em relação a 25g, a variação média foi de
11%, já em relação a 50g, a variação média foi de 8%, em relação a 75g, a variação
média foi de 4% e em relação a 100g a variação média foi de 5%.
Percebe-se que existe uma inconstância, possivelmente pelo fato de usarmos
um fuso sem fim, isto é, o sistema realiza o acionamento do fuso, o fuso gira e em
seguida é feito a captura do peso da ração que foi depositada. Desta forma, o
programa verifica se o peso é menor ou igual ao solicitado, explicando porque o
resultado do peso escolhido tenha sido em alguns momentos superior.
Figura 5.1: Gráfico dos resultados da precisão da balança.
5.2. PRECISÃO DO SENSOR DO RESERVATÓRIO
O teste de precisão do sensor do reservatório foi realizado para verificar a
efetividade da captura dos sensores e se estavam realmente calibrados com o nível
de ração. Este teste foi praticado através da seguinte metodologia: inicialmente o
reservatório foi completamente esvaziado. Com o aplicativo aberto no smartphone foi
selecionada a opção para visualizar o nível do reservatório. Em seguida foi observado
0
20
40
60
80
100
120
0 10 20 30 40 50 60
Peso
Número de testes
Precisão da balança
25g
50g
75g
100g
45
o nível, e posteriormente adicionou-se ração ao reservatório e verificou-se se o valor
correspondia realmente à quantidade de ração referente ao reservatório.
O gráfico da Figura 5.2 ilustra os resultados das 50 medições realizadas
individualmente para os 4 sensores. Constatou-se que a calibragem dos sensores,
com o protótipo totalmente fechado, estava ideal para o cenário, pois o resultado foi
excelente, 100% de acerto.
Figura 5.2: Gráfico dos resultados da precisão do sensor do reservatório.
5.3. TESTE DE DESEMPENHO DE COMANDOS VARIADOS
O teste de desempenho de comandos variados foi realizado para verificar o
tempo de resposta para executar as diversas funções do aplicativo. Este teste foi
praticado através da seguinte metodologia: inicialmente abriu-se o aplicativo e de
forma aleatória selecionou-se a funcionalidade desejada. Neste meio tempo
contabilizou-se através de um cronômetro o tempo para executar tal tarefa.
O gráfico da Figura 5.3 apresenta os resultados das 50 medições realizadas
referentes aos comandos das funções do aplicativo, desde a verificação do nível de
ração, nível do recipiente, visualização do relatório até o acionamento de ração
imediato ou agendado.
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
0 10 20 30 40 50 60
Sensore
s
Número de testes
Precisão do sensor do reservatório
Sensor 1
Sensor 2
Sensor 3
Sensor 4
46
Figura 5.3: Gráfico dos resultados da assertividade de comandos variados.
Com os dados obtidos através do tempo de resposta de cada função,
constatou-se que para o acionamento imediato de ração existiu uma variação de 0 a
3 segundos, cuja média foi de 0,92 segundos. As outras funcionalidades possuíram
uma constância em seu comportamento. O teste foi realizado em uma rede local, isto
é, com servidor e roteador localmente instalado, via WIFI.
5.4. TESTE DE ASSERTIVIDADE DE COMANDOS VARIADOS
O teste de assertividade de comandos variados foi realizado para verificar a
quantidade de comandos que foram reconhecidos corretamente nas diversas funções
do aplicativo. Este teste foi praticado através da seguinte metodologia: inicialmente
abriu-se o aplicativo e de forma aleatória selecionou-se a funcionalidade desejada,
verificando-se então se o comando solicitado era realizado com sucesso.
O gráfico da Figura 5.4 apresenta os resultados das 50 medições realizadas
referentes aos comandos das funções do aplicativo, desde verificar o nível de ração,
nível do recipiente, visualização do relatório e acionamento de ração imediato ou
agendado.
-0,5
0
0,5
1
1,5
2
2,5
3
3,5
0 10 20 30 40 50 60
Tem
po e
m s
egundos
Número de testes
Tempo de resposta dos comandos variados
Acionamento de raçãoimediata
Nível do reservatório
Nível do recipiente
Acionamento de raçãoagendada
Visualização do relatório
47
Figura 5.4: Gráfico dos resultados da assertividade de comandos variados.
Conclui-se que existe uma eficácia na execução dos comandos efetuados,
sendo que em todos os comandos realizados foi unânime as execuções, talvez pelo
fato de ser em rede local. Isto favoreceu em 100% os resultados em todos os testes
de assertividade.
0%
20%
40%
60%
80%
100%
120%
0 10 20 30 40 50 60
Porc
enta
gem
dos c
om
andos e
xecuta
dos
com
sucesso
Número de testes
Comandos variados executados com sucesso
Acionamento de raçãoimediata
Nível do reservatório
Nível do recipiente
Acionamento de raçãoagendada
Visualização do relatório
48
6. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS
Este trabalho apresentou um protótipo de um alimentador para cães e gatos,
controlado e monitorado remotamente, através do smartphone, beneficiando não
apenas a saúde do animal, mas também a rotina de seu proprietário.
O Smart Pet Feeder é uma ferramenta que pode otimizar a rotina dos
proprietários de cães e gatos, melhorando a qualidade de vida dos mesmos. A grande
vantagem deste alimentador, em relação aos alimentadores existentes no mercado, é
o monitoramento do consumo de ração individual por animal, e o fato do mesmo se
conectar à Internet e poder ser controlado por um smartphone ou tablet. O Smart Pet
Feeder também possibilita a verificação de ração no recipiente e possui um controle
de redução de sobras de ração.
Foram realizados testes de precisão da balança e notou-se que há uma
variância média de 7% em relação à quantidade de ração solicitada pelo usuário. Os
testes de precisão dos níveis de ração do reservatório foram 100% eficazes e o teste
de assertividade foram unânimes em mostrar que o SMART PET FEEDER realiza
todos os comandos e possui um muito bom. O único teste que teve uma variação
média de 0,92 segundos foi o de acionamento imediato de ração.
Para desenvolvimentos futuros, é recomendado a alteração do micro
controlador, do motor e de um novo tipo de exibição que permita o gerenciamento das
informações localmente no aparelho (para caso a o usuário não possua uma conexão
com a internet). Há também a necessidade de desenvolvimento de um produto que
atenda às exigências de comportamento e bem-estar animal, e que, portanto, seja
validado cientificamente segundo tais preceitos.
49
7 BIBLIOGRAFIA
ADAFRUIT (2015). Raspberry Pi Modelo B 512 MB de RAM. [S.l.]. Disponível em:
<https://www.adafruit.com/products/998>. Acesso em: 07 dez. 2015 às 07h04.
ALBANO, L. L. M. (2015a). Saúde animal: Aspectos Importantes Da Nutrição
Canina. Disponível em: http://www.saudeanimal.com.br/artigo_luigi_nutricao010.htm.
Acesso em: 11 nov. 2015 às 14h45.
ALBANO, L. L. M. (2015b). Saúde animal: Uma Ração Universal. Disponível em:
http://www.saudeanimal.com.br/artigo_luigi_nutricao002.htm. Acesso em: 11 nov.
2015 às 14h46.
ALBANO, L. L. M. (2015c). Saúde animal: Alimento Correto. Qualidade De Vida
Métodos De Alimentação. Disponível em:
http://www.saudeanimal.com.br/artigo_luigi_nutricao007.htm. Acesso em: 11 nov.
2015 às 14h47.
ABINPET (2013). Associação Brasileira da indústria de produtos para animais de
estimação: Dados de mercado. [2013?]. Disponível em:
http://abinpet.org.br/site/mercado/. Acesso em: 02 dez. 2015 às 20h53.
BRAMBELL REPORT, 1965. Report of the Technical Committee to enquire into the
welfare of animals kept under intensive livestock husbandry systems. Her Majesty’s
Stationery Office, London, UK
CATFI (2015). The Smartest Feeder Ever. [S.l.]. Disponível em:
<https://www.indiegogo.com/projects/bistro-a-smart-feeder-recognizes-your-cat-s-
face#/>. Acesso em: 11 nov. 2015 às 16:32.
DE PAULA VIEIRA, A., GUESDON, V., DE PASSILLÉ, A.M., VON KEYSERLINGK,
M.A.G., WEARY, D.M. (2008). Behavioural indicators of hunger in dairy calves. Appl.
Anim. Behav. Sci. 109: 180-189.
FILIPEFLOP (2015). DETECTOR DE PROXIMIDADE COM SENSOR
INFRAVERMELHO. Disponível em: <http://blog.filipeflop.com/sensores/sensor-
infravermelho-arduino.html>. Acesso em: 11 nov. 2015 às 17:27.
50
LECHETA, R. R. (2015). Google Android: Aprenda a criar aplicações para
dispositivos móveis com o Android SDK. 5. ed. São Paulo: Novatec, 2015. 1068 p.
(978-85-7522-468-7)
MARTINS, L. F. (2005) Humm, come tudo...: a alimentação ideal para o seu pet estar
sempre bem. Almanaque Gatos & Raças 2005, São Paulo, n. 3, p. 22-25.
MAPA (2015). Ministério da Agricultura: Alimentação Animal. Disponível em:
<http://agricultura.gov.br/animal/alimentacao>. Acesso em: 02 dez. 2015 às 21h12.
MERCADO LIVRE (2015). Mini Balança Digital Diamond - Alta Precisão. Disponível
em: <http://produto.mercadolivre.com.br/MLB-705011151-mini-balanca-digital-
diamond-alta-preciso-01g-ate-500g-_JM>. Acesso em: 7 dez. 2015 às 06h56.
NETBEANS (2015). Introdução aos Web Services RESTful. [S.l.]. Disponível em:
<https://netbeans.org/kb/docs/websvc/rest_pt_BR.html>. Acesso em: 13 dez. 2015 às
22:26.
SUPERFEED. [S.l.] (2015). Disponível em: <http://www.super-feeder.com>. Acesso
em: 11 nov. 2015 às 16:36.
ROBOCORE (2015). Motor de Passo - NEMA 23 - 15,0 kgf.cm. Disponível em:
<https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=609>. Acesso
em: 11 nov. 2015 às 17h38.
VARGAS, R. M. (2011).. Controle de estoque a distância por dispositivo
móvel. TCC (Graduação) - Curso de Engenharia da Computação, Núcleo de Ciências
Exatas e Tecnológicas, Universidade Positivo, Curitiba, 51 ff. Disponível em:
<http://www.up.edu.br/blogs/engenharia-da-computacao/wp-
content/uploads/sites/6/2015/06/2011.18.pdf>. Acesso em: 12 dez. 2015.