I
Framework para gestão de
Pastoreio Virtual
Por
Luís Filipe Cunha Dinis
Orientador: Carlos Manuel José Alves Serôdio Co-orientador: Pedro Miguel Mestre Alves da Silva
Dissertação submetida à
UNIVERSIDADE DE TRÁS-OS-MONTES E ALTO DOURO para obtenção do grau de
MESTRE
Em Engenharia Eletrotécnica e de Computadores, de acordo com o disposto no DR – I série – A, Decreto-Lei n.º 74/2006 De 24 de Março e no
Regulamento Ciclos de Estudos Conducente ao Grau de Mestre da Universidade de Trás-os-Montes e Alto Douro
DR, 2. Série – Deliberação n.º 470/2011
Framework para gestão de
Pastoreio Virtual
Por
Luís Filipe Cunha Dinis
Orientador: Carlos Manuel José Alves Serôdio Co-orientador: Pedro Miguel Mestre Alves da Silva
Dissertação submetida à
UNIVERSIDADE DE TRÁS-OS-MONTES E ALTO DOURO para obtenção do grau de
MESTRE
Em Engenharia Eletrotécnica e de Computadores, de acordo com o disposto no DR – I série – A, Decreto-Lei n.º 74/2006 De 24 de Março e no
Regulamento Ciclos de Estudos Conducente ao Grau de Mestre da Universidade de Trás-os-Montes e Alto Douro
DR, 2. Série – Deliberação n.º 470/2011
v
Orientação Científica:
Carlos Manuel José Alves Serôdio Professor Associado com Agregação do
Departamento de Engenharias da Escola de Ciências e Tecnologia da Universidade de Trás-os-Montes e Alto Douro
Pedro Miguel Mestre Alves da Silva Professor Auxiliar do
Departamento de Engenharias da Escola de Ciências e Tecnologia da Universidade de Trás-os-Montes e Alto Douro
vii
Agradecimentos
À Universidade de Trás-os-Montes e Alto Douro (UTAD), por ter possibilitado a realização do estudo conducente ao grau de Mestre e inclusive esta Dissertação.
Ao Professor Doutor Carlos Serôdio, Professor Associado com Agregação do Departamento de Engenharias da Universidade de Trás-os-Montes e Alto Douro, orientador deste trabalho, pelas suas ideias, motivação e observações.
Ao Professor Doutor Pedro Mestre, Professor Auxiliar do Departamento de Engenharias da Universidade de Trás-os-Montes e Alto Douro, co-orientador deste trabalho, pelo tempo que generosamente me dedicou transmitindo-me ensinamentos, com paciência, clareza e confiança.
A todos os meus colegas do Mestrado em Engenharia Eletrotécnica e de Computadores da Universidade de Trás-os-Montes e Alto Douro pela sua amizade e companheirismo, em especial aos meus amigos: Hélio Matos, Tiago Gomes e Renato Mesquita que sempre me acompanharam ao longo do meu percurso académico.
Aos meus pais, Elias Moreira Dinis e Cândida Luísa Pimenta Silva Cunha Dinis, por me proporcionarem a oportunidade de prosseguir os estudos numa instituição de ensino superior e por todo o incentivo que me transmitiram.
Ao meu irmão, Nuno Dinis, que mesmo longe se mostrou tão perto, por toda a ajuda, motivação e racionalidade que sempre demonstrou.
À minha namorada, Inês Paulo, por todo o apoio, compreensão e pelo tempo que abdicou em prol do meu sucesso.
A todos o meu Eterno Obrigado!
UTAD,
ix
Framework para gestão de
Pastoreio Virtual
Luís Filipe Cunha Dinis
Submetido na Universidade de Trás-os-Montes e Alto Douro para o preenchimento dos requisitos parciais para obtenção do grau de
Mestre em Engenharia Eletrotécnica e de Computadores
Resumo – Em tempos o pastoreio foi uma atividade explorada por um elevado número de pastores, em especial no Norte do País. Todos eles possuíam grande quantidade de cabeças de gado no seu rebanho. No entanto nas últimas décadas, a atividade de pastoreio tem vindo a diminuir, associada também ao envelhecimento dos pastores existentes.
Com o presente trabalho pretende-se dar um contributo de modo a permitir a exploração de gado em regime extensivo sem a constante necessidade de presença humana no processo. Surge assim a ideia de Pastoreio Virtual, um sistema de gestão que permite a monitorização remota dos animais e a atividade de pastoreio, usando redes de sensores sem fios. Nas últimas décadas estas têm sido uma vantajosa ajuda na monitorização de locais de difícil acesso, na deteção de intrusos, em estufas (monitorizando ambiente e aumentando produção/qualidade). Com o auxílio de nós sensores, para monitorizar a vegetação envolvente, teremos perceção de áreas mais adequadas á exploração do pastoreio e as que serão de evitar. Aliando os dados recolhidos pelos sensores ao Sistema de Informação Geográfica podemos ter a informação georreferenciada e guardada numa base de dados para posterior análise e manipulação, que será uma ferramenta muito importante no auxílio da gestão do pastoreio, permitindo o controlo automático do processo, tornando-o mais eficiente.
A parte visível do sistema de Pastoreio Virtual consiste então numa aplicação web que permite a gestão do pastoreio, contendo informações do rebanho como identificação do animal, data de nascimento, data de abate, partos, peso, vacinação e tosquia, que estarão disponíveis no portal bem como a informação geográfica das áreas de pastoreio ideais e respetiva altura da vegetação.
xi
Framework for management of
Virtual Herding
Luís Filipe Cunha Dinis
Submitted to the University of Trás-os-Montes and Alto Douro in partial fulfillment of the requirements for the degree of Master of Science in Electrical and Computers Engineering
Abstract – Years ago herding was an activity carried out by a large number of shepherds, especially in the north of the country and they all had a big number of heads in the herd. However in recent decades, the grazing activity has declined, also associated with the aging of existing pastors.
With this work, it is intended to contribute to permit the operation of cattle in extensive regime, without the need for human presence in the field. This leads to the notion of Virtual Herding, a management system that allows remote monitoring of grazing, using wireless sensor networks. These have been a useful aid in monitoring places of difficult access, intrusion detection, in greenhouses (monitoring environment and increasing production/quality). With the aid of sensor nodes to monitor the surrounding vegetation, we will have the perception of areas which can serve for grazing.
Combining data collected by sensors to the Geographic Information System, they can be georeferenced and stored in a database for further analysis and manipulation. Storing the maximum information about the herds we can build a powerful database that will assist us in grazing management.
The visible part of the Virtual Herding system consists of a web application that allows grazing management. Information about the herd such as animal identification, date of birth, date of slaughter, birth, weight, vaccination and haircut will be available on the portal as well as the geographic information of grazing areas and ideals respective heights of vegetation.
xiii
Índice Geral
1. Introdução ... 1 1.1 Contexto e Motivação ... 1 1.2 Objetivos ... 2 1.3 Organização da Dissertação ... 3 2. Enquadramento Tecnológico ... 52.1 Redes de sensores sem fios e suas aplicações ... 5
2.1.1 Wireless Farms ... 11
2.1.2 RFID - Radio Frequency Identification ... 13
2.2 Base de dados ... 17
2.3 SIG (Sistemas de Informação Geográfica) ... 19
2.4 Ferramentas utilizadas ... 21 2.4.1 PostgreSQL ... 21 2.4.2 PostGis ... 26 3. Conceção e Implementação ... 29 3.1 Base de Dados ... 31 3.2 Aplicação Web ... 35
3.2.1 Introdução aos Padrões Web ... 36
3.2.2 HTML ... 37
xiv
3.2.4 – Javascript ... 41
3.2.5 – JSP (Java Server Pages) ... 43
3.2.6 – jQuery ... 45
3.2.7 – Google Maps API ... 47
3.2.8 - Portal Pastoreio Virtual ... 48
4. Testes, Resultados e Conclusões Finais ... 51
4.1 Conclusões Finais e Trabalho Futuro ... 61
Referências Bibliográficas ... 63
Anexos ... 69
Anexo A - Comparação entre Sistemas de Gestão de Base de Dados ... 70
xv
Lista de Figuras
Figura 1: Componentes de um nó sensor (Utzig, 2007) ... 6
Figura 2 – Comparação entre atenuação e distância do transceiver, (Mestre et al, 2011) .... 9
Figura 3 – Diferente estados do crescimento da vegetação (Mestre et al, 2010) ... 10
Figura 4 –Atenuação vs distância do transceiver (Mestre et al, 2010) ... 10
Figura 5 - Wireless Farm (Vellidis, 2007) ... 11
Figura 6 – Diagrama de um sitema RFID, (Adaptado de Antunes, 2011) ... 14
Figura 7 – Exemplo de uma Tag da Via Verde (Antunes, 2011) ... 15
Figura 8 –Tag na orelha do animal ... 15
Figura 9 – Leitor RFID móvel (Antunes, 2011) ... 16
Figura 10 – Leitor fixo para verificar passagem do animal através RFID ... 16
Figura 11 – Plataforma para pesagem ... 17
Figura 12 – Sistema de Base de Dados, (Caldeira, 2007) ... 18
Figura 13 – Workflow GIS (Folger, 2009) ... 20
Figura 14 – Código exemplo da criação de uma tabela ... 23
Figura 15 – Passo I ... 24
Figura 16 – Passo II ... 25
Figura 17 – Passo III ... 25
Figura 18 – Passo IV ... 25
Figura 19 – Passo V ... 25
xvi
Figura 21 – Fluxo do sistema “pastoreio virtual” ... 30
Figura 22 – Tabela Login ... 31
Figura 23 – Tabela sensores ... 32
Figura 24 – Visão geral da base de dados ... 32
Figura 25 – Excerto de código HTML ... 38
Figura 26 – Código exemplo (CSS Inline) ... 39
Figura 27 – Código exemplo (CSS Incorporado) ... 39
Figura 28 – Código exemplo (CSS Externo – incluir estilo_externo.css ... 40
Figura 29 – Código exemplo (CSS Externo - folha de estilo_externo.css ... 40
Figura 30 – Código exemplo (CSS Importado) ... 40
Figura 31 – Código exemplo do uso de JavaScript ... 41
Figura 32 – Excerto de código Javascript usado ... 42
Figura 33 – Arquitetura básica de uma página JSP (Santos, 2008) ... 43
Figura 34 – Percentagem da utilização das bibliotecas Javascript usadas em websites ... 46
Figura 35 – Excerto código de construção de um polígono e três “markers”. ... 47
Figura 36- Resultado de um polígono e “markers” ... 48
Figura 37 - Mapa do Site ... 49
Figura 38 – “Homepage” da plataforma. ... 52
Figura 39 – Página “Login” da plataforma. ... 52
Figura 40 – Página “Erro_Pesquisa” da plataforma. ... 53
Figura 41 – Página “Login efetuado” da plataforma. ... 53
Figura 42 – Tabela animal mostrada através da plataforma. ... 54
Figura 43 - Ficha Técnica do Animal ... 55
xvii
Figura 45 – Tabela Tosquia mostrada através da plataforma. ... 56
Figura 46 – Tabela Partos mostrada através da plataforma. ... 56
Figura 47 – Tabela Vacinação mostrada através da plataforma. ... 57
Figura 48 – Tabela Rebanho mostrada através da plataforma... 57
Figura 49 – Tabela Pastores mostrada através da plataforma. ... 57
Figura 50 – Tabela Sensores mostrada através da plataforma... 58
Figura 51 – Mapa que mostra a altura da vegetação entre sensores. ... 59
xix
Lista de Tabelas
Tabela 1: Comparação entre protocolos de comunicação (Camada, 2009) ... 7 Tabela 2 - – Banda de frequências RFID e suas aplicações (Adaptado de Antunes, 2011) 13 Tabela 3 – Principais tipos de dados suportados pelo PostgreSQL (Mourão, 2011) ... 23 Tabela 4 – Tipos de operadores espaciais (Queiroz, 2006) ... 27
xxi
Lista de Acrónimos
API - Application Programming Interface ASP – Active Server Pages
BD – Base de dados
CSS – Cascading Style Sheets DDL – Data Definition Language DML – Data Manipulation Language DQL – Data Query Language
HTML – Hyper Text Markup Language IBM - International Business Machines JSP – Java Server Pages
OSI – Open Systems Interconnection PHP – Hypertext Preprocessor
PL/pgSQL - Procedural Language/PostgreSQL Structured Query Language PL/SQL - Procedural Language/Structured Query Language
RSSF – Rede de sensores sem fios
SGBD – Sistema de Gestão de Bases de Dados SIG – Sistema de Informação Geográfico SQL – Structured Query Language W3C - World Wide Web Consortium RFID – Radio Frequency Identification
1
Capítulo 1
1.Introdução
A pastorícia foi em tempos uma atividade com uma exploração exaustiva, pois no passado existiam imensos rebanhos com bastantes cabeças de gado, especialmente na zona Norte do País, hoje em dia verifica-se uma grande diminuição do número de pastores, que por sua vez estão cada vez mais envelhecidos. Com o intuito de reavivar a atividade, os pastores têm recorrido a associações onde o rebanho é constituído por animais de vários pastores e também com parcelas de pastoreio distintas umas das outras. Devido a esta diversidade um dos processos que potencia a sua eficiência é a monitorização remota.
1.1 Contexto e Motivação
Atualmente, com a evolução da tecnologia é possível criar um sistema de monitorização que, de modo automático, permita a gestão de todas as tarefas associadas à atividade de pastoreio recorrendo à utilização de redes de sensores sem fios1.
1
2
Um sistema automatizado para detetar a presença de árvores e pasto pode ajudar a melhorar a gestão de rebanhos, as árvores podem fornecer frutos que alimentam os animais, fornecendo sombras que melhoram a qualidade/produtividade do animal, nomeadamente no que diz respeito à produção de leite. Com o uso das novas tecnologias deixa de ser necessária a presença humana para detetar os rebanhos e o melhor pasto para pastagem, para posterior deslocação do rebanho. Ao sabermos remotamente onde se encontra o pasto com melhor qualidade no momento, é evitada a deslocação ao terreno, que irá permitir um aumento da eficiência do processo. Para tal podem ser usadas cancelas elétricas que com a ajuda de pequenos choques impõem o movimento desejado do rebanho. (Carvalho, P.C.F. et al, 2009)
Surge então a necessidade de construir um portal web que suporte uma base de dados de cada animal, onde possamos obter informações da sua identificação, data de nascimento (para saber idade atual), partos (e respetivas crias provenientes dos mesmos), histórico de pesagem, vacinação, tosquia (e respetivo peso da lã resultante), rebanho onde está incluído, ao sabermos a que rebanho pertence temos o conhecimento de qual é o pastor responsável pelo mesmo, para além de outras tarefas que possam estar associadas, como cilos e respetivas quantidades. Os dados dos pastores serão registados também para possível contato ou alerta.
Toda esta informação será valorizada para o próprio pastor, que estará melhor informado sobre o seu rebanho, como para um veterinário que faça a vacinação a todo o rebanho.
1.2 Objetivos
Na presente dissertação é apresentado o sistema "pastoreio virtual" que irá permitir, em tempo real, verificar o tamanho do coberto vegetal das áreas de pastoreio, acompanhar o comportamento do rebanho nomeadamente determinar o momento ideal para abate, o aproveitamento de lã de cada animal bem como criar um histórico de outras evidências tais como: monitorização do peso, vacinação, partos, etc.
3
O objetivo principal deste sistema é aplicar as novas tecnologias a uma atividade tipicamente tradicional. Para tal, vamos recorrer a uma ferramenta Web que permitirá ao utilizador visualizar e interagir em dados centralizados que estarão alojados numa base de dados.
Considerando os avanços tecnológicos poderemos criar uma quinta controlada remotamente no que concerne à pecuária de precisão. Esta quinta poderá por exemplo ser dotada de cancelas elétricas para limitarem e/ou guiarem a movimentação dos rebanhos, balanças de pesagem para registarem o peso do animal, entre outros sistemas automatizados que permitam uma melhor gestão do pastoreio. Estas características podem ser monitorizadas com o uso de redes de sensores sem fios, da tecnologia RFID (Radio
Frequency Identification) e de Sistemas de Informação Geográfica. O manuseamento de
toda a informação será possível através de ferramentas de manipulação de base de dados (PostrgreSQL, PostGIS).
1.3 Organização da Dissertação
Esta dissertação é composta por 4 capítulos sendo o primeiro, o presente, de introdução, onde é feito o enquadramento do problema, a motivação e objetivos que despoletaram a realização deste documento e a organização do mesmo.
O segundo capítulo tem como objetivo apresentar as tecnologias estudadas para o desenvolvimento desta dissertação. São abordados os seguintes temas: Redes de sensores sem fios, base de dados e SIG. Seguidamente são apresentadas as ferramentas base para este sistema, em específico o PostgreSQL e PostGIS onde inclui comandos SQL que são estrutura base na conceção de um sistema como este.
O terceiro capítulo apresenta a conceção e implementação do projeto, que tem como principais alicerces a base de dados e a aplicação web. Primeiramente será apresentado o modelo relacional da base de dados e descrita uma pequena explicação de cada tabela, na aplicação web serão apresentados alguns conceitos importantes que serviram como base ao desenvolver da aplicação.
4
Para finalizar, o quarto e último capítulo, foi dedicado aos testes efetuados aquando da implementação assim como aos resultados e conclusões finais retirados do desenvolvimento desta dissertação, tendo em conta os objetivos inicialmente traçados.
5
Capítulo 2
2. Enquadramento Tecnológico
Neste capítulo será apresentada uma análise das tecnologias utilizadas para a realização do presente projeto. Serão assim referidas as redes de sensores sem fios, base de dados, sistema de informação geográfica e as ferramentas web necessárias para a realização do portal do pastoreio virtual.
2.1 Redes de sensores sem fios e suas aplicações
As redes de sensores sem fios são constituídas por dezenas ou centenas de nós sensores que podem ser colocados de uma forma aleatória ou estruturada no ambiente e que têm capacidade de se auto-organizarem. A utilidade das RSSF reside na sua flexibilidade e na facilidade de monitorização de locais de difícil acesso ou que representem um perigo para a integridade física de qualquer ser humano (como por exemplo, áreas militares). Este tipo de redes permitem não só acompanhar e monitorizar, como também estudar, compreender e atuar sobre um determinado fenómeno ou acontecimento (Camada, 2009).
6
Os nós sensores são dispositivos fundamentais para o funcionamento de qualquer RSSF. Estando equipados com capacidade sensorial, comunicação e processamento. Assim, recolhem dados, processam e enviam informação para o consumidor final (Utzig, 2007).
Os principais componentes de um nó sensor são, como na Figura 1 (Utzig, 2007): Memória: guarda aplicações e dados;
Processador: processa a informação recolhida armazenando-a na memória;
Bateria: o que alimenta o nó sensor. Os tipos mais comuns de baterias utilizadas são: NiC, NiMH, li, lítio NR e lítio Coin Cell;
Sensor: responsável pela recolha das informações do fenómeno observado; Transceiver: responsável pelas comunicações sem fios.
7
Atualmente, existe um vasto número de protocolos de baixo nível, níveis 1 e 2 do Modelo OSI (Open Systems Interconnection), propostos para comunicação em redes sem fios. A escolha do protocolo a utilizar depende do tipo de aplicação e características de
hardware. Os mais conhecidos são Wi-Fi (IEEE 802.11b/g/n), Bluetooth (IEEE 802.15.1) e
IEEE 802.15.4. Na Tabela 1 são apresentadas de forma resumida, as características básicas destes três protocolos (Camada, 2009).
Sobre o padrão IEEE 802.15.4 é definido o ZigBee, que constitui um conjunto de especificações para comunicação entre dispositivos eletrónicos sem fios de baixo custo e baixo débito.
Algumas vantagens que esta especificação oferece são: baixo ciclo de processador; baixa latência; suporte a múltiplas topologias de rede (estática, dinâmica, estrela e malha); suporte a mais de 64 mil nós numa rede; prevê ligações seguras entre equipamentos; mecanismo para evitar colisões; indicação de qualidade da ligação e avaliação do canal aberto (Camada, 2009).
Apesar do crescente interesse observado nas publicações científicas e especializadas, as redes de sensores sem fio, não são um conceito recente. Desde a época da Guerra Fria, que existiam projetos para a utilização de redes de sensores no controlo e deteção do movimento de tropas inimigas em ambientes de batalha hostis (Utzig, 2007).
Com base em áreas de aplicação das redes de sensores sem fios podemos adaptá-las ao nosso projeto e assim tirar partido das mesmas.
Na área militar podem ser usadas para detetar movimentos inesperados dos inimigos, presença de algum objeto explosivo ou gases venenosos. As RSSF podem monitorizar ambientes internos e externos, no reconhecimento das forças inimigas, deteção e
8
reconhecimento de ataques químicos, biológicos ou nucleares, avaliação de danos sofridos nos campos de batalhas, entre outras finalidades (Loureiro et al., 2011).
Por outro lado, na área de controlo, os sensores podem ser embutidos em peças no caso da área industrial, para se fazerem testes nos mais diversos processos.
Têm sido igualmente usadas para controlo de vias rodoviárias e vias ferroviárias, bem como na área da segurança, visando o controlo de grandes estacionamentos, centros comerciais, etc.
Outra área é a área de distribuição de água e gás, onde possuem o poder de indicar a pressão, temperatura e nível de ambos, e ainda monitorizar a extração de petróleo e gás em alto-mar (Loureiro et al., 2011).
Na área da medicina e ciências biológicas: Para controlar e monitorizar o funcionamento dos órgãos do corpo humano ou de animais (Morais et al., 2009).
No sector ambiental, este tipo de aplicação serve para monitorizar florestas, oceanos, vulcões, desertos e áreas de desastres ambientais, na deteção de incêndios, enchentes.
Podem ser usadas na agricultura, em estufas, de modo a obter um controlo para aumentar a sua rentabilidade, eficiência de produção e melhorar a manutenção das mesmas (Serôdio et al., 2001).
Aplicada à recolha de resíduos, por exemplo num ecoponto onde podem ser colocados sensores com o fim de informar quando o recipiente está cheio (pronto para recolha), ajudando assim no melhoramento da recolha de resíduos, reduzindo os custos da mesma (Mestre et al., 2011).
Estes exemplos podem ser adaptados ao nosso caso em particular, como neste último projeto, que visa informar quando um ecoponto se encontra cheio de resíduos. Adaptando este projeto ao nosso, podemos construir uma plataforma idêntica onde sejamos informados quando o stock de comida ou água está a chegar ao fim, por exemplo quando armazenados em cilos ou tanques.
Por outro lado, como alguns estudos comprovam (Mestre et al, 2011), é possível detetar obstáculos entre nós sensores devido à atenuação da radiação eletromagnética que utilizam para comunicar entre si, deduzindo assim a presença de vegetação entre os sensores. (Mestre et al, 2010). Estes dois estudos foram fundamentais para o desenvolvimento do presente projeto.
9
Os sistemas de comunicação sem fio utilizam radiação eletromagnética para comunicar entre transceivers, esta radiação sofre uma atenuação na sua propagação dependendo do tipo de obstáculos que encontra no seu percurso e sua distância entre eles. Através dessa propagação entre sensores sem fio é possível detetar vegetação e o respetivo crescimento.
Segundo o mesmo estudo foram adquiridos dados de três áreas de vegetação diferentes, como ilustrado na Figura 2:
Figura 2 – Comparação entre atenuação e distância do transceiver, (Mestre et al, 2011)
Free-space: Espaço aberto, sem qualquer obstáculo entre os nós sensores;
Dense vegetation: Vegetação muito densa, onde é expectável máxima atenuação entre os nós sensores (vegetação entre 12 a 50 cm);
Low density vegetation: Vegetação pouco densa (vegetação de aproximadamente 10 cm).
Pela análise da Figura 2, e como era previsível, existe uma proporção direta entre a atenuação e a vegetação. A atenuação da propagação das ondas eletromagnéticas entre sensores é tanto maior quanto maior for a vegetação entre eles (Mestre et al, 2011).
A informação da vegetação captada pelo sensor depende da altura relativamente ao solo em que este se encontra. Por esse motivo foi necessário fazer testes a distâncias diferentes do solo, Figura 3 (Mestre et al, 2010).
10
.
Figura 3 – Diferente estados do crescimento da vegetação (Mestre et al, 2010)
a) Sensores estão colocados a 10 cm do solo, onde a vegetação não cobre a linha de visão entre os mesmos;
b) Sensores estão colocados a 5 cm do solo, onde a vegetação cresce e começa a cobrir a linha de visão dos sensores;
c) Sensores estão ao nível do solo, onde a vegetação cobre por completo a linha de visão entre os dois nós sensores.
Figura 4 – Comparação entre atenuação e distância do transceiver, a diferentes alturas do solo (Mestre et al, 2010)
Da análise da Figura 4, conclui-se que quando a vegetação está abaixo do nível de visão do nó sensor (@ 10cm) a atenuação é semelhante ao de espaço aberto (@ 10cm), mas com o crescimento da vegetação a atenuação também aumenta proporcionalmente.
11
Este estudo permite que mediante os valores captados pelo sensor, seja possível deduzir que estamos na presença de vegetação maior ou menor consoante a atenuação sofrida na propagação entre transceivers (Mestre et al, 2010).
Esta informação é bastante interessante para este projeto pois assim teremos a perceção da vegetação envolvente ao sensor no local onde o mesmo se encontra. Podemos remotamente saber a altura da vegetação num determinado local e mover os rebanhos para o local certo no momento certo. Tira-se assim partido de uma desvantagem das redes de sensores sem fio que é útil neste caso em particular.
2.1.1 Wireless Farms
A aplicação de redes de sensores sem fios associados á agricultura tem sido abordada como podemos confirmar com o surgimento de Wireless Farms, quintas dotadas de sensores sem fios (Vellidis, 2007). Com estas quintas é possível monitorizar remotamente as diferentes atividades agrícolas, como: rega, plantação, colheita, pastoreio, etc.
12
Na figura 5 temos um exemplo de uma quinta dotada de sensores sem fios e podemos concluir da análise da mesma as diferentes funcionalidades que nos disponibiliza (Vellidis, 2007):
Monitorização remota:
Dados de sensores (humidade do solo, pressão); Estado de portões e portas (aberto/fechado); Estado das válvulas de rega (aberto/fechado);
Estado de equipamento de bombagem (aberto/fechado); Estábulos;
Quintas de produção.
. Controlo remoto
Abertura e fecho de válvulas e portões; Ligar e desligar luzes, bombas, aquecedores; Guiar veículos robóticos.
Localização remota:
Sistemas de rega; Veículos agrícolas; Gado.
O acesso a tais funcionalidades permite que técnicos especializados possam ter acesso remoto para assim monitorizar e controlar as atividades da exploração, de uma forma lógica e sustentável, sempre com a permissão do administrador local.
13
2.1.2 RFID - Radio Frequency Identification
O RFID consiste numa tecnologia que utiliza a transmissão por rádio-frequência (RF – Radio Frequency) para a transferência de dados entre leitor e entidade móvel, com o intuito de identificar, localizar ou monitorizar pessoas, animais bem como objetos. Este sistema é baseado na propagação de ondas eletromagnéticas no espaço (Antunes, 2011).
Qualquer sistema RFID é dependente da frequência de rádio que o sistema utiliza. A frequência utilizada tem influência no raio de alcance, na velocidade da troca de dados e na capacidade de penetração nos diferentes tipos de superfície. De acordo com as necessidades de aplicabilidade de casa sistema RFID é utilizada a frequência que melhor se adapte. Na Tabela 2 estão resumidas as bandas de frequência, principais características e algumas aplicações.
Banda de Frequência Caraterísticas Típicas Aplicações
Low Frequency - LF (<135KHz)
Velocidade de transmissão baixa; Distância de leitura de apenas alguns centímetros; Penetram água e tecidos musculares, mas
não metal.
Identificação animal; Controlo de acessos; Controlo de inventários; Imobilizar veículos.
High Frequency - HF (13,56
MHz)
Velocidade de transmissão moderada; Distância de leitura desde 1cm até 1.5m; Penetram água e tecidos musculares, mas
não metal.
Controlo de bibliotecas; Smart
Cards; Controlo de acessos;
Transportes públicos.
Ultra High Frequency - UHF
(0.3 - 1.2 GHz)
Velocidade de transmissão elevada; Suportam grandes distâncias de leitura; Não penetram água, metais e tecidos
musculares.
Portagens; Localização de veículos.
Microwave (2.45 - 5.8 GHz)
Velocidade de transmissão muito elevada; Não penetram água,
metais e tecidos musculares; Resistência a forte campos eletromagnéticos; Requerem
muita energia e são caros.
Linhas de produção automóvel.
14
Da análise da Tabela 2 podemos concluir que quanto mais elevada a frequência, menor é a capacidade de atravessar obstáculos e quanto mais baixa a frequência, menor é a distância de leitura. Sendo que sistemas que utilizam baixas frequências têm reduzido alcance de leitura e velocidade de transmissão, mas também são de baixo custo (contrariamente a sistemas que utilizam altas frequências).
O sistema RFID possui três componentes fundamentais (ver Figura 6): a tag (etiqueta) que contém os dados de identificação, o reader (leitor) que lê os dados da tag e uma aplicação para associar a informação recolhida.
Figura 6 – Diagrama de um sitema RFID, (Adaptado de Antunes, 2011)
Uma tag (etiqueta) possui uma antena ligada a um microchip (circuito integrado), este armazena a informação e a antena efetua a comunicação por rádio-frequência com o reader (leitor). Existem tags de diferentes formas e tamanhos e são implantadas em pessoas, animais ou objetos que se pretendam identificar, sendo que utilizam três tipos de memórias: ROM (Read Only Memory), RAM (Random Acess Memory) e WORM (Write
Once/Read Many Memory) (Antunes, 2011).
O identificador da Via Verde, utilizado nos veículos para pagamento de portagens e mais recentemente para pagamento de estacionamentos e abastecimentos é um exemplo funcional de uma tag, Figura 7.
15 .
Figura 7 – Exemplo de uma Tag da Via Verde (Adaptado de Antunes, 2011)
A aplicação prática de uma tag RFID é variada como no caso particular do presente trabalho, em que pode ser colocada na orelha do animal, como ilustra a Figura 8.
Figura 8 –Tag na orelha do animal 2
O leitor (reader) é um dispositivo emissor/recetor de rádio-frequência que permite escrever, ler e recolher os dados armazenados nas tags, permitindo ainda transmissão de energia. Dependendo dos fins de aplicação podem ser fixos ou móveis (Figura 9) e a distância de leitura depende de vários fatores (frequência de operação, potência transmitida pelo leitor, dissipação de potência na tag, sensibilidade do leitor, etc). A comunicação
2
16
entre outros dispositivos pode ser feita sem fios, Bluetooth/ WiFi, ou por fios através de portas ethernet e USB.
A Figura 10 mostra um leitor RFID integrado em cancelas que permite gerir o stock do rebanho, verificando quantos animais entram e saem do estábulo. Assim, podemos garantir que nenhum animal deixa de ser contabilizado no momento em que entra ou sai do estábulo, sendo que se a contagem inicial for diferente da final, deduzimos extravio de animal no rebanho ou morte devido a causas como: ataque de animais, doença, causa natural.
Figura 10 – Leitor fixo para verificar passagem do animal através RFID 2
17
A Figura 11 contém uma plataforma para pesagem. A quinta será dotada de hot spots para recolha de dados de pesagens, podendo o animal ser pesado à entrada/saída do estábulo, no momento da recolha do leite, ou quando bebe água (nesta situação o animal tem de estar parado para garantir uma correta pesagem e uma correta identificação, por esse motivo é necessário que seja uma plataforma onde esteja apenas um animal).
2.2 Base de dados
A utilização de Base de Dados (BD) começou nos anos 60. No início a informação era guardada em ficheiros e a sua consulta e manipulação não era muito prática. Para a definição de dados eram usados os modelos hierárquicos (consiste numa organização dos dados hierarquicamente) e de rede (extensão ao modelo hierárquico com associação de dados). A partir dos anos 70 surgiram os SGBD relacionais cuja popularidade não tem parado de crescer até hoje. Este sucesso pode ser explicado pelo modelo relacional, criado por E.F. Codd na IBM, que é constituído apenas por relações e pelo surgimento de uma linguagem de manipulação simples e eficiente, o SQL (Caldeira, 2007).
18
Podemos afirmar que qualquer conjunto de dados constitui uma BD, como o simples caso de uma agenda com as moradas de pessoas conhecidas. O objetivo de criarmos e mantermos uma BD é a de podermos pesquisar e utilizar os dados armazenados, como por exemplo para procurarmos a morada de uma determinada pessoa na agenda (Caldeira, 2007).
O termo base de dados é aplicado para fazer referência a bases de dados informáticas, ou seja, conjuntos de dados estruturados, manipulados usando um Sistema de Gestão de Bases de Dados (SGBD). Por forma a permitir ao utilizador atingir os objetivos acima referidos, um SGBD disponibiliza as seguintes linguagens (Caldeira, 2007):
Definição de dados: para criação e alteração da estrutura da BD (DDL – Data
Definition Language)
Consulta de dados: obter e processar os dados armazenados (DQL - Data Query
Language)
Manipulação de dados: para acrescentar novos dados e modificar dados existentes (DML - Data Manipulation Language).
19
Alguns exemplos de SGBD são ORACLE, Informix, SQL Server, DB2, MySQL e PostgreSQL. Este último foi a ferramenta utilizada no desenvolvimento deste projeto e será descrita com detalhe mais à frente.
2.3 SIG (Sistemas de Informação Geográfica)
Os Sistemas de Informação Geográfica (SIG) constituem-se como importantes instrumentos de organização e análise da informação, sendo utilizados dentro das mais diversas áreas, nomeadamente: agricultura, arqueologia, arquitetura, engenharia, geografia, geologia, planeamento urbano, entre outras (Burrough, 1986).
Foram desenvolvidos para proporcionar aos utilizadores a integração de informação georreferenciada num sistema informático, permitindo através de ferramentas de análise, a criação de nova informação, em função das necessidades de cada utilizador.
Permitem a elaboração de planos Municipais de ordenamento de território, inventários de recursos naturais, gestão de infraestruturas, otimizar localizações e facilitam o cadastro, por exemplo.
Elencamos algumas questões que podem ser respondidas através da utilização de SIG, segundo (Julião, 1997):
Onde está?
Qual a distribuição de? O que mudou?
Qual o melhor caminho? O que aconteceria se?
Os SIG tornam-se assim fundamentais na gestão dos recursos naturais e do ordenamento do território, permitindo dispor, em qualquer momento, de um conjunto integrado de dados multi-setoriais de origens diferentes, facilmente atualizáveis e relacionáveis entre si, através de um referencial comum (um mesmo espaço geográfico) (Burrough, 1986).
20
Para além de facultarem um fácil acesso à informação múltipla integrada numa única base de dados, possibilitam a elaboração de cenários alternativos e a simulação dos seus efeitos espaciais, possibilitando uma melhor e mais precisa definição das medidas de planeamento a serem aplicadas (Luz, 2001).
Este tipo de informação também é denominada de informação geoespacial, podendo incluir informações de estradas, rios, limites de cidades/concelhos/localidades, entre outras. Este sistema permite por exemplo determinar a localização de um rio e precisar a profundidade do mesmo no decorrer do tempo (Folger, 2009).
Na Figura 13, podemos visualizar o ciclo dos SIG para melhor percebermos o fluxo de trabalho do mesmo.
Os SIG enquadram-se neste projeto na medida em que através dos dados que os sensores recolhem, será possível verificar o tamanho da vegetação na área envolvente. No nosso caso terá particular interesse no sentido em que poderemos identificar e delimitar as áreas de pastoreio onde a vegetação possua o tamanho e qualidade por nós definida.
21
Este é um dos objetivos deste projeto pois permitirá mover os rebanhos para a área de pastoreio mais desejável e sem necessidade de deslocação humana ao terreno, permitindo assim uma monitorização remota.
2.4 Ferramentas utilizadas
As ferramentas utilizadas neste projeto foram o PostgreSQL e PostGIS para registar e manusear todos os dados existentes no mesmo. Visto ser objetivo a criação de uma base de dados, o PostgreSQL foi escolhido para o manuseamento da mesma, sendo que para a componente espacial foi escolhido o PostGIS (extensão espacial do PostgreSQL). A escolha destas ferramentas teve em vista diversos fatores: custo (gratuito), métodos/formatos/atributos suportados, funcionalidades disponibilizadas e interação com outros produtos, como evidenciado no ANEXO A.
2.4.1 PostgreSQL
O PostgreSQL é um sistema de gestão de bases de dados (SGBD), baseado no POSTGRES Versão 4.2 desenvolvido pelo Departamento de Ciência da Computação da Universidade da Califórnia em Berkeley. O POSTGRES foi pioneiro em vários conceitos que apenas ficaram disponíveis anos mais tarde em alguns sistemas de bases de dados comerciais. O PostgreSQL é um descendente de código fonte aberto deste código original da Berkeley, suportando grande parte do padrão SQL: além de oferecer diversas funcionalidades modernas (PostgreSQL, 2012):
Comandos complexos; Chaves estrangeiras; Gatilhos (triggers); Visões;
22 Integridade transacional;
Controle de simultaneidade multiversão.
O PostgreSQL possui licença livre permitindo a sua utilização, modificação e distribuição por qualquer indivíduo para qualquer finalidade, seja privada, comercial ou académica, sem qualquer custo associado.
Seguem alguns exemplos em que o utilizador pode acrescentar características de muitas formas, como por exemplo, adicionando novas extensões (PostgreSQL, 2012):
Tipos de dados; Funções; Operadores;
Funções de agregação; Métodos de índice;
O PostgreSQL utiliza várias linguagens para programar, definir dados e para os manipular. Como o próprio nome indica, suporta a linguagem de programação SQL, para definir os dados temos DDL e para manipular os dados DML (Mourão, 2011).
O SQL (Structured Query Language) é uma linguagem de programação que serve como ferramenta para gerir dados em sistemas administradores de base de dados. Foi criada na IBM nos anos 1970 para manipular os dados na base de dados da IBM. Hoje em dia é utilizada em todos os grandes sistemas de bases de dados. Muitos destes sistemas desenvolveram extensões próprias, tal como o PL/pgSQL do Postgres e o PL/SQL da Oracle. O seu standard mais recente é o SQL-2008 e a sua documentação é paga. A última versão cujo standard está disponível gratuitamente é o SQL-92 (Solgate, 2005).
A Linguagem de Definição de Dados (DDL) consiste numa linguagem utilizada por aplicações ou utilizadores que permite definir estruturas de dados numa base de dados. No caso da linguagem SQL, as principais querys desse tipo são CREATE TABLE, DROP TABLE, ALTER TABLE.
23
Os principais tipos de dados suportados pelo PostgreSQL estão ilustrados a Tabela 3:
A Linguagem de Manipulação de Dados (DML) consiste numa linguagem utilizada por aplicações ou utilizadores que permite realizar consultas e alterar informação numa base de dados. No caso da linguagem SQL, consiste nas perguntas que criam ou manipulam dados (INSERT, UPDATE e DELETE) ou que apenas fazem consultas (SELECT) (Mourão, 2011).
Através de comandos SQL segue um exemplo da criação de uma tabela (Figura 14), inserção de dados e pesquisa dos mesmos:
Figura 14 – Código exemplo da criação de uma tabela
24
Neste breve exemplo é criada a tabela “rebanho”, com os atributos: id_rebanho que é do tipo serial. Uma vez que este atributo é sequencial, id_pastor do tipo integer e ainda é colocada como chave primária o atributo id_rebanho. Seguidamente são inseridos os valores 1 e 2 na tabela rebanhos, respetivamente para id_rebanho e id_pastor. Por fim é efetuada uma pesquisa por toda a tabela rebanho, ou seja, é apresentada toda a tabela.
De realçar que o PostgreSQL possui uma ferramenta para administração da base de dados, denominada pgAdmin III. Esta ferramenta permite entre outras funções, carregar arquivos de linguagem SQL (através de uma interface gráfica) evitando o uso de comandos SQL (Medeiros, 2008). Como esta ferramenta possui uma boa interface gráfica, de fácil perceção, podemos criar e alterar funcionalidades na nossa base de dados sem necessidade de possuirmos conhecimentos avançados em SQL, podendo ser o utilizador com conhecimentos básicos a manipular a nossa base de dados.
Fazendo uma comparação ao exemplo anterior, a criação da tabela rebanho, iremos demonstrar passo-a-passo, uma forma mais fácil embora mais demorada para a criação da mesma.
Passo I – Criar tabela rebanho:
25 Passo II – Atribuir nome à tabela
Figura 16 – Passo II
Passo III - Definir os dados “id_rebanho” do tipo serial e “id_pastor” do tipo integer:
Figura 17 – Passo III
Passo IV - Definir “id_rebanho” como chave primária:
Figura 18 – Passo IV
Passo V – Mostrar a informação da tabela.
26
Foi privilegiado o uso de PostgreSQL por possuir uma extensão espacial (PostGIS), ser um sistema de gestão de bases de dados diferente do usual MySql, permitir uma utilização e modificação por qualquer indivíduo, incluindo desenvolver linguagens/extensões próprias (neste caso foi utilizado o SQL básico) e ainda possuir uma interface gráfica (pgAdmin III) que permite manusear a base de dados sem a utilização de comandos SQL.
2.4.2 PostGis
Na última década surgiu um novo tipo de base de dados, geográfico ou espacial, com capacidade de armazenar dados sobre informações de âmbito espacial, como geometrias diversas (muito útil para várias aplicações do geoprocessamento) (Refractions, 2005).
Surgiu assim também a terminologia de "extensões espaciais", no caso do PostgreSQL a sua extensão espacial é denominada PostGis, possibilitando as seguintes extensões espaciais, Figura 20:
De acordo com a Figura 20, estas extensões espaciais possuem a seguinte representação textual (Refractions, 2005):
27 Point: (0 0 0) LineString: (0 0, 1 1, 2 2) Polygon: ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), ( 1 0 0,...), ...) MultiPoint: (0 0 0, 4 4 0) MultiLineString: ((0 0 0, 1 1 0, 2 2 0), (4 4 0, 5 5 0, 6 60)) MultiPolygon: ( ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), (...),...), ...)
GeometryCollection: (POINT (2 2 0), LINESTRING ( (4 4 0, 9 90))
Outro grande destaque do PostGis é o grande número de operadores espaciais que estão disponíveis, entre alguns deles podemos citar, Tabela 4 (Queiroz, 2006):
Operadores Função
Topológicos
equals (geometry, geometry) disjoint(geometry, geometry) intersects(geometry, geometry) touches(geometry, geometry) crosses(geometry, geometry) within(geometry, geometry) overlaps(geometry, geometry) contains(geometry, geometry) relate (geometry, geometry)
Construção de mapas de distância buffer (geometry, double, [integer])
Construção do fecho convexo convexhull (geometry)
Conjunto
intersection(geometry, geometry) geomUnion(geometry, geometry) symdifference(geometry, geometry)
difference(geometry, geometry)
Métricos distance (geometry,geometry)
area (geometry)
Centroíde de Geometrias Centroid (geometry)
Validação (verifica se a geometria possui
Auto intersecções) isSimple (geometry)
28
Em suma, este segundo capítulo tem como propósito inteirar-nos sobre os temas adjudicados a este projeto. Começando por esclarecer as redes de sensores sem fios e suas aplicações, com especial incidência na área da agricultura onde foi focada as Wireless
Farms. Ao incidir sobre estes temas surgiu também interesse em explicar as tecnologias
subjacentes e suas aplicações, bem como as que foram usadas no presente projeto. Foram abordados termos como: RFID, Base de Dados, Sistemas de Informação Geográfica, e ferramentas que permitiram a manipulação dos dados: PostgreSQL e PostGIS.
29
Capítulo 3
3. Conceção e Implementação
Este capítulo pretende apresentar o sistema e explicar o propósito do mesmo.
O sistema Pastoreio Virtual nasce da necessidade de reavivar a exploração da pastorícia, visto a maior parte dos pastores em atividade se encontrarem envelhecidos. Este sistema permitirá realizar uma monitorização remota da atividade que irá colmatar a necessidade da presença humana no terreno.
O propósito deste projeto é a criação, desenvolvimento e implementação de uma
framework de gestão do Pastoreio Virtual. Com base em dados capturados por sensores
sem fios, serão determinadas e delimitadas áreas de pastoreio ideais. Serão também registadas, numa base de dados, todas as características importantes constituintes de um rebanho. Estas informações estarão disponibilizadas numa plataforma web de modo a termos a possibilidade de monitorizar remotamente o comportamento dos rebanhos.
30
O sistema "pastoreio virtual" segue um fluxo previamente estruturado que passo a descrever, conforme Figura 21:
[1º] Recolha de dados - Os dados relevantes são captados através de sensores, dispostos no terreno, que por sua vez nos fornecem as características que pretendemos analisar (tamanho vegetação, informação geográfica, etc.);
[2º] Base de dados - A base de dados servirá para alocar toda a informação captada pelos sensores;
[3º] Servidor Web – O servidor Web irá conter a aplicação que será baseada num SITE, com um ambiente gráfico de fácil utilização.
[4º] Internet - A Internet será o meio de comunicação entre a aplicação e o utilizador final;
31
[5º] Utilizador - O utilizador será quem vai usufruir a aplicação Web no seu pleno. Uma das preocupações foi de criar uma aplicação bastante intuitiva, para ser de fácil entendimento.
Em suma, os sensores dispersos no terreno recolhem a informação das características que pretendemos analisar, as quais serão alocadas na nossa base de dados. Teremos um servidor web onde estará a aplicação desenvolvida. O utilizador consultará a aplicação e os pedidos efetuados por ele serão transmitidos para a base de dados que nos devolverá com a informação desejada.
3.1 Base de Dados
A base de dados possuirá uma tabela para logins, de forma a registar os utilizadores e respetivas passwords, para posterior autenticação no sistema.
A tabela "sensores" é fulcral no presente projeto, pois nela estará contida toda a informação relativa á área de pastoreio bem como da altura da vegetação circundante. Irá conter também as características físicas (mac) e de instalação do mesmo no terreno.
32 ´
Cientes das necessidades deste projeto foram criadas tabelas com relacionamentos mútuos para que a transferência de informação entre estas se torne possível e disponível na aplicação Web.
A Figura 24 ilustra uma visão geral da nossa base de dados, que nos permite armazenar os dados essenciais para o projeto em questão:
Figura 24 – Visão geral da base de dados Figura 23 – Tabela sensores
33
Assim, foi construída a tabela "animal" que possuirá relacionamento entre a maioria das tabelas, esta terá como atributos:
Id (identificação);
Id animal (identificação do animal);
Id_rebanho (identificação do rebanho a que pertence); Abate (data do abate do animal);
Data_nasc (data de nascimento do animal). Raça (raça do animal)
Exemplo de pesquisa: A ovelha 1 pertencente ao rebanho 2 nasceu a 20 Janeiro 2010 e foi abatida a 20 Julho 2011.
Cada animal pertencerá a um rebanho, portanto criou-se a tabela "rebanho" com os seguintes atributos:
Id_rebanho (identificação do rebanho); Id_pastor (identificação do pastor).
Exemplo de pesquisa: O rebanho 2 pertence ao pastor 3.
Uma vez que todos os animais pertencem a rebanhos, controlados por pastores, a tabela "rebanhos" relaciona-se obrigatoriamente com a tabela "pastores":
Id_pastor (identificação do pastor); Nome (nome do pastor);
Idade (idade do pastor);
Freguesia (freguesia a que pertence o pastor); Distrito (distrito a que pertence o pastor); Concelho (concelho a que pertence o pastor);
Exemplo de pesquisa: O pastor 3 de nome Manuel Silva tem 52 anos pertence à freguesia de Nossa Senhora da Conceição, distrito de Vila Real e concelho de Vila Real.
34
Dada a motivação para a continuidade da espécie, a reprodução animal é um ato constante pelo que foi criada a tabela "partos":
Id_parto (identificação do parto); Id_mae (identificação da progenitora); Data_nasc (data do parto);
Nr_crias (número de crias).
Exemplo de pesquisa: O parto 4 registou que a ovelha 1 no dia 10 Fevereiro 2011 teve 2 crias. Para sabermos que crias nasceram, voltamos á tabela animal e pesquisamos animais nascidos no dia 10 Fevereiro 2011, cuja progenitora é ovelha 1.
Quando se pensa em reprodução no meio animal existe a associação do termo "criar para matar", criação exaustiva com fim ao abate assim que atinja o peso ideal para o efeito. Originando assim uma tabela para registar o peso "histórico_peso".
Id (identificação);
Id animal (identificação do animal pesado); Peso (peso do animal (KG));
Data (data da pesagem).
Exemplo de pesquisa: A ovelha 1 na pesagem 5, a 20 Abril de 2010, registou o peso de 5Kg.
Devido á necessidade de manter um ambiente higiénico-sanitário correto para os animais, prevenindo o aparecimento de doenças e promovendo um ciclo de vida saudável surgiu a necessidade de criar a tabela "vacinação" que possuirá os atributos abaixo enumerados:
Id_vacina (identificação da vacina);
Id_animal (identificação do animal vacinado); Data (data da vacinação);
35 Lab (laboratório da vacina).
Exemplo de pesquisa: À ovelha 3, no dia 3 Abril 2011, foi lhe aplicada a vacina 11 do lote XXX e do laboratório YYY.
No caso concreto do gado ovino, devido á sua capacidade contínua de produção de lã, despontou o interesse de construir a tabela "tosquia":
Id_tosquia (identificação da tosquia); Id_animal (identificação do animal); Data_tosquia (data da tosquia);
Peso_pelo (peso da lã resultante da tosquia)
Exemplo de pesquisa: À ovelha 7, no dia 25 Março 2011, foi efetuada a tosquia 6, resultando 1 Kg de lã.
3.2 Aplicação Web
Qualquer aplicação Web tem a componente executada no cliente (browser) e uma componente executada no servidor. Do “lado do cliente” são utilizadas linguagens/tecnologias como HTML, CSS e Javascript visualizadas através do browser. Por sua vez, do “lado do servidor”, são executadas linguagens como JAVA, C#, PHP, SQL, entre outras. Ambos os componentes funcionam sem que os intermediários tenham conhecimento das linguagens utilizadas em cada parte (K19, 2012).
A plataforma, baseada num Site Web, vai possibilitar a manipulação da informação contida nas tabelas da base de dados que através de comandos em SQL (Structured Query
Language) irão disponibilizar aos utilizadores as informações que procuram. Os dados
podem possuir informações geográficas que serão visualizadas na aplicação através de mapas disponibilizados pela ferramenta Google maps API.
36
3.2.1 Introdução aos Padrões Web
Os Padrões Web, ou Web Standards, segundo definição do W3C (Worl Wide Web
Consortium), são um conjunto de normas, diretrizes, recomendações, notas, artigos,
tutoriais e outros, de caráter técnico, com o intuito de orientar fabricantes/programadores para o uso de práticas que possibilitem a criação de uma web acessível a todos, independentemente dos dispositivos usados ou de possuírem necessidades especiais (Reis, 2007).
Essas normas, na prática, são constituídas basicamente por três componentes independentes: estrutura (HTML, XML, XHTML), apresentação (CSS) e comportamento (JavaScript). Utilizar padrões para a Web é extremamente vantajoso, pois proporcionam um maior controlo sobre a página. Quando se assume que uma página é compatível com os padrões, significa que o documento contém HTML ou XHTML válido, utiliza CSS para
layout, é bem-estruturado e semanticamente correto. São estes fatores que determinam a
acessibilidade do site a partir de qualquer dispositivo (móvel, tátil, desktop, etc). Para percebermos melhor a usabilidade destes padrões seguem algumas vantagens (Reis,2007):
Separação de conteúdo e apresentação, para tornar o código limpo e correto;
Manutenção e desenvolvimento simplificados: usar HTML semântico e bem estruturado torna mais fácil a compreensão do código e reduz custos e trabalho desnecessário;
Compatibilidade com as diretrizes de acessibilidade sem comprometer a estética, o desempenho ou a sofisticação;
Adaptação simplificada: sendo apenas necessário incluir um arquivo CSS diferente; Compatibilidade com versões futuras: sites projetados utilizando padrões definidos
e código válido, reduzem o risco de novos browsers serem incapazes de descodificar a codificação utilizada;
37
Maior velocidade no carregamento da página: menor tamanho de HTML resulta em arquivos de tamanho menor e download mais rápido, fazendo com que os browsers modernos tenham maior rendimento e carreguem as páginas mais rapidamente; Melhor posicionamento nos motores de busca.
Em suma, sites desenvolvidos com base nestes padrões, possuem menor custo de desenvolvimento, funcionam melhor e são acessíveis a mais pessoas e dispositivos.
,
3.2.2 HTML
O conteúdo de uma página web, na generalidade, é escrito na linguagem HTML (HyperText Markup Language), que é uma linguagem de marcação originalmente proposta por Tim Berners-Lee no final da década de 1980.
Até à data, essa proposta sofreu várias alterações, sendo a mais atual HTML5 que embora não esteja totalmente concluída (working draft), já é implementada em novos recursos de alguns browsers. As especificações do HTML são publicadas pelo World Wide
Web Consortium mais conhecido por W3C. Este, estabelece padrões para a criação e a
interpretação de conteúdos para a Web, tornando uma visualização idêntica em todos os
browsers (K19, 2012).
O código HTML é responsável pelo conteúdo e estrutura de uma página. A estrutura engloba as partes principais do documento, a semântica e os elementos que ele contém. Uma linguagem de marcação, como o HTML, contém dados de texto formatados de acordo com seu significado estrutural: título, parágrafo, lista, além de também conter objetos incorporados, como imagens ou apresentações em Flash. Para que o código HTML seja semanticamente correto deve ter na sua estrutura “tags”, que são as marcas que formatam a página (Reis, 2007). De seguida segue um excerto do código utilizado no portal pastoreio virtual, Figura 25.
38
Nos dias de hoje, qualquer pessoa consegue criar um site recorrendo a ferramentas de desenvolvimento que permitem desenvolver websites sem a necessidade de possuir conhecimento de tags HTML básicas, ao mesmo tempo em que permite visualizar o site com a mesma aparência que ele terá no browser depois de pronto.
A popularidade e facilidade dos editores visuais WYSIWYG “What You See Is What
You Get” (“O que vês é o que obténs”) oferecem um desenvolvimento próximo aos
padrões web (como por exemplo, o software Macromedia/Adobe DreamWeaver, a partir da versão 8) (Reis, 2007).
Estes editores geram comodidade nos programadores que criam o hábito de confiar apenas na ferramenta, contribuindo com códigos semanticamente incorretos em diversas páginas da internet.
Devido a este fator a aplicação foi construída sem recurso a este tipo de ferramentas sendo apenas utilizado um editor de código (Notepad++), por rotina, mas poderíamos apenas ter utilizado um simples bloco de notas, gravando apenas com a extensão “.html”.
39
3.2.3 CSS
O CSS (Cascading Style Sheets – Folhas de estilo em Cascata), que é recomendado pelo W3C, controla a apresentação da página, ou seja, o aspeto visual dos elementos do HTML (tipografia, posicionamento, cor, etc...) encontrando-se atualmente na terceira versão.
Este pode ser de aplicado de quatro diferentes formas num documento HTML (Reis, 2007):
CSS Inline: são aplicadas num elemento individual através do atributo style.
Figura 26 – Código exemplo (CSS Inline)
CSS Incorporado: incorporadas no conteúdo através do elemento style no cabeçalho (<head>) de um documento HTML;
Figura 27 – Código exemplo (CSS Incorporado)
CSS Externo: são colocadas num arquivo externo com a extensão “.css” e incluídos num ou vários documentos através do elemento <link>. As alterações no arquivo CSS afetam todos os documentos que referenciarem este arquivo como folha de estilo.
40
Figura 28 – Código exemplo (CSS Externo – incluir estilo_externo.css
Figura 29 – Código exemplo (CSS Externo - folha de estilo_externo.css
CSS Importado: também chamadas a partir de um arquivo CSS externo, embora não seja através do elemento link, mas sim da declaração @import. Esta importação não é aceite por browsers antigos.
Figura 30 – Código exemplo (CSS Importado)
A utilização das duas primeiras deve ser restringida pois retiram flexibilidade do CSS e da respetiva separação entre conteúdo versus apresentação. Em suma, a apresentação visual (através do CSS), deve ser definida por via de arquivos externos, com o intuito de facilitar a manutenção nas páginas e evitando o carregamento de informações visuais de cada vez que a página é acedida.
41
A partir das características citadas e sendo bem utilizado, o CSS proporciona inúmeros benefícios, como por exemplo (Reis, 2007):
Conservação da largura de banda do utilizador, acelerando os tempos de carga da página (a página ficará mais célere);
Redução da carga do servidor e da largura de banda do proprietário, economizando dinheiro;
Redução do tempo de design e desenvolvimento;
Aumento da interoperabilidade, aderindo aos padrões Web; Aumento da acessibilidade;
3.2.4 – Javascript
JavaScript consiste numa linguagem de programação criada pela Netscape em 1995, que no princípio se chamava LiveScript e depois do sucesso inicial desta linguagem, recebeu uma colaboração considerável da Sun. Após esta colaboração, podemos dizer que o JavaScript é uma linguagem compatível com a linguagem Java, por esta razão, a semelhança dos nomes "JavaScript" (Reis, 2007).
O uso de JavaScript em páginas HTML deve ser informado ao browser da seguinte forma:
42
Esta linguagem foi criada para permitir uma maior interação com a página e para validação de formulários no lado cliente.
Na Figura 32 segue um excerto de código onde foi utilizado Javascript dentro da página HTML, servindo neste caso para mostrar no mapa a localização dos sensores.
Figura 32 – Excerto de código Javascript usado
Com a popularização da Web, criou-se a necessidade de tornar as páginas HTML visualmente mais apelativas ao usuário. Gifs, textos em movimento, animações, sons embutidos e efeitos usando JavaScript tornaram-se comuns em diversos websites, aumentando ainda mais o ambiente despadronizado na World Wide Web (Reis, 2007).
Assim sendo, e apesar de existirem outras linguagens, o W3C recomenda que aspetos de tratamento de eventos e ações automáticas devem ser incluídas numa página Web através da linguagem JavaScript, por forma a seguir o princípio de separação entre conteúdo, apresentação e comportamento, e, manter a acessibilidade e usabilidade (Reis, 2007).
O JavaScript é utilizado essencialmente para ampliar as funcionalidades e facilidades de uma página Web.
43
3.2.5 – JSP (Java Server Pages)
JSP (Java Server Pages) é uma tecnologia utilizada no desenvolvimento de aplicações Web, desenvolvida pela Sun Microsystems, similar às tecnologias Active Server Pages (ASP) da Microsoft e PHP. Esta tecnologia é processada pelo servidor Web antes da página HTML ser enviada para o cliente (Santos, 2008).
Por ser baseada na linguagem de programação Java, tem a vantagem da portabilidade de plataforma, permitindo a sua execução em diversos sistemas operativos, como o Windows e o Linux. O programador web pode produzir aplicações que acedam à base de dados, manipulem arquivos, capturem informações a partir de formulários, bem como informações sobre visitante e servidor.
A arquitetura de uma JSP pode ser visualizada na Figura 33: