Estação Meteorológica com Comunicação por SMS
Transcrição
Estação Meteorológica com Comunicação por SMS
Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Shimene Priscilla Gomes Estação Meteorológica com Comunicação por SMS Curitiba 2004 Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Shimene Priscilla Gomes Estação Meteorológica com Comunicação por SMS Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Prof. Marcelo Mikosz Gonçalves Curitiba 2004 TERMO DE APROVAÇÃO Shimene Priscilla Gomes Estação Meteorológica com Comunicação por SMS Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora: Prof. Marcelo Mikosz (Orientador) Prof. Laerte Cleto Prof. Edson Pedro Ferlin Curitiba, 01 de Janeiro de 2003 AGRADECIMENTOS Primeiramente agradeço a Deus por ter me dado a vida, e por ter superado cada desafio durante esses 5 anos. Dedico essa vitória aos meus pais, que sempre me deram forças para continuar trilhando o caminho que escolhi. Mãe, muito obrigada pelo carinho, dedicação e principalmente pelas palavras doces nos momentos difíceis, que me deram coragem para não desistir. Obrigada pelas noites de sono que perdeu trabalhando em busca de proporcionar-nos uma educação melhor e uma vida mais confortável, é com certeza conseguiu, essa conquista é sua! Pai, obrigada por todo amor, carinho e principalmente pelas palavras certas nas horas certas, palavras duras, porém muitas vezes me fizeram refletir e mudar a direção do meu caminho. Agradeço por sua luta, onde sempre procurou superar os desafios de cabeça erguida, enfim sua presença sempre forte, foi um espelho de honestidade, integridade e honra para nós, tenho muito orgulho de ser sua filha! Shaia, obrigada pela irmã dedicada, pelas vibrações positivas e por muitas vezes me dar seu colo nos momentos de angústia. Simba, obrigada por ficar ao meu lado até altas horas, eu sei que você não fala, porém nunca me senti sozinha! Fernando, meu amor, agradeço por todo seu carinho e compreensão devido a minha ausência, e pelas palavras de incentivo. Dedico a conclusão deste projeto em especial a um grande amigo Vilson Rodrigo Mognon (Engenheiro Eletrônico e Mestre em Engenharia Elétrica), que me ajudou a desenvolvê-lo e a implementá-lo, você é o meu grande mestre. Agradeço ao pai-orientador Marcelo Mikosz pela dedicação e atenção, e ao meu grande amigo Leonardo Saba pela presença alegre, e descontraída. SUMÁRIO 1. Introdução....................................................................................................................5 2. Revisão da Literatura...................................................................................................7 2.1. A Estação Meteorológica por Comunicação Móvel ............................................7 2.1.1. Módulos da Estação Meteorológica .................................................................8 2.2. Fundamentação Teórica da Estação Meteorológica ..........................................9 3. Objetivo, Materiais e Métodos ...................................................................................13 3.1. Funções do Sistema ...............................................................................................13 3.1.1. Aquisição de dados e Endereçamento dos Sensores ....................................13 3.1.1.1. Endereçamento dos Sensores ............................................................15 3.1.1.2. Protocolo de Comunicação e Codificação dos Dados........................20 3.1.1.3.Temporização da Aquisição .................................................................21 3.1.1.4. O Microcontrolador ATmega161 .........................................................23 3.1.1.4.1. Funções Básicas do Microcontrolador ATMEGA161 ...............25 3.1.2. Os Sensores Meteorológicos .........................................................................27 3.1.2.1.O Pluviômetro (Sensor de Índice de Precipitação Pluvial) ..........................27 3.1.2.2.O Barômetro (Sensor de Pressão) ...............................................................30 3.1.2.3.Sensor de Temperatura ...............................................................................32 3.1.2.3.1Descrição do Sensor de Temperatura Tmp100..........................33 3.1.2.3.2.Registrador de Temperatura .....................................................33 3.1.2.4.Sensor de Umidade Relativa........................................................................34 3.1.2.5.Sensor de Velocidade e Direção do Vento...................................................36 3.1.3. Módulo de Transmissão e Recebimento de SMS .........................................39 3.1.3.1. Fluxograma para Envio e Recebimento de Mensagens SMS por Comandos AT .......................................................................................40 3.1.3.2.Modem GSM WaveCom...............................................................................44 3.1.3.2.1.Funcionalidades RF (Radiofreqüência) .....................................45 3.1.3.2.2.Firmware ...................................................................................45 3.1.3.2.3.Interfaces ..................................................................................46 3.1.3.3.Comandos OpenAT......................................................................................46 3.1.4. Software de Gerenciamento dos Dados Atualização dos dados....................50 3.1.4.1.Ambiente de Desenvolvimento.............................................................50 3.1.4.2. Implementação do Software de Gerenciamento .................................50 3.1.4.2.1. Diagrama de Caso de Uso .......................................................51 3.1.4.2.2. Roteiros....................................................................................51 3.1.4.2.3. Diagrama de Classes ...............................................................53 3.1.4.2.4. Diagrama de Classes de Negócios ..........................................54 3.1.4.2.5. Diagrama de Colaboração .......................................................56 3.4.1.3. Interface com Usuário – Módulo Adicional ..........................................62 3.1.4.4. Linguagem de Programação ...............................................................64 4. Resultados e Discussão ............................................................................................66 4.1.Aquisição dos dados e Endereçamento dos sensores ............................................66 5. Conclusões................................................................................................................69 6. Referências Bibliográficas .........................................................................................70 7. Anexo 1 - Cronograma Projeto Final .........................................................................71 8 . Anexo 2 - Descrição detalhada dos Comandos AT .................................................73 LISTA DE FIGURAS Figura 1. Diagrama de Blocos básico dos Módulos Integrados do Sistema. ...................9 Figura 2. Diagrama em Blocos da Estação Meteorológica. ...........................................10 Figura 3. Diagrama de blocos da Estação COLPAM 50................................................11 Figura 4. Estrutura Metálica da Estação Colpam 50. ....................................................12 Figura 5. Estação Meteorológia Wireless Ws-2010.......................................................12 Figura 6 . Estados dos sensores gerenciados pelo microcontrolador. ..........................14 Figura 7 . Representação do Endereçamento dos Pinos e o Endereço Escravo no TMP100. ........................................................................................................................15 Figura 8. Diagrama de Tempo para Configuração do TMP100. ....................................16 Figura 9. Byte de Registro e Configuração do Formato do Registrador. .......................16 Figura 10. Diagrama de Tempo para Leitura da Temperatura do TMP100. ..................17 Figura 11. Estrutura Hierárquica do Protocolo de Comunicação 1-Wire .......................19 Figura 12. Representação da Memória ROM ................................................................19 Figura 13 . Representação do Protocolo de Comunicação. ..........................................20 Figura 14 . Diagrama em Blocos da Arquitetura do Microcontrolador ATmega161.......24 Figura 15. Diagrama Esquemático do circuito da Estação Meteorológica.....................26 Figura 16. Estrutura Mecanica do Pluviômetro ..............................................................28 Figura 17. Diagrama esquemático do Sensor de Índice de Precipitação Pluvial ...........30 Figura 18. Configuração da rede 1-Wire........................................................................31 Figura 19. Diagrama esquemática do Barômetro (Sensor de Pressão) ........................31 Figura 20. Diagrama em blocos do Sensor de Temperatura Tmp100. ..........................32 Figura 21. Diagrama Esquemático do Sensor de Temperatura TMP100. .....................33 Figura 22. Byte 1 do Registrador de Temperatura ........................................................33 Figura 23. Byte 2 do Registrador de Temperatura. .......................................................33 Figura 24 . Formatação de Dados da Temperatura.......................................................34 Figura 25. Ilustração do Sensor de Umidade Relativa HIH-3610. .................................34 Figura 26. Tensão de saída versus temperatura em 0º C, 25ºC e 85ºC........................35 Figura 27. Diagrama Esquemática do Sensor de Umidade Relativa. ............................36 Figura 28.Ilustração do Sensor de Velocidade e Direção do Vento .............................38 Figura 29. Diagrama Esquemático do Sensor de Velocidade e Direção do Vento........38 Figura 30. Diagrama em Blocos da Transmissão SMS. ...............................................39 Figura 31. Cartão PCMCIA GTran Wireless ..................................................................43 Figura 32. Modem DTSS-800(Tecnologia CDMA 1xRTT).............................................44 Figura 33. Arquitetura funcional interna do Módulo WaveCom .....................................46 Figura 34. Módulo do Modem Wavecom .......................................................................48 Figura 35. Foto do Módulo do Modem Wavecom. .........................................................49 Figura 36. Tela de Configura Tempo de Aquisição. ......................................................56 Figura 37. Tela de Aquisição. ........................................................................................58 Figura 38. Tela de Cadastro de Funcionários................................................................60 Figura 39. Diagrama em blocos do armazenamento das informações, conversão dos dados e o recurso adicional (trigger). ............................................................................63 Figura 40. Website DavisNet, as informações são atualizadas em tempo real .............64 LISTA DE SIGLAS 1xRTT - 1xRadio Transmission Technology APIs - Application Programming Interfaces CMOS – Metal Oxide Semiconductor CRC - Check Redundancy Cyclic GPRS - General Packet Radio Service I2C - Interface Compability – 2 Wire POO - Programação Orientada a Objetos RAM – Read Access Memory ROM – Read Only Memory RH – Relative Humidity SMS - Short Message Service SPI – Serial Program Interface RESUMO A Meteorologia é um fator determinante para todos, principalmente para pessoas que necessitam destas informações para executar suas atividades, como por exemplo, esportistas e agricultores. Portanto, a Estação Meteorológica com Comunicação por SMS, tem como principal objetivo realizar a aquisição de dados climáticos que são gerados por sinais inerentes ao meio, para tanto utiliza-se sensores especiais: índice de precipitação pluvial, umidade relativa, pressão, temperatura, direção e velocidade do vento; os dados aquisicionados são transmitidos em uma mensagem SMS, atualizando em tempo real as informações referentes às condições climáticas em um Website. ABSTRACT The Meteorology is a decisive factor for all, mainly for people that need these information to execute their activities, for example, sportsmen and farmers. Therefore, the Meteorological Station with Communication for SMS, has as main objective to accomplish the acquisition of climatic data that they are generated by inherent signs to the environment for so much is used sensor special: index of pluvial precipitation, relative humidity, pressure, temperature, wind direction and speed; the data are transmitted in a message SMS, updating in real time the information regarding the climatic conditions in a Website. 5 1. INTRODUÇÃO Há vários séculos, o homem se mantém preocupado em adquirir informações sobre as condições climáticas. Atualmente, com advento da tecnologia dos sistemas de comunicação, essas informações tornaram-se mais acessíveis, sendo um fator determinante para pessoas que dependem dela para executar suas atividades. A Estação Meteorológica tem com objetivo realizar aquisição de dados referente a condições climáticas através de sensores especiais, e interpretá-los, para gerar estatísticas das condições de uma certa região, e disponibilizar estas informações ao cliente. É importante ressaltar que não se trata de um equipamento capaz de comparar dados e realizar previsão do tempo, e sim informar ao usuário sobre as condições em um período que pode ser estabelecido pelo mesmo. Os sensores a serem utilizados para aquisicionar estes dados são relativos à temperatura, índice de precipitação pluvial, sensores de umidade relativa, direção e velocidade do vento, e pressão. O projeto da Estação Meteorológica por Comunicação Móvel aplica-se principalmente a esportistas, agricultores, centros meteorológicos; os quais dependem de fatores como as condições climáticas para praticar esportes, analisar qual o melhor período para o plantio e realizar a monitoração de uma determinada região, respectivamente. As consultas a estas informações podem ser efetuadas através de um sistema de gerenciamento ou em um website, que são atualizadas através de mensagens instantâneas (SMS). Atualmente, as estações meteorológicas que são instaladas em campo são alimentadas por energia solar, e as informações são coletadas localmente, através de um cartão de memória, ou transmitidas via radiofreqüência. A transmissão via aparelhos de comunicação móvel oferece uma inovação, e agrega muitos benefícios como a segurança de informações, a velocidade e praticidade da consulta via Internet ou via celular. As principais metas a serem alcançadas ao longo do projeto são a aquisição dos dados gerados pelos sensores relativos a condições climáticas; o tratamento e a interpretação desses dados, a fim de gerarem estatísticas, as quais podem ser consultadas, utilizando os parâmetros, como por exemplo, um dado período, ou um range de temperatura. Contudo, a transmissão via comunicação móvel por mensagens instantâneas é um grande desafio, porque trata-se da transmissão e recepção de 6 dados serialmente através de um modem, e para tanto faz-se necessário a implementação de um protocolo de comunicação para a codificação destes dados. 7 2. REVISÃO DA LITERATURA 2.1. A Estação Meteorológica por Comunicação Móvel A Estação Meteorológica por Comunicação Móvel utiliza sensores especiais, cujo principio básico é adquirir sinais analógicos inerentes ao meio e convertê-los digitalmente, a fim de gerar informações. No mercado há diversos sensores utilizados, porém foram estudados os principais e mais usuais para a composição de uma estação, são eles: • Pluviômetro: mede o índice de precipitação pluvial, através de um equipamento capaz mesurar a quantidade de chuva em período selecionado; • Anemômetro: consiste em equipamento capaz de apresentar a direção e velocidade do vento, por exemplo, se está para o Norte, Sul, Leste, Oeste, Centro-Oeste, Nordeste, Noroeste e Sudoeste; • Sensor de Umidade: mensura qual é umidade relativa do ar; • Sensor de Temperatura: mensura qual é a temperatura climática; • Barômetro: mensura qual é a pressão do ar; Os sensores selecionados para a composição, foram os sensores de temperatura, o anemômetro e pluviômetro, porém é possível ser expandido para os sensores listados acima. A aquisição dos dados é realizada de acordo com um temporizador, o qual recebe dados de cada um dos sensores em intervalos de tempo estipulados através do microcontrolador, estes são armazenados em memória para posterior transmissão. Embora estes sejam representados binariamente, é necessário realizar uma conversão desses dados recebidos para visualização no display, isto é, transformá-los em medidas relativas a temperatura, umidade, quantidade de chuva, pressão, direção e velocidade do vento. Contudo, é necessária a codificação destes dados binários de acordo com a resolução pertinente a cada sensor, para posteriormente realizar a transmissão serial através do microcontrolador para um aparelho de celular, este por sua vez, cria uma mensagem instantânea (SMS), onde está encapsulado o pacote referente às informações de cada sensor. O modem receptor, realiza o desencapsulamento 8 do pacote, e a decodificação destes dados, transformando-os em medidas reais e atualizando no software de gerenciamento, o qual poderá também enviar mensagens SMS para o celular do cliente, de acordo com as necessidades específicas do mesmo. 2.1. 1. Módulos da Estação Meteorológica O projeto da Estação Meteorológica foi segmentado em quatro módulos, Aquisição e Temporização da recepção dos dados, Encapsulamento, Transmissão SMS, Recepção SMS e Atualização das informações, detalhadamente são: • Módulo de Aquisição e Temporização da recepção: Os dados são aquisicionados através de sensores relativos a cada fenômeno climático. O microcontrolador realiza a temporização para a habilitação do barramento efetuando a leitura dos sensores, ou seja, é pré-estabelecido um intervalo de tempo para a coleta de dados de cada sensor, o qual pode ser previamente configurável. Por exemplo: um segundo de intervalo para a transferência dos dados digitais do sensor de temperatura, então no próximo intervalo fixo realiza a leitura para o sensor de velocidade do vento, e assim sucessivamente; • Módulo Encapsulamento: os dados recebidos referente à aquisição de cada sensor são codificados de acordo com a resolução de cada um e armazenados em um pacote de 140 bytes para encapsulamento em um pacote SMS, sendo possível realizar aquisição de várias amostras. A codificação faz-se necessária para garantir a integridade dos dados. • Módulo de Transmissão SMS: o pacote SMS é extraído da memória após ser realizada a codificação para o encapsulamento, totalizando 140 bytes. A transmissão é realizada através de uma seqüência de comandos específicos, utilizados também para habilitação do módulo, como também, para a recepção, posteriormente estes dados são decodificados, e convertidos em informações interpretáveis. As mensagens instantâneas são enviadas a uma velocidade de aproximadamente 144 Kbps, porém limitada pela velocidade de transmissão serial que tem como padrão 112,5 Kbps; uma outra limitação significativa está no tamanho da mensagem o qual é de no máximo de 144 bytes, limitando o número de amostras; 9 • Módulo Recepção SMS e Atualização: é responsável pela extração dos dados do SMS e pela decodificação onde é realizado a conversão destes dados codificados em informações reais, então é efetuada a atualização em um software de gerenciamento, propiciando a consulta, através do banco de dados. A representação dos módulos pode ser visualizada na figura 1. Aquisição e Temporização de recepção Encapsulamento Transmissão SMS Recepção SMS e Atualização Figura 1. Diagrama de Blocos básico dos Módulos Integrados do Sistema. É importante lembrar que como é ilustrado não há realimentação do sistema, sendo o ponto inicial os sensores, são responsáveis pela transformação de energias mecânicas em elétrica, e o final o cliente o qual receberá as informações referentes às condições climáticas. 2.2. Fundamentação Teórica da Estação Meteorológica A estação Meteorológica consiste em um equipamento capaz de aquisicionar dados sobre as condições climáticas através de sensores especiais para tanto, serão utilizados alguns dos existentes no mercado, são relativos à temperatura, índice de precipitação pluvial, sensores de umidade relativa, direção e velocidade do vento, e pressão. Muitas das estações do mercado possuem tais sensores, porém realizam a medição e armazenamento do parâmetro ambiental em um intervalo de tempo previamente ajustado no próprio equipamento, sendo os dados armazenados em memória, e coletados através de um leitor de memória serial, ou transmitidos via radiofreqüência. A energia é mantida através de um painel solar. No mercado há vários modelos de estações meteorológicas, as mais rústicas utilizam a transferências dos dados aquisicionados através de um simples cartão de memória. Porém, as modernas utilizam transmissões via radiofreqüência ou até mesmo via satélite; onde é possível obter imagens de uma determinada região, observando as direções das correntes marítimas. É importante ressaltar, que o uso da transmissão via 10 SMS é uma grande inovação e grande tendência, sendo as principais vantagens: a velocidade da transmissão, a confiabilidade por uso um serviço de comunicação móvel popular e o baixo custo; sendo possível encapsular várias amostras aquisicionadas dentro de um único SMS. O diagrama em blocos representado na figura 2 ilustra basicamente a funcionalidade de cada módulos discorrido. Display LCD Atmega161 Encapsulamento dos dados Coleta Software de Gerenciamento Website Alimentação da Estação Meteorológica Bateria 12V Regulador 5V Módulo Adicional Figura 2. Diagrama em Blocos da Estação Meteorológica. Devido às características peculiares de cada estação, e para critério de analise e estudo, seguem algumas existentes no mercado. 11 § Colpam 50: Os equipamentos da série produzidos pela Elomed Indústria e Comércio medem e armazenam parâmetros ambientais como temperatura, molhamento foliar, umidade relativa do ar e índice de precipitação pluvial, é um equipamento autônomo que não necessita de alimentação da rede elétrica podendo ser utilizados em locais remotos. Após ser instalado e acionado, ele fará a medição e armazenamento dos parâmetros ambientais em um intervalo de tempo previamente ajustado no próprio equipamento. Os dados armazenados ficam em uma memória, que pode ser desconectado para coleta de dados em microcomputador. A energia elétrica necessária para o funcionamento é obtida de um painel solar que carrega constantemente uma bateria interna, sob o controle de um circuito de recarga. A figura 3 ilustra o diagrama em blocos da estação meteorológica Colpam 50. Figura 3. Diagrama de blocos da Estação COLPAM 50. A instalação em campo consiste na montagem da estrutura metálica. O painel é direcionado para o norte. Abaixo segue a estrutura metálica do funcionamento. 12 Figura 4. Estrutura Metálica da Estação Colpam 50. § WS-2010 - Professional Wireless Weather Center: Estação com transmissão por radiofreqüência em alta velocidade, inclui quatro sensores acoplados, são eles: sensor de umidade e temperatura, pressão, velocidade e direção do vento e o pluviômetro.O funcionamento consiste em estes quatro sensores citados acima coletarem informações do tempo, e enviarem via radiofreqüência para a estação central. Abaixo segue a figura 5 apresentando os sensores existentes e a estação central. Figura 5. Estação Meteorológica Wireless Ws-2010 13 3. OBJETIVO, MATERIAIS E MÉTODOS 3.1. Funções do Sistema As funções do sistema são a Aquisição e Endereçamento dos Sensores, Transmissão, Recepção e Atualização dos dados. 3.1.1. Aquisição de dados e Endereçamento dos Sensores Os sensores especiais de umidade relativa, temperatura, pluviômetro, pressão e anemômetro, são responsáveis pela aquisição de sinais analógicos provenientes do ambiente, porém é necessária a conversão para um sinal digital para tornar-se possível a interpretação dos mesmos. Os sensores selecionados realizam a conversão automaticamente. Contudo, após a aquisição os dados, estes são convertidos para digital de acordo com a resolução de cada sensor, para então, serem codificados e armazenados em um pacote contendo as amostras coletadas para posterior transmissão. O gerenciamento das transferências destes dados é necessário, para que não haja perda de dados, ou superposição. O microcontrolador é programado para gerenciar a leitura de cada sensor com um intervalo de tempo estabelecido o qual pode ser configurado, assim como a temporização que é realizada para mostrar as medidas no display e para envio e leitura de uma short message. Quando um determinado sensor adquirir um sinal proveniente do meio, cabe ao microcontrolador endereçá-lo, para efetuar a leitura serial dos dados gerados, enquanto os demais continuam em estado de espera, até que seja solicitada uma nova amostra, então é coletada uma nova amostra do próximo sensor. Os dois protocolos utilizados pelos sensores para o endereçamento e leitura da memória dos mesmos, a serem explanados a seguir são: 1- Wire cujo o fabricante é a Dallas Semicondutor e o I2C, fabricante Texas Instruments. Deve-se enaltecer que durante o tempo de inatividade do sensor, o microcontrolador estará perdendo amostras naquele instante, porém o tempo é tão 14 irrisório e as variações climáticas não são bruscas, que não deve ser considerado. Após a realização da aquisição, os dados são salvos em memória, por meio de um protocolo de comunicação, que estabelece o tamanho do pacote de acordo com a resolução de cada sensor, para futura transmissão. Na figura 6, é ilustrado detalhadamente o estado dos sensores controlados pelo microcontrolador, como também o endereçamento. Temporizador Ocioso Pluviometro dados dos sensores ATmega161 endereçamento dos sensores Protocolo 1-Wire Armazenamento dos dados Direção e Velocidade do Vento Ocioso Pressão Ocioso Umidade Relativa Ocioso Protocolo I2C Temperatura Figura 6 . Estados dos sensores gerenciados pelo microcontrolador. RAM 15 3.1.1.1. Endereçamento dos Sensores O endereçamento dos sensores é fundamental para o controle de aquisição dos dados, cuja função é habilitá-los para leitura dos dados convertidos de um sinal analógico para digital, para tanto, é necessário conhecer o protocolo desenvolvido pelo fabricante. O microcontrolador, é responsável por endereçar cada sensor, portanto, esta rotina foi implementada utilizando a linguagem C, que continha bibliotecas destes protocolos o que facilitou no desenvolvimento. Os protocolos pertinentes aos sensores são: § I2C (Interface Compability – 2 Wire) Consiste em protocolo de transmissão serial, que suporta velocidades superiores 400KHz. Seu funcionamento é da seguinte maneira, os componentes da linha I2C, possuem 4 pinos: o SCL, o SDA, o ADD0 e o ADD1. O SCL (Source Clock), é gerado pelo microcontrolador, conforme o sensor recebe o sinal de clock, realiza a conversão do sinal analógico para digital, transferindo estes dados para o pino SDA (Source Data) que está conectado ao microcontrolador, sendo assim o mesmo realiza a recepção destes dados e armazena em memória. O dispositivo utiliza duas linhas para a transmissão serial. O ADD0 e o ADD1 são responsáveis pelo endereçamento escravo do barramento serial que compreende 7 bits, este endereçamento é configurado no próprio hardware, que pode ser realizado da seguinte forma: conectando os pinos a VCC, flutuante ou terra aleatoriamente, sendo assim, é possível gerar combinações, possibilitando a conexão de até oito dispositivos em uma rede com dispositivos I2C. O sensor que utiliza o protocolo é o sensor de temperatura TMP100.Na figura 7 pode-se observar, a tabela de endereçamento escravo. Figura 7 . Representação do Endereçamento dos Pinos e o Endereço Escravo no TMP100. 16 Para realizar a configuração do TMP100 é necessário respeitar uma série de parâmetros, acompanhando o diagrama de configuração do sensor. O clock é gerado pelo microcontrolador, e o SDA é inicializado pelo mesmo com um pulso de reset. Após, é escrito o endereço do Frame 1 Slave Address Byte, que foi configurado através dos pinos ADD0 e ADD1 descrito na figura 8, o 8º bit R/W é configurado para 0, pois está sendo realizada uma escrita no TMP100 devido à configuração, então o mesmo retorna um ACK (acknowledge) para confirmar o recebimento dos dados. O Frame 2 Pointer Register Byte, é representado na figura 9, sendo selecionada a opção de configuração do Registrador. O Frame 3 e 4, são responsáveis pela configuração do formato do registrador, representados na figura 9, onde os parâmetros referenciam-se a resolução, configuração de alarme e outros. Portanto, para cada byte enviado do microcontrolador ao TMP100 é enviado um ACK para o microcontrolador, para confirmar o recebimento dos dados. Para maiores detalhes pode-se visualizar o próprio datasheet do fabricante. Figura 8. Diagrama de Tempo para Configuração do TMP100. Figura 9. Byte de Registro e Configuração do Formato do Registrador. 17 Para ler a temperatura gerada pelo sensor faz-se necessário seguir o diagrama do Tempo de Leitura seqüencialmente, representado na figura 10. Portanto, realiza-se a configuração do Slave Address Byte para escrita, isto é, R/W em 1, o TMP100 envia um ACK e após é configurado o Pointer Register Byte para Read Only (Somente Leitura) conforme a figura 9, porque trata-se da leitura da temperatura. Então, segue o pulso de start gerado pelo microcontrolador, logo após, o Pointer Register Byte é configurado para leitura, sendo assim o bit R/W é setado para o nível lógico 0, recebendo um ACK do Tmp100. Então, o TMP100 envia os 8 bits da parte alta da temperatura, e o microcontrolador envia um ACK informando que foram recebidos, e por conseqüência recebe os 8 bits da parte baixa, compondo assim a temperatura. Para finalizar o microcontrolador informa que recebeu os 16 bits com um ACK e envia um pulso de stop. Figura 10. Diagrama de Tempo para Leitura da Temperatura do TMP100. 18 § 1 – Wire O protocolo 1-Wire é totalmente configurável no firmware, isto é, a programação não é realizada via hardware. O funcionamento consiste em identificar um dispositivo que utiliza o protocolo na rede, normalmente cada dispositivo, por exemplo, memória, contador, e conversor A/D, possuem uma memória ROM com a seguinte estrutura: - Family Code (código da família): compreende 8 bits e identifica qual é a família do dispositivo existente na rede, por exemplo, memória; - Serial Number (número serial): identifica o dispositivo na rede, todos possuem uma memória ROM (Read Only Memory), cuja identificação é única e compreende 48 bits; - CRC Generator: possui um CRC (Check Redundancy Ciclic) de 8 bits, o qual é muito importante para constatar que o valor lido, isto é, enviado pelo sensor, é o mesmo que o valor recebido serialmente no microcontrolador, caso esteja incorreto o barramento mestre, isto é, o microcontrolador gera um pulso de reset e a leitura é repetida. O CRC foi utilizado durante todo o projeto para garantir que as informações não estavam truncadas. Portanto, cada dispositivo possui uma ROM que contém um pacote de armazenamento de 64 bits contendo os parâmetros citados para a identificação do dispositivo em rede, onde vários, dispositivos podem ser ligados serialmente. Os sensores que utilizam este protocolo de comunicação são: Anemômetro, Pluviômetro, Barômetro e o de Umidade Relativa. O procedimento para ler os valores digitais de um dispositivo 1-Wire, consiste em basicamente, endereçar o dispositivo, chamar as funções intrínsecas do mesmo, por exemplo, função convert caso o dispositivo seja um conversor digital ou simplesmente ler a memória ser for um contador; após é necessário checar se os bits lidos estão corretos através do CRC e salvar estes valores na memória do microcontrolador. Os comandos para acesso a Memória ROM, são utilizados para identificação dos dispositivos, são eles: Read ROM (permite ao microcontrolador indentificar o Family Code, Serial Number e CRC de cada dispositivo presente na rede), Match ROM (permite ao microcontrolador endereçar um único dispositivo na rede), Skip ROM (o microcontrolador acessa as funções de memória dos dispositivos sem prover o 48 bits do Serial Number), Search ROM 19 (o microcontrolador é capaz de contar o número de dispositivos em uma rede). A figura 11 representa a estrutura hierárquica do Protocolo 1-Wire. Figura 11. Estrutura Hierárquica do Protocolo de Comunicação 1-Wire. Para acesso a memória, onde está armazenado os dados aquisicionados e para a conversão do sinal analógico (no caso do conversor A/D); é utilizado comandos próprios do protocolo 1-Wire: Read Memory (leitura da memória), Write Memory (Escrita na Memória), Convert (Conversão do sinal analógico para digital), sendo assim, após a manipulação dos dados, estes são armazenados na memória do microcontrolador para transmissão futura. Na figura 12, é ilustrada a estrutura de identificação presente na memória ROM de um dispositivo do protocolo de comunicação 1-Wire. Figura 12. Representação da Memória ROM 20 3.1.1.2. Protocolo de Comunicação e Codificação dos Dados A codificação para uma amostra de 2 bytes, por exemplo, temperatura que possui uma resolução de 12 bits, é realizada da seguinte maneira: soma-se os primeiros 6 bits mais significativos com 32 em decimal, isto se faz necessário para obter a representação do caracter em ASCII para encapsulamento do pacote no SMS, ou seja, um caracter imprimível; o mesmo processo é realizado para a parte menos significativa. Após desloca-se 8 bits da parte alta, somando com a parte baixa, sendo assim, obtêm-se 2 bytes. A codificação pode ser representada abaixo. unsigned int codifica(unsigned int dado) // codifica valor de 12 bits para dois caracteres imprimiveis { char high,low; low=(dado&0x3F)+32; high=((dado>>6)&0x3F)+32; return ((unsigned int)high<<8)+(low); } O protocolo de comunicação é de 144 bytes, pois é limitado ao tamanho de uma short message (SMS). Portanto, para que os dados aquisicionados dos sensores sejam encapsulados no pacote SMS, é necessário realizar a codificação (transformar os bits de acordo com cada resolução em caracteres imprimíveis), eliminando a possibilidade que caracteres intrínsecos da própria mensagem sejam apresentados como valores de amostras, aumentando a segurança na transmissão. A decodificação é realizada no receptor, ou seja, pelo software gerenciador. A figura 13 representa o Protocolo de Comunicação. Figura 13 . Representação do Protocolo de Comunicação. 1 2 11 Hora (1 Byte) Minuto (1 Byte) Temperatura (2 Bytes) . . Umidade Relativa (2 Bytes) . . Velocidade do Vento (2 Byte) . . Precipitação (2 Bytes) Direção do Vento (1 Byte) . . Cada amostra é representada por 11 bytes, sendo possível realizar 11 aquisições, totalizando 121 bytes. 21 3.1.1.3. Temporização da Aquisição O tempo de aquisição é configurado através do software gerenciador da estação meteorológica, quando alterado é enviada uma mensagem instantânea para o microcontrolador serialmente através do modem. O microcontrolador possui rotinas que temporizam leitura, caso encontre uma mensagem, realiza a alteração do tempo de aquisição das amostras. O tempo de aquisição das amostras também é temporizado de acordo com a configuração, assim como envio de mensagens do pacote SMS, rotinas do display e do relógio. As temporizações que podem ser previamente configuráveis via software de gerenciamento são: § Tempo de 5 minutos: 27 segundos para cada amostra; § Tempo de 15 minutos: 82 segundos para cada amostra; § Tempo de 30 minutos: 164 segundos para cada amostra; § Tempo de 60 minutos: 327 segundos para cada amostra; Os tempos de aquisição citados acima levam em consideração o número de amostras igual a 11. Para a implementação das rotinas de temporização, na aquisição de amostras, leitura e envio de SMS, rotinas do display programadas no firmware, utilizaram um fluxograma para execução seqüencial das rotinas. Abaixo segue o fluxograma das rotinas básicas programadas no firmware. Os erros gerados pelo módulo na execução de comandos AT, serão descritos em mais detalhes no fluxograma de envio e recebimento de SMS. 22 Fluxograma das Rotinas Básicas Programas no Firmware inicio Estação Meterológica Re-inicializando delay 5 seg. //Módulo desconectado , desligue para conectar. Erro: ATE0 Inicializa Modem( ) delay 5 seg . Aquisições( ) //11 amostras tempo de aquisição Erro: Nenhuma Mensagem Lê SMS( ) Tempo Aquisição: ## minutos Temperatura : #.## ºC //Altera o tempo de aquisição, realiza verificação a cada 10 s. Data : ##/##/## Hora: ##:## S Se S pressionou b2 //Seleciona o dia, ano... N Data : ??/##/## Hora: ##:## Se pressionou b1 //incremento data, sucessivo.. Amostra: ## Precipitação: #####.## mm //Tempo de aquisição default para aquisicionar uma amostra é de 27 seg. Velocidade do Vento: ###.## m/s N Se Amostras=11 S Escreve SMS( ) Erro: Mensagem Enviada com Sucesso //enviando o pacote SMS Erro: Ao enviar mensagens N 23 3.1.1.4. O Microcontrolador ATmega161 O microcontrolador ATmega161 será responsável pelos seguintes processos: a) aquisição de dados através dos sensores; b) temporização dos sensores para coletar amostras em intervalos diferentes; c) armazenamento destes dados em memória; d) transmissão de dados através da interface serial que habilitará o modem pelos comandos AT. Portanto, a velocidade da transmissão será contada a partir do momento da transmissão serialmente para o modem, ou seja, por mais que a velocidade de transmissão alcance 144 Kbytes, ficará limitada às características da transmissão serial, que por sinal é inferior. As principais características do microcontrolador ATmega161 são: § Alto desempenho, Baixo consumo AVR 8 bits de resolução; § Arquitetura RISC - 130 Instruções Powerfull; - 32x8 Registradores; - Acima de 8 MIPS Taxa de Dados de 8 MHz; § Programa e Memória de Dados - 16k Bytes de Memória Flash; - 512 Bytes EEPROM; - 1K Byte de Memória SRAM; § 2 Timers/Counters de 8 bits; § Duas saídas Seriais Programáveis (UARTS); § Contador de tempo real com oscilador em separado; § Watchdog programável com oscilador separado; O ATmega161 é um microcontrolador CMOS de 8-bits baseado na arquitetura RISC AVR. As instruções são executadas em único ciclo de clock, possui uma taxa de dados de aproximadamente 1 MIPS por MHz, permitindo a otimização do consumo de energia versus a velocidade do processamento. Na figura 14 é apresentado o diagrama em blocos da arquitetura do microcontrolador ATmega161. 24 Figura 14 . Diagrama em Blocos da Arquitetura do Microcontrolador ATmega161. 25 3.1.1.4.1. Funções Básicas do Microcontrolador ATMEGA161 O AVR core combina um grande conjunto de instruções com 32 registradores gerais. Todos os 32 registradores são diretamente conectados a Unidade Lógica Aritmética (ALU), permitindo dois independentes serem acessados em uma única instrução em um ciclo de clock. Portanto, o resultado é um código mais eficiente, alcançando velocidade na taxa de dados acima de 10 vezes mais rápidas que uma arquitetura de um microcontrolador CISC convencional. A descrição dos Pinos são as seguintes: § VCC: Alimentação Digital; § GND: Ground; § Port A (PA7..PA0): A porta A é representada por I/O 8 bits bi-direcional com resistores internos pull-up (selecionados por cada bit). Possui buffers de saída onde a corrente pode chegar a 20mA, podendo ser ligadas diretamente ao display. Quando PA7 a PA0 são utilizadas com entradas então os resistores pullup internos são ativados. A porta A fica em estado de tri-state quando a condição de reseta é ativa. Pode ser utilizado com multiplexador de dados quando utilizado uma memória externa. § Port B, D e E (PB7..PB0): A porta B é representada por I/O 8 bits bi-direcional com resistores internos pull-up (selecionados por cada bit). Possui buffers de saída onde a corrente pode chegar a 20mA. Quando PB7 a PB0 são utilizadas com entradas então os resistores pull-up internos são ativados. A porta B fica em estado de tri-state quando a condição de reseta é ativa § Porta C (PC5...PC0): A porta C é representada por I/O 8 bits bi-direcional com resistores internos pull-up (selecionados por cada bit). Possui buffers de saída onde a corrente pode chegar a 20mA. Quando PC7 a PC0 são utilizadas com entradas então os resistores pull-up internos são ativados. A porta C fica em estado de tri-state quando a condição de reseta é ativa. A principal característica é endereçar uma memória externa. § /RESET: Entrada de reset. Um nível baixo neste pino for maior que o tamanho mínimo do pulso será gerado um reset, se o clock não esta rodando. Os pulso menores são garantidos para gerar um reset. O diagrama esquemático do microcontrolador ATmega161 é apresentado na figura 15. 26 U6 5 1 2 3 4 5 5V 1 5V 1,5K 5V 7 ADC Serial 10K SW2 SW3 5V 100n Sensores I2C 2 U1 1 2 3 4 5 6 10kohm 9 10 11 12 13 14 15 5V 16 17 22pF 11 10 Wavecom 1 3 4 5 2 6 1uF 1uF 10uF R1IN R2IN R1OUT R2OUT T1IN T2IN T1OUT T2OUT 12 9 8Mhz U4 13 8 14 7 22pF 18 19 20 (WR) PD6 (RD) PD7 PC7 (A15) PC6 (A14) PC5 (A13) PC4 (A12) PC3 (A11) PC2 (A10) PC1 (A9) PC0 (A8) XTAL2 XTAL1 GND CS Output Alert SCL SDA GND ADD0 ADD1 V+ 6 5 Input AD0 4 5V 0.1uF TMP100 31 30 29 28 27 26 25 24 23 22 21 C1+ C1C2+ C2V+ V- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 GND VCC VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 LEDA LEDK Display LCD 5V 100uF 1N4007 VI GND LM7805 1 2 SW1 3 2 1 3 I2C U1 5V ATMEGA161 5V 12V VCC (AD0) (AD1) (AD2) (AD3) (AD4) (AD5) (AD6) (AD7) RESET (RXD0) PD0 (TXD0) PD1 (INT0) PD2 PE0 (ICP/INT2) (INT1) PD3 PE1 (ALE) (TOSC1) PD4 PE2 (OC1B) (OC1A/TOSC2) PD5 MAX232 10uF PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 VO 3 100uF 5V (OC0/TO) PB0 (OC2/T1) PB1 (RXD1/AIN0) PB2 (TXD1/AIN1) PB3 (SS) PB4 (MOSI) PB5 (MISO) PB6 (SCK) PB7 40 39 38 37 36 35 34 33 32 10K 5V 1 2 3 4 5 7 8 9 CLK 5V 1 1 2 3 4 5 6 7 8 6 CH0 CH1 5V 1,5K ISP D0 TLC0832C 1,5K 1 2 3 4 5 DI 10K 5V 2 3 Figura 15. Diagrama Esquemático do circuito da Estação Meteorológica. 27 3.1.2. Os Sensores Meteorológicos Os Sensores Meteorológicos realizam aquisições das condições do ambiente, na verdade atuam como transdutores pois, transformam uma energia mecânica (pressão, velocidade) em energia elétrica. A principal característica é converter um sinal analógico extraído do meio para um sinal digital. Porém, são necessários alguns cuidados: § condicionamento do sinal (ganho), sendo muitas vezes necessário utilizar amplificadores de ganho elevado como o de instrumentação para análise; § tratamento do sinal: podem ser utilizados filtros digitais ou analógicos, que o torna imune a ruídos que são inerentes do meio. A descrição detalhada de cada sensor da estação meteorológica será citada abaixo, como também sua função. 3.1.2.1.O Pluviômetro (Sensor de Índice de Precipitação Pluvial) O pluviômetro mede índice de precipitação pluvial, ou seja, a quantidade de chuva em determinado instante, normalmente é medido em milímetros ou polegadas através de um dreno com tamanho aproximado de 0,2 mm ou 0,1“, onde a cada passagem de gotas é acionado uma chave magnética incrementando o contador, e armazenando em memória. Atualmente existe vários sensores no mercado, porém foi avaliado os recursos adicionais apresentado pela linha 1-Wire da Dallas Semicondutor fabricante de sensores destinados a fim meteorológicos, o pluviômetro 1-Wire Rain Gauge, utiliza uma chip chamado DS2423 que possui 3 contadores e memória RAM, e transmissão e recepção de dados serialmente. As principais características são: § Bateria de Lítio de 3V para manter o contador e a RAM; § Contador e Memória RAM; § Chave analógica magnética; § Ciclo de tempo 1,5 milisegundos; § Interface Rs-232; O módulo contador DS2423 incluso no sensor 1-Wire Rain Gauge, possui algumas características técnicas: § a contagem é realizada através de uma chave analógica; 28 § não necessita alimentação externa; § 32 bits de leitura de contagens; § Capacidade de armazenamento de 512 bytes, compondo 14 páginas; § Bateria de lítio; § Endereçamento de 64 bits; O acionamento da chave gera um incremento de 32 bits. A memória de 512 bytes é organizada por 16 paginas de 32 bytes. Quatro destas páginas têm 32 bytes associado. Os contadores para página 14 e 15 são incrementados com cada fechamento da chave. Os contadores associam as paginas 12 e 13 para salvar os incrementos tempo. Abaixo a figura 10 apresenta a estrutura mecânica do pluviômetro. Figura 16. Estrutura Mecânica do Pluviômetro O padrão do mecanismo bucket para o pluviômetro para operar na rede 1-Wire, possui o papel de gerar uma simples contagem através dos acionamentos da chave magnética, armazenando-as no contador DS2423. Enquanto o contador funciona, há 29 alimentação de cargas parasitas de CR1 BAT545 e C1, a bateria de lítio permite manter o funcionamento para o pluviômetro em modo stand alone. A baixa energia requer um chip que permita acima de 10 anos de sobrevida. Quando conectado a rede 1-Wire, o circuito trabalha da seguinte maneira. Na posição ociosa para o barramento a alimentação é de 5V, alimentada através de um resitor pull-up equivalente de 1,5K• do barramento mestre (microcontrolador). Isto encaminha as correntes do diodo Shottky CRS BAT545 e carrega o capacitor C1 para aproximadamente 5V, alimentando o contador DS2423. Sempre que inclinado o bucket é esvaziado, isto ativa a chave magnética, causando o fechamento momentâneo e acionando a entrada do contador para o nível lógico alto. Quando a chave abre novamente, o pull-down resistor R1 retorna a entrada para nível lógica baixo. O contador mantém o total de transmissões do barramento de dados mestre. Desde que o contador DS2423 não tenha sido resetado, a configuração do pluviômetro pode ser resetada manualmente ou via software. O contador, contudo, pode ser resetado enquanto a alimentação é removida por um determinado instante de tempo, então se está em off o C1e a bateria de backup deve ser adicionada. O diodo Shottky CR1a BAT545 protege o circuito da tensão excessiva, o DS2407 contem 1K de EPROM para armazenamento do programa especifico para o pluviômetro. O pluviômetro é calibrado para permitir que 16 mm de gotas água escorram lentamente através do lid over no período de 1 hora. Isto deve resultar em cada despejamento do bucket em 50 vezes para cada leitura de 1.00 polegada de chuva. Isto significa duas calibrações devem ser ajustadas para 0,16 mm de água causando o despejamento da bucket. Devido à resposta do tempo em que é limpo a bucket, é necessário calibrar a unidade rapidamente a uma taxa em que possa ler altas precipitações pluviais. O resistor pull-down R1 no DS2423 possui a responsabilidade de incrementar a capacidade de rejeição a ruídos. Um canal FET pode ser conectado em série ao resistor, com o ponto da porta A e o GND. Normalmente R1 baixa a porta e mantém o transistor em estado de corte, mas quando inclinado bucket, a chave magnética é fechada, elevando o transistor para a saturação. Na figura 17 é apresentado o diagrama esquemático do sensor de precipitação pluvial, conforme foi detalhado acima. 30 DATA Ch1 U1 CR1b BAT545 U1 2 2 CR1a BAT545 DS2423 5 3 6 CR2 BAT545 3V BAT C1 0.1uF 1Mohm 1 DS2407 3 6 GND Figura 17. Diagrama esquemático do Sensor de Índice de Precipitação Pluvial 3.1.2.2.O Barômetro (Sensor de Pressão) Os barômetros são sensores responsáveis pela medição da pressão atmosférica, trabalham de acordo com o princípio piezométrico, e construído com um filme resistor depositado em um fatia de silício para formar uma ponte; conforme a pressão se altera, a fatia será deformada e, conseqüentemente mudará a resistência do sistema. Os principais requisitos são: § Medir pressão do ambiente em uma faixa de 300 à 1100 mbar; § Compensação de Temperatura; § Interface Rs-232; § Memória RAM(para armazenar dados da temperatura e pressão); O sensor que mensura pressão e temperatura que possui todas os requisitos acima é o TAI8570 da Dallas, as principais características são: § Mensura pressão em uma faixa de 300 à 1100 mbar; § 16 bits de resolução (conversão analógica para digital); § Sensor de Temperatura incluso; § Não necessita de fonte externa; § Tecnologia baseada em 1-Wire (conversor Ds2406); § Permite endereçar múltiplos sensores em uma rede; 31 A possibilidade de incluir vários sensores da linha 1-Wire é um dos principais benefícios, o que permite endereçar o sensor que deseja realizar aquisição dos dados, outro fator importante é ausência de alimentação externa, pois é obtida diretamente da rede 1-Wire (serialmente). Figura 18. Configuração da rede 1-Wire A TAI8570 1-Wire é módulo inteiramente integrado que permite medir pressão em uma rede 1-Wire. A unidade pode ser identificada e endereçada pelo DS2406 com 64 bits do número serial. O DS2406 é usado para escrever ao sensor, possui Vcc vinculado a 5V para o PIOA (entrada A) conectado a CLK (clock), e o PIOB para a entrada de dados do sensor MS5534A. O DS2406 é usado para ler a informação do sensor que possui o pino de Vcc conectado ao terminal de terra, o pino PIOA para o pino do SCLK e o PIOB para pino DOUT do sensor. Na figura 19 é apresentado o diagrama esquemático do sensor de pressão do módulo TAI8570 da Dallas Semicondutor. Vcc_OWA Módulo TAI8570 U1 3V 3V 3V . V+ V- OUT SCLK IN 100Kohm C1 0.1uF 100Kohm D4 U1 . U1 MS5534A . TPS-77033. 100Kohm D4 2 3 74HCU04 . . 5V D4 U1 PB D4 PA PB PA U1 DS2406 I/O DS2406 I/O OWIO Figura 19. Diagrama esquemática do Barômetro (Sensor de Pressão) Y2 32KHz 32 3.1.2.3.Sensor de Temperatura Os sensores de temperatura ou termômetros são responsáveis por mensurar a grandeza física de calor existente em um meio. Os transdutores mais populares são os resistivos e o termoelétrico, cujo princípio de funcionamento do resistivo é baseado na variação de resistência de condutores elétricos com a temperatura, e o transdutor termoelétrico apresentam uma diferença de potencial entre dois metais condutores em função da temperatura. Os principais requisitos para sensor de temperatura são: § Temperatura de -20 ºC à 50 ºC; § Resolução abaixo de 1ºC; § 8 bits de resolução; § Interface Rs-232; O sensor analisado que corresponde os requisitos é Tmp100 da Texas Instruments principais características são: § Saída Digital: I2C Serial 2-Wire; § Resolução: 9 à 12 Bits, Selecionável pelo Usuário. § Faixa: +- 2.0ºC de -25ºC à +85ºC; § Alimentação: 2,7 V à 5,5 V O diagrama em blocos do sensor de temperatura Tmp100 é apresentado através da figura 14: Figura 20. Diagrama em blocos do Sensor de Temperatura Tmp100. 33 3.1.2.3.1.Descrição do Sensor de Temperatura Tmp100 O TMP100 são sensores de temperatura digital para gerenciamento de temperatura e para aplicações de proteções térmicas. O TMP100 possui interface I 2C e Interface SMBus compatíveis e especificados para uma faixa de temperatura que varia de -55ºC à +125ºC. O TMP100 não necessita de componentes externos para operar exceto de um resistor pull-up em SCL, SDA, e Alert, através de um bypass capacitor de 0.1µF, conforme o diagrama na figura 15. U1 I2C 1 2 Output Alert 3 SCL SDA GND ADD0 ADD1 V+ 6 5 I2C Input AD0 4 C1 TMP100 0.1uF 5V Figura 21. Diagrama Esquemático do Sensor de Temperatura TMP100. 3.1.2.3.2.Registrador de Temperatura O registro de temperatura do TMP100 é um registrador de 12-bits, qual armazena a saída da mais recente conversão. Dois bytes devem ser lidos para obter dados são descritos nas tabelas abaixo. Os primeiros 12 bits são usados para indicar a temperatura, sendo que os bits restantes são iguais a zero. Seguindo o power-up ou reset o registrador de temperatura lerá 0ºC até que a primeira conversão seja completada. Figura 22. Byte 1 do Registrador de Temperatura Figura 23. Byte 2 do Registrador de Temperatura. 34 A temperatura lida é composta de 12 bits sendo sua conversão representada através da figura 24. Figura 24 . Formatação de Dados da Temperatura 3.1.2.4.Sensor de Umidade Relativa A umidade relativa do ar é totalmente dependente da temperatura no instante, e pode ser mensurada através da diferença de temperatura entre o bulbo seco e o bulbo úmido. Então é realizada a compensação de temperatura, onde a umidade é expressa em porcentagem. A saída do sensor é um sinal analógico proporcional à tensão de alimentação, conseqüentemente para conversão da umidade relativa, utiliza-se à tensão de alimentação e a tensão gerada pelo sensor, que pode ser demonstrada de acordo com a fórmula da umidade relativa (RH – Relative Humidity): SensorRh = (Vout / V sup ply ) − 0,16 / 0,0062 TrueRH = sensorRh / 1,0546 − 0,00216T Figura 25. Ilustração do Sensor de Umidade Relativa HIH-3610. 35 Os requisitos necessários para o sensor de umidade relativa são: § Faixa de porcentagem de umidade relativa de 5% à 100% ; § Tensão de Alimentação de 5V; § Faixa de Temperatura de -20º C à 50ºC; § Resolução de 1%; O sensor de umidade que atende todos os requisitos acima e possuir uma série de outros recursos como conversor para digital e compensação de temperatura é o TAI8540 que possui um sensor de umidade relativa o HIH3610 e o DS2438 (compensa temperatura e converte para digital). As principais características do sensor TAI8540 são: § Faixa de temperatura de-40ºC à 85ºC; § Resolução de conversor para digital de 16 bits; § Interface Rs-232; § Faixa de porcentagem de umidade relativa de %2 à 100% RH; § Tensão de Alimentação: 4 à 5,8 V; § Tempo de Resposta: 15 segundos cada a temperatura do ar move lentamente par a 25ºC; § Linearidade: ~0,5% RH Através das fórmulas podemos chegar à umidade relativa, onde há uma compensação da temperatura. O gráfico na figura 26 mostra a porcentagem de umidade relativa (RH), gerada pela tensão de saída e pela temperatura. Figura 26. Tensão de saída versus temperatura em 0º C, 25ºC e 85ºC. 36 No circuito o capacitor C1 e os diodos Schottky no CR1 forma a meia-onda retificada que provê alimentação para ambos os sensores e para a bateria. Esta é uma implementação discreta de cargas parasitas usadas internamente dos dispositivos 1-Wire, que provê alimentação própria. O diodo de Shottky permanece em série com o barramento de dados e o GND o que provê proteção ao circuito segurando o sinal abaixo de aproximadamente 0,4V. Abaixo o barramento mestre (microcontrolador) controla U1, o DS2438 monitora a tensão disponível para U2, o sensor de umidade, e o próprio Vdd (pino 5). Ele então mede a saída de U2’s através da entrada analógica pino 4. Finalmente, o DS2438 reporta a temperatura em ºC para a conversão interna de 12 bits. O software utiliza então estes dados para computar e amostrar graficamente a verdadeira umidade relativa. A figura 27 apresenta o diagrama esquemático do Sensor de Umidade Relativa da linha Dallas Semicondutor. Data R1 . 2 3 GND HIH-3605-A 1 5 8 8 U1 Vdd. D0 2 U2 4 Vod V+ V- 100Kohm C2 DS2438 0.1uF 2 3 GND CR1 BAT545 1 C1 0.1uF 1 3 Vdd 2 GND Figura 27. Diagrama Esquemática do Sensor de Umidade Relativa. 3.1.2.5.Sensor de Velocidade e Direção do Vento O sensor de velocidade do vento pode ser mensurado através do número de rotações do rotor, ou seja, é transformado de rpm (rotações por minuto) para km/h. A sua construção é baseada em dois imãs montados em um rotor junto ao eixo do Wind cup’s. Os imãs operam com uma chave magnética conectada ao um contador que provê a saída serial, os mesmos estão montados em buracos externos do rotor, onde cada rotação provê duas contagens, o que permite contar até as velocidade mais baixas. Os principais requisitos para o sensor de velocidade do vento são: § Permitir velocidades altas acima de 100 Km/h; Contador e Memória RAM para armazenamento; 37 Através dos requisitos analisados foi escolhido o modelo da linha 1-Wire da Dallas que utiliza o contador e memória RAM de 4Kbits O sensor de direção do vento é construído com chaves magnéticas que são ativadas conforme a direção do vento, não necessita de energia elétricas para poderem operar, porque não são dependentes de nenhuma taxa, podendo assim medir em condições estáticas. O sinal não necessita ser condicionado, sendo que possui uma alta impedância quando aberta e uma impedância desprezível quando fechada.Os requisitos são: § Apresentar a orientação das direções: Norte, Sul, Leste, Oeste, Nordeste, Sudeste, Sudoeste, Noroeste; § Interface Rs-232; O sensor que atende os requisitos é da linha 1-Wire da Dallas Semicondutor, possui um chip DS2401 para comunicação serial e um chip DS2407 (duas chaves), que consiste em oito chaves montadas radialmente em um intervalo de 22,5º, cada chave e conectada entre a linha de dados e o DS2401 que provê o número serial quando umas das chaves se fecham. A chave magnética do DS2407 é fixada ao eixo do cata-vento. Portanto, sendo o DS2401 conectado ao barramento (se DS2407 for endereçado a chave é fechada), então o barramento mestre pode ler o número serial, isto é, este número identifica qual chave foi fechada, ou seja, qual ponto da bússola representa. Por motivo de confiabilidade o barramento mestre pode ler a direção do vento somente quando o interruptor endereçado está fechado[2].O rotor é projetado de forma que o layout possa ler a velocidade e direção do vento com é mostrada no diagrama esquemático na figura 29. 38 Figura 28.Ilustração do Sensor de Velocidade e Direção do Vento DATA 2 2 DS2401 NW DS2401 1 DS2401 W 1 2 SW 1 DS2401 1 DS2401 2 2 S 1 2 SE 2 1 DS2401 1 DS2401 1 DS2401 E 2 NE 2 N D4 DS2423 2 1 2 DS9467 DS1820 6 C1 0.1uF 1 1 Bat Win Speed GND Figura 29. Diagrama Esquemático do Sensor de Velocidade e Direção do Vento. 39 3.1.3. Módulo de Transmissão e Recebimento de SMS A transmissão de dados é realizada através dos dados enviados serialmente pelo microcontrolador para o módulo SMS, a velocidade pode atingir 144 Kpbs, utilizando a tecnologia GSM considerado segunda geração. Ao iniciar a transmissão o microcontrolador gerenciará a separação dos pacotes salvos em memória de acordo com as amostras coletadas em cada sensor, e habilitará o modem através de comandos AT (Application Programming Interfaces), ou seja, enviará comandos para habilitar as linhas de saída e entrada de dados para certas funções como (Open/Close flow, Send/Receive Data), fornece também acesso às funções de gestor de controle de fluxo (Flow Control Manager), que permite acesso à interface RS232, após será enviado via interface serial um pacote com formato SMS contendo amostras a serem transmitidas, que conterá no máximo 144 caracteres. Contudo, quando o modem instalado ao microcomputador receber este pacote SMS, este também estará habilitado através dos comandos AT para realizar a recepção, ou seja, ler o SMS, então removerá do pacote encapsulado a mensagem e armazenará em um registro de eventos, através dos comandos de recepção de dados da interface RS232, conforme será apresentado no fluxograma. O arquivo de eventos será utilizado para armazenar e gerenciar informações no site. O diagrama em blocos da figura 30, apresenta a transmissão e recepção do pacote SMS. ATmega161 Habilitação por Comandos AT Transmissão dos Pacote SMS Decodificação Armazenamento no banco de dados Codificação e armazenamento dos dados RAM Figura 30. Diagrama em Blocos da Transmissão SMS. O microcontrolador será responsável por todo processo de aquisição e transmissão de dados via interface serial e armazenamento dos dados aquisicionados 40 em memória, isto é, os requisitos de hardware ficarão limitados às suas características. Porém, a transmissão ao modem do pacote SMS, será limitada pela velocidade de transmissão do pacote através do microcontrolador serialmente. 3.1.3.1. Fluxograma para Envio e Recebimento de Mensagens SMS por Comandos AT Para o envio, recebimento de mensagens SMS e rotinas utilizadas no microcontrolador e no software de gerenciamento houve a necessidade de criar um fluxograma, portanto observou-se a eficácia nos resultados através dos comandos executados. Os comandos listados nos fluxogramas de envio e recebimento de mensagens instantâneas, são utilizados por telefones celulares comuns, sendo assim, através dos comandos AT é possível realizar todos serviços de telefonia móvel, tais como: envio de SMS, chamadas, acertar data/hora, carregar créditos e outros. Os comandos AT utilizados foram: § AT+ECHO: comando para realizar a habilitação do eco, na programação foi desabilitado para evitar que a serial receba o comando novamente, evitando “lixo” no buffer responsável por gerenciar os erros; § AT+CMEE: habilita resposta de erros; § AT+CPIN: habilita o Card Personal Identification Number (identificação do cartão do celular); § AT+CNMI: utilizado para habilitar serviços padrão de telefonia; § AT+CSMP: é utilizado para determinar o tempo de vida de uma mensagem; § AT+CMGF: configura o módulo para Modo Texto ou PDU, na implementação foi utilizado o modo texto. § AT+CMGS: comando necessário para enviar a mensagem, os parâmetros necessários são o telefone destinatário e o texto que será enviado. § AT+CMGR: comando que realiza a leitura do SMS, parâmetro necessário o número da mensagem. § AT+CMGL: Lista as mensagens existentes no buffer, parâmetros utilizados, exemplo, mensagens lidas, não lidas, enviadas, e etc. 41 Fluxograma para Envio de Mensagens SMS por Comandos AT AT+ECHO=0 AT+CMEE=1 ERROR CME ERROR:16 OK SIM NÃO FOI INSERIDO AT+CPIN? +CPIN:SIMPIN AT+CPIN=1010 +CME ERROR:10 +CPIN:READY Inicialização do Modem AT+CNMI=0,1,1, 1,0 AT+CSMP=17,1 69,0,0 AT+CMGF=1 ERROR AT+CMGS= “+tel”<CR>”dado s”<crtl-z> +CMGS: <mr> ERRO (CARREGAR CRÉDITOS) 42 Fluxograma para Recebimento de Mensagens SMS por Comandos AT AT+ECHO=0 AT+CMEE=1 ERROR CME ERROR:16 OK +CME ERROR:10 SIM NÃO FOI INSERIDO AT+CPIN? +CPIN:SIMPIN AT+CPIN=1010 +CPIN:READY AT+CMGF=1 +CMS ERROR:322 AT+CMGL= “REC UNREAD” Cont_mes=0 ok AT+CMGR= Cont_mes Cont_mes++ +CMS ERROR:321 AT+CMGD= Cont_mes Cont_mes=0 No Anexo 2, há detalhes dos erros gerados e comandos AT adicionais. 43 A transmissão por SMS, possui velocidade alta por se tratar de comunicação sem fio (wireless). No mercado existem duas tecnologias a GPRS (General Packet Radio Service) utilizada nas redes GSM, que teoricamente pode ir até 128Kbps, mas na prática a maioria dos equipamentos com suporte a GPRS alcançam velocidades entre 30 e 50Kbps, e a 1xRTT (1xRadio Transmission Technology) utilizadas nas redes CDMA pode alcançar velocidades de acesso de 144 a 2048Kbps, porém na prática alcança-se entre 90 e 110Kbps. Analisando a confiabilidade é velocidade de transmissão, foram analisados aparelhos de comunicação móvel da tecnologia 1xRTT e GPRS. Os aparelhos existentes no mercado para tal finalidade são: § GTran Cartão PCMCIA, as principais características são: • Cartão modem 1XRTT sem fio, compatível com a tecnologia CDMA - Compatível com a maioria dos laptops e PDAs que utilizam Windows, 98 SE, 2000, ME, NT4.0 (Service Pack 5 ou superior), CE3.0, XP, Pocket PC 2002 e HPC 2000; • Conexão em alta velocidade transmite dados com velocidade de até 153Kbps; • Transmissão e recepção de SMS (Short Message Service); • Pode ser usado em aplicativos para transação em tempo real; • Antena flexível; Figura 31. Cartão PCMCIA GTran Wireless § Modelo DTSS – 800 (Fabricante Anydata), as principais características são: • Tecnologia CDMA 2000 1xRTT; • Interface padrão RS232; • Transmissão de dados acima 153 Kbps; • Controlado remotamente por comandos AT ; • Interface LCD/Keypad; • Suporte ao Circuito Data/Fax; 44 • Construído o protocolo TCP/IP; • Transmissão e Recepção SMS; • Aumento da variação através da taxa de codificação (EVRC); • Características de telemetria; Figura 32. Modem DTSS-800(Tecnologia CDMA 1xRTT) Dentre os dois modems wireless pesquisados, foram verificados diversos parâmetros, principalmente a existência de uma interface RS232, e o controle por comandos AT. A seguir será apresentada detalhadamente a característica do modem WaveCom que foi utilizado para a transmissão de mensagens instantâneas, devido a facilidade do envio de mensagens em modo texto. 3.1.3.2.Modem GSM WaveCom O modem WaveCom GSM possui dupla banda (900 MHz e 1800 MHz. Pode funcionar em telefonia, voicemail, envia e recepciona SMS, fax grupo 3, transmissão de dados digitais e outras funcionalidades, sem necessidade de nenhum hardware adicional. Outras características que são importantes citar são: • Tamanho: 58.3 x 32.2 x 6.0 mm; • Potencia: 2 Watts EGSM seção de radio abaixo de 3.6 Volts; • 1 Watt GSM1800/GSM1900; • Seção digital abaixo de 2.8 Volts; • 3V SIM Interface; • Relógio em Tempo Real com calendário; 45 • Bateria; • Cancelamento de Eco e redução de ruído; • Full GSM ou GSM/GPRS; • Interface Serial; • SIM card; 3.1.3.2.1.Funcionalidades RF (Radiofreqüência) As funcionalidades RF compreendem a fase II EGSM900/GSM1800 ou a recomendação GSM1900. As freqüências disponíveis são: § Rx (EGSM 900): 925 à 960 MHz § Tx (EGSM 900): 880 à 915 MHz § Rx (GSM 1800): 1805 à 1880 MHz § Tx (GSM 1800): 1710 à 1785 MHz § Rx (GSM 1900): 1930 à 1990 MHz § Tx (GMS 1900): 1850 à 1910 MHz A RF é baseada em uma especifica dual band inclui: § 2 down-converters dedicados; § 1 FI demodulador; § 1 VCO; § Transmite loop (modulador, down mixer, fase das freqüências, comparador). § 2 amplificadores. 3.1.3.2.2.Firmware WISMO Quick Q2300 series é designado para integrar internamente vários tipos de aplicações tais como handsets ou aplicações verticais (telemetria, multimídia, automotive). Para handsets o firmware é customizado pela Wavecom. Para aplicações verticais, o firmware oferece o controle do módulo através dos comandos AT. 46 3.1.3.2.3.Interfaces Segue a figura 33 que apresenta a descrição funcional interna do módulo do modem Wavecom. Figura 33. Arquitetura funcional interna do Módulo WaveCom 3.1.3.3.Comandos OpenAT Para habilitação do modem envio e recebimento de mensagens instantâneas faz-se necessário o uso do comando OpenAT, sendo possível após seguir uma seqüência de passos que podem ser descritos e ordenadas tendo como auxílio um fluxograma da seqüência de comandos AT. Devido o módulo WaveCom ser programado evita o uso de microprocessador. 47 A linguagem OpenAT baseia-se no conjunto de comandos AT, desenvolvido pela Hayes para ser usado nos modems telefônicos. Para o desenvolvimento de aplicações OpenAT é necessário utilizar a biblioteca dos comandos AT, que por sua vez é baseado em APIs (Application Programming Interfaces) desenvolvidos pela WaveCom, que são: • Application Mandatory API: deve ser utilizado pela aplicação; • AT Command API: fornece acesso às funções AT (comandos send AT, indicações subscribe to unsolicited/intermediate). • OS API: fornece acesso às funções do sistema operacional (temporizador de avanço/parada, leitura/escrita de dados na memória flash, memória Init/Release/Get, apagamento de objetos armazenados na memória Flash). • PCM API: fornece acesso às funções do gestor de controle de fluxo (Flow Control Manager), acesso à interface RS232 (V24) e às linhas de entrada/saída de dados para certas funções (Open/Close flow, Send/Receive Data). • I/O API: para o controle da ligação serie e GPIO . • Bus API: controla os barramentos SPI e I2C. • Standard API: põe a disposição várias funções C normalizadas. A figura 34 ilustra a interação entre os comandos OpenAt e APIs e a aplicação do utilizador contida no módulo WaveCom. O sistema OpenAT , também é conhecido como Plataforma MUSE, o compilador utilizado é chamado de ARM. O módulo WMOi3 utiliza um cartão telefônico chamado SIM, semelhante aos que se utilizam em telefones celulares, possui um número pessoal denominado PIN (Personal Identification Number) ativado. 48 Open At application User Embeddeed Application Wavecom Core Software Open At Library User Embedded Application Open AT APIs (Event & Functional driven) AT Command Transportatio n facility OS related facility Standard ‘C’ library Flow Control Management facility Serial I/O Control facility BUS facility Input/ output facility Figura 34. Módulo do Modem Wavecom O SIM Card é introduzido no módulo. Ao ligar a tensão de alimentação, alguns parâmetros possuem os seguintes valor pré-defindos: § PIN 0000 § PIN Check off § Reply On Portanto, estes valores são imediatamente modificados para evitar interferências ao bom funcionamento da comunicação. A primeira comunicação é realizada para alterar o novo PIN, uma vez alterado não há necessidade o fazer novamente. Contudo, é necessário verificar o funcionamento da interface serial com o microcontrolador. A porta série a utilizar deve ser configurada para 8,N,9600, o programa OpenAT fica ativado no módulo quando se liga a tensão de alimentação o modem reconhece apenas aos seguintes comandos: § AT+RESET: Configura o módulo com os parâmetros pré-definidos. Este comando é utilizado caso seja esquecido o PIN definido. § ALT+WOPEN+2: Termina a execução do programa e coloca o modem no modo normal. A partir deste momento, o módulo pode ser controlado por meio de 49 comandos AT. Este modo permite instalar o modem no Windows do PC e estabelecer ligações com a Internet. No entanto, as ligações só são possíveis se o modem estiver sido reprogramado com o novo firmware GPRS e o cartão SIM alojado no módulo for compatível com o sistema GPRS. § ALT+WDWL: Permite carregar um programa novo no modem. O processo de carga utiliza o protocolo X-modem, que é suportado pela maior parte dos programas de comunicação como, por exemplo , o HyperTerminal do Windows. Figura 35. Foto do Módulo do Modem Wavecom. 50 3.1.4. Software de Gerenciamento dos Dados – Atualização dos dados O software é responsável por apresentar os dados que foram aquisicionados pelos sensores de índice de precipitação pluvial, pressão, umidade relativa, temperatura, direção e velocidade do vento, de uma forma clara ao entendimento do cliente. Para tanto, é necessário o tratamento das informações, para então realizar estatísticas das condições climáticas. 3.1.4.1. Ambiente de Desenvolvimento A aquisição dos dados é realizada pelos sensores pertinente a cada condição climática, porém é importante ressaltar que estes são armazenados pelo microcontrolador em memória e transmitidos em bits, quando chegam ao destino são retirados do encapsulamento SMS e são armazenadas em uma base de dados, o qual é responsável por registrar todas as informações enviadas. O projeto de implementação deste software de gerenciamento foi realizado, utilizando a Programação Orientada a objetos, com objetivo de otimizar o código, e preservar a segurança e escalabilidade do código. As principais funções do software de gerenciamento são: § Realizar leitura dos dados aquisicionados pela estação meteorológica; § Realizar a decodificação destes dados, e convertê-los em medidas reais; § Configurar o tempo de aquisição das amostras da estação; 3.1.4.2. Implementação do Software de Gerenciamento O software de gerenciamento é responsável por realizar leituras em busca de novas amostras geradas pela estação e decodificá-las, devido tratar-se de um software de gerenciamento de informações, observou-se os benefícios como: segurança, escalabilidade e portabilidade na implementação orientada à objetos. Através dos diagramas da POO (Programação Orientada a Objetos), é possível verificar esta implementação. 51 3.1.4.2.1. Diagrama de Caso de Uso CADASTRA FUNCIONÁRIO <<usa>> ATUALIZA TEMPO DE AQUISIÇÃO BUSCAR FUNCIONARIO <<usa>> AQUISIÇÃO VALIDAR AQUISIÇÃO CONFIGURA SISTEMA 3.1.4.2.2. Roteiros § Cadastra Funcionário: Nome: Cadastra Funcionário Descrição: é responsável por cadastrar o funcionário, a fim de controlar que realizar as aquisições de alterações das configurações do sistema Atores: funcionário Pré-condições:não há Pós-condições: o funcionário ficará cadastrado. Caminho Primário: o funcionário entra com os dados pessoais no sistema. Caminho Alternativo: Não há. Caminhos de Exceção: funcionário já possui cadastro. 52 § Atualiza Tempo de Aquisição: Nome: Atualiza Tempo de Aquisição Descrição: é responsável por realizar as alterações do tempo de aquisição das amostras dos sensores das estação meteorológica. Atores: funcionário Pré-condições: não há. Pós-condições: será realizado a alteração do tempo de aquisição das amostras da estação meteorológica, sendo armazenado está alteração no banco de dados para posterior consulta. Caminho Primário: o funcionário entra com o tempo de aquisição.. Caminho Alternativo: Não há. Caminhos de Exceção: não há. § Aquisição: Nome: Aquisição Descrição: é responsável por fazer aquisição, é feita através do recebimento de short messages (SMS) gerados pelo microcontrolador através das medidas realizadas pelos sensores. Atores: funcionário Pré-condições: o usuário deve estar logado no sistema,. Pós-condições: os dados das aquisições ficam armazenados no banco de dados. Caminho Primário: não há. Caminho Alternativo: Não há. Caminhos de Exceção: não há. § Valida Aquisição: Nome: Valida Aquisição Descrição: é responsável realizar um filtro verificando se a mensagem recebida é uma mensagem válida, e após realizar a conversão dos dado recebidos para uma medida real. Atores: funcionário Pré-condições: deve ser realizado após a leitura. Pós-condições: os dados das aquisições ficam armazenados no banco de dados. Caminho Primário: não há. Caminho Alternativo: Não há. Caminhos de Exceção: Caso não seja uma mensagem válida, então é descartada. § Configura Sistema: Nome: Configura Sistema Descrição: é responsável por alterar configurações da porta de comunicação como também do tempo de leitura de short messages. Atores: funcionário Pré-condições: não há. Pós-condições: não há. Caminho Primário: não há. Caminho Alternativo: Não há. 53 Caminhos de Exceção: não há. § Busca Funcionário: Nome: Busca Funcionário Descrição: é responsável realizar a busca do funcionário que irá realizar as leituras das amostras como também as configurações. Atores: funcionário Pré-condições: o usuário deve estar logado no sistema. Pós-condições: o nome do funcionário fica armazenado juntamente com os dados das leituras e atualizações do tempo para posterior consulta. Caminho Primário: Não há. Caminho Alternativo: Não há. Caminhos de Exceção: o resultado da busca não é o desejado, faz-se uma nova busca. 3.1.4.2.3. Diagrama de Classes FUNCIONÁRIO ATUALIZA TEMPO DE AQUISICAO AQUISICAO 54 3.1.4.2.4. Diagrama de Classes de Negócios CFrmAquisição CFrmAtualizaTempo - controlador - ControlerAquisicao * - controlador -ControlerAtualizaTempo ControlerMaq + Leitura() + BuscaLeitura() + ExcluiLeitura() CAquisicao * ControlerAtualizaTempo + AtualizaTempoAq() + BuscaAtualizacao() + ExcluiAtualizacao() CAtualizacaoTempo - CodLeitura:integer - temperatura:float - vel_vento:float - dir_vento:float - umidade:float - dt_leitura:date - tempo_leitura:temp - CodAtualizacao:integer - dt_atualiza:date - temp_autualiza:tempo - tempo_aquisicao:tempo + CAquisicao() + getCampos() + Conversão() + setCampos() + Grava() + delete() + CAtualizaTempo() + getCampos() + setCampos() + Grava() + delete() CBrokerAquisicao + Desmaterializa() + Materializa() + Exclui() CBrokerAtualizaTempo + Desmaterializa() + Materializa() + Exclui() 55 CFrmCadFunc - controlador - ControlerFunc * ControlerFunc + NovaFunc() + BuscaFunc () + ExcluiFunc () CFuncionario - CodFunc:integer - Nome:string - dtnasc:date - telefone:integer - funcao:string - endereco:string - dtcad:date + CFunc () + getCampos() + setCampos() + Grava() + delete() CBrokerFunc + Desmaterializa() + Materializa() + Exclui() 56 3.1.4.2.5. Diagrama de Colaboração § Atualiza o Tempo de Aquisição Figura 36. Tela de Configura Tempo de Aquisição. 57 § Atualiza Tempo de Aquisição 1:AtualizaTempoAquisicao () FrmAtualizaTempo: CFrmAtualizaTempo Controlador: CAtualizaTempo 2:CAtualizaTempo() 3:setCampos() 4:Grava() 7:delete() 6:getCampos() BrokerAtualizaTempo :CBrokerAtualizaTempo § 5: Desmaterializa() AtualizaTempo: AtualizaTempo Busca Atualização do Tempo 1:BuscaAtualizacao() FrmAtualizaTempo: CFrmAtualizaTempo Controlador: CControlerAtualzaTempo 2:Atualiza= Materializa() 5:getCampos() 6: delete() AtualizaTempo: CAtualizaTempo 3: Cmaquina() 4:setCampos() BrokerAtualizaTempo :CBrokerAtualizaTempo 58 § Excluir Atualização q1: ExcluiAtualizacao() FrmAtualizaTempo: CFrmAtualizaTempo Controlador: CControlerAtualizaTempo 2: Exclui () BrokerAtualizatempo: CBrokerAtualizaTempo § Realiza a Aquisição Figura 37. Tela de Aquisição. 59 § Aquisição 1:Nova Leitura() Controlador: CAquisicao FrmAquisicao: CFrmAquisicao 2:CAquisicao() 3:setCampos() 4:Grava() 7:delete() 6:getCampos() BrokerAquisicao: CBrokerAquisicao § 5: Desmaterializa() Aquisicao: Aquisicao Busca Aquisição 1:BuscaAtualizacao() FrmAquisicao: CFrmAquisicao Controlador: CControlerAquisicao 2:Atualiza= Materializa() 5:getCampos() 6: delete() Aquisicao: CAquisicao 3: Cmaquina() 4:setCampos() BrokerAquisicao :CBrokerAquisicao 60 § Exclui Aquisicao 1:ExcluiAquisicao () Frm Aquisicao: CFrm Aquisicao Controlador: CControlerAquisicao 2:Exclui() BrokerAquisicao: CBrokerAquisicao § Cadastra Funcionário Figura 38. Tela de Cadastro de Funcionários 61 § Grava Funcionário 1:NovoFunc() FrmCadFunc: CFrmCadFunc Controlador: CControlerFunc 2:CF unc() 3:setCampos() 4:Grava() 7:delete() 6: getCampos() BrokerFunc:CBrokerFunc Funcionário:CFunc 5: Desmaterializa() § Exclui Funcionário 1:ExcluiFunc() FrmFunc: CFrmFunc Controlador: CControlerFunc 2:Exclui() BrokerFunc:CBrokerFunc 62 § Busca Funcionário 1:BuscaFunc() FrmCadFunc: CFrmCadFunc Controlador: CControlerFunc 2:func= Materializa() 5:getCampos() 6: delete() Maquina: CMaquina 3: CFunc() 4:setCampos() BrokerMaq:CBrokerMaq 3.4.1.3. Interface com Usuário – Módulo Adicional Contudo, para consulta aos dados é possível ser criado um Website que busca estas informações na base de dados, e então é realizada a conversão, por exemplo, umidade relativa estará representada em bits, portanto é convertido de binário para decimal a fim de saber o verdadeiro valor da tensão de saída (Vout), então através da formula do Sensor RH será calculado a porcentagem de umidade do ar. O módulo adicional ao termino do projeto poderia ser criado com objetivo de atender as necessidades do cliente e mantê-lo informado sobre o tempo, caso o mesmo não possua acesso a Internet e necessite receber avisos quando um valor de alguma condição climática exceder o valor padrão, por exemplo, quando a temperatura ultrapassar 40 ºC o cliente receberá um SMS. Para tanto o usuário deve se cadastrar relacionando quais informações deseja receber quando ultrapassar o valor limitado estipulado pelo mesmo. Este recurso é denominado de trigger (é um gatilho, que é acionado quando uma variável alcança um valor numérico), onde para tanto é necessário um programa adicional apenas para monitorar dados de acordo com uma base de dados dos clientes cadastrados com suas respectivas triggers. 63 Abaixo é ilustrado através do diagrama em bloco o armazenamento das informações, conversão dos dados e o recurso adicional (trigger). Armazenamento no Envio de Mensagens banco de dados Instantâneas Atualização das triggers. Codificação e Conversão dos Dados Cadastro de triggers Figura 39. Diagrama em blocos do armazenamento das informações, conversão dos dados e o recurso adicional (trigger). A interface com o usuário é o Website, através dele pode ser pesquisado as informações dos parâmetros climáticos, e o cadastro das triggers. Os parâmetros climáticos são: § Índice de precipitação pluvial: é mensurada a quantidade de chuva por mm até o presente momento, ou por um tempo determinado. Por exemplo: Faz 15 dias que o índice de precipitação pluvial é de 0,00 mm, isto é, faz 15 dias que não chove; § Pressão: é mensurado através da formula da pressão onde é necessário realizar a compensação de temperatura, por exemplo, para o usuário será apresentado no momento a pressão do ar é de 300 mbar; § Temperatura: a temperatura é mensurada em centígrados, desta forma será apresentada em ºC; § Velocidade e direção do vento: a velocidade é mensurada em Km/h e a direção em Norte, Sul, Leste, Oeste, Nordeste, Noroeste, Sudeste, Sudoeste, por exemplo, a velocidade do vento é de 60 Km/h e a direção está para o Nordeste da região apresentada; § Umidade Relativa do Ar: a umidade é mensurada em porcentagem através da formula do Sensor RH, onde é realizada a compensação da temperatura, por exemplo, para o usuário será apresentado a porcentagem de umidade relativa no momento é de 80%. 64 Portanto, para as triggers é necessário que o usuário realize um cadastro no Website discriminando a partir de qual valor deseja receber a mensagem instantânea, por exemplo, o mesmo preencherá dados como nome, número do celular e parâmetros das condições climáticas, para o mesmo aparecerá alguns critérios, como índice precipitação pluvial >= ou < ou usuário selecionará o critério de igualdade e o valor, sendo assim é possível receber as mensagens instantâneas quando o valor atender os critérios preenchidos. A figura abaixo ilustra um Website semelhante o qual será desenvolvido, com informações das condições climáticas em tempo real. Figura 40. Website DavisNet, as informações são atualizadas em tempo real 3.1.4.4. Linguagem de Programação O Website utilizará a linguagem de programação ASP ou PHP, e o Banco de dados será MySQL. O software de gerenciamento das trigger e envio de SMSs será programado em C++, o qual ficará varrendo a base de dados com objetivo de encontrar triggers relacionadas com o dado ocorrido, por exemplo, a velocidade do vento excedeu 50 Km/h, o programa gerenciador varrerá a base com o objetivo de buscar registros que 65 possuam necessidade de receber tais informações, ou seja que possuam tais triggers, encontrando será enviado automaticamente ao celular do cliente a mensagem instantânea, indicando que a velocidade do vento no momento é de 51 Km/h. A linguagem para a aquisição dos dados fornecidos de forma digital pelos sensores da estação meteorológica foi feito em C++ o qual é responsável por codificar qual sensor deseja realizar a aquisição e qual o tempo para aquisição de cada sensor, como também armazenamento dos dados em memória e o envio dos dados serialmente para o modem, onde é encapsulado em uma mensagem instantânea (SMS). Chegando ao modem destinatário haverá um microcomputador que dencapsulará a mensagem e processará os dados, conforme os passos citados acima. 66 4. RESULTADOS E DISCUSSÃO 4.1. Aquisição dos dados e Endereçamento dos sensores Os sensores utilizados na linha 1-Wire da Dallas Semicondutor (pluviômetro, anemômetro), e o sensor de temperatura I2C da Texas Instruments, tiveram ótimo desempenho, sendo possível ler os dados convertidos digitalmente pelos sensores. Não foram utilizados todos o sensores, porém é expansível para a conexão de qualquer sensor dos fabricantes citados. Uma grande vantagem na utilização dos protocolos 1-Wire e I2C, foi à possibilidade de identificar os dispositivos presentes na rede, e temporizar as aquisições, o que contribuiu para a realização da opção de configuração do tempo de aquisição das amostras. Observou-se o perfeito funcionamento dos protocolos pertinentes aos sensores, sendo a implementação completamente finalizada. 4.2. Transmissão e Recebimento de SMS A transmissão do pacote gerado pela estação meteorológica contendo as amostras, foi realizada utilizando os comandos AT disponibilizados pelo fabricante. É importante citar, que foi necessário configurar o formato do modo de transmissão e recebimento de SMS no módulo WaveCom, os implementados são: § Modo Texto: implementa codificação em ASCII da mensagem enviada; § Modo PDU: implementa a mensagem em hexadecimal, e utiliza uma codificação separando os octetos, o qual é mais difícil ser implementado. Portanto, a opção escolhida foi o modo texto, o que facilitou a implementação para envio do SMS. Nos testes realizados observou-se que 67 alguns caracteres recebidos da mensagem estavam em branco, para tanto, foi implementada uma codificação para garantir que os valores abaixo de 32 (em decimal), pudessem ser lidos. A codificação foi realizada para todos as amostras geradas de cada sensor, sendo a resolução dos sensores é de 12 bits, porém foi aumentado completando com 0s para 16 bits, isto é, 2 bytes; permitindo transformar o 1º byte para caracter imprimível, e o mesmo processo para o 2º byte, somando ambos. Sem dúvidas, a codificação, é de grande vantagem para o projeto, o que permitiu a criação de um protocolo de comunicação, garantindo a integridade dos dados lidos, e a padronização do pacote, promovendo uma vantagem na extração dos dados. A transmissão foi realizada com sucesso, utilizando a seqüência dos comandos AT especificados pelo fabricante, e conforme o fluxograma desenvolvido. O recebimento do pacote SMS foi realizado utilizando a seqüência de comandos AT, onde também foi desenvolvido um fluxograma, sendo passado como parâmetro o número da mensagem de leitura. Após a leitura, é realizada a extração do pacote do SMS, para tal processo foi desenvolvido um algoritmo, que tinha como objetivo conhecer o início e o término da mensagem, para então tornar-se possível a decodificação. Ambos os processos foram realizados, sendo possível converter os dados decodificados em medidas reais para análise. A transmissão e o recebimento do pacote SMS foram concluídos completamente, obtendo o resultado esperado. 4.3. Atualização dos Dados O processo para a atualização de dados, foi implementado utilizando um algoritmo, para extração do pacote SMS, sendo decodificado e convertido para medidas reais, onde estes valores eram mostrados na tela. Portanto, após os dados serem convertidos, estes são armazenados no banco de dados para consulta posterior. Esta consulta pode ser realizada, através de parâmetros como: período, range de temperatura, e outros. O módulo de atualização dos dados foi concluído, onde todas as informações que lidas e decodificadas, eram armazenadas no banco de dados. 68 Porém, a criação de formulários de consultas avançadas e gráficos para visualização dos dados não foram implementados. 69 5. CONCLUSÕES A estação meteorológica utilizou sensores comerciais, sendo assim, a grande vantagem foi à utilização do protocolo proprietário, que facilitou na identificação dos sensores presentes na rede, e na seleção dos mesmos para aquisição dos dados inerentes ao meio. A implementação do protocolo, permitiu a realização de temporizações nas aquisições. Portanto, foi desenvolvida a configuração do tempo de aquisição das amostras, visando atender as necessidades do cliente. A implementação do protocolo de comunicação da estação meteorológica, foi de grande importância, porque possibilitou a integridade e segurança nos dados transmitidos. Observou-se a eficiência na codificação e no encapsulamento do pacote SMS, pois a mensagem instantânea é representada em ASCII, então a codificação é fundamental para prover caracteres imprimíveis. A transmissão via SMS foi implementada através de um fluxograma para execução seqüencial dos comandos AT, como também para a recepção. Portanto, quando estes dados são recebidos, realiza-se a decodificação, sendo estas informações convertidas e atualizadas periodicamente no software de gerenciamento, para consulta posterior. Para tanto, verificou-se a impossibilidade de atualizar informações em tempo real, por se tratar de uma comunicação onde o tempo de resposta varia consideravelmente. Porém para uma estação meteorológica, pôde constatar que não causa nenhum impacto, devido o tempo não ser um fator determinante. Atualmente, muitas estações existentes, realizam poucas aquisições diárias, pois as condições climáticas não possuem variações bruscas que necessitem instantes de tempos curtos entre uma aquisição e outra. O algoritmo implementado para a criação do pacote SMS, permite que seja m realizadas várias aquisições em um determinado período, encapsulando-as em uma única mensagem. A transmissão de mensagens instantâneas possui um custo, sendo um fator determinante para um produto. Porém, o encapsulamento de várias amostras em uma única mensagem, o torna um sistema econômico, e por conseqüência competitivo. 70 6. REFERÊNCIAS BIBLIOGRÁFICAS WERNECK, Marcelo M.Transdutores e Interfaces. s.ed. Rio de Janeiro, LCT,c1996. v1. DAN, Awtrey. The 1-Wire Weather Station, Sensors. South Beltwood Parkway, s.ed., 1998. v15, Cap. 6, p34-40. DAN, Awtrey .Transmitting Data and Power over a One-Wire Bus, Sensors. South Beltwood Parkway, s.ed., 1997.v14, Cap.2, p48-51. DAN, Awtrey . A 1-Wire Rain Gauge, Sensors, South Beltwood Parkway, s.ed., 1999. v16, Cap.9, p56-59. 1-Wire Net Design Guide, URL: www.dalsemi.com/TechBriefs/tb1.html. Davis Net URL: www.davisnet.com Texas Instruments URL: www.ti.com/tmp100.pdf Atmel Microcontrollers URL: www.atmel.com