do Arquivo
Transcrição
do Arquivo
Revista das Faculdades Integradas Claretianas – N. 5 – janeiro/dezembro de 2012 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Fernando Celestino dos Santos [email protected] Faculdades Claretianas de Rio Claro Paulo Sérgio Salla Sá [email protected] Faculdades Claretianas de Rio Claro Resumo As redes de computadores, inclusive a Internet, têm sido amplamente utilizadas para o tráfego de informações, principalmente as que utilizam o protocolo TCP / IP (Transmission Control Protocol / Internet Protocol). Esse trabalho tem como objetivo estudar a implementação de uma página web dentro de um micro controlador a fim de que esse realize uma tarefa remotamente. Para isso se fará necessária a exploração das ferramentas de software fornecidas pela microchip e ferramentas de hardware como a placa de desenvolvimento Explorer 16 BR. Acreditamos que a partir desse trabalho possam surgir várias idéias de aplicação prática que venham a contribuir para o avanço tecnológico a favor da sociedade. Palavras chave: PIC. TCP IP. Internet. Acesso remoto. Automação. 1 Introdução O objeto da pesquisa é o estudo da implementação de uma página WEB dentro de um micro controlador para que através de um navegador de internet instalado em um Laptop, PC ou aparelho celular seja estabelecida uma comunicação entre o usuário e um equipamento qualquer localizado em uma posição remota para execução de tarefas solicitadas . Na indústria, em geral, já é comum esse tipo de interface possibilitando o acionamento de cargas como exaustores, aquecedores, comportas, válvulas e, também, recepção de informações utilizadas no processo como temperatura, vazão, pressão, posição, tensão, corrente e outras variáveis. Através dessa tecnologia, também é possível o envio de parâmetros de configuração e controle, bem como a atualização de softwares dos equipamentos de campo (por exemplo: sensores de fluxo, controladores de pressão, controladores de temperatura, módulos CLP´s, inversores de frequência ) . Um outro segmento onde é crescente a utilização de acionamentos remotos é na automação residencial, definida por muitos como casa inteligente ou domótica. Uma das formas de acesso ao controle dos componentes da casa é a internet. De acordo com Bolzani (2007), a integração de várias funções e equipamentos controlados e ou programados de forma racional resume o conceito de casa inteligente. Podemos citar como ilustração a rega do jardim, o controle do sistema de multimídia, a seleção de vários ambientes de iluminação, sistema contra incêndio, sistema contra invasão, aquecimento, ar condicionado, detectores de chuva, entre outros. Mas nada disso teria sentido se não proporcionasse benefícios como retorno. Os benefícios desses sistemas podem ser enumerados da seguinte maneira: 1. Economia de água e energia. 2. Conforto e comodidade dos moradores. 3. Segurança O acionamento e controle de dispositivos pela internet não deve ser pensado somente para as cidades, o meio rural também tem suas necessidades de monitoramento e controle dos processos produtivos e controle de qualidade dos produtos. É quase comum o controle total de granjas e laticínios, por exemplo. Tudo o que foi abordado até agora mostra que os sistemas já existem e, para funcionarem, basta que sejam adquiridos conforme a aplicação desejada e instalados por mão de obra qualificada. No entanto, 70 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP poderemos, com esse trabalho, viabilizar um conhecimento mais íntimo e dedicado sobre a comunicação via protocolo TCP/IP com um micro controlador desmistificando o funcionamento tanto de hardware quanto de software, necessários para que o processo aconteça. 2 Desenvolvimento Teórico 2.1 Uma visão geral sobre rede de computadores Para que o objetivo da pesquisa fosse alcançado foi necessário um estudo inicial sobre o funcionamento das redes de computadores e seus componentes, bem como o funcionamento de suas camadas para depois nos concentrarmos no hardware e software específicos da aplicação deste projeto. As redes de computadores começaram a serem idealizadas por volta 1966 pelo departamento de defesa do governo americano com o objetivo de interligar seus computadores dos diversos centros militares e de pesquisa espalhados pelo país e conseguir manter a integridade de suas informações mesmo que parte de seus equipamentos fossem destruídos. Nascia aí a ARPANET. Até 1983, a ARPANET era baseada em IMPs (Interface Massage Protocol), porém o roteamento fora dos IMPs não existia limitando o acesso à ARPANET somente aos computadores que tivessem uma conexão direta à um IMP. Em 1980, a ARPANET teve a parte militar separada da parte acadêmica dando origem MILNET. A ARPANET adotou o Unix como seu sistema operacional prioritário e passou a incentivar a criação nativa do suporte de TCP/IP nele. O protocolo TCP/IP começou a ser projetado em 1977 com a intenção de ser o único protocolo de comunicação da ARPANET e a partir de 1983 passou a incorporar todas as máquinas da ARPANET o que permitiu um crescimento ordenado da rede eliminando as restrições dos protocolos anteriores. Em 1986 a NSF (Network Science Foundation) começou a operar o backbone (espinha dorsal) de comunicações com o nome de NSNET e iniciou a formação de diversas outras redes regionais interligando institutos acadêmicos e de pesquisa. Essas redes foram a redes de outros países caracterizando o inicio do uso do termo internet. Em 1993, surgem os protocolos HTTP dando início ao WWW (Word Wide Web) que foi o grande responsável pelo crescimento exponencial da internet. 2.2 Camadas de Rede As redes são divididas em camadas para facilitar e preparar os dados para serem entregues à camada superior a fim de que esta só se preocupe com as tarefas destinadas às suas atribuições que nada mais são que preparar as informações para o próximo nível. A forma como os dados são tratados dentro de cada camada não interessa às outras camadas podemos dizer que é “transparente”, o que importa é o pacote de dados transferido. Em um trecho de sua obra, Tanenbaum (1997, p. 19) elucida a proposta acima: “Para reduzir a complexidade, a maioria das redes foi organizada como uma série de camadas ou níveis, que são colocados um em cima do outro. O número, o nome, o conteúdo e a função de cada camada difere de uma rede para outra. Em todas as redes, no entanto , o objetivo de cada camada é oferecer determinados serviços para as camadas superiores” O modelo de referência de rede proposto é o TCP/IP e a distribuição das camadas neste modelo é como segue abaixo: Camada de Aplicação 71 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Camada de Transporte Camada de Rede Camada de Enlace Camada Física 72 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Aplicação Transporte Rede Enlace Física Figura 1 modelo da pilha de protocolos segundo Kurose e Ross 2.3 Camada de Aplicação Podemos estabelecer uma síntese das definições de Kurose e Ross (2006) somadas às de Tanenbaum (1997), nos três parágrafos abaixo: A camada de aplicação é a camada que presta serviços ao usuário e abaixo dela se encontra a camada de transporte e se localiza no topo da pilha tanto do cliente quanto do servidor. ( Figura 3). Chamamos de servidor o que oferece uma resposta a um serviço solicitado e de cliente a quem solicita um serviço na rede. Como exemplo de cliente, podemos citar um brouser de internet e de servidor um Apache. As aplicações mais populares e que são de relevância para esta pesquisa são a Web e o correio eletrônico e seus protocolos são HTTP ( HyperText Transfer Protocol) e SMTP (Simple Mail Transfer Protocol) respectivamente e ainda vale ressaltar que ambas utilizam o protocolo TCP na camada de transporte para garantir a entrega dos dados. 2.3.1 HTTP ( HyperText Transfer Protocol) Segundo Kurose e Ross (2006, p. 69), o coração da camada de aplicação da Web é o protocolo HTTP e quando implementado em dois programas, um no cliente e um no servidor possibilita a troca de informações entre os sistemas finais. 2.3.2 SMTP (Simple Mail Protocol) Na visão de Comer (2006, p.315), SMTP é o protocolo que viabiliza as aplicações de correio eletrônico e o formato das mensagens e cabeçalhos por ele portados é ASCII 7 bits. Portanto todos os arquivos diferentes de formato, como imagens e vídeos devem ser convertidas no envio e decodificadas no recebimento. 73 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 2 – Camada de Aplicação Fonte: KUROSE (2006, p.59) 2.4 Camada de Tranporte É possível extrair dos conceitos de Kurose e Ross (2006) que a camada de transporte recebe as mensagens da camada de rede e entrega à camada de aplicação e também realiza a operação contrária ( aplicação para rede), por isso se encontra nos finais de processo e não nos intermédios dele, pois como já vimos, quem tem a função de interligar as redes e nela trafegar as informações são as camadas de inter redes, essas sim são encontradas em toda a estrutura do sistema de comunicação como pode ser visto na figura 2. Resumindo, podemos afirmar que a camada de transporte fica com o serviço lógico dentro dos hosts enquanto que a camada de rede é responsável por ultrapassar as fronteiras do host até outro host da rede. 74 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 3 – Camada de Transporte Fonte: KUROSE (2006, p.144) 2.4.1 Funcionalidades da camada de transporte A camada de transporte referente ao modelo TCP / IP possui dois protocolos : UPD e TCP. 2.4.1.1 UDP - User Datagram Protocol Segundo Kurose e Ross (2006), o protocolo UDP não é orientado à conexão, ou seja, não prevê uma entrada confiável do dados. É utilizado onde a velocidade da informação é mais importante que a precisão das informações. Por exemplo serviços de voz e videoconferência. 2.4.1.2 TCP – Transmission Control Protocol Ainda de acordo com Kurose e Ross (2006), ao contrário do UDP, o TCP garante uma entrega confiável das informações, pois trata-se de uma conexão orientada a conexão e é utilizado onde há necessidade prioritária de confiabilidade dos dados, mesmo que para isso sua implementação seja muito mais complexa. Por exemplo serviço de transações financeiras e email. 2.5 Camada de Rede De acordo com Tanenbaum (1997, p. 387), a camada de rede (equivalente a inter-redes do modelo de referência TCP / IP) é responsável por viabilizar a transferência de pacotes de um ponto da rede a qualquer outro de destino atravessando, para isso, vários roteadores. É função dessa camada conhecer os roteadores da rede, estabelecer a melhor rota e evitar congestionamento das linhas. 2.5.1 Funcionalidades do Protocolo 75 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP A função da camada inter-redes é oferecer serviços à camada de transporte tendo como preocupação a compatibilização entre os diferentes tipos de hardware e de software que compõe um host destinatário e um host remetente durante todo o percurso do pacote. “ Os Serviços da camada de rede foram projetados com os seguintes objetivos em mente: 1. Os serviços devem ser independentes da tecnologia de subrede. 2. A camada de transporte deve ser protegida contra a quantidade, o tipo e a topologia das subredes presentes. 3. Os endereços de rede que se tornaram disponíveis para a camada de transporte devem usar um plano de numeração uniforme, mesmo nas LANs e WANs.” (Tanenbaum, 1997) As LANs (Local Area Network) são redes locais que abrangem pequenas distâncias geográficas como, por exemplo, a interligação dos computadores de uma residência, um condomínio ou uma corporação. Já, as WANs (Wide Area Networks) cobrem grandes distâncias geográficas interligam os continentes por exemplo. 2.6 Camada de Enlace Seguindo a linha de raciocínio de Tanembaum (1997), a camada enlace de dados ou Link de dados é a camada mais próxima das ligações físicas e é composta de protocolos capazes de estabelecer uma comunicação segura e eficiente entre duas redes ligadas fisicamente. Essa camada é responsável pelo enquadramento, controle de erros, controle de fluxo e gerenciamento de enlace. O enquadramento é a delimitação em quadros dos pacotes a serem enviados. O controle de erros pode ser executado de várias formas diferentes, mas para o propósito do nosso estudo, basta sabermos que quando um pacote de dados é enviado, é anexado a ele um cabeçalho com informações sobre o conteúdo que está sendo enviado e como deverá ser checado pela camada enlace do outro lado. Caso o conteúdo do pacote não seja condizente com o que foi informado pelo cabeçalho da camada enlace de envio, uma mensagem de erro é retornada e o pacote ou parte dele é reenviado. O controle de fluxo garante que um sistema de transmissão de dados rápida não sobrecarregue um receptor lento. 2 .7 Camada Física O modelo de referência TCP / IP não faz menção importante a essa camada, são raras as literaturas que citam essa camada dentro do modelo, porém é sabido que de alguma forma as redes se comunicam fisicamente. Podemos assumir que essa camada é responsável pelo acesso ao meio físico. Segundo Tanenbaum (1997, p. 49), a camada host/rede não é, na verdade, uma camada se considerarmos a conceituação de hierarquia dos protocolos, mas sim uma interface entre as camadas interredes e enlace de dados. Em vista desse fato, por vezes, nos deparamos com o termo camada de acesso ao meio como definição da última camada da arquitetura TCP/IP. 2.7.1 Serviço fornecido Podemos citar como sendo sua principal finalidade a entrega de dados entre duas máquinas conectadas entre si, e isso pode ser feito de maneiras distintas, conforme a necessidade e independentemente do tipo de hardware da conexão física. 76 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP 2.7.2 Funcionalidades do protocolo Recebe datagramas IP da camada inter-redes e transmite para o meio físico independente da tecnologia utilizada. Divide os datagramas em quadros. Mapeia os endereços lógicos internet em endereços físicos dos equipamentos da rede. Permite a implementação do protocolo TCP/IP em qualquer hardware de rede independente do sistema de comunicação utilizado ( Ethernet, Token Ring, X.25, ATM ,ou outros). 2.7.2.1 Mapeamento de endereços lógicos internet em endereços físicos. Quando dizemos que endereços IP são lógicos sugerimos que eles só existem em nível de software . O mapeamento dos endereços, então, é feito adicionando-se o endereço físico do host ao endereço IP como pode se observado na figura 1. 2.7.2.2 ARP – Address Resolution Protocol O Protocolo ARP é a interface entre o endereço lógico ( IP) da camada de Inter-redes e o endereço físico da camada de enlace (MAC – Media Access Control). Para que um datagrama IP chegue a seu destino é necessário que seja informado também o endereço MAC do destinatário. Isso é possível graças ao módulo ARP existente no remetente, o qual solicita da rede de destino o endereço MAC referente ao IP de destino para onde os dados serão enviados. 2.7.2.3 MAC – Media Access Control MAC é o endereço físico através do qual qualquer destino é encontrado na rede local. O código MAC é um número hexadecimal que já vem gravado internamente nos dispositivos adaptadores de rede e é único, não existem dois iguais no mundo. Figura 4 – Nicolletti (2001) 3 Desenvolvimento prático 3.1 Instrumentos Utilizados Osciloscópio Minipa Multímetro Minipa 77 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP 3.2 Ferramentas de Hardware 3.2.1 Gravador ICD2 BR Utilizado para gravar o código hexadecimal no microcontrolador e também para Emular e Debugar o software. 3.2.2 Placa de desenvolvimento Explorer 16 BR A Placa Explorer 16 BR foi desenvolvida pela empresa Labtools e está disponível para compra no site www.labtools.com.br, de onde, também, pode ser baixado seu manual. O Kit é composto da Placa, de uma fonte de alimentação de 15V, um cabo USB, um cabo serial, um microcontrolador PIC 24FJ128AG010 e um micro controlador PIC 32. Com os recursos de hardware dessa placa é possível explorar uma vasta gama de aplicações com tais como: Comunicação Serial, inclusive com PC Display de cristal Líquido Display Gráfico Porta USB Comunicação Ethernet Comunicação CAN Botões de comando Leds indicativos Conversor AD Sensor de temperatura Memória EEPROM I2C 24LC256 Memória EEPROM SPI 24LS256 PIC24F128J010 Além de todos esses recursos incutidos na placa, podem ser adquiridas PicTails, ( placas extensoras), para aplicações específicas como Ethernet, Radio, comunicação sem fio, Dislpay TFT com touch screen, e outras. 78 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 5: Diagrama da placa Explorer 16 BR Fonte: Labtools (2010, p. 23) Tabela 1: Descrição dos conectores da placa Explorer 16 BR Conector Descrição CN1 CN2 CN3 CN4 CN5 CN6 CN7 CN8 CN9 CN10 CN11 Conector ICSP Padrão Microchip Conector ICSP Padrão Mosaico Conector Padrão PICKIT Conector LCD 16x2 Alfanumérico Conector LCD 128x64 Gráfico Comunicação RS232 Conector Edge 120 pinos (PICTail) Conector Edge 120 pinos (PICTail) Conector Placa 120 pinos (PICTail) Conector Ethernet RJ45 Comunicação CAN Fonte: Labtools (2010, p. 24) 3.3 Ferramentas de Software 3.3.1 Editor de HTML Amaya Web Editor 11.3.1 Para desenvolvimento da página Web foi utilizado o editor de HTML Amaya Web Editor 11.3.1, mas poderia ser utilizado qualquer outro como o DreamWeaver ou FrontPage. Software gratuito para edição de páginas Web em HTML baixado de http://www.baixaki.com.br/download/amaya-web-editor.htm. É um editor leve, fácil de utilizar, e suas limitações, se comparado ao DreamWeaver, não tem relevância no propósito deste trabalho. 3.3.2 Proteus 7.7 Simulador Virtual de circuitos eletrônicos Os testes preliminares de comunicação entre o Micro controlador e circuito integrado ENC28J60 foram realizados utilizando o simulador virtual Proteus versão 7.8. 3.3.3 Compilador C30 da Microchip O compilador escolhido foi o C30 da Microchip devido às facilidades que oferece em relação a integração com as ferramentas de hardware, fornecimento de exemplos de códigos e bibliotecas prontas em linguagem “c”. 3.3.4 Microchip MPFS Generator Converte a imagem da página Web em código binário e carrega na memória EEPROM 24LS512 da Placa Explorer 16 BR. Atualiza a página de internet automaticamente no navegador. 3.4 Teste da Placa de desenvolvimento Explorer 16 BR A princípio a placa apresentou alguns problemas relacionados à fonte de alimentação. Ela apresentava uma tensão abaixo do necessário para o funcionamento integral do conjunto. Após a substituição da fonte iniciamos um teste de funcionamento começando por conectar o plugin do micro à placa Explorer 16 BR. O 79 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP micro controlador já vem de fábrica com um software para validação da Placa. Ao conectarmos a fonte foi observado que o teste de funcionamento foi executado conforme previsto no manual. 3.5 Gravação do Software no micro controlador O software de aplicação é um exemplo fornecido pela Microchip assim como as pilhas TCP/ IP utilizadas e podem ser baixados gratuitamente do site do fabricante em www.microchip.com/tcpip . Antes do software ser gravado no microcontrolador, ele teve que ser compilado, pois tais componentes só aceitam dados no formato Hexadecimal, ou seja, foi traduzido de uma linguagem de alto nível, que é de mais fácil compreensão para o desenvolvedor, para uma linguagem de mais baixo nível (hexa), que é a única que o microcontrolador entende. O compilador utilizado foi o C30 versão 3.0 e a interface gráfica para edição (IDE) o MPLAB 8.76 que podem ser baixados gratuitamente do mesmo fabricante com algumas limitações para o caso do C30. Após a instalação e execução do compilador C30 e do MPLAB, pudemos carregar o software a ser compilado através da aba superior do MPLAB em Project<>open<> e selecionando o software exemplo: TCPIP Demo App - C30 - EXPLORER_16_ENC28J60 conforme figuras respectivas 6 e 7. Figura 6: Interface de desenvolvimento compilação e gravação: abrindo um projeto 80 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 7: Interface de desenvolvimento compilação e gravação: selecionando um projeto. Depois de selecionado basta clicar em Build All localizado no menu Project na aba superior para compilar o software. Veja abaixo: Figura 8: Comando para compilar O software foi compilado com sucesso conforme pode ser visualizado no log abaixo: 81 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 9: informações sobre o processo de compilação Figura 10: código Hexadecimal gerado. O processo de gravação, inicialmente, apresentou alguns erros e o software não foi executado com sucesso. Após uma consulta aprofundada à documentação que acompanha o Kit de desenvolvimento o problema foi resolvido. Para a gravação ser bem sucedida, primeiramente conectou-se o gravador ICD2 ao computador via porta USB que automaticamente instalou um drive para a comunicação. O passo seguinte foi conectar o gravador à placa Explorer 16 BR utilizando o cabo RJ 45 e em seguida alimentar a mesma através da fonte de 15Vcc. Feito isso escolhemos no menu Programmer Select Programmer, o gravador ICD2 como pode ser visto na figura 11 e feito isso clicamos em Connect no mesmo menu. 82 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 11: Seleção e conexão do programador ICD2 BR Uma vez conectado é possível executar um teste no gravador acessando a opção Settings no menu Programmer a fim de checar as tensões de alimentação e gravação do micro controlador. Como os passos anteriores foram todos realizados o gravador passou no teste como segue na figura 12: Figura 12: Teste do gravador ICD2 BR Com tudo conectado, alimentado e testado, passamos à etapa de gravação do micro controlador PIC através da opção Program no menu Programmer. Agravação foi completada com sucesso como visualizado no log abaixo: 83 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 13: Verificação da gravação do PIC 24 3.6 Teste de conexão com comandos Ping A partir do momento em que o software foi gravado no microcontrolador foi possível um primeiro teste de conexão. Com a placa conectada a uma rede doméstica composta de um laptop, um desktop, um chaveador de rede e a placa Explorer 16 BR, foram disparados comandos ping de pontos distintos da rede para o IP atribuído à placa pelo chaveador de rede (192.168.2.12) e o resultado foi o esperado: o endereço foi reconhecido pela rede e não houve perda de dados. O teste foi aplicado por dez vezes obtendo os mesmos resultados 84 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 14: Teste Ping contra o IP da Explorer 16 BR 3.7 Criação da página WEB A etapa subsequente foi modificar a página web exemplo da Microchip para ficar mais leve e personalizada para em seguida embarcá-la no nosso microcontrolador. Utilizamos o software Amaya, um editor de HTML gratuito e bem prático, mas poderia ter sido utilizado um editor de texto como o note pad do Windows. Feitas as devidas alterações na Página WEG a ser carregada, a mesma teve que ser transformada em um arquivo de números binários para ser transferida para a memória eeprom da placa Explorer 16 BR. Memoria eeprom é uma memória não volátil, ou seja, retém as informações mesmo com o sistema desligado. Nesse processo, foi utilizada a ferramenta MPFS2 disponibilizada gratuitamente pela Microchip. A ferramenta MPFS2, além de transformar o conteúdo da página em um arquivo binário, pode também, fazer simultaneamente a atualização da página no navegador, bastando para isso que a placa esteja ligada e conectada à rede. Uma outra forma de carregar a página na memória é através do próprio browser digitando o IP seguido de /mpfsupload (ex: 192.168.2.12/msfupload) e, em seguida, apontando para o arquivo *.bin que 85 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP evidentemente fora criado antes. As duas opções podem ser vistas nas figuras 15 e 16. Em ambos os casos, o MPFS2 estabelece uma conexão TCP / IP entre o computador cliente e a placa Explorer e através deste protocolo entrega os dados ao micro controlador que encaminha à memória eeprom. Figura 15: interface do MPFS2 Figura 16 : Upload da Página pelo navegador 3.8 Teste de Acesso à página embarcada A página foi atualizada e, então, iniciamos a segunda etapa dos testes que era o acesso da página através de uma rede local. Apenas digitando o número do IP atribuído pelo Switch à placa, (figura 17), foi possível acessar a página embarcada no circuito ( Figura 18 ). 86 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Figura 17: IP atribuído à placa e utilizado para acesso na rede local Figura 18: Página web embarcada O acesso à página foi testado com os navegadores Internet Explorer 8, Mozilla Firefox e Google Chrome e o resultado foi 100% positivo não havendo nenhum erro ao ser carregada. 3.9 Teste dos comandos de controle da página embarcada O teste seguinte comprovou o envio e recebimento dos comandos a serem executados entre página web e placa. Ao clicar sobre as representações dos LED’s na placa eles são atualizados na placa e, de forma oposta, podemos acionar os botões na Explorer 16 BR e visualizar o efeito na página: as representações dos botões se invertem. Através de uma rotina no software, foi possível verificar o tempo de respostas dos comandos e obtidos os seguintes resultados: Tabela 2: teste de tempo resposta Teste 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Tempo (ms) 34 36 40 106 26 40 50 30 48 55 57 84 126 45 28 73 37 52 40 45 39 74 62 29 87 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP Tempo Mínimo: 26 ms Tempo máximo : 126 ms Tempo médio : 53,33 ms Figura 18 : Gráfico dos tempos de respostas obtidos em 25 testes. Os testes foram realizados numa rede local do tipo Office/home com baixa carga de tráfego, portanto não deve ser generalizado para toda e qualquer configuração de rede. Para outras aplicações deve ser levada em consideração a condição que seja mais desfavorável à comunicação. O último teste foi acessar a placa através da internet utilizando, para isso um IP Válido. O IP válido é o IP público que nos liga a internet, diferentemente do IP não válido que é privado. Também é possível o acesso via internet através de uma rede local desde que essa seja provida por um IP Válido, contudo é necessário que seja criada uma conta em um provedor DNS (Domain Service Name) e através desse estabelecido um link entre a IP válido e o IP atribuído à placa pelo roteador. Essa prática é comum para acesso remoto à uma estação de trabalho dentro de uma rede. 4 Considerações finais O projeto pode ser concluído na sua totalidade e o funcionamento foi dentro das expectativas, já que pudemos comprovar a conexão remota da placa e a eficiência nas respostas aos comandos e com isso viajar nas inúmeras possibilidades de aplicação. Algumas considerações devem ser levadas em conta: Os tempos de resposta aos comandos têm uma variação grande, e nesse caso deve-se tomar como base para as aplicações o pior caso, ou seja, o maior tempo. Apesar de todo sucesso de funcionamento do sistema, aplicações que envolvam o controle via internet necessitam de uma avaliação mais criteriosa em relação à segurança da informação e a garantia de estabilidade e velocidade das conexões, que a meu ver, é um tanto complexo. Em outras palavras, se for um controle que envolva risco às pessoas ou à um processo, por exemplo o desligamento de emergência de um aquecedor no caso de um princípio de incêndio, seria conveniente que a aplicação fosse testada para esse fim. 88 Embarcando uma Página Web em um Microcontrolador para Comunicação Via Internet Através do Protocolo TCP/IP As considerações acima não significam que não possam ser utilizadas para tais finalidades, apenas apontam no sentido de que estudos mais profundos sejam feitos para esses objetivos de aplicação, contudo as possibilidades de aplicações que podem ser baseadas nesse trabalho são muitas. Podemos, por exemplo, monitorar nossa casa a distância através da internet ou irrigar o jardim e, em outra aplicação, manter uma coleta de dados online da produção de uma prensa, uma temperatura ou pressão. Como podemos estar imaginando, a partir desse trabalho poderão nascer outros, em sua base, com aplicações que com certeza serão de interesse da sociedade. 5 REFERÊNCIAS BIBLIOGRÁFICAS BOLZANI, C.; Desmistificando a Domótica. AURESIDE. 2007. Artigo www.aureside.org.br/artigos/default.asp?file=01.asp&id=74. Acesso em: 16/04/2011. disponível em: COMER, Douglas E. Interligação de redes com TCP/IP: princípios, protocolos e arquitetura. Rio de Janeiro: Elsevier, 2006. COMER, Douglas E.; DROMS, Por Ralph. Redes de computadores e internet. 4 ed Porto Alegre: Bookman, 2007. KUROSE, James F.; ROSS, Keith W. Redes de computadores e a internet: uma abordagem top-down. 3 ed São Paulo: Pearson Addison Wesley, 2006. LABTOOLS. Guia do Usuário Explorer16 BR PIC24. Disponível em: http://www.mosaico.com.br/Midias/Documentacao/Manual%20Explorer%2016%20BR%20(PIC24F)_rev_04.pdf . Acesso em: 05/07/2011 MICROCHIP. Enhanced Flash Micontrolers with 10-bit A/D and nano watt technology 2008. disponível em: http://ww1.microchip.com/downloads/en/DeviceDoc/39626e.pdf. Acesso em 16/04/2011 MOKARZEL,Marcos Perez; MOKARZEL Karina P. Carneiro. Internet Embedded: TCP/IP para microcontroladores. 1ª Ed . São Paulo: Érica, 2004. NICOLLETTI, P. S. Redes de computadores. Notas de aula. http://www.dsc.ufcg.edu.br/~peter/cursos/rc/material/p4a.pdf . Acesso em 05/07/2011. Disponível em: PEREIRA, Fábio. Microcontroladores PIC: Programação em C. São Paulo : Érica: 2005. SILVA, Luís Antônio Pinto da; CHIOZZOTTO, Mauro. TCP/IP - Tecnologia e implementação. São Paulo: Érica: 1999. SOUZA, David José; LAVINIA, Nicolas César. Conectando o PIC 16F877: Érica: 2003.. Recursos Avançados. São Paulo : SOUZA, David José; LAVINIA, Nicolas César. Conectando o PIC 16F877: Érica: 2003.. Recursos Avançados. São Paulo : SOUSA, Daniel Rodrigues;SOUZA, David José. Desbravando o PIC24 : Conheça os microcontroladores de 16 bits. São Paulo : Érica: 2008.. SILVA, Luís Antônio Pinto da; CHIOZZOTTO, Mauro. TCP/IP - Tecnologia e implementação. São Paulo: Érica: 1999. TANENBAUM, Andrew S. Redes de computadores. Rio de Janeiro: Campus, 1997. TORRES, Gabriel. Redes de computadores: curso completo. Rio de Janeiro: Axcel Books, 2001. 89