56
Faculdade de Ciência e Tecnologia de Montes Claros Felipe Túlio de Castro DESENVOLVIMENTO DE UMA APLICAÇÃO MÓVEL BASEADA NA PLATAFORMA ANDROID PARA O CONTROLE DE SISTEMAS DE IRRIGAÇÃO Montes Claros - MG 2012

DESENVOLVIMENTO DE UMA APLICAÇÃO MÓVEL BASEADA …felipetulio.com.br/files/textos/monografia.pdf · 2.3 Android Software Development Kit ... aplicativo que funcione em dispositivos

  • Upload
    vongoc

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Faculdade de Ciência e Tecnologia de Montes Claros

Felipe Túlio de Castro

DESENVOLVIMENTO DE UMA APLICAÇÃO MÓVEL

BASEADA NA PLATAFORMA ANDROID PARA O CONTROLE DE SISTEMAS DE IRRIGAÇÃO

Montes Claros - MG 2012

Felipe Túlio de Castro

DESENVOLVIMENTO DE UMA APLICAÇÃO MÓVEL BASEADA NA PLATAFORMA ANDROID PARA O CONTROLE DE SISTEMAS DE

IRRIGAÇÃO

Monografia apresentada ao Curso de Engenharia de Computação da Faculdade de Ciência e Tecnologia de Montes Claros, como parte dos requisitos para obtenção do título de Engenheiro de Computação.

Orientador: PROF. MS. JOÃO CARNEIRO NETTO

Montes Claros - MG 2012

FUNDAÇÃO EDUCACIONAL MONTES CLAROS Faculdade de Ciência e Tecnologia de Montes Claros

Felipe Túlio de Castro

DESENVOLVIMENTO DE UMA APLICAÇÃO MÓVEL BASEADA NA

PLATAFORMA ANDROID PARA O CONTROLE DE SISTEMAS DE

IRRIGAÇÃO

Esta monografia foi julgada adequada como parte dos

requisitos para a obtenção do diploma de Engenheiro de

Computação. Aprovada pela banca examinadora da

Faculdade de Ciência e Tecnologia de Montes Claros

______________________________________

Prof. Maurílio José Inácio

Coord. do Curso de Engenharia de Computação

Banca Examinadora

Prof. Ms. João Carneiro Netto, FACIT ____________________________ (Orientador)

Prof. Dr. Alberto Alexandre Assis Miranda, FACIT ____________________________

Montes Claros, 31 de outubro de 2012.

Dedico este trabalho a todos aqueles que assim como eu acreditam que a força de vontade e o trabalho digno mudarão o mundo.

AGRADECIMENTOS

Agradeço a Deus pela oportunidade de aprimorar meus conhecimentos e experiências

de vida.

Agradeço a João Carneiro Netto pela orientação nesse trabalho e por ter sido o primeiro

professor a me incentivar no caminho da pesquisa e do desenvolvimento tecnológico.

Agradeço a meus pais por terem me ajudado e me criado da melhor forma possível.

Agradeço a Aline Angélica Costa Teixeira por me mostrar que os recursos do mundo

devem ser preservados também para os animais.

Agradeço a Breno Peixoto dos Santos pelo ânimo e pela paciência com os quais ele me

tratou todos esses anos.

Agradeço a Dávila Patrícia Ferreira Cruz pelas incontáveis ajudas nos trabalhos em

equipe.

Agradeço a Camila Tejada Berloffa por sempre corrigir as formatações de meus

trabalhos acadêmicos.

Agradeço a Maurílio José Inácio pelas inúmeras contribuições técnicas e pela atenção

disponibilizada ao longo de todos esses anos de curso.

Agradeço a Renato Dourado Maia por me mostrar que ainda existem professores

apaixonados pelo que fazem.

Agradeço a Luciana Balieiro Cosme por me ensinar que programação pode ser

divertida.

Agradeço aos demais amigos, dos mais variados grupos aos quais pertenço, por me

ajudarem a compreender melhor minha própria existência.

Por fim, agradeço aos demais colegas e mestres da faculdade, pelas inúmeras

experiências vividas.

“(...) Android represents an exciting new opportunity to write innovative applications for mobile devices.”

Reto Meier – Software Developer

RESUMO

Esse trabalho visa entender o funcionamento dos sistemas automatizados de irrigação, propondo o desenvolvimento de um aplicativo que transforme um dispositivo móvel em uma ferramenta capaz de comunicar-se com uma base de dados disponível na Internet, facilitando a visualização das informações obtidas por uma rede de sensores colocada na fazenda. Foram utilizadas técnicas e ferramentas de desenvolvimento de software, específicas para a plataforma móvel Android, juntamente com serviços de armazenamento de dados baseados no conceito de Computação nas Nuvens, disponibilizados pelo servidor Cosm. Para efeito de testes preliminares, dados artificiais foram inseridos na base de dados do servidor. A comunicação entre o aplicativo móvel e o serviço de armazenamento de dados deu-se de forma satisfatória, alcançando tempos médios de resposta na faixa dos segundos. O sistema integrado demonstrou eficiência no objetivo de obter os dados rapidamente, auxiliando na visualização das informações, o que acarretaria em uma tomada de decisão mais consciente sobre como e quando utilizar o recurso hídrico disponível para a irrigação da cultura.

Palavras-Chave: Android, Cosm, irrigação.

ABSTRACT

This work aims to understand the functioning of automated irrigation systems and suggests the development of an application that turns a mobile device into a tool capable of communicating with a database available on the Internet, facilitating the visualization of information obtained by a network of sensors placed in a farm. Techniques and tools for software development, specific for the Android mobile platform, were used along with data storage services based on the Cloud Computing concepts, made available by the Cosm server. For the purpose of preliminary tests, artificial data were inserted on the database of the server. The communication between the mobile application and the data storage service happened satisfactorily, reaching average response times in the range of seconds. The integrated system demonstrated efficiency in obtaining the data quickly, aiding in the visualization of information, which would result in a decision-making that is more conscious about how and when to use the hydric resource available for the irrigation.

Keywords: Android, Cosm, irrigation.

LISTA DE ILUSTRAÇÕES

FIGURA 1 - Esquema da estrutura de uma rede de sensores sem fio. ................................... 15

FIGURA 2 - Estrutura geral de funcionamento do projeto WaterBee. ................................... 16

FIGURA 3 - Arquitetura da plataforma Android. ................................................................. 20

FIGURA 4 - Tablet Samsung Galaxy Tab P6210. ................................................................ 24

FIGURA 5 - Página inicial do software Eclipse. ................................................................... 26

FIGURA 6 - Tela inicial do portal para cadastro de usuários. ............................................... 27

FIGURA 7 - Tela para criação de feeds. ............................................................................... 28

FIGURA 8 - Aviso de criação de feeds com sucesso. ........................................................... 28

FIGURA 9 - Página inicial do portal do Cosm. .................................................................... 29

FIGURA 10 - Tela após o login com destaque para o serviço de criação de chaves. ............. 30

FIGURA 11 - Erro retornado quando não há permissão de uso do recurso de Internet. ......... 31

FIGURA 12 - Erro retornado quando não existe tratamento de manipulação de threads. ...... 32

FIGURA 13 - Linha de código que fornece a permissão para usar o recurso de Internet. ...... 32

FIGURA 14 - Página inicial do aplicativo. ........................................................................... 33

FIGURA 15 - Painel de configuração dos parâmetros. ......................................................... 34

FIGURA 16 - Mensagem de aviso do aplicativo quando um parâmetro é ultrapassado. ........ 35

FIGURA 17 - Aviso de desligamento automático. ................................................................ 35

FIGURA 18 - Tela de apresentação dos dados obtidos no servidor. ...................................... 36

FIGURA 19 - Visualização da corrente elétrica em forma de gráfico.................................... 37

FIGURA 20 - Visualização da temperatura em forma de gráfico. ......................................... 37

FIGURA 21 - Visualização da umidade do solo a 40 centímetros em forma de gráfico. ........ 38

FIGURA 22 - Visualização da umidade do solo a 60 centímetros em forma de gráfico. ........ 38

FIGURA 23 - Visualização da umidade do ar em forma de gráfico. ..................................... 39

FIGURA 24 – Estrutura JSON disponibilizada pelo servidor Cosm. ..................................... 40

FIGURA 25 - Fluxograma da lógica de execução para receber dados. .................................. 41

FIGURA 26 - Função que busca os dados do servidor Cosm. ............................................... 42

FIGURA 27 - Código-fonte responsável pela impressão dos dados na tela. .......................... 42

FIGURA 28 - Tela de controle remoto dos recursos de irrigação. ......................................... 43

FIGURA 29 - Instância da válvula 01 no Cosm com o gatilho armazenado. ......................... 44

FIGURA 30 - Fluxograma do controle remoto do sistema de irrigação. ................................ 45

FIGURA 31 - Código-fonte que executa a criação de uma trigger. ....................................... 46

FIGURA 32 - Mensagem de confirmação do acionamento remoto. ...................................... 46

FIGURA 33 - Fluxograma para o desligamento de válvulas. ................................................ 47

FIGURA 34 - Tela de informações sobre o ambiente de monitoramento. ............................. 48

SUMÁRIO

INTRODUÇÃO .................................................................................................................. 10

CAPÍTULO 1 A TECNOLOGIA NA AGRICULTURA ................................................. 12 1.1 Irrigação de precisão .................................................................................................... 13 1.2 Sistema de aquisição de dados ..................................................................................... 14 1.2.1 Sistemas embarcados................................................................................................. 15 1.3 Mudança de paradigma ............................................................................................... 15 1.4 A Internet e o advento da Computação nas nuvens .................................................... 17 1.5 Dispositivos móveis e suas plataformas ....................................................................... 17 1.6 A plataforma Android .................................................................................................. 18 1.6.1 Open Handset Alliance (OHA) .................................................................................. 19 1.7 Arquitetura da plataforma Android ........................................................................... 19 1.7.1 Linux Kernel (Núcleo Linux)..................................................................................... 20 1.7.2 Android Runtime (Tempo de execução do Android) ................................................ 21 1.7.3 Libraries (Bibliotecas) ................................................................................................ 21 1.7.4 Application Framework (Framework de aplicações) ................................................. 21 1.7.5 Applications (Aplicações) ........................................................................................... 22

CAPÍTULO 2 MATERIAIS E MÉTODOS ...................................................................... 23 2.1 Tablet Galaxy Tab P6210 ............................................................................................. 23 2.2 Linguagem de programação Java................................................................................ 24 2.3 Android Software Development Kit (SDK) ................................................................... 25 2.4 Eclipse ........................................................................................................................... 26 2.5 Servidor Cosm .............................................................................................................. 26

CAPÍTULO 3 RESULTADOS: APRESENTAÇÃO, ANÁLISE E DISCUSSÃO .......... 29 3.1 Desenvolvimento do aplicativo..................................................................................... 48 3.2 Ferramentas para conexão com a Internet ................................................................. 49 3.3 Formato dos dados disponibilizados pelo Cosm.......................................................... 49

4 CONSIDERAÇÕES FINAIS .......................................................................................... 51

REFERÊNCIAS ................................................................................................................. 52

10

INTRODUÇÃO

Os agricultores do norte de Minas Gerais dificilmente podem contar com a sempre

regular precipitação de chuva, de forma a gerar um bom cultivo de seus campos. Quando

alguns projetos de irrigação foram iniciados na região, como o projeto Jaíba, a situação

mostrou capacidade de melhorar. Junto a esse novo cenário tem-se um aumento na utilização

de tecnologias de automação para os processos do campo agrícola. Esse aumento contribui

para que os processos tendam a se tornar mais produtivos, desde que exista uma forma de

gerenciamento bem clara e precisa. A crescente demanda por tecnologia na agricultura,

principalmente no contexto do processo de irrigação, força os modelos antigos de sistemas

automatizados a necessitarem de ferramentas rápidas e de fácil utilização para gerenciar as

informações obtidas nas fazendas. Com essa premissa, inúmeras pesquisas estão sendo

trabalhadas para alcançar a maximização da produção dos campos agrícolas e a minimização

da área de plantio, o que acarreta em uma menor degradação do meio ambiente.

Tendo em vista que a manutenção de um campo agrícola consome tempo considerável

do ser humano, é válido otimizar esse recurso para gerar conforto, ganho de tempo e

confiabilidade nas decisões adotadas diariamente. O objetivo deste trabalho é propor um

aplicativo que funcione em dispositivos móveis – seja em um smartphone ou em um tablet –

baseados na plataforma Android. O aplicativo é integrado a um servidor de armazenamento

de dados denominado Cosm. Através dessa integração, a aplicação móvel deve ser capaz de

gerir e facilitar o controle dos processos de irrigação, obtendo os dados disponíveis no

servidor da Internet e os apresentando aos usuários do sistema para que a tomada de decisões

tenha maior embasamento técnico, o que aumentará a usabilidade dos recursos. O resultado

dessa integração é aplicado no problema de monitoramento de ambientes.

Nos capítulos a seguir serão descritos todos os passos do presente trabalho. No capítulo

1 serão apresentados ao leitor alguns conceitos e ferramentas tecnológicas, bem como o

contexto da agricultura e da necessidade de precisão e confiabilidade de informações do

ambiente.

No capítulo 2 serão descritos os métodos, as ferramentas e as técnicas utilizadas para o

desenvolvimento da aplicação móvel e para a integração com o servidor Cosm

disponibilizado na Internet. O ambiente de testes e os equipamentos utilizados também serão

apresentados ao leitor.

11

No capítulo 3, os resultados obtidos com os testes realizados em laboratório serão

apresentados e discutidos. Figuras e tabelas descreverão as respostas conseguidas na

integração do software com o servidor. Serão propostas algumas telas de controle e

visualização de informações para o aplicativo. Com os dados de funcionamento da integração

dos sistemas, foi possível levantar análises e opiniões sobre a aplicabilidade do produto obtido

nesse trabalho, a fim de averiguar a eficácia do mesmo.

Por fim, na parte destinada às considerações finais, são feitas algumas considerações e

indagações sobre as impressões dos resultados e uma possível continuidade do projeto.

Apresentam-se também nessa parte algumas ideias para novos testes a serem produzidos em

pesquisa futura.

12

CAPÍTULO 1 A TECNOLOGIA NA AGRICULTURA

A agricultura sempre foi um meio de sobrevivência utilizado pelo homem. O alimento

fornecido pela natureza dava vida e força aos que os colhiam e hoje não é diferente. Contudo,

nos últimos tempos o homem está enfrentando uma dificuldade nas questões da

sustentabilidade e da provisão de alimentos para a humanidade. Segundo afirma Lemos,

Nogueria e Torre-Neto (2004), a área cultivada no planeta era de 1,5 bilhões de hectares para

os 6 bilhões de pessoas que viviam na Terra em 2004. Na época em que o artigo foi publicado

na revista Analytica – periódico especializado em instrumentação e controle de qualidade –

havia uma previsão de que em 2025, teríamos no planeta mais de 8 bilhões de pessoas e

apenas 1,6 bilhões de área de cultivo.

Tendo em mente problemas como este, inúmeras pesquisas e tecnologias estão sendo

trabalhadas e desenvolvidas para melhorar o processo de agricultura, desde a plantação até a

colheita. Surgem então técnicas para aumento de produtividade no campo, como por exemplo,

a chamada automação agrícola.

A ideia por trás do conceito de automação agrícola é fornecer ao campo da agricultura

ferramentas tecnológicas capazes de simplificar e controlar melhor os recursos existentes para

o processo, gerando um resultado mais significativo e com menos desperdício para o

produtor. O uso mais racional dos recursos naturais, a economia da energia utilizada e a maior

eficiência dos processos são algumas metas objetivadas na automação da agricultura. Com

este conceito temos a união de várias áreas do conhecimento contribuindo para a elevação dos

níveis de qualidade dos processos e produtos.

Os resultados do avanço tecnológico nesta área para a sociedade são consideráveis.

Quando o processo tem suas variáveis internas e externas avaliadas, é possível saber qual

parte da produção está ou ficará abaixo do esperado e buscar soluções para contornar o

problema. Com estas informações em mãos, existe uma maior produtividade da lavoura e,

consequentemente, mais alimentos com melhor qualidade são produzidos. Com a

automatização, temos uma redução dos acidentes de trabalho e uma minimização dos erros

originados por falha humana, o que evita retrabalhos e prejuízos aos produtores, influenciando

numa plausível queda nos preços dos produtos perante o mercado consumidor.

De acordo com o site do Laboratório de Automação Agrícola (LAA), do Departamento

de Engenharia de Computação e Sistemas Digitais da Escola Politécnica da Universidade de

São Paulo, a automação agrícola vem se desenvolvendo significativamente no mundo e no

13

Brasil. Entre os campos de pesquisa existentes pode-se citar a monitoração de veículos e

implementos agrícolas (semeadora, carregadora de cana-de-açúcar), o controle de ambientes

(casas de vegetação), a zootecnia de precisão e a modelagem de fotossíntese e seqüestro de

carbono.

1.1 Irrigação de precisão

Existem muitas ramificações que podem ser trabalhadas dentro da agricultura de

precisão, mas uma em especial se destaca devido a sua importância. A irrigação, quando

trabalhada corretamente, fornece para a cultura um material fundamental para seu

crescimento, a água. Porém, se ela não for trabalhada periodicamente, a chance de sua

plantação não prosperar é grande. A forma como a irrigação será tratada no projeto de cultivo

poderá ditar o sucesso ou o fracasso do mesmo.

A irrigação de precisão utiliza tecnologias que permitem aplicar quantidades uniformes de águas em locais precisos dentro do perfil do solo, proporcionando tratamentos diferenciais de irrigação focalizando plantas individualmente ou pequenas áreas dentro do campo (CRUZ, 2009, p. 22).

Esta técnica possui os mesmos objetivos e a mesma forma de trabalho da agricultura de

precisão, com a diferença de ser especializada para um processo específico. Seu campo de

atuação restringe-se a controlar e melhorar o fornecimento de água para a cultura, de maneira

que os recursos hídricos não sejam desperdiçados. Resumidamente, a irrigação de precisão

pode ser entendida como a definição de quando utilizar a água e do quanto utilizar.

Inúmeros contratempos surgem com o despejo incorreto da água sobre o solo. Quando

este é pouco abastecido, ele acaba não fornecendo o devido ambiente para que as plantas

cresçam e assim elas serão de baixa qualidade. Isso gera um desperdício da água que foi

utilizada e que não teve serventia nenhuma. Por outro lado, quando muito abastecido, o solo

satura e sua aeração fica impedida. Além disso, o excesso da água acaba propiciando o

desenvolvimento de doenças, que podem causar prejuízo à cultura (ALBUQUERQUE;

DURÃES, 2008 apud GUIMARÃES, 2011).

Para que a ideia da irrigação de precisão funcione corretamente e seja viável para o

produtor, é preciso levar em conta alguns fatores que a tornam um bom investimento. Por

14

exemplo, os sistemas de aquisições de dados precisam ser aliados a um bom gerenciamento

das análises e a definição de uma política administrativa (SONKA; BAUER; CHERRY, 1997

apud CRUZ, 2009).

1.2 Sistema de aquisição de dados

Um sistema de aquisição de dados é um conjunto de ferramentas eletrônicas e

computacionais unidas para desempenhar funções específicas, sendo capazes de coletar,

armazenar e divulgar os dados advindos do solo.

A vantagem no uso de sistemas como este é a sua confiabilidade nos dados coletados. A

precisão com que os componentes conseguem armazenar e repassar estes dados aos

operadores do sistema é fundamental para a adoção de futuras estratégias de irrigação. Além

disso, a possibilidade de se ter informações sobre o cultivo de forma remota poupa tempo para

o produtor.

Muito já se evoluiu em termos de tecnologias para a plantação e para a irrigação em si.

Diversos modelos já foram criados e muitas ferramentas foram combinadas para fornecer uma

irrigação inteligente. Os sistemas embarcados, as redes de sensoriamento e os computadores

pessoais são amplamente utilizados na irrigação de precisão.

Uma técnica bem aceita hoje é fazer o uso de uma rede de sensores conectada a um

computador para monitorar as variáveis que influenciam numa plantação. Sensores de

temperatura do ar, de pressão hidráulica, de temperatura do solo, de umidade relativa do ar e

outros são instalados no campo e programados para comunicar-se com o computador, assim

como mostra a Fig. 1.

15

FIGURA 1 - Esquema da estrutura de uma rede de sensores sem fio. Fonte: http://www.wirelessbrasil.org

1.2.1 Sistemas embarcados

O conjunto de componentes, alguns sendo hardware e outros sendo software, embutidos

dentro de outros equipamentos eletroeletrônicos e que possuem a finalidade de realizar

alguma atividade específica são os sistemas conhecidos como embarcados. Este tipo de

sistema é programado para resolver questões e problemas de coisas do cotidiano. Seu

processamento é feito para uma ou algumas funções em especial, diferentemente do

computador que é uma ferramenta para cálculos e tarefas gerais.

Os sistemas embarcados estão em grande parte de eletrônicos como o celular, a

televisão com alguma funcionalidade mais interativa com o usuário, o computador de bordo

de um veículo etc.

A praticidade é o ponto principal que incentiva o uso desta ferramenta. Suas dimensões

reduzidas permitem o deslocamento fácil, tornando o sistema de aquisições de dados flexível

para se adaptar às mudanças de localização que se fizerem necessárias.

1.3 Mudança de paradigma

Apesar das muitas vantagens que podem ser associadas à estrutura de projetos de

irrigação automatizados, ela não atende a demanda da mobilidade que hoje é imprescindível

para muitas pessoas. Ter um computador centralizador de dados da rede de sensores foi uma

conquista para a irrigação de precisão muito valiosa, mas que hoje não pode cobrir a

16

facilidade que é ter um dispositivo móvel capaz de te mostrar relatórios de suas culturas a

uma distância considerável.

Pensando na mudança comportamental da sociedade, um grupo de pesquisadores

europeus desenvolveu uma estrutura diferente, agregando a estrutura antiga algumas

tecnologias que agora convivem com o ser humano. A Internet e os dispositivos móveis como

os smartphones e os tablets estão presentes nos bolsos de parte considerável da população.

Denominado de WaterBee, o projeto europeu consiste em uma série de sensores que medem o

conteúdo de água no solo e outros parâmetros que influenciem diretamente na plantação. Os

dados obtidos são encaminhados através da rede até um gateway1 para então serem enviados a

um serviço central hospedado na Internet. Os relatórios destes dados são apresentados ao

usuário através de um aplicativo móvel instalado no smartphone ou por um navegador de

Internet instalado no computador pessoal.

Observamos que o elemento do computador pessoal não foi abolido da estrutura, apenas

criou-se uma forma alternativa de visualização para o usuário. Junto a essa mudança, surgiu o

elemento do smartphone. A escolha de incluir a plataforma móvel na estrutura de projetos de

irrigação de precisão foi baseada em sua grande visibilidade e adesão. Segundo Lecheta

(2010), no ano de 2010 estudos mostravam que mais de 3 bilhões de pessoas possuíam um

aparelho celular, e isso correspondia a mais ou menos metade da população mundial. A Fig. 2

mostra a interligação entre os elementos existentes para o sistema de irrigação do projeto

WaterBee.

FIGURA 2 - Estrutura geral de funcionamento do projeto WaterBee. Fonte: http://www.waterbee.eu

1 Gateway é uma espécie de “portão de entrada” que separa uma rede local da Internet. Ela serve, basicamente, como ferramenta para prover a comunicação entre estas duas redes diferentes.

17

O projeto europeu WaterBee é pioneiro na utilização do elemento móvel para servir

como aplicação cliente do sistema de aquisição de dados desenvolvido para a plantação.

Apesar de ainda estar em fase de testes, o projeto mostrou bons resultados e ganho

significativo de produtividade graças à arquitetura proposta que usufrui da praticidade e

conectividade dos dispositivos móveis. Novos testes estão sendo feitos para verificar o

desempenho do WaterBee em outros ambientes de cultura.

1.4 A Internet e o advento da Computação nas nuvens

A Internet se popularizou muito desde os tempos de sua criação. Hoje, ela está

disponível não somente às grandes universidades e centros militares, mas também nas casas,

shoppings, comércios, indústrias etc. A disponibilidade que possuímos de acessá-la traz

inúmeros benefícios para quem deseja reduzir custos ou melhorar a usabilidade do espaço

pessoal e profissional. A computação nas nuvens veio consolidar a proposta de um serviço de

informática onde se paga por aquela estrutura computacional que foi realmente utilizada, ou

seja, “cada parte desta infraestrutura é provida como um serviço e, estes são normalmente

alocados em centros de dados, utilizando hardware compartilhado para computação e

armazenamento.” (BUYYA et al., 2009b apud SOUSA; MOREIRA; MACHADO, 2009,

[s.n.t]).

O termo nuvem é usado como metáfora para a Internet e a computação baseada nela foi

projetada para vislumbrar três benefícios básicos:

O primeiro benefício é reduzir o custo na aquisição e composição de toda infraestrutura requerida para atender as necessidades das empresas, podendo essa infraestrutura ser composta sob demanda e com recursos heterogêneos e de menor custo. O segundo é flexibilidade que esse modelo oferece no que diz respeito à adição e substituição de recursos computacionais, podendo escalar tanto em nível de recursos de hardware quanto software para atender as necessidades das empresas e usuários. O último benefício é prover uma abstração e facilidade de acesso aos usuários destes serviços. (SOUSA, MOREIRA; MACHADO, 2009, [s.n.t]).

1.5 Dispositivos móveis e suas plataformas

Inúmeros são os sistemas operacionais que hoje estão competindo entre si por uma

parcela do mercado consumidor de dispositivos móveis e, portanto, temos que “a escolha de

18

uma plataforma ideal para o desenvolvimento de um projeto significa optar por uma solução

que forneça os melhores benefícios, em termos de custos, eficiência e tempo de

desenvolvimento esperados para a finalização do projeto” (AQUINO, 2007, p. 3).

Segundo Morimoto (2009), os principais sistemas operacionais existentes para

smartphones no mercado são o PalmOS da Palm Inc., o Windows Mobile da Microsoft, o

Symbian OS da Psion, o BlackBerry OS da empresa canadense Research In Motion, o iPhone

OS da Apple e o Android da Google Inc.

Um dos motivos mais claros para esta grande diversificação de empresas investindo no

setor de mobilidade é a demanda que o consumidor faz por comodidade e aumento de

produtividade. Quando o usuário utiliza um só equipamento com todas as funcionalidades de

que ele necessita em seu dia-a-dia, seja na vida pessoal ou na profissional, sua produtividade é

aumentada graças ao ganho com tempo de acesso e manuseio de dados, além de gerar mais

comodidade no armazenamento e deslocamento dos mesmos. O fator conectividade também é

essencial na decisão de usar ou não um dispositivo móvel. Possuir um equipamento capaz de

te deixar a par de todas as informações sobre o que acontece ao seu redor pode ser um grande

diferencial quando se trata de tomar decisões constantemente. Lecheta (2010) afirma que as

empresas buscam ferramentas modernas e ágeis para o desenvolverem soluções corporativas,

visando o aumento do lucro, enquanto que o usuário comum deseja um celular com design

elegante e moderno e que seja fácil de utilizar, possuindo diversas aplicações a favor de seu

entretenimento e lazer.

Com tantas opções a disposição do consumidor no mercado, cada qual com suas

características, faz-se necessário definir um sistema operacional a ser trabalhado. Assim, para

efeito deste trabalho, o sistema operacional escolhido foi o Android, o sistema da empresa

Google Inc..

1.6 A plataforma Android

A plataforma Android é baseada no kernel2 2.6 do já conhecido sistema operacional

Linux3 e oferece aos desenvolvedores “(...) um ambiente de desenvolvimento bastante

poderoso, ousado e flexível.” (LECHETA, 2010, p. 19). Uma característica interessante sobre

2 Kernel é um termo em inglês para a palavra núcleo. 3 Linux é um sistema operacional muito conhecido pela comunidade como o possível concorrente do sistema Windows da Microsoft. O Linux, salvo algumas exceções, é utilizado para computadores pessoais.

19

o Android é o fato de que ele é livre e de código-fonte aberto. Desta maneira, a evolução e o

melhoramento da plataforma podem ser feitos por muitos programadores ao redor do mundo,

promovendo rapidez nas correções de falhas existentes na plataforma.

Apesar de ter o código-fonte aberto e livre para o uso de qualquer um, a plataforma é

mantida oficialmente por um grupo de empresas de tecnologias que centraliza os esforços de

divulgação do Android para a comunidade de desenvolvedores e para os consumidores. Esta

aliança é conhecida pelo nome Open Handset Alliance.

1.6.1 Open Handset Alliance (OHA)

Este grupo é composto por grandes empresas do ramo de tecnologia e telefonia,

empresas essas lideradas pelo Google. O objetivo desta aliança é “(...) definir uma plataforma

única e aberta para celulares para deixar os consumidores mais satisfeitos com o produto

final.” (LECHETA, 2010, p. 21). Os membros são compostos por organizações de diversos

países. No site da OHA (vide referências bibliográficas), é possível encontrar os nomes dos

membros da aliança divididos por área de mercado em que elas atuam.

A OHA também afirma em seu site que o Android foi desenvolvido a partir do zero

para que ele fosse a primeira plataforma aberta, completa e livre criado especificamente para

ser utilizado em dispositivos móveis. O fato de um sistema operacional ter sido imaginado e

modelado para dispositivos móveis reforça a possibilidade de o sistema ser capaz de gerenciar

o gargalo gerado entre gastar menos energia e ter maior desempenho.

1.7 Arquitetura da plataforma Android

A plataforma do Android possui vários módulos necessários para uma boa execução dos

aplicativos baseados nela. Cada parte é responsável por algumas atividades específicas de

controle e execução dos recursos dos dispositivos móveis e dos acessos ao sistema

operacional. Esses módulos gerenciam a forma de trabalho da plataforma. De acordo com

Frank Ableson (2008), designer de software da IBM, a melhor maneira de descrevermos a

plataforma é como uma pilha, devido ao fato dela ser um conjunto empilhado de

componentes. A Fig. 3 apresenta a arquitetura da plataforma Android. Os módulos mostrados

20

na figura abaixo vão desde núcleo do sistema até as aplicações de interação com o usuário.

Cada parte será descrita nos tópicos a seguir.

FIGURA 3 - Arquitetura da plataforma Android. Fonte: http://www.linhadecodigo.com.br

1.7.1 Linux Kernel (Núcleo Linux)

O Android foi baseado na versão 2.6 do núcleo do Linux e ele “(...) é responsável por

gerenciar a memória, os processos, threads4 e a segurança dos arquivos e pastas, além de

redes e drivers5 .” (LECHETA, 2010, p. 23). O núcleo também provê uma camada de

abstração entre o hardware do dispositivo e as pilhas de requisições as operações do sistema.

Como o núcleo do Linux já é bem desenvolvido em termos de codificação, pois seu

estudo e desenvolvimento se dão há muito anos, o Android apresenta grande estabilidade de

funcionamento durante sua execução, assim como o próprio sistema operacional Linux.

4 Thread é uma das maneiras utilizadas por um processo para dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. 5 Driver é um software que executa a função de controlar a comunicação entre componentes eletrônicos e o núcleo do sistema operacional.

21

1.7.2 Android Runtime (Tempo de execução do Android)

De acordo com Reto Meier (2010), o Android Runtime é a engrenagem que se encarrega

de fornecer funções para aplicação desenvolvida e, junto com as bibliotecas, constituir base

para a estrutura dela. É a parte do sistema que fica executando a plataforma do Android no

dispositivo móvel em que ele está instalado. Este módulo é composto por duas partes: a parte

da máquina virtual chamada Dalvik e pelas bibliotecas do núcleo do sistema.

Estes arquivos são necessários para que as aplicações desenvolvidas para o Android

consigam acessar as funcionalidades que o sistema operacional oferece e assim possam

executar as configurações de que necessitam.

1.7.3 Libraries (Bibliotecas)

As libraries, que em português significa bibliotecas, são conjuntos de arquivos de

código que fornecem ao desenvolvedor as funções e a possibilidade de comunicar o aplicativo

que está sendo criado com os recursos existentes no sistema. Um exemplo é a biblioteca

gráfica OpenGL/ES que dá a possibilidade de criar aplicações usando uma interface gráfica

para interação entre o usuário e o sistema operacional. Esse conjunto de bibliotecas presente

na estrutura da plataforma Android fornece grande parte das bibliotecas disponíveis para a

linguagem Java, usada para o desenvolvimento, bem como provê as bibliotecas específicas

para Android.

1.7.4 Application Framework (Framework de aplicações)

Algumas aplicações possuem partes de códigos parecidas. Para que não seja gerado

retrabalho é possível utilizar o framework6 de aplicações para reutilizar funções de outras

aplicações.

A arquitetura da aplicação foi projetada para simplificar o reuso dos componentes. Qualquer componente pode publicar suas capacidades e quaisquer outros

6 Framework é uma técnica aplicada no desenvolvimento de um software para, basicamente, explorar o potencial de reutilização de partes de software já desenvolvidas.

22

componentes podem então fazer uso dessas capacidades, sujeito às restrições de segurança reforçadas pelo framework. (AQUINO, 2007, p. 7).

Segundo Reto Meier (2010), o framework disponibiliza uma abstração genérica para

facilitar o acesso ao hardware e o gerenciamento da interface com o usuário. A abstração

também possibilita ao desenvolvedor utilizar os recursos dos dispositivos de forma mais

simples.

1.7.5 Applications (Aplicações)

O sistema do Android fornece também para seus usuários um conjunto de aplicações

básicas e de uso geral que são pré-instaladas no dispositivo. Posteriormente, este módulo

passa a gerenciar também a comunicação entre futuras aplicações que forem instaladas no

Android e o núcleo do sistema. Uma característica importante dessa camada é que “ela

executa juntamente com o Android Runtime, usando as classes e serviços disponíveis pelo

framework de aplicações” 7 (MEIER, 2010, p. 14).

7 Traduzido pelo autor.

23

CAPÍTULO 2 MATERIAIS E MÉTODOS

O trabalho desenvolvido visa propor e medir o desempenho operacional de um software

que se baseia na plataforma móvel Android, integrando-o a um sistema de armazenamento de

dados baseado em Computação nas Nuvens para recebimento e visualização de dados. A

princípio, para levantar os requisitos do sistema (quais dados deveriam ser armazenados e

como o software deveria trocar informações com o sistema de armazenamento), foram

realizadas entrevistas com especialistas em desenvolvimento de software. Logo após, foram

feitos alguns estudos retrospectivos em livros e periódicos para determinar com mais precisão

os índices de maior importância e assim poder coletar os dados mais relevantes para o estudo.

Logo após a análise dos dados, todo o desenvolvimento prático dessa pesquisa ocorreu em um

laboratório. Os ambientes de desenvolvimento e teste foram controlados.

Com o intuito de submeter o software a uma bateria de testes a fim de averiguar seu

desempenho funcionando em um aparelho real, o dispositivo móvel tablet Galaxy Tab P6210,

da Samsung, foi escolhido como ambiente de testes dentre todos os demais tablets existente

no mercado graças aos recursos oferecidos.

2.1 Tablet Galaxy Tab P6210

O tablet Galaxy Tab P6210 é um dos modelos da Samsung, empresa de produtos

eletrônicos, para concorrer no disputadíssimo mercado dos equipamentos móveis. Entre as

diversas características do equipamento escolhido, destaca-se o fato do mesmo possuir um

módulo de conexão wi-fi, ou seja, capacidade para conexão com a Internet através de uma

rede sem fio. Além disso, a tela de 7 polegadas de alta resolução, os dois processadores de

1.2GHz para um bom desempenho, uma memória interna de 16GB e o sistema Android,

versão 3.28, fizeram deste dispositivo uma boa escolha para ambiente de testes do software

desenvolvido. Abaixo segue a Fig. 4, referente ao equipamento. O dispositivo ainda conta

com outros recursos que não serão citados neste trabalho por motivo de irrelevância para o

estudo proposto.

8 As informações descritivas do produto foram obtidas no portal eletrônico da Samsung.

24

FIGURA 4 - Tablet Samsung Galaxy Tab P6210. Fonte: http://www.shoptime.com.br

Escolhido o dispositivo, o software foi executado para algumas avaliações. A partir

deste ponto, a coleta de informações para o projeto se deu na forma de tabulações e análises

dos experimentos realizados com o software instalado no dispositivo, sendo estes dados,

posteriormente, submetidos a interpretações. Contudo, antes de iniciar o desenvolvimento da

aplicação, foi necessário configurar o ambiente de desenvolvimento corretamente. Esse

ambiente consiste de algumas ferramentas que são utilizadas para criar, testar e visualizar o

progresso do projeto.

2.2 Linguagem de programação Java

A linguagem Java foi desenvolvida pela empresa Sun Microsystems no inicio da década

de 90 com a meta de ser mais simples e eficiente do que as linguagens existentes no mercado

naquela época. Sua sintaxe é muito semelhante às sintaxes das linguagens C e C++. Além

disso, a linguagem Java foi desenvolvida para ser mais segura, ou seja, ela possui mecanismos

que impedem o desenvolvedor de realizar algumas operações que, normalmente, outras

linguagens oferecem e que podem gerar riscos se não forem implementadas com cautela,

como por exemplo, o uso de ponteiros.

25

Existem diversas versões da linguagem, sendo uma versão para cada tipo de aplicação a

ser desenvolvida. São elas:

a) java SE: para o desenvolvimento de aplicações que funcionarão no computador

pessoal do usuário;

b) java EE: plataforma para desenvolver sistemas orientados a empresas;

c) java ME: plataforma para aplicações que executarão em dispositivos móveis e em

serviços embarcados.

Segundo o portal Linha de Código, as aplicações do Android funcionam baseadas na

linguagem Java e, portanto, as ferramentas para desenvolvimento em Java devem estar

presentes no computador utilizado pelo desenvolvedor. Desta maneira, o primeiro item a ser

instalado no ambiente é o Java SE Development Kit (JDK), que, segundo Friesen (2010), é o

“kit” que contém todas as ferramentas necessárias para o desenvolvimento de aplicações em

Java, incluindo o compilador da linguagem.

Os desenvolvedores também utilizam uma edição especial criada pelo Google da

plataforma Java para criar aplicações que rodem em dispositivos habilitados para Android.

Esta edição é conhecida como plataforma Android (FRIESEN, 2010).

2.3 Android Software Development Kit (SDK)

O Android SDK é o software utilizado para desenvolver aplicações no Android, que

tem um emulador para simular o celular, ferramentas utilitárias e uma API completa para a

linguagem Java, com todas as classes necessárias para desenvolver as aplicações (LECHETA,

2010).

O instalador do Android SDK para o sistema operacional Windows é encontrado

facilmente no site disponibilizado na Internet especialmente para os desenvolvedores da

plataforma. O próprio site oferece um breve passo-a-passo de como instalar e configurar

corretamente o ambiente para construir um aplicativo para Android. Agora, é necessário

instalar também um plugin chamado Android Development Tools (ADT), que adiciona

suporte integrado para projetos e ferramentas Android. O plugin ADT nada mais é senão um

conjunto de ferramentas de desenvolvimento da plataforma e que também é encontrado no

site.

26

2.4 Eclipse

O Eclipse é um ambiente de desenvolvimento integrado (em inglês Integrated

Development Environment) para o desenvolvimento de aplicações Java, mas ele também pode

ser usado para o desenvolvimento de aplicações utilizando outras linguagens como PHP, C++

e outras. No site oficial da ferramenta existem diversas versões da IDE que podem ser

baixadas gratuitamente. A Eclipse Foundation, organização sem fins lucrativos, é que

mantém e coordena o desenvolvimento de novas versões da IDE e divulga projetos que

utilizem o software.

Para efeito de execução deste trabalho, foi usada a versão 3.6 do Eclipse, conhecida

como Helios. O Eclipse possui uma característica interessante. Ele não é instalado no

computador. Para utilizar o ambiente de desenvolvimento, descompacta-se o arquivo em uma

pasta de nome qualquer. Depois, basta clicar no ícone com o nome Eclipse. A tela inicial da

IDE Eclipse é mostrada na Fig. 5.

FIGURA 5 - Página inicial do software Eclipse. Fonte: http://www.oficinadanet.com.br

2.5 Servidor Cosm

27

De acordo com a proposta deste trabalho o aplicativo móvel deve ser capaz de ler e

apresentar ao usuário os dados armazenados pelo hardware de sensoriamento em um servidor

na nuvem. O serviço escolhido para desenvolver os experimentos foi o Cosm.

O Cosm, segundo a definição encontrada no próprio portal web, é um serviço que

objetiva conectar pessoas, sensores e dispositivos na nuvem. O Cosm funciona tendo como

alicerce um conceito idealizado em meados de 1980 no Massachusetts Institute of Technology

(MIT), chamado Internet das Coisas (do inglês Internet of Things) que, segundo o portal

Inovação Tecnológica, representa a interação dos objetos físicos por intermédio de uma

simples conexão com a Internet. Ainda de acordo com o portal eletrônico, o serviço foi

fundado em 2008, sob o nome de Pachube, e sempre trabalhou com a visão de que a cultura

aberta é melhor do que a cultura privada e de que o compartilhamento é o melhor caminho.

O serviço do Cosm possui uma comunidade de desenvolvedores e entusiastas que é bem

estabelecida e engajada no trabalho de diversas áreas. Para fazer começar a fazer parte dessa

comunidade é necessário ter uma conta de usuário que permitirá utilização dos serviços

oferecidos no portal web e também o acesso aos dados através do aplicativo. A Fig. 6

apresenta a tela inicial do Cosm e na parte destacada é possível configurar o e-mail, nome de

usuário e uma senha.

FIGURA 6 - Tela inicial do portal para cadastro de usuários. Fonte: o autor.

Depois de configurada a conta, um e-mail de verificação é enviado a sua caixa de

entrada e após a confirmação de recebimento o usuário tem permissão de uso dos serviços do

28

Cosm. Em posse desses serviços, a primeira coisa a ser criada no portal é um feed que,

segundo a documentação do Cosm, é um ambiente representativo dos dados. As Fig. 7 e Fig.

8 apresentam o processo de criação de feeds e aviso de sucesso, respectivamente.

FIGURA 7 - Tela para criação de feeds. Fonte: o autor.

FIGURA 8 - Aviso de criação de feeds com sucesso. Fonte: o autor

29

CAPÍTULO 3 RESULTADOS: APRESENTAÇÃO, ANÁLISE E DISCUSSÃO

Ao término do processo de desenvolvimento do software, uma bateria de testes foi

iniciada para averiguar a integração entre o aplicativo móvel e o servidor Cosm. Estes

experimentos foram reproduzidos em laboratório, com observação cuidadosa do ambiente e

com uso de dados reais de monitoramento obtidos por um sistema embarcado colocado em

uma plantação de bananas localizada a nove quilômetros do centro da cidade de Janaúba

(SOUZA et al., 2012). Tais dados são enviados pelos sensores e pelo sistema embarcado para

um feed público cujo ID é 66879. Para acesso a esses dados armazenados, o aplicativo

baseado na plataforma Android faz uso do seguinte link: https://cosm.com/feeds/66879. Os

resultados obtidos nesses experimentos apresentaram-se satisfatórios para o contexto

proposto.

Através do portal web oferecido pelo Cosm é possível visualizar os pontos de dados, os

valores e gráficos de dados armazenados em relação ao tempo, bem como inserir, modificar e

excluir valores de feeds. Após a criação da conta e do feed no servidor, deve-se configurar

mais alguns itens. A Fig. 9 apresenta a página inicial do portal do Cosm e destaca a parte

referente à login de usuário. Nesse momento, é necessário realizar o login para acesso aos

recursos disponibilizados e conseguir realizar as configurações iniciais.

FIGURA 9 - Página inicial do portal do Cosm. Fonte: o autor.

30

Efetuado o login, é preciso criar uma chave (do inglês key) de acesso, que permitirá o

aplicativo externo a realizar operações nos dados do servidor. O tipo de chave pode ser

escolhido dentre as opções de leitura, exclusão, criação, atualização ou todos os anteriores.

Criada a chave, essa deve ser inserida no aplicativo para que seja possível buscar ou enviar

informações ao servidor, dependendo do tipo de chave escolhida. A Fig. 10 mostra a tela

inicial depois de efetuado o login e destaca o local de criação das chaves.

FIGURA 10 - Tela após o login com destaque para o serviço de criação de chaves. Fonte: o autor.

Durante as pesquisas bibliográficas e os testes executados, verificou-se que aplicativos

baseados na plataforma móvel Android necessitam de permissão para acessar o módulo de

Internet do dispositivo em que eles estiverem instalados. Sem essa permissão, a aplicação

avisa o usuário do erro ocorrido e para de executar. A Fig. 11 apresenta a resposta de erro que

a aplicação sem permissão retornou.

31

FIGURA 11 - Erro retornado quando não há permissão de uso do recurso de Internet. Fonte: o autor.

Depois de concedida a autorização de uso do recurso, é preciso usar técnicas de

manipulação de threads que permitam o aplicativo a se conectar a Internet e retornar o valor

lido. Segundo o Guia de Referência encontrado no site oficial Android Developers, o

funcionamento dos aplicativos baseia-se em uma única thread denominada Main Thread ou

UI Thread. Todas as requisições ao sistema operacional e aos recursos são feitas através dela,

sendo, portanto, “uma boa prática mover toda operação lenta e que consuma tempo de

processamento para fora da thread principal e colocá-la em threads de fundo” (MEIER, 2010,

p. 300). Essa prática garante que não haverá falha na estrutura do programa. Caso esse

tratamento não seja realizado, o aplicativo acusa um erro. A Fig. 12 apresenta o erro retornado

nesse caso.

32

FIGURA 12 - Erro retornado quando não existe tratamento de manipulação de threads. Fonte: o autor.

Por outro lado, quando a permissão é acrescentada no arquivo denominado

“AndroidManifest.xml” e o tratamento de uso de threads é feito no código-fonte, o aplicativo

consegue fazer uso do recurso de Internet e assim é possível executar o método que cria a

conexão com o servidor na nuvem. Na Fig. 13 é apresentada a linha de código que fornece a

permissão para o software usar o recurso da Internet e a Fig. 14 mostra a interface gráfica

inicial do aplicativo quando a permissão é concedida e o erro não ocorre. Essa tela recebe do

usuário informações que possibilitam o software comunicar-se com o servidor disponibilizado

pelo serviço do Cosm.

FIGURA 13 - Linha de código que fornece a permissão para usar o recurso de Internet. Fonte: o autor.

33

FIGURA 14 - Página inicial do aplicativo. Fonte: o autor.

Com o preenchimento correto dos dados nos campos iniciais do software, sendo eles o

feed e a chave criados pelo usuário no Cosm para utilização, o aplicativo constrói a Uniform

Resource Locator (URL) capaz de acessar o endereço eletrônico onde estão disponíveis os

dados. As requisições feitas do aplicativo baseado em Android para o servidor na nuvem

utilizam o protocolo HyperText Transfer Protocol (HTTP), responsável por acessar o

endereço de Internet especificado e retornar o valor armazenado. Após a configuração do feed

e da chave, o usuário tem cinco opções de acesso ao sistema. Ele pode configurar parâmetros

que acionam o alarme para desligar o sistema de irrigação, pode buscar os dados do servidor

para visualização em tabelas ou em gráficos, pode utilizar o controle remoto do sistema de

irrigação e por fim visualizar informações relativas ao local de onde os dados estão sendo

capturados. A função para ligar a irrigação utilizando valores mínimos de parâmetros

configurados pelo usuário foi avaliada como um requisito em potencial. Entretanto, para a

estrutura utilizada nesse trabalho, essa função não é necessária. O sistema de irrigação é

ligado todos os dias em horário configurado no dispositivo embarcado, responsável pelo

serviço de ligamento. Portanto, por padrão, o sistema de irrigação começa em estado de

funcionamento. Contudo, o operador do aplicativo pode acionar o sistema de irrigação

remotamente, caso ele tenha sido desligado em algum momento anterior, através do painel de

controle descrito mais a frente.

34

Se o usuário decidir por configurar os parâmetros de verificação, surgirá a tela

apresentada pela Fig. 15, onde ele define valores de máximo que servem como base de

verificação para o aplicativo comparar com os valores atuais buscados no servidor.

FIGURA 15 - Painel de configuração dos parâmetros. Fonte: o autor.

Se em algum momento de solicitação dos dados o valor atual armazenado no Cosm

estiver acima do configurado (essa condição vale para todas as variáveis), o aplicativo, através

de comparações, envia uma mensagem avisando o usuário que ele deve desligar o sistema de

irrigação. Se apenas o valor de uma das quatro variáveis tiver ultrapassado o valor

configurado, o sistema deve ser desligado. A Fig. 16 mostra-nos um exemplo da tela de aviso

referente à corrente elétrica na motobomba, em que o valor atual ultrapassou o máximo

estipulado. O aplicativo ainda faz outra verificação a fim de analisar o quanto o valor atual da

corrente elétrica, buscado no Cosm, ultrapassou o valor configurado. Se o valor atual tiver

ultrapassado 30% (trinta por cento) do valor configurado, ele envia um sinal de desligamento

automático para servidor Cosm e imprime uma mensagem avisando o usuário. A Fig. 17

apresenta essa mensagem de aviso.

35

FIGURA 16 - Mensagem de aviso do aplicativo quando um parâmetro é ultrapassado. Fonte: o autor.

FIGURA 17 - Aviso de desligamento automático. Fonte: o autor.

Outra possibilidade oferecida pelo software é visualizar os dados vindos do servidor.

Caso esse botão seja pressionado, a tela descrita pela Fig. 18 é apresentada para que o

operador do aplicativo visualize as informações obtidas. Através dessa tela o operador

consegue visualizar o nome da instância no servidor, o valor corrente no momento da

solicitação e os valores de máximo e mínimo, dentro do período das últimas 6 horas.

36

FIGURA 18 - Tela de apresentação dos dados obtidos no servidor. Fonte: o autor.

O operador do sistema ainda possui a opção de visualizar os dados em forma de

gráficos, a fim de perceber a variação ao longo do tempo. Os gráficos apresentados nas Fig.

19, Fig. 20, Fig. 21, Fig. 22 e Fig. 23 mostram a representação das instâncias armazenadas e

recuperadas no servidor Cosm. Com esse auxílio visual o operador pode observar os picos de

mínimos e máximos registrados pelos sensores nas últimas 6 horas de monitoramento.

37

FIGURA 19 - Visualização da corrente elétrica em forma de gráfico. Fonte: o autor.

FIGURA 20 - Visualização da temperatura em forma de gráfico. Fonte: o autor.

38

FIGURA 21 - Visualização da umidade do solo a 40 centímetros em forma de gráfico. Fonte: o autor.

FIGURA 22 - Visualização da umidade do solo a 60 centímetros em forma de gráfico. Fonte: o autor.

39

FIGURA 23 - Visualização da umidade do ar em forma de gráfico. Fonte: o autor.

Essas informações são obtidas porque o serviço web do Cosm oferece aos usuários

meios de capturá-los para que sirvam como dados de entrada aos aplicativos. Essas

informações são disponibilizadas através do formato Javascript Object Notation (JSON).

Com essas informações é possível descobrir a data e a hora de armazenamento, a localização

de onde os dados são enviados, o criador do feed, o valor atual dos dados, bem como outras

informações relativas ao dado buscado. A Fig. 24 apresenta a estrutura dos dados no formato

JSON disponibilizado pelo servidor, descrevendo a hierarquia e o nome de cada campo.

Baseado nessa hierarquia é possível desmembrar a estrutura para capturar os nomes dos dados

e seus respectivos valores. A plataforma Android oferece métodos que trabalham com o

manuseio de objetos e vetores JSON.

40

FIGURA 24 – Estrutura JSON disponibilizada pelo servidor Cosm. Fonte: http://www.cosm.com/docs/v2.

41

A seguir, na Fig. 25, é apresentado um fluxograma de execução da lógica de

recebimento de dados. Seguindo esses passos, o aplicativo consegue solicitar, capturar e

apresentar os dados que estavam armazenados no Cosm ou algum erro que possa ter ocorrido

para o usuário.

FIGURA 25 - Fluxograma da lógica de execução para receber dados. Fonte: o autor.

A Fig. 26 nos traz o código-fonte da função que busca os dados do Cosm. Essa função

constrói a URL que será usada para solicitar os dados ao servidor, executa-a e guarda esses

dados em um buffer. Depois, o conteúdo desse buffer é processado e transformado em uma

string que será enviada para apresentação na tela do aplicativo. Na Fig. 27 temos o tratamento

de exceção responsável por formatar na tela do software o resultado obtido após a resposta do

42

servidor. Para todos os dados as funções são as mesmas. Entretanto, na função que mostra o

dado, apenas trocam-se textos específicos como o título, por exemplo, para respeitar a

concordância com a informação a ser mostrada.

FIGURA 26 - Função que busca os dados do servidor Cosm. Fonte: o autor.

FIGURA 27 - Código-fonte responsável pela impressão dos dados na tela. Fonte: o autor.

Retornando à tela inicial do aplicativo, o usuário ainda tem a possibilidade de controlar

remotamente o acionamento ou o desligamento da motobomba, bem como das válvulas

43

distribuídas ao longo da plantação. Cada setor da área de irrigação, previamente dividida a

interesse do agricultor, possui uma válvula. Caso seja de interesse do operador do software é

possível ligar ou desligar essas válvulas utilizando a tela demonstrada pela Fig. 28. Nessa tela,

o usuário deve escolher primeiro o setor que deseja irrigar, depois ligar a válvula e após esse

processo ligar a motobomba. Todos esses passos visam garantir que o recurso hídrico tenha

para onde escoar quando a motobomba seja ligada.

FIGURA 28 - Tela de controle remoto dos recursos de irrigação. Fonte: o autor.

A cada escolha do usuário no painel, um gatilho (do inglês trigger) é enviado ao

servidor do Cosm, que se encarrega de armazenar o gatilho e espera que o sistema embarcado

busque aquela informação. A Fig. 29 apresenta a tela do Cosm que mostra a instância da

válvula 01 com o gatilho acionado. Para todas as demais válvulas, bem como para a

motobomba, existe uma instância igual à representada pela figura que recebe os gatilhos

enviados.

44

FIGURA 29 - Instância da válvula 01 no Cosm com o gatilho armazenado. Fonte: o autor.

A Fig. 30 descreve o fluxo de funcionamento para o controle remoto. Nele percebemos

a necessidade de abrir alguma válvula antes de acionar a motobomba para que a água tenha

para onde escoar, como já mencionado anteriormente. Além disso, observamos também que o

primeiro passo é escolher o setor, já que cada válvula pertence a um setor em específico. No

caso de a sequência não ser obedecida, o aplicativo apresenta uma mensagem avisando o

operador da sequência correta de operação, retornando o fluxo para passo inicial.

45

FIGURA 30 - Fluxograma do controle remoto do sistema de irrigação. Fonte: o autor.

O código-fonte que cria o gatilho para acionamento remoto é mostrado na Fig. 31 logo

abaixo. O código cria uma variável com base na chave de acesso e depois cria uma variável

do tipo Trigger. A partir desse momento, os parâmetros dessa variável são configurados e, por

fim, a função disponibilizada pela biblioteca do Cosm para a plataforma Android com o

intuito de criação de triggers é acionada. Em caso positivo dessa execução de passos, a

mensagem de sucesso é mostrada para o usuário. Essa mensagem é apresentada na Fig. 32.

46

FIGURA 31 - Código-fonte que executa a criação de uma trigger. Fonte: o autor.

FIGURA 32 - Mensagem de confirmação do acionamento remoto. Fonte: o autor.

É possível ainda o usuário desejar fechar alguma válvula para impedir a irrigação de

algum setor. Neste caso, algumas restrições devem ser atendidas para garantir a integridade do

sistema de irrigação. A Fig. 33 apresenta o fluxo de ações a serem tomadas para que o

processo se dê corretamente.

47

FIGURA 33 - Fluxograma para o desligamento de válvulas. Fonte: o autor.

Finalizando a descrição da gama de opções de controle que aparecem na tela principal

do aplicativo, o usuário pode buscar as informações relativas à localidade onde o sistema

embarcado junto com a rede de sensores está coletando os dados. Juntamente a essas

informações, o operador também pode ver metadados (dados que se referem e descrevem

outros dados) do feed configurado no Cosm. A Fig. 34 mostra a tela que retorna esses

metadados.

48

FIGURA 34 - Tela de informações sobre o ambiente de monitoramento. Fonte: o autor.

Após o fim da bateria de desenvolvimento e de testes, os dados coletados foram

submetidos a algumas análises e os resultados apresentados promoveram algumas discussões

válidas sobre o sistema. Essas análises são abordadas e discutidas a partir de três pontos de

vista diferentes.

3.1 Desenvolvimento do aplicativo

A modularização do código-fonte utilizada pela plataforma do Android mostrou-se de

fácil manuseio e de grande flexibilidade para o desenvolvedor já dentro da pasta raiz do

projeto. Os arquivos são distribuídos de forma a agrupar os que tenham propósitos

semelhantes, mantendo-os na mesma pasta. A plataforma também oferece suporte a

Programação Orientada a Objetos (POO), permitindo que o código seja adaptado e corrigido

mais facilmente, pois cada tipo de função está contido em um tipo de arquivo específico.

Dessa maneira, cada parte do código fica separada e organizada em estruturas hierárquicas,

garantindo ao desenvolvedor uma maior agilidade para encontrar o que deseja.

Ainda sobre a questão do desenvolvimento, os resultados expuseram uma característica

referente às diferenças das plataformas do Android. Como dito no capítulo 3, é preciso utilizar

49

alguma técnica de manipulação de threads para ter acesso ao recurso de Internet do

dispositivo. De acordo com o Guia de Referência do desenvolvedor Android e com o livro de

Meier (2010), existem três técnicas que podem ser usadas para trabalhar com threads: a

primeira delas é fazendo uso da ferramenta StrictMode, disponível a partir do nível 9 da API

do Android. Essa técnica, entretanto, foi desenvolvida apenas para capturar acessos acidentais

ao disco ou a rede dentro da thread principal da aplicação, o que não a torna a melhor

ferramenta para esse caso. A segunda maneira de trabalhar com threads é usando a ferramenta

AsyncTask, que também faz parte da API de desenvolvimento do Android. De acordo com o

Guia de Referência do site oficial, essa ferramenta permite ao desenvolvedor realizar

operações de fundo (background) e depois retornar o valor a UI thread para exibição. Por fim,

o desenvolvedor pode programar a própria thread e usar a classe Handler, também disponível

na API, para sincronizar com a UI thread.

A escolha de qual técnica utilizar fica com o desenvolvedor. Contudo, considerando os

objetivos e possibilidades descritos nas referências bibliográficas dos três métodos, bem como

a relação de custo e benefício entre o tempo de desenvolvimento e o ganho de desempenho,

decidiu-se neste projeto fazer uso da ferramenta AsyncTask.

3.2 Ferramentas para conexão com a Internet

Em questão de ferramentas de desenvolvimento para realizar a comunicação com a

Internet, a plataforma Android possui diversas bibliotecas (pacotes de arquivos com funções

específicas para cada objetivo) que fornecem métodos e funções de acesso ao protocolo HTTP

para o dispositivo móvel. Essa diversidade abrange uma grande parcela de tipos de

desenvolvedores, permitindo que os mesmos escolham a forma que mais agrada para

programar. Além disso, a simplicidade de liberar ao software o uso do recurso de Internet do

dispositivo apenas uma vez é interessante, pois não torna a codificação repetitiva.

3.3 Formato dos dados disponibilizados pelo Cosm

Lucas Jordan e Pieter Greyling (2011) dizem que o JSON é um formato de intercâmbio

de dados independente de linguagem. Eles também afirmam que este formato é leve, baseado

em texto e oferece suporte a vários tipos de dados, tais como: sequência de caracteres,

50

números, booleanos (dados que assumem apenas dois valores, verdadeiro ou falso), vazio (do

inglês Null), objetos e vetores, tornando o modelo bastante atrativo para compartilhar dados

pela Internet.

A flexibilidade de se trabalhar com o formato JSON é um fator interessante para os

desenvolvedores. É possível escolher quais e quantos dados capturar do servidor. Como visto

nos resultados, os dados foram desmembrados e apresentados para o usuário final de diversas

maneiras. Para efeito desse trabalho, apenas o formato JSON foi utilizado para aquisição e

apresentação de dados. Contudo, é interessante ressaltar que o Cosm oferece mais duas

opções de estrutura para capturar os dados armazenados: o Extensible Markup Language

(XML) e o Comma-Separated Values (CSV). Segundo o portal web do Cosm, a estrutura

XML contém a mesma quantidade de dados que o JSON, enquanto que a estrutura CSV

apresenta menos informações, sendo recomendada para dispositivos embarcados simples.

51

4 CONSIDERAÇÕES FINAIS

Sabe-se que parte considerável dos projetos é concebida a partir de necessidades

apresentadas por comunidades, organizações ou qualquer outro grupo de pessoas onde se

precisa realizar um processo ou serviço mais rapidamente e com maior precisão. Na criação

das tecnologias isso não seria diferente. Quando nesses casos de necessidade, elas existem

visando preencher essas lacunas.

O presente trabalho consistiu, inicialmente, no desenvolvimento de uma aplicação

baseada em plataforma móvel que oferecesse ao usuário um método rápido para visualizar as

informações sobre o ambiente onde a plantação se encontra, gerando maior comodidade. Em

seguida, o trabalho partiu para a ideia de integração do aplicativo móvel a conceitos e serviços

de computação na nuvem. Nos resultados, verificou-se que a obtenção dos dados reais

enviados por um sistema embarcado localizado em uma fazenda na cidade de Janaúba e

armazenados na nuvem alcançou, através da integração, o desempenho esperado,

demonstrando que a ideia pode entrar em uma nova fase de testes. Dessa forma, conclui-se

que os objetivos propostos no trabalho foram alcançados.

Visando a continuidade do projeto, propõe-se a realização de novos experimentos no

sistema que constituiu na integração do software baseado na plataforma Android com o

serviço de computação nas nuvens do servidor Cosm. No que tange o software, verifica-se a

necessidade de executá-lo em outros dispositivos móveis, a fim de averiguar o desempenho

do mesmo quando se possui diferentes configurações de hardware nos smartphones e tablets.

É possível também trabalhar no projeto de melhorias da usabilidade do sistema, aprimorando

o contato do usuário com o sistema. Com dados coletados a partir dos sensores e com as

estatísticas de funcionamento do sistema como um todo, em um espaço de tempo maior para

análise, será então possível comparar o desempenho desse modelo proposto com os demais

modelos existentes para monitoramento de culturas e irrigação de precisão.

Por fim, após a comparação de desempenho, é possível projetar e desenvolver novas

funcionalidades para o aplicativo, de forma a fornecer ao usuário mais alguns meios de

controle do ambiente, expandindo a aplicabilidade do sistema.

52

REFERÊNCIAS

AQUINO, Juliana França Santos. Plataformas de desenvolvimento para dispositivos móveis. 2007. Monografia – Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2007. Disponível em: <http://www-di.inf.puc-rio.br/~endler/courses/Mobile/Monografias/07/Android-Juliana-Mono.pdf>. Acesso em: 17 abr. 2012.

CRUZ, Tadeu Macryne Lima. Estratégia de monitoramento e automação em sistemas de irrigação utilizando dispositivos de comunicação em redes de sensores sem fio. 2009. Dissertação (Mestrado em Engenharia Agrícola) – Faculdade de Engenharia Agrícola, Universidade Federal do Ceará, Fortaleza, 2009. Disponível em: <http://www.ppgea.ufc.br/ dissertacaotadeu.pdf>. Acesso em: 15 fev. 2012.

Eclipse Foundation. Portal eletrônico disponibilizado para divulgar o ambiente de desenvolvimento de aplicações Eclipse. Disponível em: < www.eclipse.org> Acesso em: 16 jul 2012.

FRIESEN, Jeff. Learn Java for Android Development. Nova Iorque: Apress Media LLC, 2010.

Guia de Referência do desenvolvedor Android. Portal eletrônico que disponibiliza informações sobre versões, ferramentas e técnicas para o desenvolvimento de sistema na plataforma. Disponível em: < http://developer.android.com/guide/components/processes-and- threads.html> Acesso em: 20 abr 2012.

Guia do Hardware. Sítio eletrônico para disponibilização de artigos, tutoriais, revisões técnicas de equipamentos e partes de livros produzidos pelo mantenedor do sítio. Disponível em: < http://www.hardware.com.br/livros/smartphones/capitulo-plataformas.html> Acesso em: 01 fev 2012.

GUIMARÃES, Vinícius Galvão. Automação e monitoramento remoto de sistema de irrigação na agricultura. 2011. Monografia (Graduação em Engenharia Mecatrônica) – Faculdade de Engenharia Mecatrônica, Universidade de Brasília, Brasília, 2011. Disponível em: <http://lara.unb.br/~adolfo/tg/TG11%20Vin%C3%ADcius%20Galv%C3%A3o.pdf>. Acesso em: 19 abr 2012

IBM DeveloperWorks. Apresenta um recurso técnico da IBM para desenvolvedores de software e profissionais de TI. Aqui você encontrará ferramentas, códigos, artigos e outros materiais referentes às tecnologias promovidas pela empresa IBM. Disponível em:

53

<http://www.ibm.com/developerworks/br/library/os-eclipse-android/index.html>. Acesso em: 22 nov. 2011.

Inovação Tecnológica. Portal eletrônico para divulgação de artigos e notícias relativas as diversas áreas do conhecimento científico. Disponível em: < http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=usp-internet-das-coisas&id=010150120802> Acesso em: 02 ago 2012.

JORDAN, Lucas; GREYLING, Pieter. Practical Android Projects. Nova Iorque: Apress Media LLC, 2011.

Laboratório de Automação Agrícola. Apresenta assuntos relacionados com os temas de trabalho do grupo de pesquisa do Departamento de Engenharia de Computação e Sistemas Digitais da Escola Politécnica da Universidade de São Paulo. Disponível em: <http://www.pcs.usp.br/~laa/html/pagina.php?p=apresentacao>. Acesso em: 29 dez 2011.

LECHETA, Ricardo R. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. 2ª ed. São Paulo: Novatec, 2010.

LEMOS, Sherlan Guimarães; NOGUERIA, Ana Rita de Araujo; TORRE-NETO, André. A agricultura na era da informação: desafios e propostas para automação em análises de solos. Revista Analytica, São Paulo, v. 8, n. 8, 2004. Disponível em: < http://www.revistaanalytica.com.br/ed_anteriores/08/8%20Art%20Agricultura.pdf>. Acesso em: 18 abr 2012.

Linha de código. Site para divulgação e fomento de conhecimentos diversos sobre linguagens e técnicas de programação entre a comunidade de desenvolvedores. Disponível em: <http://www.linhadecodigo.com.br/artigo/2811/instalando-o-android-sdk-na-plataforma-linux.aspx>. Acesso em: 21 abr 2012.

MEIER, Reto. Professional Android 2: Application Development. Indianapolis: Wrox Press, 2010.

Cosm. Portal eletrônico do servidor de armazenamento de dados onde se encontra tutoriais, textos, códigos para o desenvolvimento e utilização do servidor. Disponível em: <www.cosm.com> Acesso em: 10 jul 2012.

Open Handset Alliance. Sítio eletrônico para apresentar ao mercado as especificações do projeto da plataforma Android, bem como seus objetivos e membros mantenedores da ideia.

54

Disponível em: <www.openhandsetalliance.com/oha_members.html> Acesso em: 24 ago 2012.

Projeto WaterBee. Encontra-se informações sobre a evolução e o desenvolvimento do projeto de irrigação WaterBee que está sendo pesquisado e discutido na Europa. Disponível em: < http://www.waterbee.eu>. Acesso em: 21 abr 2012.

Samsung Eletronics. Portal eletrônico para divulgação e propaganda dos equipamentos vendidos pela empresa, sendo possível encontrar especificações técnicas dos mesmos. Disponível em: < www.samsung.com/br/consumer/cellular-phone/cellular-phone-tablets/tablet/GT-P6210UWLZTO-spec> Acesso em: 10 ago 2012.

SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios. In: Escola Regional de Computação Ceará – Maranhão – Piauí, III, 2009, Parnaíba, Capítulo 7. Disponível em: <http://www.es.ufc.br/~flavio/files/ Computacao_Nuvem.pdf> Acesso em: 14 fev 2012.

SOUZA, Thalis A. et al. Desenvolvimento de aplicação de monitoramento de ambientes utilizando sistema embarcado e computação nas nuvens. In: Fórum de Ensino, Pesquisa, Extensão e Gestão, VI, 2012, Universidade Estadual de Montes Claros. Montes Claros. Disponível em: <http://www.fepeg.unimontes.br/?q=printpdf/node/3695> Acesso em: 30 nov. 2012.

Revista Analytica. Apresenta assuntos relacionados à instrumentação e controle de qualidade, divididos em artigos e publicações da versão on-line da revista. Disponível em: <http://www.revistaanalytica.com.br/ed_anteriores/08/8%20Art%20Agricultura.pdf>. Acesso em: 29 dez 2011.

WirelessBR. Site brasileiro independente e sem vínculos com empresas ou organizações comerciais para divulgação de novas tecnologias de telecomunicações. Disponível em: http://www.wirelessbrasil.org/wirelessbr/colaboradores/thienne_johnson/rssf-intro.htm. Acesso em: 21 abr 2012.