UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA MICROCONTROLADO BASEADO EM AUTENTICAÇÃO REMOTA E ACIONAMENTO POR MEIO DE DISPOSITIVOS MÓVEIS por Elienay da Cunha Itajaí (SC), novembro de 2013

2 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA MICROCONTROLADO BASEADO EM AUTENTICAÇÃO REMOTA E ACIONAMENTO POR MEIO DE DISPOSITIVOS MÓVEIS Área de Sistemas Embarcados e Distribuídos por Elienay da Cunha Relatório apresentado à Banca Examinadora do Trabalho Técnico-científico de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: Douglas Rossi de Melo, M. Sc. Co-orientador: Cesar Albenes Zeferino, Dr. Itajaí (SC), novembro de 2013

3 RESUMO CUNHA, Elienay. Sistema microcontrolado baseado em autenticação remota e acionamento por meio de dispositivos móveis. Itajaí, p. Trabalho Técnicocientífico de Conclusão de Curso (Graduação em Ciência da Computação) Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, Com a difusão dos dispositivos móveis, como smartphones e tablets, torna-se possível e desejável a utilização desses elementos em conjunto com outras tecnologias para o desenvolvimento de diversos sistemas, como os sistemas de automação. Uma tecnologia que pode ser utilizada nessa integração corresponde aos microcontroladores, que são dispositivos que contêm recursos que permitem controlar mecanismos de diversas naturezas. É possível controlar o acesso a um ambiente por meio de um sistema microcontrolado, utilizando técnicas de autenticação para manter algum nível de segurança. Neste trabalho, utiliza-se uma técnica de autenticação multifator, com dois requisitos: algo que se possua (dispositivo móvel com uma aplicação) e algo que se saiba (informações de usuário e senha), para uma consulta em um banco de dados externo. Foi utilizado o Arduino para a elaboração do sistema de controle, por se tratar de uma plataforma aberta e de baixo custo que oferece os recursos necessários para a comunicação sem fio com o dispositivo móvel, para a autenticação do usuário e para a ativação de um fecho eletromagnético. Como protocolo de comunicação entre as unidades, foi utilizado o Bluetooth, comumente aderido pela maioria dos dispositivos móveis. A aplicação para o dispositivo móvel foi desenvolvida para a plataforma Android, que provê ao usuário uma interface gráfica que permite a entrada dos dados e comunicação por meios não guiados. Com a integração dos dispositivos e tecnologias, foi possível acionar um fecho eletromagnético, mediante a autenticação de um usuário em uma base de dados externa. Palavras-chave: Automação. Arduino. Comunicação Móvel.

4 ABSTRACT With the spread of mobile technologies such as smartphones and tablets, it is possible to use these devices with other technologies for the implementation of many systems like automation systems. Microcontrollers are a technology used to control mechanisms of various natures, like environments access. In this work, it is used a multifactor authentication to control the permission to access an environment which requires two conditions: something you have (mobile device with an application) and something you know (user information and password). It was adopted the Arduino technology as the microcontroller unit because it is an open and low cost platform that provides the necessary resources for processing and wireless communication with the mobile device for user authentication. Bluetooth was the wireless communication protocol chosen to integrate the mobile device and the controller unit. The software was developed for the Android platform, which provides to the user a graphical interface that allows the entry of data and support to the communication protocol. After the bed, it was possible to activate an electromagnetic lock, by authenticating a user in an external database. Keywords: Automation. Arduino. Mobile Communication.

5 LISTA DE FIGURAS Figura 1. Visão geral do sistema Figura 2. Modelo de referência OSI Figura 3. Taxonomia por forma de energia Figura 4. Autenticação multifator: (a) Algo que se sabe; (b) Algo que se tem; (c) Algo que é parte do usuário Figura 5. Duas piconets formando uma scatternet Figura 6. Estrutura do quadro Bluetooth Figura 7. Visão frontal do Arduino Uno Figura 8. Visão frontal do Arduino Mega ADK Figura 9. Visão frontal do Arduino Nano Figura 10. Arquitetura do Android Figura 11. Elementos do DroidLar Figura 12. Telas da aplicação. (a) tela inicial; (b) tela de configurações Figura 13. Sistema de automação residencial Figura 14. Interface de Usuário Figura 15. Comunicação com objetos da residência através de celular Figura 16. Componentes de hardware do módulo conversor Figura 17. Visão macro do sistema DomoWeb Figura 18. Página de ambientes do DomoWeb Figura 19. Fecho eletromagnético Amelco FE Figura 20. Comunicação do dispositivo móvel com o Arduino Figura 21. Comunicação do Arduino com o servidor Figura 22. Acionamento do fecho eletromagnético Figura 23. Casos de uso Figura 24. Diagrama de sequência Figura 25. Diagrama de classes Figura 26. Protótipo da tela de login Figura 27. Tela do aplicativo móvel Figura 28. Tela principal com a adição do menu Figura 29. Fluxograma das tarefas principais da aplicação Android Figura 30. Fluxograma dos processos implementados no método loop Figura 31. Módulo EthernetShield acoplado ao Arduino Uno Figura 32. Módulo Bluetooth e módulo Relé acoplados na protoboard Figura 33. Modelo esquemático do Arduino Figura 34. Prototipação completa do Arduino Figura 35. Prototipação do Arduino acionando o fecho eletromagnético Figura 36. Fluxograma da integração com servidor Figura 37. Execução da aplicação Android. (a) Sansung Galaxy Young S5360; (b) Motorola Xoom 2 ME Figura 38. Resultado dos testes com identificador e senha corretos, sem permissão. (a) Módulo relé desligado e lâmpada apagada; (b) Módulo relé ativado e lâmpada acesa Figura 39. Tela da aplicação Android com mensagem de erro ao enviar dados incorretos... 77

6 LISTA DE QUADROS Quadro 1. Comparativo dos trabalhos similares Quadro 2. UC01 Acionar o fecho eletromagnético Quadro 3. UC02 Autenticar no sistema Quadro 4. Lista de componentes de hardware Quadro 5. Especificação do Arduino Uno Quadro 6. Custo dos componentes do protótipo... 78

7 LISTA DE ABREVIATURAS E SIGLAS ACL DARPA FHSS GPRS GPS HTTP IBM ICSP IDC IOT IP ISO LAN LED MAC NFC OPENGL OSI PWM RF SAR SCO SGBD SPI TCP TTC UART UML UNIVALI USB XML Asynchronous Connection-Less Defense Advanced Research Projects Agency Frequency Hopping Spread Spectrum General Packet Radio Service Global Positioning System HyperText Transfer Protocol International Business Machine In Circuit Serial Programming International Data Corporation Internet of Things Internet Protocol International Standards Organization Local Area Network Light Emitting Diode Media Access Control Near Field Communication Open Graphics Library Opens Systems Interconnection Pulse Width Modulation Radio Frequency Serviço de Automação Residencial Synchronous Connection Oriented Sistema de Gerenciamento de Banco de Dados Serial Peripheral Interface Transmission Control Protocol Trabalho Técnico-científico de Conclusão de Curso Universal Asynchronous Receiver/Transmitter Unified Modeling Language Universidade do Vale do Itajaí Universal Serial Bus Extend Markup Language

8 SUMÁRIO 1 INTRODUÇÃO PROBLEMATIZAÇÃO Formulação do Problema Solução Proposta OBJETIVOS Objetivo Geral Objetivos Específicos METODOLOGIA ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA REDES DE COMPUTADORES Usuários Móveis e Redes sem Fio Modelos de Referência MEIOS DE TRANSMISSÃO INTERLIGAÇÃO DE REDES INTERNET DAS COISAS (IOT) AUTENTICAÇÃO BLUETOOTH Arquitetura do Bluetooth A estrutura de quadro do Bluetooth MICROCONTROLADORES Plataforma Arduino Software Hardware Arduino Uno Arduino Mega ADK Arduino Nano Diferenciais PLATAFORMA ANDROID Arquitetura Diferenciais TRABALHOS SIMILARES DroidLar Automação residencial através de um celular Android Sistema de automação residencial baseado em Bluetooth usando celulares Domótica: Controle de automação residencial utilizando celulares com Bluetooth DomoWeb Análise comparativa DESENVOLVIMENTO VISÃO GERAL Escopo REQUISITOS Requisitos funcionais... 52

9 3.2.2 Requisitos não-funcionais MODELAGEM Casos de uso Diagrama de sequência Diagrama de classes Protótipo de telas da aplicação IMPLEMENTAÇÃO APLICAÇÃO ANDROID Interface com o usuário Lógica da aplicação Android APLICAÇÃO DO ARDUINO Bibliotecas utilizadas Codificação PROTOTIPAÇÃO DO SISTEMA EMBARCADO INTEGRAÇÃO COM O SERVIDOR TESTES Resultados CUSTO DO PROTÓTIPO DISCUSSÃO CONCLUSÕES APÊNDICE A. CÓDIGO-FONTE DA APLICAÇÃO ANDROID APÊNDICE B. CÓDIGO-FONTE DA APLICAÇÃO ARDUINO APÊNDICE C. CÓDIGO-FONTE DA PÁGINA AUTENTICA.PHP... 93

10 10 1 INTRODUÇÃO Com a difusão dos dispositivos móveis, em especial tablets e smartphones, tem se buscado a disponibilização de recursos e funções que facilitem a rotina dos usuários desses bens de consumo. A popularização de tais dispositivos não está relacionada apenas ao ganho computacional que esses adquiriram com a evolução dos processadores, mas também com a integração de variados componentes de hardware (GPS, câmera, decodificadores de mídia, etc.) e principalmente com a possibilidade de conexão permanente com a Internet. Tal avanço tecnológico tem permitido o aumento da capacidade de integração de serviços de diferentes naturezas. De acordo com Weiser (1991), as tecnologias que perdurariam e seriam vistas em todos os lugares seriam aquelas que se tornassem transparentes para os usuários e fossem presentes no cotidiano humano. A onipresença de informação, somada à proliferação de dispositivos microprocessados, ficou conhecida como computação ubíqua. Segundo Taurion (2009), no ano de 2011, era esperado cerca de dois bilhões de pessoas conectadas à Web e um trilhão de objetos conectados, de automóveis a câmeras digitais, de sensores em rodovias a colheitadeiras com GPS, criando uma verdadeira Internet das Coisas (ou IoT Internet of Things). Esse conceito, que pode ser considerado como o próximo passo da evolução do uso da Internet, tem grande potencial para modificar profundamente a sociedade e sua economia. A IoT combina a universalidade da Internet, que já é a principal infraestrutura de comunicação do planeta, com inteligência ou software embarcado em sensores e atuadores, modificando a maneira como o mundo físico opera. Para o uso dos sensores e atuadores previstos na abordagem da IoT, é necessário o emprego de dispositivos capazes de efetuar o controle e comunicação dessas unidades. Uma tecnologia que vem sendo utilizada em aplicações baseadas no conceito de IoT é o Arduino. Trata-se de uma plataforma de hardware open-source, projetada em uma placa única, contendo um microcontrolador e um ambiente de desenvolvimento que permite escrever e executar um código de forma simples e clara. Essa plataforma pode ser utilizada por iniciantes, mantendo-se ainda suficientemente flexível para usuários avançados. Além de ser uma plataforma extensível, que permite a ampliação e até a criação de uma versão própria do módulo, um kit Arduino pré-montado pode custar menos de 50 dólares, sendo relativamente mais barato em comparação com microcontroladores de outras plataformas (ARDUINO, 2013a).

11 11 Muitas soluções para IoT utilizam comunicação sem fio. Essa é uma das tecnologias que apresenta maior crescimento em relação aos meios de comunicação (FOROUZAN, 2006). Para Coulouris, Dollimore e Kindberg (2007), a computação móvel surgiu devido à miniaturização dos dispositivos e da conectividade sem fio. Outro motivo para a ascensão das redes sem fio e dispositivos móveis foi a necessidade que as pessoas passaram a ter de estar conectadas às redes em qualquer momento e lugar. Para permitir a comunicação sem fio entre dispositivos de mesma natureza ou heterogêneos, podem-se citar algumas tecnologias, tais como: sinal infravermelho, Wi-Fi, Bluetooth, GPRS, entre outros. Com o aumento do poder de processamento dos dispositivos móveis, aliado à complexidade crescente das aplicações executadas nesses dispositivos, viu-se a necessidade de sistemas operacionais capazes de gerenciar os recursos e funções a eles atribuídos. De acordo com Pereira e Silva (2009), o Android é uma plataforma para tecnologia móvel completa, incluindo um sistema operacional, middleware, aplicativos e interface de usuário. A plataforma foi construída para permitir que os desenvolvedores criem aplicações que tirem o máximo de proveito que o dispositivo possa oferecer. Trata-se de uma plataforma opensource, o que facilita ao desenvolvedor a incorporação e adaptação de novas funcionalidades. Segundo o IDC (International Data Corporation) (2013), no primeiro trimestre de 2013 foram comercializados 152,3 milhões de smartphones, sendo que 59% destes operam o sistema Android, enquanto que 23% é correspondente ao ios. O IDC ressalta que a ampla liderança de mercado do Android deu-se pela variedade de modelos em que a plataforma é oferecida nas prateleiras, fazendo suas vendas saltarem 145% em relação ao ano anterior. Analisando as tecnologias e abordagens mencionadas anteriormente, este TTC (Trabalho Técnico-Científico) visou a integração de tais tecnologias na forma de um atuador controlado pela plataforma Arduino (ex. fecho eletromagnético). Tal controle é comunicado por um dispositivo móvel, operando o sistema Android, por meio de um protocolo de comunicação reconhecido pelas plataformas envolvidas (Arduino e Android). Por fim, são verificadas as credenciais do usuário por meio de uma solicitação de autenticação do Arduino a uma base de dados externa, via Internet.

12 PROBLEMATIZAÇÃO Formulação do Problema Evitar que pessoas não autorizadas tenham acesso a determinados ambientes, como salas que contenham arquivos sigilosos, ou até mesmo em uma residência cujo acesso na maioria das vezes é restrito ao grupo familiar, tem sido uma necessidade constante pela qual as pessoas já estão habituadas. Mecanismos de segurança são empregados para controlar o acesso, permitindo ou restringindo o acesso aos ambientes. De acordo com Ferreira (2003), o controle ao acesso físico a fim de proteger ambientes envolve o uso de chaves, trancas, fechaduras, smartcards, biometria, etc. Segundo Montico (2009), a automatização dos mecanismos de controle de acesso é uma alternativa que proporciona maior segurança, porém, os custos de implantação ainda são altos Solução Proposta A solução proposta neste trabalho é a utilização de um sistema microcontrolado para fazer o acionamento de um fecho eletromagnético. Para permitir o acionamento, é utilizada uma forma de autenticação multifator, na qual é necessário algo que o usuário saiba (usuário e senha) e também algo que ele possua (dispositivo móvel com a aplicação). Uma vez que o usuário atenda esses dois requisitos poderá realizar o acionamento do fecho. Na Figura 1 é apresentada uma visão geral do sistema.

13 13 Servidor Apache + MySQL Tablet Android Fecho Eletromagnético Amelco FE61 Smartphone Android Arduino Uno + módulo Ethernet + módulo Bluetooth + módulo relé Figura 1. Visão geral do sistema. O hardware para controlar o fecho foi baseado em Arduino, devido a esta ser uma plataforma de baixo custo e de simples implementação. A aplicação foi desenvolvida para a plataforma Android, por ser uma plataforma amplamente difundida atualmente, dentre outras vantagens apresentadas no decorrer deste trabalho. A aplicação apresenta uma tela de autenticação, na qual o usuário deve digitar seu identificador e a sua senha, sendo esses dados enviados para o Arduino. Depois de receber os dados, os mesmos são enviados através de uma requisição a um servidor. Este, por sua vez, retorna com o resultado da consulta na base dados externa, verificando se o usuário possui permissão. Caso o retorno do servidor identifique que o usuário possui a permissão, o Arduino aciona o fecho eletromagnético a fim de liberar o acesso. 1.2 OBJETIVOS Objetivo Geral Desenvolver um sistema microcontrolado baseado em autenticação remota e acionamento por meio de dispositivos móveis para restrição de acesso a um ambiente.

14 Objetivos Específicos Projetar a integração dos módulos de comunicação e nodos sensores com o microcontrolador; Implementar uma aplicação microcontrolada para acionamento do dispositivo a ser automatizado; Desenvolver uma aplicação a ser executada no dispositivo móvel para a comunicação sem fio com o microcontrolador; Executar a conexão do sistema microcontrolado com um banco de dados externo para realizar a autenticação; Executar a integração da aplicação do dispositivo móvel com a aplicação do microcontrolador. 1.3 METODOLOGIA Para alcançar os objetivos específicos citados anteriormente, foram realizadas as seguintes tarefas: pesquisa bibliográfica, estudo, seleção e descrição do projeto, codificação do software para o Android e para o dispositivo móvel, testes e validação. A pesquisa bibliográfica teve por objetivo levantar livros, artigos e sites para a fundamentação teórica deste trabalho, sendo ainda pesquisados trabalhos e projetos similares, com finalidade de se conhecer o estado da arte dos conceitos abordados. Depois de reunido o material de pesquisa foi realizado um estudo sobre alguns temas, dentre os quais se podem citar: conceitos de Redes de Computadores, Meios de Transmissão, Interligação de Redes, Internet das Coisas, Autenticação, Protocolo Bluetooth, Microcontroladores, Plataforma Arduino e Plataforma Android. Após este estudo, foi realizada a modelagem do sistema desenvolvido, seguindo o padrão UML (Unified Modeling Language), incluindo os requisitos funcionais e não-funcionais, casos de uso, diagrama de sequencia e diagrama de classes. Com a modelagem do sistema foi possível a implementação do software de baixo nível e embarcado na placa Arduino UNO. Para isto, foi utilizada a IDE disponibilizada pela plataforma. Também foi realizada a codificação do software para o dispositivo móvel, baseado em Android. Para a elaboração desta etapa foram utilizadas as ferramentas disponibilizadas pela plataforma Android, que inclui o SDK e plug-ins.

15 15 Uma vez que os dois softwares estavam concluídos, iniciou-se a integração do sistema, como também, a integração do Arduino com o banco de dados externo, onde foi utilizada uma pagina PHP para fazer a comunicação entre o banco de dados e o Arduino. Depois de concluída a integração, alguns testes foram realizados para validar o sistema. 1.4 ESTRUTURA DO TRABALHO Este projeto está estruturado em cinco capítulos: Introdução, Fundamentação Teórica, Desenvolvimento, Implementação e Considerações Finais. O Capítulo 1, Introdução, apresenta uma visão geral do trabalho, trazendo uma contextualização breve sobre os conceitos abordados. Ainda neste capítulo são apresentadas uma descrição do problema e a solução proposta, como também os objetivos do trabalho. No Capítulo 2, Fundamentação Teórica, é apresentada uma revisão bibliográfica sobre conceitos essenciais para elaboração deste trabalho, dos quais se destacam Redes de Computadores, Meios de Transmissão, Autenticação, Plataforma Arduino e Plataforma Android. Neste capítulo, é realizada também uma análise dos projetos similares e um comparativo entre ambos, a fim de se identificar características comuns e tecnologias utilizadas. O Capítulo 3, Desenvolvimento, apresenta o projeto detalhado do sistema desenvolvido, incluindo o levantamento de requisitos e a sua modelagem em UML. O capítulo também discute como foi implementado o sistema. No Capítulo 4, Implementação, é apresentado como foi desenvolvido o sistema, desde a sua codificação até os testes e resultados. Concluindo, no Capítulo 5, apresentam-se as considerações finais, onde são abordados os resultados preliminares, mudanças de algumas estratégias de desenvolvimento do projeto, dentre outros.

16 16 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo aborda os conceitos de Redes de Computadores, Meios de Transmissão, Interligação de Redes, Internet das Coisas, Bluetooth, Microcontroladores (Arduino) e Plataforma Android. Neste capítulo também é abordada uma análise de trabalhos similares. 2.1 REDES DE COMPUTADORES A informática, apesar de ser jovem em relação aos outros setores industriais (automóveis, transportes, etc.), teve um grande progresso em um curto período de tempo. No início de sua existência, os sistemas computacionais eram altamente centralizados e geralmente instalados em uma sala com paredes de vidro, para poderem ser contemplados. Empresas de médio porte ou universidades contavam com apenas um ou dois computadores e as grandes instituições tinham no máximo algumas dezenas. Não se imaginava que em apenas 20 anos haveria milhões de computadores igualmente avançados e do tamanho de um selo postal (TANENBAUM, 2003). Comer (2007) discute que a motivação para as redes de dados em grande escala não foi a partir do desejo de compartilhamento de dispositivos, ou mesmo o fornecimento de uma nova forma de as pessoas se comunicarem. Ao invés disso, as primeiras redes foram criadas para permitir o compartilhamento de poder computacional em grande escala. Atualmente as redes de computadores estão presentes em praticamente tudo o que fazemos ou usamos. De acordo com Comer (2007), elas têm crescido explosivamente, sendo que há duas décadas poucas pessoas tinham acesso a uma rede e agora a ligação de computadores em rede tem sido usada em cada aspecto dos negócios, incluindo propaganda, produção, transporte, planejamento, dentre outros. Segundo Tanenbaum (2003), as aplicações de redes de computadores atendem a diversos setores, como os usos tradicionais em empresas e indivíduos, redes domésticas e os relacionados a usuários móveis, sendo o estudo deste último mais relevante para a compreensão deste TTC (Trabalho Técnico Científico).

17 Usuários Móveis e Redes sem Fio A comunicação sem fio não se trata de uma inovação. Uma demonstração do físico italiano Guglielmo Marconi em 1901, mostrou o funcionamento de um telégrafo sem fio que transmitia informações de um navio para o litoral através de código morse. Os mais modernos sistemas digitais sem fio tem melhor desempenho, mas continuam com o mesmo princípio (TANENBAUM, 2003). Atualmente, a computação móvel constitui um dos segmentos de maior crescimento da indústria da informática. Como os usuários procuram ficar conectados em todos os lugares, as redes sem fio passam as ser de grande interesse e, à medida que se tornam mais difundidas, surgem numerosas aplicações. Por exemplo, computadores sem fio podem dar acesso a salas seguras, da mesma forma de como é usado o cartão com tarja magnética (TANENBAUM, 2003). Segundo Kurose e Ross (2006), já ficou claro que as redes sem fio e os serviços móveis vieram para ficar, independentemente do crescimento futuro dos dispositivos sem fio. Apesar de as redes sem fio e a computação móvel terem uma grande relação, elas são diferentes, pois até mesmo um computador portátil pode estar conectado por fio, perdendo o princípio de mobilidade. Quando um viajante está em um hotel com seu laptop e conecta-se a Internet através de um cabo de rede, percebe-se esta distinção entre os dois conceitos (TANENBAUM, 2003). Segundo Kurose e Ross (2006), fica claro que os ambientes mais interessantes são aqueles em que os usuários usufruem da tecnologia sem fio e simultaneamente da mobilidade, permitindo, por exemplo, que um passageiro em um carro a 160 km/h, mantenha uma chamada de voz sobre IP e várias conexões TCP ativas, e é nesse ponto que se encontram os maiores desafios Modelos de Referência De acordo com Tanenbaum (2003), existem duas importantes arquiteturas de rede, o modelo de referência OSI e o modelo de referência TCP/IP. Atualmente, os protocolos do modelo OSI raramente são utilizados, porém, as características de cada camada ainda são

18 válidas. Já com o modelo TCP/IP ocorre o contrário, o modelo em si praticamente não é utilizado, mas os seus protocolos ainda estão em uso. 18 Modelo de Referência OSI Para a transmissão de dados pela rede, o hardware de comunicação básico utiliza-se de mecanismos que podem transferir bits entre dois pontos, mas a utilização de hardware puro para realizar essa comunicação é como programar em binário, o que é bastante inconveniente. Para facilitar a programação, os computadores acoplados a uma rede usam software complexo que abstrai ao programador todos os detalhes e problemas da comunicação de baixo nível (COMER, 2007). Para redução da complexidade do projeto, a maioria das redes é organizada como uma pilha de camadas. Cada camada oferece determinados serviços às camadas superiores, isolando-as do detalhamento de implementação desses recursos, ou seja, um determinado item de software ou hardware oferece serviços aos seus usuários, porém o seu estado interno e algoritmos ficam ocultos (TANENBAUM, 2003). Com a necessidade de padronização dos protocolos, a ISO (International Standards Organization), desenvolveu uma proposta que foi chamada de Modelo de Referência ISO OSI (Opens Systems Interconnection), pois ela trata da interconexão de sistemas que estejam abertos à comunicação com outros sistemas (TANENBAUM, 2003). O modelo OSI, como é chamado, é dividido em sete camadas, como se pode ver na Figura 2.

19 19 Figura 2. Modelo de referência OSI. Fonte: Adaptado de Comer (2009). A seguir, uma breve descrição das camadas do Modelo de Referência OSI: Camada Física: envia a cadeia de bits pela rede sem se preocupar com o tratamento de problemas que venham ocorrer (SOARES, LEMOS e COLCHER, 1995); Camada de Enlace de Dados: detecta e corrige os problemas que por acaso ocorram na camada física (SOARES; LEMOS e COLCHER, 1995); Camada de Rede: permite a interconexão das redes heterogêneas (TANEMBAUM, 2003); Camada de Transporte: aceita os dados da camada acima e divide-os em unidades menos se necessário, como também repassa essas unidades assegurando que todos os fragmentos cheguem corretamente na outra extremidade (TANEMBAUM, 2003); Camada de Sessão: fornece os mecanismos que permitem estruturar os circuitos que chegam da camada de transporte (SOARES; LEMOS; COLCHER, 1995);

20 20 Camada de Apresentação: transforma adequadamente os dados antes do envio para a camada de sessão. Transformações que dizem respeito à compressão de textos, criptografia, conversão de padrões de terminais e arquivos para padrões de rede e vice-versa (SOARES; LEMOS; COLCHER, 1995); Camada de Aplicação: provê uma série de protocolos comumente necessários para os usuários, por exemplo, o HTTP (Hyper Text Transfer Protocol) (TANENBAUM, 2003). Modelo de Referência TCP/IP O desenvolvimento da arquitetura TCP/IP foi patrocinada pela DARPA (Defense Advanced Research Projects Agency), baseando-se principalmente em um serviço de transporte a conexão através do TCP (Transmission Control Protocol), e um serviço de rede não orientado a conexão, pelo IP (Internet Protocol) (SOARES; LEMOS; COLCHER, 1995). Segundo Tanenbaum e Wetherall (2011), e Comer (2009), o modelo de referência TCP/IP foi criado pensando-se na interligação de redes distintas. Devido a essa possibilidade de interligar redes heterogêneas é que se deve o sucesso deste modelo, passando a constituir a base da Internet global. O modelo TCP/IP implementa quatro camadas correspondentes as sete do modelo OSI, sendo elas a camada de Enlace, a camada de Internet, a camada de Transporte e a camada de Aplicação. De acordo com Tanenbaum e Wetherall (2011), cada camada tem as seguintes funções: Enlace: descrever o que os enlaces devem oferecer para atender a necessidade da camada internet, podendo os mesmos ser seriais ou até mesmo do padrão Ethernet; Internet: permitir que os hosts injetem pacotes em uma rede qualquer e que eles viajem independentemente do destino; Transporte: manter a comunicação entre os hosts pares de origem e destino, igualmente como acontece na camada de transporte do modelo OSI; Aplicação: fornecer os protocolos de mais alto nível.

21 21 O IP é o protocolo da camada de rede denominado como a base de toda a Internet, que pode ser vista como um conjunto de redes ou sistemas autônomos que estão interconectados, onde não existe uma estrutura real física, mas vários backbones principais construídos a partir de linhas de grande largura de banda e roteadores rápidos. Conectados ao backbones estão as redes regionais (nível médio) e os ISPs (Internet Services Providers), cuja função é prover o acesso à Internet. Conectados as redes regionais estão mais ISPs, LANs de universidades e companhias e outras redes (TANENBAUM; WETHERALL, 2011). 2.2 MEIOS DE TRANSMISSÃO Segundo Comer (2009), os meios de transmissão podem ser divididos em classes. Há duas grandes abordagens principais: Tipo de caminho: a comunicação pode seguir um caminho exato (fios) ou um caminho não específico (transmissão à rádio) e Tipo de energia: a energia elétrica é usada nos fios, a transmissão a rádio para a transmissão sem fio (wireless), e a luz para a fibra óptica. Os termos guiado e não guiado são usados para distinguir a transmissão onde os dados possuem um caminho específico, como a realizada através de fios, e a transmissão onde não possuem caminho definido, como por ondas de rádio, onde os dados trafegam pelo ar. Comer (2009) também afirma que o meio físico pode ser classificado de acordo com a forma de energia utilizada para transmitir os dados, como ilustrado na Figura 3:

22 22 Figura 3. Taxonomia por forma de energia Fonte: Adaptado de Comer (2009). Dentre os meios de transmissão guiados podem-se citar os meios magnéticos, par trançado, cabo coaxial, linhas de energia e fibras ópticas. Já dentre os meios não guiados (wireless), o espectro eletromagnético, transmissão de rádio, transmissão de micro-ondas, transmissão de infravermelho, transmissão por ondas de luz e transmissão por satélites (TANENBAUM; WETHERALL, 2011). 2.3 INTERLIGAÇÃO DE REDES Sabendo-se da existência de muitas redes distintas e com numerosos protocolos distribuídos em camadas, a interligação das redes não é uma tarefa tão simples. Seria fácil a formação de uma inter-rede (internet), se todas as redes utilizassem uma única tecnologia de rede, como a Ethernet, porém, como essa não é a realidade e havendo a necessidade de tratamento de problemas de diferentes naturezas, a heterogeneidade das redes deverá existir (TANENBAUM; WETHERALL, 2011).

23 23 A Internet é o principal exemplo de interligação de redes, pois é uma combinação de várias redes em todo o mundo, permitindo aos usuários se comunicarem com usuários de qualquer outra rede, o que significa que os pacotes transitam de uma rede para outra (TANENBAUM; WETHERALL, 2011). Segundo Kurose e Ross (2007), a Internet é uma rede que conecta milhões de dispositivos mundialmente. Devido aos muitos equipamentos considerados não tradicionais estarem conectados a Internet, como por exemplo, eletrodomésticos, automóveis, dentre outros, o termo redes de computadores é considerado ultrapassado, passando-se a nomear esses equipamentos de hospedeiros ou sistemas finais. As redes podem se diferenciar de várias maneiras, dentre elas podem-se citar os formatos dos quadros e as técnicas de modulação. Alguns problemas durante o envio de pacotes de uma rede até o seu destino podem ocorrer, por exemplo, se os pacotes são enviados por uma rede orientados a conexão e precisam passar por uma rede sem conexão, os mesmos podem ser reordenados, assumindo um papel não esperado pelo transmissor e que o receptor não tem condições de lidar (TANENBAUM; WETHERALL, 2011). De acordo com Tanenbaum e Wetherall (2011), existem duas maneiras de conectar redes distintas: uma é a criação de dispositivos que se encarreguem de traduzir ou converter os pacotes para cada tipo de rede e a outra é resolver o problema adicionando uma camada comum no topo das redes, sendo que em ambos os casos, os mecanismos devem estar localizados entre os limites das redes. Em 1974, Cerf e Kahn defenderam a criação de uma camada comum as redes distintas que abstraía as diferenças entre elas que acabou sendo dividida em protocolos TCP (Transmission Control Protocol) e IP (Internet Protocol). Quatro décadas mais tarde, o IP se torna a base da Internet moderna, rendendo a Cerf e Hahn o Prêmio Turing 2004, conhecido informalmente como Prêmio Nobel de Ciência da Computação. O IP fornece um formato de pacote universal que pode ser reconhecido por todos os roteadores, permitindo a transmissão por diversos tipos de redes.

24 INTERNET DAS COISAS (IOT) O artigo de Mark Weiser, The Computer of 21st Century, publicado na Scientific American em 1991, é considerado o marco inicial das pesquisas sobre IoT, trazendo a primeira publicação sobre computação ubíqua. Weiser afirmou que a computação seria integrada com as ações e comportamentos mais naturais das pessoas, de forma que não se perceberia que estão interagindo com um computador, porém, para isso ser possível, a tecnologia deveria aprender a ser relacionar com os usuários (WEISER, 1991). Considerada uma tendência da Internet do futuro, a IoT vem prospectando-se no cenário das telecomunicações e está sendo considerada como uma verdadeira revolução tecnológica da computação e comunicação (ATZORI; IERA; MORABITO, 2010). Com o avanço das tecnologias de sistemas embarcados, os microprocessadores alcançaram vários segmentos. Atualmente estão presentes em diversos objetos, como relógios, eletrodomésticos, automóveis, brinquedos, entre outros, e que futuramente a tendência é ganharem ainda mais espaço, ocupando praticamente todos os tipos de objetos, como roupas, portas e janelas, chuveiros, banheira, etc (CAVALLINI, 2008). Segundo o paradigma da IoT, é esperado que muitos objetos físicos estarão interconectados através da Internet, tornando-os responsáveis pela maior parte do tráfego da rede. Tais objetos poderão ser quaisquer dispositivos como eletrodomésticos, pneus, sensores, atuadores, telefones celulares, entre outros, que poderão ser identificados na rede a fim de trocarem informações e executarem tarefas comuns (ATZORI; IERA; MORABITO, 2010). De acordo com Atzori, Iera e Morabito (2010), a partir da ampla difusão da IoT, mudanças drásticas acontecerão na vida cotidiana dos usuários. Tan e Wang (2010), afirmam que estas mudanças trarão também novas oportunidades de negócio, que impulsionada pela demanda por parte da população, resultará em contribuição para a economia.

25 AUTENTICAÇÃO Segundo Baltzan e Philips (2012), a autenticação é um método utilizado para verificar se as identidades dos usuários são verídicas. Santos (2007), afirma que a autenticação permite que um usuário se identifique através da utilização de diversos mecanismos, como login, senha, biometria, etc. O processo de autenticação de usuários pode utilizar-se de técnicas que empregam um ou mais fatores. Quando se utiliza mais de um fator, a autenticação é denominada multifator (SANTOS, 2007). De acordo com Baltzan e Philips (2012), as técnicas de autenticação são divididas nas seguintes categorias: Algo que o usuário conheça: este tipo de autenticação é realizado através de algo que o usuário conheça, sendo a forma mais comum de fazer a identificação de usuários. Santos (2007) chama este método de login simples, que é baseado em um ID de usuário e senha únicos; Algo que o usuário tenha: para realizar a autenticação por este método o usuário deve utilizar algo que ele tenha, como um cartão inteligente ou um token. Este método é considerado mais eficiente do que apenas utilizar um login simples; Algo que é parte do usuário: é considerado o método mais eficaz para realizar a autenticação, pois se utiliza da biometria, realizando a identificação com base nas características físicas de cada usuário (impressão digital, face, íris, etc.) e, portanto, dificultando o roubo ou empréstimo desses dados. Apesar de ser relativamente mais seguro, este método é caro, deixando de ser o mais atrativo. Na Figura 4 são apresentados alguns exemplos para cada tipo de autenticação.

26 26 (a) (b) (c) Figura 4. Autenticação multifator: (a) Algo que se sabe; (b) Algo que se tem; (c) Algo que é parte do usuário De acordo com Santos (2007), a autenticação simples de login e senha, podem ser reforçadas com a inclusão do conceito multifator. 2.6 BLUETOOTH Devido ao interesse de conectar seus aparelhos celulares com outros dispositivos sem a necessidade de utilização de fios, a L. M. Ericsson com 4 outras empresas (IBM, Nokia, Intel e Toshiba), formaram um consórcio para desenvolver um mecanismo sem fio que utilizasse rádios de curto alcance, baixa potência e baixo custo, denominando-o Bluetooth. A ideia inicial de apenas conectar periféricos de computadores foi estendida e passou a ser usada também em LAN s sem fio, tornando assim, o padrão mais útil. A partir dessa mudança, o Bluetooth começou a competir com o e também a interferir eletricamente com ele (TANENBAUM, 2003). Em 1999, com o lançamento do Bluetooth 1.0, muitos fabricantes de dispositivos eletrônicos passaram a usar o Bluetooth, de celulares e laptops a fones de ouvidos, teclados, impressoras entre outros. A versão 2.0 em 2004 adicionou maiores taxas na transferência de dados. Com a versão 3.0 em 2009 foi possível o emparelhamento combinado com o padrão e na versão 4.0 em dezembro de 2009, foi especificado a baixa potência de operação (TANENBAUM; WETHERALL, 2011) Arquitetura do Bluetooth Uma piconet é a unidade básica de um sistema Bluetooth, consistindo em um nó mestre e até sete nós escravos ativos em uma distância de até 10 metros. Na Figura 5, pode-se

27 27 observar que podem existir muitas piconets no mesmo ambiente, podendo ser até mesmo conectadas por um nó de ponte. A essa coleção de piconets interconectadas se chama scatternet (TANENBAUM; WETHERALL, 2011). Figura 5. Duas piconets formando uma scatternet Fonte: Tanenbaum e Wetherall (2011). Além dos sete nós escravos ativos na rede, uma piconet pode ter até 255 nós inativos, os quais não podem fazer nada, exceto responder a um sinal de ativação ou de baliza do mestre. Essa inatividade faz com que os dispositivos passem para um estado de baixa energia, diminuindo a descarga de suas baterias. A comunicação só pode ocorrer entre um mestre e um escravo, não sendo permitida a comunicação direta entre os escravos (TANENBAUM; WETHERALL, 2011) A estrutura de quadro do Bluetooth Segundo Tanenbaum e Wetherall (2011), existem vários formatos de quadros do Bluetooth, sendo o mais importante apresentado na Figura 6.

28 28 Figura 6. Estrutura do quadro Bluetooth Fonte: Tanenbaum e Wetherall (2011) O quadro é formado primeiramente por um código de acesso, usado tipicamente para identificação do mestre e que através deste, os escravos ficam conhecendo o destino de cada tráfego. Depois vem um cabeçalho com tamanho de 54 bits, com campos típicos de uma camada MAC (Media Acess Control). Em seguida vem o campo de dados, que pode ser de até 2744 bits, quando a transmissão for de 5 slots, e para apenas um slot de tempo, o formato permanece igual, com exceção do fato de o campo de dados ter 240 bits (TANENBAUM; WETHERALL, 2011). 2.7 MICROCONTROLADORES Com a evolução dos computadores e o aparecimento dos circuitos integrados, que é basicamente o encapsulamento de milhões de transistores em um circuito integrado, sugiram os microprocessadores. Devido ao alto poder computacional e seu tamanho reduzido significativamente (comparado com os transistores), os microprocessadores ganharam muitas aplicações, sendo usados desde os microcomputadores pessoais até aparelhos eletrônicos e equipamentos médicos. Os microprocessadores, no entanto, não podem fazer nada sozinhos, pois necessitam de outros dispositivos externos (memória, barramentos, etc.) para se tornarem úteis. Sendo assim, surgiram os microcontroladores, que de forma geral tem acoplado em um único chip tudo o que precisam para executar uma determinada aplicação. Mesmo incluindo

29 29 vários periféricos como memórias, barramentos, timers, portas de comunicação, o seu tamanho continua reduzido. Apesar de os microcontroladores terem um desempenho menor que o dos microprocessadores, eles são ideais para projetos que necessitam de tamanhos reduzidos, menor tempo e custo, sendo amplamente difundidos em automação industrial, residencial e predial, eletrodomésticos, etc. (OLIVEIRA; ANDRADE, 2006) Plataforma Arduino O Arduino é uma plataforma de computação aberta (open source), baseada em uma placa microcontrolada simples e um ambiente de desenvolvimento para incutir o software na placa. É uma ferramenta que permite desenvolver objetos interativos, tendo como entrada uma variedade de sensores, podendo também controlar luzes, motores e outros meios físicos de saída (ARDUINO, 2013a). O ambiente do Arduino foi desenvolvido para permitir que pessoas sem conhecimento em software ou em eletrônica consigam desenvolver os seus projetos. Esta simplificação faz com que o Arduino seja utilizado em programas educacionais em todo o mundo, especialmente por designers e artistas que precisam criar seus protótipos sem a necessidade de ter conhecimento profundo dos detalhes técnicos. Apesar da facilidade de uso, o nível de sofisticação de hardware do Arduino não deixa a desejar, atraindo pessoas que já possuem experiência com outros microcontroladores (MARGOLIS, 2011). Software No Arduino, os softwares são chamados de sketches, que são criados usando um ambiente de desenvolvimento integrado ou Integrated Development Environment (IDE). Com a IDE é possível escrever, editar e converter o código-fonte para instruções que o hardware do Arduino entende. Esta transferência para a placa é realizada através de um processo chamado uploading (MARGOLIS, 2011). Hardware Uma placa Arduino tem apenas o controle e resposta dos sinais elétricos, portanto, é necessário adicionar componentes específicos para realizar a interação com o mundo real. Esses componentes são classificados como sensores e atuadores. Os sensores tem a função

30 30 transformar um aspecto do mundo físico em um sinal elétrico, como os interruptores e acelerômetros. Já os atuadores, realizam o inverso, transformando um sinal elétrico em algo que modifique o ambiente, por exemplo, os LEDs (Light Emitting Diode ou diodo emissor de luz) e os motores (MARGOLIS, 2011). No site oficial do Arduino (2013b), é possível encontrar uma variedade de placas, componentes e até kits para desenvolvimento. Dentre os produtos disponíveis, podem-se citar as placas Arduino Uno, Arduino Mega ADK e Arduino Nano. A seguir uma descrição breve de cada placa mencionada Arduino Uno Esta placa, ilustrada na Figura 7, é baseada no microcontrolador ATmega328 e contém tudo o que o microcontrolador precisa, basta conectá-lo a um computador através de um cabo USB ou outra fonte para iniciar. Possui 14 entradas/saídas digitais, podendo seis ser usadas como saídas PWM (Pulse Width Modulation ou modulação da largura de pulso), 6 entradas analógicas, um oscilador de cerâmica de 16 MHz, uma conexão USB (Universal Serial Bus), um conector de alimentação, um cabeçalho ICSP (In Circuit Serial Programming) e um botão de reset (ARDUINO, 2013c). Figura 7. Visão frontal do Arduino Uno Fonte: Arduino (2013c).

31 O Arduino Uno é a placa mais recente da série de placas Arduino USB e é usada como referência para a plataforma Arduino (ARDUINO, 2013c) Arduino Mega ADK O Arduino Mega ADK é baseado no microcontrolador ATmega2560, contendo uma interface USB que permite conectar-se diretamente com telefones baseados em Android. Possui também 54 entradas/saídas digitais, dos quais 15 podem ser usados como saídas PWM, 16 entradas analógicas, 4 UARTs (Universal Asynchronous Receiver/Transmitter), um cristal oscilador de 16 MHz, uma conexão USB, um conector de alimentação, um cabeçalho ICSP e um botão reset (ARDUINO, 2013d). Na Figura 8 é apresentada esta placa. Figura 8. Visão frontal do Arduino Mega ADK Fonte: Arduino (2013d). O Arduino Mega ADK foi projetado para ter compatibilidade com a maioria dos shields projetados para o UNO, Diecimila e Duemilanove e para ser usado com o sistema operacional Android. Existe uma documentação no site do desenvolvedor do Android disponível para consulta (ARDUINO, 2013d) Arduino Nano O Arduino Nano (apresentado na Figura 9), é um pequeno, completo e amigável protoboard baseado no microcontrolador ATmega328 (Arduino Nano 3.0) ou ATmega168

32 32 (Arduino Nano 2.x), contendo praticamente as mesmas funcionalidades do Arduino Duemilanove, porém em um pacote diferente. O Nano é a menor versão completa das placas Arduino, tendo uma entrada mini-usb em vez de uma entrada USB padrão. Fisicamente ele não possui uma entrada auxiliar e nem um jumper para selecionar a fonte de alimentação, pois ele chaveia automaticamente para a maior fonte sem necessitar do jumper (ARDUINO, 2013e). Figura 9. Visão frontal do Arduino Nano Fonte: Arduino (2013e). As placas mais populares contêm uma entrada USB que é utilizada para prover energia para a placa, como também fazer o uploading do software para a mesma. Dentre os shields disponíveis pode-se citar o Arduino Ethernet Shield, o Arduino Wifi Shield e o Arduino Motor Shield (ARDUINO, 2013b) Diferenciais Comparando o Arduino com outros microcontroladores que oferecem funcionalidades similares, podem-se citar alguns diferenciais (ARDUINO, 2013a): Baixo custo: são relativamente baratos em comparação com outras plataformas. Pode-se construir uma placa própria ou adquirir uma placa prémontada que pode custar menos de 50 dólares; Multiplataforma: o Arduino pode ser executado em Windows, Macintosh OSX e sistemas operacionais Linux, enquanto que a maioria dos outros estão limitados a Windows;

33 33 Ambiente de programação simples e claro: o ambiente é de fácil utilização até mesmo por iniciantes, porém também é suficientemente flexível a utilização por usuários avançados; Software extensível e open-source: o software do Arduino é publicado como código aberto, permitindo a programadores experientes criarem extensões através de bibliotecas C++; Hardware extensível e open-source: o Arduino é baseado nos microcontroladores Atmel ATmega8 e ATMEGA168 e os seus módulos publicados sob uma licença Creative Commons, permitindo aos projetistas com mais experiência criarem suas próprias versões dos módulos, estendendo e melhorando-os. Até mesmo usuários inexperientes podem fazer uma versão protoboard, a fim de entenderem o seu funcionamento e economizarem dinheiro. Na Internet, fóruns e comunidades do Arduino (conhecido como Arduino Playground), oferecem projetos e soluções que inspiram e dão suporte aos usuários no desenvolvimento de seus próprios projetos (MARGOLIS, 2011). 2.8 PLATAFORMA ANDROID O Android é uma plataforma completa destinada à tecnologia móvel, a qual inclui um sistema operacional, middleware, aplicativos e interface com o usuário. Foi desenvolvido com o propósito de permitir aos programadores a utilização de todos os recursos que um aparelho móvel oferece, sendo construído para ser uma plataforma realmente aberta. Dessa forma, uma aplicação pode fazer uso de qualquer funcionalidade do núcleo do aparelho, por exemplo, efetuar chamadas, utilizar a câmera e enviar mensagens de texto (PEREIRA; SILVA, 2009). O Android está sempre em evolução e devido à propriedade de ser open source, pode ser continuamente adaptado incorporando novas funcionalidades. Através da disponibilização do Android SDK, um kit composto de ferramentas e APIs (Application Programming Interface) necessárias, pode-se iniciar o desenvolvimento de aplicativos para a plataforma utilizando a linguagem de programação Java (PEREIRA; SILVA, 2009).

34 Para Meier (2012), o Android é composto de várias partes necessárias e dependentes, incluindo os seguintes itens: 34 Um documento de definição de compatibilidade (CDD) e uma suíte de testes de compatibilidade (CTS), que têm a função de descrever as capacidades necessárias para um dispositivo suportar a pilha de software; Um kernel Linux, cuja função é fornecer uma interface de baixo nível com o hardware, com o gerenciador de memória e com o controlador de processos, ambos otimizados para dispositivos móveis e embarcados; Bibliotecas abertas para o desenvolvimento de aplicações, tendo incluso SQLite, WebKit, OpenGL (Open Graphics Library) e um gerenciador de mídia; Um ambiente de execução que é utilizado para executar e hospedar os aplicativos, incluindo a máquina virtual Dalvik; Um framework de aplicação que expõe os serviços do sistema para a camada de aplicação, incluindo um gerenciador de janelas, gerenciador de localização, banco de dados, telefone e sensores; Uma interface de usuário que serve para hospedar e executar os aplicativos; Um conjunto de aplicações pré-instaladas; Um kit de desenvolvimento de software (SDK Software Development Kit), usado para criar os aplicativos, contendo ferramentas, plugins e a documentação necessária para iniciar o desenvolvimento. De acordo com Meier (2012), a filosofia aberta do Android permite a qualquer desenvolvedor resolver deficiências na interface de usuário ou até mesmo em aplicações nativas, simplesmente escrevendo uma extensão ou com a substituição das mesmas. Desde o acesso a hardware, incluindo câmera, GPS e sensores, a transferência de dados com Wi-fi, Bluetooth e NFC (Near Field Communication), o SDK do Android inclui todas as APIs necessárias para o desenvolvimento de aplicativos que utilizem estes recursos.

35 35 Muitos podem duvidar da segurança do Android, já que seus componentes podem ser modificados. Pessoas com más intenções podem fazer um código malicioso e executá-lo nos celulares. Entretanto, o Android tem uma forte segurança, visto que é executado sobre um núcleo Linux, sempre que uma aplicação for instalada, cria-se um novo usuário Linux para o programa, com diretórios que serão usados pelo aplicativo, porém somente para aquele usuário. Dessa forma os aplicativos ficam isolados, exigindo-se uma permissão caso algum aplicativo deseja acessar informações de outro aplicativo (PEREIRA; SILVA, 2009) Arquitetura Conforme se pode observar na Figura 10, a arquitetura do Android está estruturada nas seguintes camadas (PEREIRA; SILVA, 2009): Aplicações: é a camada superior, onde se encontram todos os aplicativos fundamentais, cliente de , mapas, navegadores, calendários, programas de SMS, gerenciador de contatos, etc; Framework: é nesta camada (Application Framework) que estão todas as APIs e os recursos que os aplicativos necessitam, como classes visuais, caixas de texto, listas, botões e até mesmo um navegador web embutido. Os principais elementos desta camada são: o Activity Manager: controla o ciclo de vida de todas as activities; o Package Manager: se comunica com o resto do sistema e informa quais pacotes estão sendo utilizados no dispositivo e as suas respectivas capacidades; o Window Manager: gerenciador de janelas que determina qual estará ativa; o Content Providers: é o responsável pela troca de dados entre os aparelhos e a troca de informações entre aplicativos; o View System: fornece recursos gráficos para a aplicação, como botões, layouts e frames.

36 36 Bibliotecas: nesta camada está um conjunto de bibliotecas C/C++ utilizadas no sistema. Agregam-se também bibliotecas de multimídia, visualização de camadas 2D e 3D, renderização 3D, funções de acesso ao banco SQLite, etc. As bibliotecas principais são a Freetype, System C library, Webkit, SQLite, Surface Manager, Media Libraries, Lib WebCore e 3D libraries. Android Runtime: a camada do ambiente de execução é uma instância da máquina virtual Dalvik, onde é criada para todas as aplicações executadas no Android. Linux Kernel: é a camada do nível mais baixo, que abstrai o hardware do resto da pilha de software. Figura 10. Arquitetura do Android Fonte: Pereira e Silva (2009).

37 Diferenciais O Android apresenta alguns elementos que outras plataformas de desenvolvimento para dispositivos móveis podem não possuir. Podem-se citar os seguintes itens (MEIER, 2012): Aplicações do Google Maps: permite aos desenvolvedores adicionarem funcionalidades que permitem visualizar, manipular, e fazer anotações em um mapa do Google; Aplicações e serviços em segundo plano: dispõe de um suporte completo para a criação de aplicativos em segundo plano com base em um modelo orientado a eventos; Compartilhamento de dados e comunicação entre processos: com a utilização dos Intents e dos Contents Providers as aplicações podem trocar mensagens e compartilhar dados; Igualdade das aplicações: não existem diferenças entre as aplicações nativas e as de terceiros no Android, isso permite aos consumidores substituir todas as aplicações nativas por outras que preferir; Wi-Fi Direct e Android Beam: com a utilização dessas inovadoras formas de comunicação é possível incluir recursos como compartilhamento e streaming de mídias; Widgets para tela inicial, protetores de tela animados e interativos: é possível criar janelas para as aplicações na tela inicial do telefone. A maioria das plataformas de desenvolvimento móvel existentes é exclusiva. Ao contrário, o Android incentiva a mudança, ou seja, todos os aparelhos vêm com aplicativos padrões que os consumidores esperam de um telefone novo, mas com a capacidade de poderem ser completamente customizados de acordo com o gosto de cada um (MEIER, 2012).

38 TRABALHOS SIMILARES Esta seção apresenta o estado da arte de sistemas automatizados com utilização de dispositivos microcontroladores. No final desta seção é apresentado um comparativo dos sistemas pesquisados DroidLar Automação residencial através de um celular Android O DroidLar é um sistema de automação residencial que utiliza as plataformas Arduino e Android e um protocolo de comunicação sem fio chamado ZigBee, que é empregado na comunicação entre os controladores dos dispositivos e o servidor, denominado SAR (Serviço de Automação Residencial). Na Figura 11 são mostrados todos os elementos do sistema (EUZÉBIO; MELLO, 2011). Figura 11. Elementos do DroidLar Fonte: Euzébio e Mello (2011). A aplicação Android utiliza uma conexão IP para a comunicação, enquanto que os controladores conectados na rede ZigBee realizam a troca de mensagens. O SAR serve como ponte entre as duas partes do sistema (EUZÉBIO; MELLO, 2011). O sistema utiliza módulos Xbee Series 2.5 para realizar a comunicação entre os dispositivos e o SAR. Nos kits Arduino estes módulos foram conectados ao shield XBee e no

39 39 SAR através de um adaptador serial conectado a uma porta USB. Os módulos Xbee foram configurados como roteadores, caracterizando uma rede em malha, dessa forma, cada controlador de dispositivo pode encaminhar mensagens para os outros roteadores, aumentado a possibilidade de interação com dispositivos que estão fora do alcance do rádio. Os módulos do DroidLar foram configurados sem criptografia, a fim de reduzir o tamanho da informação contida em um pacote. Dois tipos de procedimentos são executados pelos controladores de dispositivos (EUZÉBIO; MELLO, 2011): Atuação: executa ações de ligar, desligar, aumentar ou diminuir a intensidade da potência de um dispositivo eletrônico, como por exemplo, uma lâmpada; Relatório: contém informações de configuração de um dispositivo, como por exemplo, o estado (ligado, desligado, etc.) e o número de dispositivos. É enviado sempre que o controlador é ligado ou quando o SAR solicita. O SAR é a parte central do DroidLar, sua função é gerenciar os controladores de dispositivos, enviando comandos ou recebendo informações e interagindo com o cliente Android. Funciona com uma ponte entre as duas tecnologias de rede sem fio, ZigBee e Para a aplicação realizar a comunicação com o cliente Android, o computador se conecta a uma rede IP, enquanto que a comunicação com os kits Arduino é realizada através dos módulos XBee (inclusive nos Arduinos). Este módulo XBee é configurado como coordenador da rede ZigBee, tornando-o responsável pelas configurações desta rede. O Servlet também é responsável pelas mensagens de controle dos dispositivos, onde estão contidas informações como o tipo de ação a serem tomados pelo dispositivo, valores para a execução desta ação e o endereço do dispositivo. São estas mensagens que executam as funcionalidades do servidor, desde a autenticação do usuário até o agendamento dos perfis por parte do usuário (EUZÉBIO; MELLO, 2011). O DroidLar utiliza uma aplicação específica para a plataforma Android que faz o controle dos eletroeletrônicos da residência, criando e gerenciando os perfis do usuário. Os perfis permitem que um grupo de dispositivos seja programado para ligar/desligar em determinados períodos. Para obter-se a comunicação com o SAR, o telefone com a aplicação Android deve estar conectado a uma rede IP. Na abertura da aplicação a tela inicial (Figura 12-a), apresenta as opções de controlar os dispositivos da residência, alterar os perfis e editar

40 40 as configurações para a conexão com o SAR. Na primeira execução da aplicação a tela de configurações (Figura 12-b) é apresentada, a fim de autenticar o usuário no servidor. Nas execuções posteriores a tela inicial é apresentada, uma vez que as configurações já estão salvas A aplicação Android utiliza uma conexão IP para a comunicação, enquanto que os controladores conectados na rede ZigBee realizam a troca de mensagens. O SAR serve como ponte entre as duas partes do sistema (EUZÉBIO; MELLO, 2011). (a) (b) Figura 12. Telas da aplicação. (a) tela inicial; (b) tela de configurações Fonte: Euzébio e Mello (2011) Sistema de automação residencial baseado em Bluetooth usando celulares O sistema apresentado por Piyare e Tazil (2011), compreende um projeto de automação residencial baseado no uso de celulares e de baixo custo. Os aparelhos da casa são conectados a uma placa Arduino BT, e para a comunicação do celular com a placa é utilizada

41 41 uma conexão sem fio. O sistema permite conectar novos dispositivos realizando poucas alterações. O software foi escrito para ser executado em celulares com a plataforma Symbian. Na Figura 13, é apresentado o sistema descrito. Figura 13. Sistema de automação residencial Fonte: Piyare e Tazil (2011). A parte de hardware do sistema se resume em dois componentes, um celular e uma placa Arduino BT. No celular, é rodada uma aplicação escrita na linguagem Python que permite ao usuário acessar e controlar os aparelhos da residência. A aplicação em Python se comunica com o Arduino definindo um protocolo de comunicação ad-hoc entre os dois dispositivos e permitindo controlar o comportamento da placa Arduino. Os pacotes contendo os comandos são enviados pelo celular. Uma vez que nestes pacotes estão os comandos que determinam o estado dos aparelhos, através do microcontrolador ATmega168 é projetado o circuito analógico de acordo com a definição de cada saída. Diferentes tipos de aparelhos são conectados nas portas de saída digital do Arduino BT por meio de relés, a fim de fornecer tensão suficiente (PIYARE; TAZIL, 2011). O software verifica se o Bluetooth está ativado no celular. Se estiver ativado então o processo de descoberta de dispositivos é executado, verificando se já existem dispositivos predefinidos armazenados no celular. Caso existam, os dispositivos são listados para que o usuário selecione um deles, e depois de selecionado o software verifica se o mesmo está no intervalo e se ele é um dispositivo transmissor da placa Arduino BT. Depois de confirmado o transmissor Bluetooth, é armazenado os endereços de todos os controladores ligados a placa.

42 42 A interface de usuário consiste basicamente como apresentada na Figura 14, onde na tela principal estão listadas as lâmpadas com seus respectivos estados (ON/OFF) e o menu Opções e Sair. Figura 14. Interface de Usuário Fonte: Piyare e Tazil (2011) Domótica: Controle de automação residencial utilizando celulares com Bluetooth O sistema proposto por Abreu e Valim (2011), consiste no gerenciamento de uma residência através de uma interface em um aparelho celular com a utilização da tecnologia Bluetooth. O celular se comunica com o microcontrolador responsável pelo controle da automação residencial. O sistema foi divido em dois módulos principais: o módulo controlador e o módulo conversor. O módulo controlador trata-se de um software que realiza a comunicação do celular com o microcontrolador através do Bluetooth. O módulo conversor trata-se de um firmware que converte os comandos enviados pelo celular para o protocolo X-10. Dessa forma, torna-se possível realizar a comunicação com objetos da residência que já utilizam esse protocolo. Na Figura 15, é apresentada uma visão geral do projeto (ABREU; VALIM, 2011).

43 43 Figura 15. Comunicação com objetos da residência através de celular Fonte: Abreu e Valim (2011). Para a implementação do módulo controlador foi utilizado um celular Nokia N95 com um aplicativo desenvolvido para a gestão da domótica. O celular citado possui o sistema operacional Symbian, que tem por linguagem nativa o C++. Por meio da API JSR-82 é realizada a comunicação sem fio através do Bluetooth (ABREU; VALIM, 2011). O módulo controlador apresenta uma interface que permite a visualização dos dispositivos para cada cômodo da residência. Quando é feito o acionamento de uma mudança de estado (ligado/desligado/intensidade) de algum dispositivo, é enviado pelo módulo controlador ao módulo conversor um pacote de 3 bytes. O primeiro byte identifica o início da transmissão (Start TX), o segundo corresponde ao comando a ser transmitido, e o último identifica o fim da transmissão (End TX) (ABREU; VALIM, 2011). O módulo conversor tem a função de converter o pacote de dados enviado pelo controlador para o padrão X-10 e encaminhando para o quadro de automação da residência. Foram definidos recursos de hardware que atendessem critérios como a disponibilidade do produto no Brasil, custo, possibilidade de trabalhar como mestre na comunicação e a compatibilidade com o microcontrolador PIC. Na Figura 16, são apresentados os hardwares selecionados para este módulo (ABREU; VALIM, 2011).

44 44 Figura 16. Componentes de hardware do módulo conversor Fonte: Abreu e Valim (2011). O desenvolvimento do firmware para o PIC18F252 foi realizado utilizando o compilador CCS (versão 4.049). Este tem com função principal o monitoramento dos pacotes que são enviados através da interface Bluetooth, como também a conversão destes pacotes. Para a validação dos dois módulos anteriormente mencionados, foi implementado um terceiro módulo. Trata-se de outro software que simula uma residência. Através de uma planta baixa tem-se a visualização de vários cômodos, e em cada cômodo estão dispositivos que serão controlados (ABREU; VALIM, 2011) DomoWeb Zandoná e Valim (2012) apresentam um sistema de automação residencial que independe de outros sistemas, de baixo custo, e com uma interface única, simples e intuitiva, a fim de realizar o controle, configuração, monitoramento e acionamento dos dispositivos de uma residência. O sistema permite usufruir de suas funcionalidades a partir de qualquer lugar, pois se trata de um sistema Web. Através de um navegador, pode-se ter acesso por qualquer dispositivo que o suporte, seja ele um computador, celular, etc.

45 45 No sistema também é possível, além das configurações básicas, a realização de tarefas como programar a ativação de dispositivos em determinada data e adicionar e remover dispositivos conforme a necessidade. A plataforma consiste basicamente em um servidor embarcado, formado por uma placa Arduino Mega 2560 e um shield Ethernet, sendo conectado a ele um driver de acionamento que permite acionar os dispositivos que se deseja controlar, e via Ethernet o Arduino é conectado no switch da residência. Na Figura 17 é apresentada uma visão macro do sistema (ZANDONÁ; VALIM, 2012). Figura 17. Visão macro do sistema DomoWeb Fonte: Zandoná e Valim (2012). Seguindo o princípio de um sistema autônomo, foi proposta a implementação de um servidor Web embarcado, ou seja, a implementação do sistema na própria plataforma que atua nos dispositivos da residência. O Arduino, além do baixo custo, possui bibliotecas TCP/IP para utilização com o controlador Ethernet (ZANDONÁ; VALIM, 2012). O DomoWeb tem a interface baseada em páginas HTML e um servidor embarcado implementado em C/C++ com base em bibliotecas do Arduino. Em conjunto com o HTML foram utilizadas tecnologias de páginas dinâmicas (ZANDONÁ; VALIM, 2012). Para atender todas as funcionalidades do sistema, a memória flash de 256 KB do Arduino Mega 2560 seria insuficiente, havendo a necessidade de armazenamento dos dados

46 46 na memória externa microsd (disponível no Ethernet shield). Uma vez que o Arduino não possui um sistema operacional, não há a possibilidade de utilizar um banco de dados convencional, sendo os dados estruturados em XMLs (Extend Markup Language) (ZANDONÁ; VALIM, 2012). As telas do sistema implementadas no formato HTML, onde se optou por adicioná-las em uma única página com a finalidade de diminuir o tráfego de dados pelo Arduino. Uma desvantagem da utilização do Arduino é que ele dispõe de baixos recursos de memória e processamento, tendo que haver cautela no desenvolvimento para utilizar o mínimo de processamento possível. Com a utilização do XML no microsd, a cada mudança que ocorre, o XML tem que ser carregado para a memória, onde é realizada uma comparação de String para verificar as alterações e por fim o XML é gravado novamente, causando lentidão no sistema (ZANDONÁ; VALIM, 2012). A interface de usuário (UI) foi feita utilizando a biblioteca jquery UI, que é uma rica biblioteca que oferece componentes gráficos (janelas, botões, animações, etc.) para o desenvolvimento WEB. Na Figura 18, é apresentada a tela de ambientes do sistema, onde é possível fazer o controle dos dispositivos já configurados (ZANDONÁ; VALIM, 2012). Figura 18. Página de ambientes do DomoWeb Fonte: Zandoná e Valim (2012).

47 47 O sistema permite agrupar os dispositivos por ambiente, uma vez que um ambiente esteja configurado, pode-se configurar um cenário. Com a utilização dos cenários, pode-se programar um conjunto de ações, como a programação para ligar/desligar os dispositivos de um determinado ambiente nos horários que se desejar. Para assegurar que apenas pessoas autorizadas tenham acesso ao sistema, foi implementado um controle de acesso com usuário e senha (ZANDONÁ; VALIM, 2012) Análise comparativa Após a análise dos trabalhos similares, é apresentado um comparativo com algumas características identificadas em cada um deles, como se pode observar no Quadro 1. Quadro 1. Comparativo dos trabalhos similares Autores Ano Custo Microcontrolador Plataforma de Software Protocolo de comunicação Euzébio e Mello 2011 Não Informado Arduino Android ZigBee Piyare e Tazil 2011 Baixo Arduino Symbian Bluetooth Abreu e Valim 2011 Não Informado PIC Symbian Bluetooth Zandoná e Valim 2012 Baixo Arduino Web Wifi/Ethernet Com esta análise, foi possível identificar que a maioria dos trabalhos utilizam a plataforma Arduino e apenas um destes utilizou como plataforma de software o Android, porém utilizando outro protocolo de comunicação, o ZigBee. Este trabalho propôs a utilização do Arduino e Android, com a comunicação entre o dispositivo móvel e o Arduino realizada através do Bluetooth, e a comunicação entre o Arduino e o servidor através do padrão Ethernet.

48 48 3 DESENVOLVIMENTO Neste capítulo, são apresentados os recursos utilizados para realizar o desenvolvimento do sistema proposto, que inclui visão geral, especificação dos requisitos e a modelagem do sistema. Na primeira subseção, é exposta uma visão geral do sistema, explicando o que será o sistema com algumas informações das tecnologias que serão utilizadas. Em seguida, na segunda subseção, são identificados os requisitos, que se dividem em requisitos funcionais e não-funcionais. A partir do levantamento e especificação dos requisitos, é apresentada a modelagem do sistema (terceira subseção), onde estão os casos de uso, diagrama de sequência, diagrama de classes e o protótipo de telas. Os casos de uso proporcionam uma visão das funcionalidades do sistema e o diagrama de sequência apresenta as atividades e como elas interagem em uma sequência temporal. Em seguida, o diagrama de classes, identifica os tipos de objetos e como se relacionam no sistema e o protótipo de telas, apresenta a interface de usuário, definindo os componentes gráficos necessários para a interação. 3.1 VISÃO GERAL O sistema consiste em uma aplicação Android rodando em um dispositivo móvel que permite ao usuário acionar um fecho eletromagnético. Este, por sua vez, é embutido no batente da porta funcionando juntamente com fechaduras mecânicas, do tipo que movimenta a lingueta com o uso da maçaneta pelo lado interno, e com o uso de chaves pelo lado externo. Na Figura 19, é apresentado o fecho da Amelco, modelo FE61, que foi utilizado neste projeto.

49 49 Figura 19. Fecho eletromagnético Amelco FE61 O dispositivo móvel se comunica com o microcontrolador, que faz autenticação em uma base de dados externa, permitindo ou não o acionamento do fecho eletromagnético. O protótipo para controlar a fecho eletromagnético é baseado em uma placa Arduino UNO, sendo aplicação cliente desenvolvida para a plataforma Android versão 2.3 ou superior. O protocolo de comunicação utilizado pelo dispositivo móvel para enviar os dados para o Arduino UNO é o Bluetooth 2.0, e a comunicação entre o Arduino UNO e o servidor que contém o banco de dados, através do protocolo Ethernet. Para realizar o acionamento do fecho eletromagnético é usado um atuador do tipo relé ou transistor, que o Arduino controla. O SGBD (Sistema de Gerenciamento de Banco de Dados) utilizado é o MySQL versão 5 ou superior, uma vez que a implementação do projeto de banco de dados não foi abordada neste trabalho, sendo assim, há apenas uma tabela com os campos de usuário, senha e permissão com a finalidade de validar a autenticação do usuário. Ao executar a aplicação, é verificado se o Bluetooth do dispositivo está ligado. Caso afirmativo, a aplicação apresenta uma tela com campos de usuário e senha. Caso contrário, a aplicação pede permissão ao usuário para ligar a conexão Bluetooth, sucedendo o mesmo que no caso afirmativo anteriormente. Para enviar os dados, o usuário conecta-se ao módulo Bluetooth do Arduino e depois deste procedimento, digita seu id e senha enviando os dados para o Arduino, como apresentado na Figura 20.

50 50 Tablet Android Arduino Uno + módulo Ethernet + módulo Bluetooth + módulo relé Smartphone Android Figura 20. Comunicação do dispositivo móvel com o Arduino O Arduino recebe os dados e faz uma requisição ao servidor, enviando-os através de uma página dinâmica que simula o envio de um formulário HTML. O servidor por sua vez, pesquisa no banco de dados (Figura 21), retornando a resposta para o Arduino. Servidor Apache + MySQL Arduino Uno + módulo Ethernet + módulo Bluetooth + módulo relé Figura 21. Comunicação do Arduino com o servidor

51 51 O servidor verifica se os dados do usuário constam no banco de dados e o Arduino aciona o atuador, fazendo a abertura do fecho eletromagnético e permitindo o acesso para o usuário, como se pode observar na Figura 22. Quando os dados não conferem, o acesso não é permitido. Fecho Eletromagnético Amelco FE61 Arduino Uno + módulo Ethernet + módulo Bluetooth + módulo relé Figura 22. Acionamento do fecho eletromagnético Escopo Neste trabalho não foi prevista a criptografia dos dados em nenhum momento da comunicação. A proposta discorrida neste trabalho foi a utilização das tecnologias citadas a fim de realizar o controle de acesso utilizando-se de uma forma de autenticação multifator, que conforme descrita anteriormente consiste na autenticação com base em algo que o usuário possua (ex. aparelho celular) e em algo que o usuário saiba (ex. usuário e senha). 3.2 REQUISITOS Nesta subseção são apresentados os requisitos, divididos em funcionais e nãofuncionais do sistema proposto.

52 Requisitos funcionais Os requisitos funcionais identificam as características e as funcionalidades gerais de um sistema. Os requisitos funcionais definidos para o sistema proposto são: REF 01: o sistema deve acionar um fecho eletromagnético por meio de um dispositivo microcontrolado; REF 02: o sistema deve permitir ao usuário acionar um fecho eletromagnético; REF 03: o sistema deve restringir o acionamento do fecho eletromagnético mediante algo que o usuário possua (dispositivo móvel com aplicativo); REF 04: o sistema deve restringir o acionamento do fecho eletromagnético mediante algo que o usuário saiba (usuário e senha cadastrada previamente em um banco de dados); REF 05: o sistema deve utilizar um protocolo de comunicação comum entre a unidade microcontrolada e o dispositivo móvel; REF 06: o sistema deve utilizar uma base de dados externa para a autenticação dos usuários; REF 07: a unidade microcontrolada deve possuir conexão permanente com a base de dados externa Requisitos não-funcionais Nos requisitos não-funcionais, são estabelecidas as qualidades ou restrições do sistema. Para o sistema proposto, foram definidos os seguintes requisitos: RNF 01: a aplicação móvel deve ser implementada para o sistema operacional Android versão 2.3 ou superior; RNF 02: a arquitetura de microcontroladores utilizada deve ser a plataforma Arduino; RNF 03: o protocolo de comunicação entre a unidade microcontrolada e o dispositivo móvel deve ser o Bluetooth 2.0;

53 53 RNF 04: o banco de dados a ser utilizado deve ser o MySQL versão 5 ou superior; RNF 05: o sistema deve ser compatível com fecho eletromagnético disponível no laboratório a qual esta pesquisa está inserida; RNF 06: o sistema deve executar apenas uma solicitação por vez. 3.3 MODELAGEM Após a especificação dos requisitos foi possível a criação dos casos de uso, diagrama de classe, diagrama de sequência e a interface de usuário da aplicação Casos de uso Os casos de uso definem como acontece a interação entre o usuário e o sistema. Para este trabalho os casos de uso definidos são apresentados na Figura 23. A seguir também são apresentados os cenários para cada caso de uso criado. Figura 23. Casos de uso Foram criados dois casos de uso que definem as funcionalidades do sistema: acionar o fecho eletromagnético e autenticar no sistema. Como pode se perceber na Figura 23, o caso de uso UC02 está incluído no caso de uso UC01, significando que o acionamento do fecho inclui

54 a tarefa de autenticação pelo servidor. Para ambos os casos de uso, foram estabelecidos os cenários que descrevem as atividades e o seu comportamento. Para o caso de uso UC01, o cenário é apresentado no Quadro 2. O cenário para o caso de uso UC 02 é descrito no Quadro 3. Quadro 2. UC01 Acionar o fecho eletromagnético Nome Descrição Login UC01 Acionar o fecho eletromagnético O sistema permite ao usuário fazer o acionamento de um fecho eletromagnético Fluxo Tipo Detalhes Bluetooth desligado Não foi possível conectar ao servidor Dados incorretos ou inválidos Principal Exceção Exceção Exceção Ao iniciar a aplicação, o sistema verificará se o Bluetooth do dispositivo móvel está ligado. 2. O sistema apresentará a tela. 3. O usuário deve se conectar ao módulo Bluetooth do Arduino através do menu Conectar. 4. O usuário preencherá os campos Identificador e Senha. 5. O usuário clicará em Enviar. 6. O sistema enviará os dados fornecidos pelo usuário para o Arduino via Bluetooth para serem autenticados. 7. O sistema aciona o fecho eletromagnético, liberando o acesso para o usuário. No passo 1 caso o Bluetooth esteja desligado, o sistema pede permissão ao usuário para ativá-lo. Se o usuário aceitar, retorna ao passo 2. Caso contrário a aplicação é encerrada. No passo 3 se a mensagem Não foi possível conectar ao servidor retornar, o usuário deve tentar novamente até que apareça a mensagem Bluetooth Aberto. No passo 5: 5.1. Se o usuário digitar usuário ou senha incorreta, o sistema retornará a mensagem: Você não possui permissão para acionar o fecho ou Usuário/Senha incorretos O sistema retornará ao passo 4.

55 Quadro 3. UC02 Autenticar no sistema Nome Descrição UC02 Autenticar no sistema O sistema verifica se o usuário tem permissão no banco de dados para acionar o fecho eletromagnético Fluxo Tipo Detalhes Consulta no banco de dados Dados incorretos ou usuário não possui permissão Principal Exceção Diagrama de sequência O sistema recebe os dados enviados pelo usuário através da aplicação. 2. O sistema faz uma requisição enviando os dados para o servidor. 3. O servidor faz uma consulta SQL no banco de dados, comparando os dados recebidos com os dados armazenados no banco e verificando se o usuário possui permissão. 4. O sistema faz o acionamento do atuador que controla o fecho, liberando o acesso para o usuário. 5. O sistema fica aguardando novas requisições. No passo 3 caso o retorno da verificação retorne falso, o sistema envia para a aplicação uma mensagem informando que o usuário não tem permissão, retorna ao passo 1. O diagrama de sequência apresentado na Figura 24 representa a interação do sistema abrangendo os dois casos de uso mencionados.

56 56 Figura 24. Diagrama de sequência No momento em que o usuário executa a aplicação no dispositivo móvel, é realizada uma verificação do Bluetooth, que pede permissão ao usuário para ativá-lo, caso esteja desativado. Quando o usuário não permite, a aplicação é encerrada. Uma vez que o Bluetooth é ativado, a aplicação apresenta a tela de interface com o usuário. Após este procedimento, o usuário conecta-se ao módulo Bluetooth do Arduino através do menu Conectar. Se nenhum erro ocorre, a mensagem Bluetooth Aberto é apresentada na tela e depois o usuário entra com os dados, pressionando o botão Enviar. O Arduino lê os dados recebidos e se conecta ao servidor, fazendo uma requisição. O servidor, por sua vez, recebe os dados e faz uma consulta no banco de dados. O valor das linhas afetadas pela consulta é enviado para o Arduino que faz a verificação do valor retornado. Se o valor for igual a 1 (um), o microcontrolador ativa o módulo relé, acionando o fecho

57 eletromagnético. Caso o valor for igual a 0 (zero), uma mensagem de falha na autenticação é enviada para o usuário Diagrama de classes O diagrama de classes representa os objetos do sistema e a interação entre eles. Foi definida uma classe principal para a elaboração do projeto da aplicação móvel, como se pode observar na Figura 25. Figura 25. Diagrama de classes A classe MainActivity é a responsável pelo funcionamento das tarefas da aplicação Android, na qual foram definidos os atributos e operações necessários para realizar a interação com o usuário, a ativação e a conexão do Bluetooth, o envio dos dados para o Arduino e a escuta dos dados retornados pelo mesmo Protótipo de telas da aplicação O protótipo de telas permite saber quais recursos gráficos foram utilizados para a interação com o usuário. Para o sistema proposto, na aplicação Android foi desenvolvida uma tela para realizar a comunicação com o Arduino, como apresentada na Figura 26.

58 58 Figura 26. Protótipo da tela de login Nesta tela, o usuário se autentica no sistema para obter o acesso ao ambiente em que se encontra a fecho eletromagnético. Ela consiste basicamente de um campo de imagem e dois campos onde o usuário deve inserir o seu identificador e senha. Também foram incluídos dois botões, um para realizar o envio dos dados inseridos para o Arduino e um botão para sair da aplicação.

59 59 4 IMPLEMENTAÇÃO Neste capítulo, é apresentada uma descrição de todas as tarefas realizadas para alcançar os objetivos específicos deste trabalho, como também como se deu implementação do sistema. 4.1 APLICAÇÃO ANDROID O desenvolvimento da aplicação para o Android foi baseado no projeto descrito, salvo algumas alterações que precisaram ser implementadas para melhor adequação as necessidades encontradas. Para a construção do software foi utilizado o ADT (Android Developer Tools) disponibilizado na página para desenvolvedores do Android, que inclui: o ambiente para desenvolvimento Eclipse + plugin ADT; o kit de ferramentas SDK; a plataforma Android mais recente e a imagem mais recente do sistema Android para o emulador (ANDROID, 2013a) Interface com o usuário No desenvolvimento para Android, a interface com o usuário pode ser feita através do próprio código Java da aplicação ou através de arquivos XML. Optou-se por usar a segunda opção com o objetivo de separar a lógica da aplicação da interface com o usuário. Quando é criado um novo projeto no Eclipse, já existe uma pasta dedicada a esses arquivos localizada no diretório res/layout. Foram criados dois arquivos XML para realizar a interface com usuário, o main.xml e o menu.xml. No arquivo main.xml foi definido o layout da tela, com todos os componentes necessários para atender os objetivos especificados no projeto. Abaixo segue uma lista dos componentes utilizados para a construção da tela. ScrollView: cria uma barra de rolagem na página, permitindo a visualização de todos os componentes;

60 60 LinearLayout: agrupa todos os componentes filhos em uma única direção, horizontalmente ou verticalmente; ImageView: exibe uma imagem; TextView: exibe textos; EditText: campo destinado a entrada de dados do usuário; Checkbox: componente composto de dois estados (marcado e desmarcado); Button: composto de texto ou ícone, este componente desencadeia uma ação quando pressionado; Option Menu: usado para chamar as funções próprias da aplicação. É chamado através do botão físico de menu. Na Figura 27 é apresentada a tela principal, com a especificação de cada componente utilizado no sistema. Figura 27. Tela do aplicativo móvel

61 61 Como citado anteriormente, foi necessário adicionar alguns componentes que não estavam previstos no projeto. Além dos componentes projetados, foi incluído um menu na tela principal para conectar, desconectar ou ter acesso as configurações do Bluetooth do aparelho celular. Essa modificação foi necessária, pois na inicialização da aplicação, caso o Bluetooth estivesse desativado e o usuário optasse por ativá-lo, a aplicação tentava conexão com o módulo do Arduino antes que a ativação do Bluetooth estivesse concluída, gerando um erro e finalizando a aplicação de forma inesperada. A implementação desse menu foi especificada no arquivo menu.xml. Na Figura 28 é apresentada a tela principal com o menu. Figura 28. Tela principal com a adição do menu Por meio do menu Conectar, o dispositivo móvel tenta estabelecer a conexão com o módulo Bluetooth do Arduino. Uma vez conectado, o usuário pode se desconectar pressionando o menu Desconectar ou ir para a tela de configurações do Bluetooth do Android através do menu Configurações.

62 Lógica da aplicação Android Nesta subseção, são abordadas as classes utilizadas e os métodos implementados para fazer a comunicação sem fio (Bluetooth) entre dispositivo móvel e o Arduino, ou seja, são apresentados somente os assuntos pertinentes aos objetivos específicos deste trabalho. Principais classes importadas Foi necessário importar três classes para realizar a comunicação através do Bluetooth, que são apresentadas a seguir: BluetoothAdapter: representa o adaptador Bluetooth do dispositivo e provê todos os métodos necessários para executar tarefas fundamentais como iniciar a descoberta de dispositivos, retornar os dispositivos pareados, etc. (ANDROID, 2013b); BluetoothDevice: representa o dispositivo Bluetooth remoto, permitindo criar uma conexão com outro dispositivo ou realizar uma consulta (nome, endereço, estado, etc.), é definido através da classe BluetoothAdapter (ANDROID, 2013c); BluetoothSocket: realiza a conexão de um socket Bluetooth, sendo o tipo de socket mais comum o RFCOMM, que é também suportado pelas API s do Android (ANDROID, 2013d). Com a utilização dessas três classes foi possível implementar os métodos para realizar o envio de dados, como também, a escuta de dados que são enviados pelo módulo Bluetooth do Arduino. Para utilizar estas classes, foi necessário configurar algumas permissões no Android, que serão apresentadas a seguir. Configuração de permissões no Android No Android, os recursos que possam comprometer dados do usuário são feitos mediante permissões. Dessa forma, no momento da instalação de um aplicativo o usuário é informado sobre quais recursos são utilizados, exigindo que seja confirmada a sua utilização. Como descrito acima, a aplicação desenvolvida utiliza algumas classes que gerenciam os recursos do Bluetooth do smartphone, desta forma, foi preciso declarar as permissões

63 63 android.permission.bluetooth e android.permission.bluetooth_admin no arquivo manifest.xml. Codificação Nesta subseção, são apresentados os métodos principais que fazem toda a comunicação entre o dispositivo móvel e o módulo Bluetooth do Arduino. Segue uma descrição de cada método nos tópicos a seguir: verificabt: este método é chamado logo quando a aplicação é iniciada. Primeiramente ele verifica se existe algum adaptador Bluetooth no dispositivo móvel e se ele não existir, a aplicação é encerrada. Depois é verificado se o Bluetooth está ligado. Se não estiver, é pedida uma permissão para que seja ativado. Se o usuário não permitir, a aplicação também é encerrada; selecionadispositivobt: a sua chamada é feita dentro do método abrebt. Ele simplesmente pesquisa na lista de dispositivos pareados o dispositivo por nome linvor, que se refere ao módulo Bluetooth do Arduino. Se encontrar, então é atribuído o nome do dispositivo por meio da classe BluetoothDevice. Caso o dispositivo linvor não seja encontrado, uma mensagem é exibida para o usuário informando o ocorrido; abrebt: este método é chamado quando o usuário seleciona o menu Conectar. A sua função é abrir a conexão Bluetooth, deixando a aplicação pronta para o envio e a leitura dos dados; escutadadosbt: chamado dentro do método abrebt, neste método é iniciada uma thread que faz a leitura dos pacotes que estão sendo recebidos, uma vez delimitados quando o caractere correspondente a uma nova linha é lido. A thread só é encerrada caso uma exceção ocorrer ou quando o método fechabt é chamado; enviadadosbt: o oposto do método descrito anteriormente, este método faz o envio dos dados digitados pelo usuário para o Arduino e é chamado quando o botão Enviar é pressionado. O id e a senha são concatenados para simular o envio de um formulário HTML, portanto, o Arduino não precisa fazer nenhum

64 64 tipo de processamento quando recebe os dados, simplesmente os envia por meio de uma requisição HTTP; fechabt: este método é chamado quando o menu Desconectar é selecionado ou quando a aplicação é encerrada. Sua função é fechar o socket, encerrando o recebimento e o envio de dados; configurabt: chamado quando o menu Configurações é pressionado. Este método abre as configurações do Bluetooth do Android. No início da aplicação, o método verificabt checa se o dispositivo móvel possui um adaptador Bluetooth. Caso exista, ele verifica se o mesmo está ativado, uma vez desativado, é pedida uma permissão para o usuário para ativá-lo. Se o adaptador não existir ou o usuário não permitir a ativação do Bluetooth, a aplicação é encerrada. Depois de o Bluetooth ter sido ativado, o usuário deve conectar-se ao dispositivo Bluetooth do Arduino ( linvor ) por meio do menu Conectar. Ao selecionar essa opção do menu, o método abrebt é chamado, fazendo a abertura da conexão e preparando a aplicação para o envio e a escuta de dados. Se a conexão falhar, o usuário deve tentar novamente pressionando a mesma opção de menu. Uma vez conectado, o usuário pode optar por desconectar, utilizando a opção de menu Desconectar ou também abrir as configurações do Bluetooth do Android, na opção Configurações. Logo após a conexão do dispositivo móvel ao módulo Bluetooth do Arduino, o usuário pode entrar com o id e senha, e através do botão Enviar, fazer o envio dos dados para o Arduino, ou também, pode sair da aplicação através do botão Cancelar. Ao pressionar o botão Enviar o método enviadados é chamado, fazendo o processo como já descrito. Na Figura 29 é apresentado um fluxograma onde é possível ter uma melhor visualização do que foi descrito acima.

65 65 Figura 29. Fluxograma das tarefas principais da aplicação Android Com a implementação desses métodos, foi disponibilizada uma interface possível de comunicação com a plataforma microcontrolada. O código-fonte da aplicação Android pode ser visualizado no Apêndice A. 4.2 APLICAÇÃO DO ARDUINO A programação do Arduino foi realizada utilizando uma IDE disponibilizada pela própria plataforma que também permite fazer o upload diretamente na placa. Nesta subseção são abordadas as bibliotecas utilizadas e a codificação do Arduino Bibliotecas utilizadas Para a implementação do projeto foi definido a utilização do padrão Bluetooth em conjunto com o padrão Ethernet, desta forma, foi necessário adição de bibliotecas específicas que permitissem a codificação. Essas bibliotecas são apresentadas a seguir.

66 66 Ethernet: segundo o Arduino (2013f), esta biblioteca permite a conexão com a Internet, podendo servir como um servidor ou como cliente e suportando até quatro conexões simultaneamente; SPI: esta biblioteca permite a comunicação com dispositivos de SPI (Serial Peripheral Interface), sendo o SPI um protocolo síncrono de dados serial utilizados para a comunicação entre microcontroladores e outros periféricos para distâncias curtas, utilizada pelo Bluetooth (ARDUINO, 2013g). Com a inclusão dessas duas bibliotecas, foram fornecidos os métodos e funções necessárias para a conexão com a Internet, como também, para realizar a leitura e a escrita de dados na porta serial Codificação No Arduino, existem dois métodos que são obrigatórios a sua programação, sendo eles o método setup e o método loop. O método setup é executado apenas uma vez, quando o microcontrolador é ligado, portanto, neste método foi definido a inicialização do Ethernet e da porta Serial, como também o pino de saída referente ao módulo relé. Já o método loop é executado infinitamente, portanto, este método careceu de mais cautela em sua codificação, pois se trata do método que executa a tarefa principal do projeto. Neste método, é realizada a leitura dos dados que chegam do celular através do Bluetooth, como também, é realizado o envio desses dados através do protocolo Ethernet para o servidor Apache. Além desses métodos, foram implementados outros, que são apresentados a seguir: conectaservidor: este método tenta uma conexão com o servidor, retornando um valor booleano (true ou false); enviaservidor: este método é responsável por enviar os dados recebidos do Bluetooth, fazendo uma requisição do tipo POST para a página php; lerrespostaservidor: este método verifica o resultado enviado pelo servidor, se o resultado for igual a 1 (um), o retorno será 1 (um), caso contrário o valor retornado é 0 (zero);

67 67 ativarele: este método tem por objetivo ligar o relé e depois de 1 segundo desligá-lo, escrevendo a mensagem: Ativado com sucesso! ; erroautenticacao: este método simplesmente escreve a mensagem: Falha na autenticação ou usuário/senha incorretos!"; lebluetooth: visto que o Arduino recebe os dados de forma serial, este método agrupa todos os caracteres enviados através do Bluetooth (usuário e senha) em uma única string. O método loop inicia com uma condição que verifica se o cliente está conectado, não recebendo dados do servidor e se não recebeu nenhum dado do Bluetooth. Se esta condição for verdadeira os dados vindos do Bluetooth são enviados para o servidor através do método enviaservidor e retorna para o início do método loop, caso contrário, outra condição verifica se o cliente está conectado e recebendo dados do servidor. Caso esta condição for verdadeira, outra condição verifica se o retorno do método lerespostaservidor é verdadeiro, chamando então o método ativarele e parando o cliente, depois retorna para o início do método loop. Se o retorno for falso, o método erroautenticacao é chamado e o cliente é também parado, retornando para o início do método loop. Uma vez que a condição que verifica se o cliente está conectado e recebendo dados do servidor retornar falso, então outra condição verifica se o cliente não está conectado e se a variável recebeudadosbluetooth é verdadeira. Caso esta verificação retornar verdadeira, a variável recebeudadosbluetooth recebe false e o método conectaservidor é chamado, retornando para o início do método loop. Se retornar falso, outra condição verifica se a variável recebeudadosbluetooth é falsa, e se caso positivo a variável dadosbluetooth recebe os dados através do método lebluetooth, então outra condição verifica se a variável dadosbluetooth é diferente de, e caso positivo, é atribuído o valor true para a variável recebeudadosbluetooth, retornando para o início do método loop. Na Figura 30, é apresentado um fluxograma que explica todos os métodos implementados.

68 68 Figura 30. Fluxograma dos processos implementados no método loop Como o Arduino Uno possui apenas uma porta serial para receber e enviar os dados, foi necessário encontrar uma solução que trabalhasse com os dados do Bluetooth e do Ethernet de modo que ambos não fossem confundidos. Desta forma, foi implementado o código fonte como apresentado no Apêndice B. 4.3 PROTOTIPAÇÃO DO SISTEMA EMBARCADO Para alcançar o objetivo geral e os objetivos deste trabalho, foi necessária a utilização dos componentes de hardware apresentados no Quadro 4:

69 69 Quadro 4. Lista de componentes de hardware Quantidade Nome 1 Placa Arduino Uno R3 1 Módulo Arduino Ethernet Shield com Wiznet W Módulo Arduino Bluetooth JY-MCU 1 Módulo Arduino Relé 5v 1 Protoboard BBW005 de 170 pontos 7 Jumpers 1 Fecho Eletromagnético Amelco FE61 1 Fonte de alimentação 12V O módulo Ethernet foi acoplado no Arduino Uno, como visualizado na Figura 31. Ethernet Shield Arduino Uno Figura 31. Módulo EthernetShield acoplado ao Arduino Uno Optou-se por usar uma protoboard de 170 pontos para facilitar a ligação entre os componentes, acoplando-se nela módulo Bluetooth e o módulo Relé, conforme apresentado na Figura 32.

70 70 Módulo Bluetooth Protoboard Módulo Relé Figura 32. Módulo Bluetooth e módulo Relé acoplados na protoboard Figura 33: O modelo esquemático completo dos componentes do Arduino pode ser visualizado na Figura 33. Modelo esquemático do Arduino

71 71 No Quadro 5, é apresentada a especificação técnica do Arduino Uno: Quadro 5. Especificação do Arduino Uno Características Descrição Microcontrolador ATmega328 Tensão de funcionamento 5V Tensão de entrada recomendada 7-12V Tensão de entrada (limites) 6-20V Pinos de E/S digitais 14 (dos quais 6 são destinados a saídas PWM) Pinos de entrada analógica 6 Corrente DC por pino de E/S 40 ma Corrente DC para pino 3.3 V 50 ma Memórias Flash 32 KB (ATmega328), sendo 0.5 KB destinados ao gerenciador de boot SRAM 2 KB (Atmega238) EEPROM 1 KB (ATmega328) Clock 16 MHz Fonte: Arduino (2013c). A ligação do módulo Bluetooth foi realizada utilizando quatro jumpers, dois para ligar ao 5v e o GND, e sendo os outros dois para ligar o RX do módulo Bluetooth ao TX do Arduino, e outro para ligar o TX ao RX. Para realizar a ligação do módulo relé foi utilizado três jumpers, dois para conectar ao 5v e o GND, e outro jumper para conectar S a porta 7 do Arduino. O protótipo completo é apresentado na Figura 34.

72 72 Ethernet Shield Módulo Bluetooth Módulo Relé Bl Bl Arduino Uno Figura 34. Prototipação completa do Arduino Bl Para realizar a ligação do fecho eletromagnético, foi utilizado um fio paralelo de 2,5 mm, sendo um fio conectado diretamente no fecho eletromagnético, e o outro cortado ao meio e ligado uma ponta na entrada do módulo relé. Na Figura 35, é apresentado o protótipo Arduino sendo utilizado para acionar o fecho eletromagnético.

73 73 Fecho eletromagnético Bl Módulo Relé Módulo Bl Bluetooth Ethernet Shield Bl Arduino Uno Bl Figura 35. Prototipação do Arduino acionando o fecho eletromagnético 4.4 INTEGRAÇÃO COM O SERVIDOR A integração com o servidor de banco de dados foi realizada através do auxilio de duas páginas PHP, config e autentica. A página config possui as configurações necessárias para estabelecer a conexão com o banco de dados MySQL, sendo esta incluída em autentica.

74 74 A página autentica recebe os dados (identificador e senha) enviados pelo Arduino, que simula o envio de um formulário HTML através de uma requisição HTTP pelo método POST. Ao receber os dados, é realizado uma consulta no banco de dados MySQL que retorna os registros onde o identificador e senha recebidos são equivalentes aos armazenados e quando a flag de permissão está ativada. Se as linhas afetadas por essa consulta for igual 1 (um), é escrito o valor 1 (um), e se for 0 (zero), então é escrito o valor 0 (zero). Na Figura 36 é apresentado o fluxograma para esta tarefa. Figura 36. Fluxograma da integração com servidor O código-fonte da página autentica é apresentado no Apêndice C. 4.5 TESTES A aplicação foi executada em um smartphone Sansung Galaxy Y S5360 e em um tablet Xoom 2 ME, tendo o mesmo comportamento em ambos os dispositivos. Os testes foram feitos realizando-se o acionamento da carga elétrica de uma lâmpada, com finalidade

75 75 de proporcionar uma melhor percepção no documento. Os testes foram baseados em três hipóteses de entrada de dados: Identificador e senha corretos, com permissão: neste teste, os dados foram enviados corretamente, sendo que para esse identificador também estava ativada a permissão no banco de dados; Identificador e senha corretos, sem permissão: este teste realizado foi semelhante ao anterior, porém, a flag correspondente à permissão para o usuário estava desativada; Identificador e senha incorretos: foram enviados dados incorretos, como identificador inexistente e identificador com senha incorreta Com estes testes foram obtidos os resultados esperados, sendo apresentados no tópico Resultados Após uma bateria de testes, os resultados obtidos foram satisfatórios, sendo apresentados a seguir. Na Figura 37 (a) é apresentada a tela da aplicação rodando no smartphone, e na Figura 37 (b), com a utilização do tablet.

76 76 (a) Figura 37. Execução da aplicação Android. (a) Sansung Galaxy Young S5360; (b) Motorola Xoom 2 ME (b) Identificador e senha corretos, com permissão Quando os dados enviados para o Arduino correspondiam aos dados armazenados no banco de dados e a flag de permissão estava ativada, o módulo relé permaneceu ativado por 1 segundo e logo depois foi desativado, como também a lâmpada, seguindo o fluxo previsto. Na Figura 38 (a), é apresentado uma imagem do momento em que os dados foram enviados. Como se pode perceber, o led do módulo relé está desligado. Já na Figura 38 (b), depois de receber os dados, o led fica ligado por um tempo determinado (1 segundo) e logo depois, volta ao estado inicial (Figura 38(a)), significando que o processo foi realizado com sucesso.

77 77 Led desligado Led ligado (a) Figura 38. Resultado dos testes com identificador e senha corretos, sem permissão. (a) Módulo relé desligado e lâmpada apagada; (b) Módulo relé ativado e lâmpada acesa (b) Identificador e senha corretos, sem permissão / Identificador e senha incorretos O resultado do teste enviando um identificador e senha que, constavam no banco de dados contendo a flag de permissão desativada, fez apenas que uma mensagem fosse enviada para a aplicação Android, informando que o id/senha não estava correto ou o usuário não tinha permissão para realizar o acesso. Na Figura 39, é apresentada a tela da aplicação com a mensagem exibida. O mesmo resultado se procedeu no envio de um id e senha incorretos. Figura 39. Tela da aplicação Android com mensagem de erro ao enviar dados incorretos

Alarme Automotivo com mensagem para móvel utilizando Arduino

Alarme Automotivo com mensagem para móvel utilizando Arduino Alarme Automotivo com mensagem para móvel utilizando Arduino Maycon Cirilo dos Santos¹, Wyllian Fressatti¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil mayconsi2012@gmail.com, wyllian@unipar.br

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega ARDUINO O que é Arduino Arduino foi criado na Itália por Máximo Banzi com o objetivo de fomentar a computação física, cujo conceito é aumentar as formas de interação física entre nós e os computadores.

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Redes de Computadores Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Open Systems Interconnection Modelo OSI No início da utilização das redes de computadores, as tecnologias utilizadas para a comunicação

Leia mais

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos Arquiteturas de Rede 1 Sumário Introdução; Modelo de Referência OSI; Modelo de Referência TCP/IP; Bibliografia. 2/30 Introdução Já percebemos que as Redes de Computadores são bastante complexas. Elas possuem

Leia mais

Visão geral das redes sem fio

Visão geral das redes sem fio Visão geral das redes sem fio 1 - Introdução O termo redes de dados sem fio pode ser utilizado para referenciar desde dispositivos de curto alcance como o Bluetooth à sistemas de altas taxas de transmissão

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

Leia mais

Protocolos Hierárquicos

Protocolos Hierárquicos Protocolos Hierárquicos O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio,

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Administração de Sistemas de Informação I

Administração de Sistemas de Informação I Administração de Sistemas de Informação I Prof. Farinha Aula 03 Telecomunicações Sistemas de Telecomunicações 1 Sistemas de Telecomunicações Consiste de Hardware e Software transmitindo informação (texto,

Leia mais

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC Tiago Menezes Xavier de Souza¹, Igor dos Passos Granado¹, Wyllian Fressatti¹ ¹Universidade Paranaense (UNIPAR) Paranavaí- PR- Brasil tiago_x666@hotmail.com,

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS PROFESSOR: CARLOS BECKER WESTPHALL Terceiro Trabalho

Leia mais

Tecnologia da Informação e Comunicação. Euber Chaia Cotta e Silva

Tecnologia da Informação e Comunicação. Euber Chaia Cotta e Silva Tecnologia da Informação e Comunicação Euber Chaia Cotta e Silva Redes e a Internet Conceitos Básicos 01 Para que você possa entender o que é e como funciona a Internet é necessário primeiro compreender...

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

PROJETO E IMPLANTAÇÃO DE INTRANETS

PROJETO E IMPLANTAÇÃO DE INTRANETS PROJETO E IMPLANTAÇÃO DE INTRANETS Aulas : Terças e Quintas Horário: AB Noite [18:30 20:20hs] PROJETO E IMPLANTAÇÃO DE INTRANETS 1 Conteúdo O que Rede? Conceito; Como Surgiu? Objetivo; Evolução Tipos de

Leia mais

(Open System Interconnection)

(Open System Interconnection) O modelo OSI (Open System Interconnection) Modelo geral de comunicação Modelo de referência OSI Comparação entre o modelo OSI e o modelo TCP/IP Analisando a rede em camadas Origem, destino e pacotes de

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s: Tecnologia em Redes de Computadores Redes de Computadores Professor: André Sobral e-mail: alsobral@gmail.com Conceitos Básicos Modelos de Redes: O O conceito de camada é utilizado para descrever como ocorre

Leia mais

:: Telefonia pela Internet

:: Telefonia pela Internet :: Telefonia pela Internet http://www.projetoderedes.com.br/artigos/artigo_telefonia_pela_internet.php José Mauricio Santos Pinheiro em 13/03/2005 O uso da internet para comunicações de voz vem crescendo

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

MÓDULO 8 Modelo de Referência TCP/IP

MÓDULO 8 Modelo de Referência TCP/IP MÓDULO 8 Modelo de Referência TCP/IP A internet é conhecida como uma rede pública de comunicação de dados com o controle totalmente descentralizado, utiliza para isso um conjunto de protocolos TCP e IP,

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Unidade 2.1 Modelos de Referência. Bibliografia da disciplina. Modelo OSI. Modelo OSI. Padrões 18/10/2009

Unidade 2.1 Modelos de Referência. Bibliografia da disciplina. Modelo OSI. Modelo OSI. Padrões 18/10/2009 Faculdade INED Unidade 2.1 Modelos de Referência Curso Superior de Tecnologia: Redes de Computadores Disciplina: Fundamentos de Redes Prof.: Fernando Hadad Zaidan 1 2 Bibliografia da disciplina Bibliografia

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

Unidade 2.1 Modelos de Referência

Unidade 2.1 Modelos de Referência Faculdade INED Curso Superior de Tecnologia: Banco de Dados Redes de Computadores Disciplina: Redes de Computadores Prof.: Fernando Hadad Zaidan 1 Unidade 2.1 Modelos de Referência 2 Bibliografia da disciplina

Leia mais

Sistemas de Informações Gerenciais

Sistemas de Informações Gerenciais Sistemas de Informações Gerenciais Aula 3 Sistema de Informação Conceito, Componentes e Evolução Professora: Cintia Caetano INTRODUÇÃO Conceito: Um Sistema de Informação (SI) é um sistema cujo elemento

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE III: Infraestrutura de Tecnologia da Informação Atualmente, a infraestrutura de TI é composta por cinco elementos principais: hardware, software,

Leia mais

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Protocolo é a linguagem usada pelos dispositivos de uma rede de modo que eles consigam se comunicar Objetivo Transmitir dados em uma rede A transmissão

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Claudivan C. Lopes claudivan@ifpb.edu.br

Claudivan C. Lopes claudivan@ifpb.edu.br Claudivan C. Lopes claudivan@ifpb.edu.br Motivação Camadas do modelo OSI Exemplos de protocolos IFPB/Patos - Prof. Claudivan 2 Para que dois ou mais computadores possam se comunicar, é necessário que eles

Leia mais

APOSTILA DE REDES DE COMPUTADORES PARTE - III

APOSTILA DE REDES DE COMPUTADORES PARTE - III APOSTILA DE REDES DE COMPUTADORES PARTE - III 1 REDE DE COMPUTADORES III 1. Introdução MODELO OSI ISO (International Organization for Standardization) foi uma das primeiras organizações a definir formalmente

Leia mais

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 INTRODUÇÃO REDES EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 Computadores eram máquinas grandes e complexas, operadas por pessoas altamente especializadas; Não havia interação direta entre usuários

Leia mais

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Redes de Computadores. Prof. Dr. Rogério Galante Negri Redes de Computadores Prof. Dr. Rogério Galante Negri Rede É uma combinação de hardware e software Envia dados de um local para outro Hardware: transporta sinais Software: instruções que regem os serviços

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Rede é um conjunto de módulos processadores capazes de trocar informações e compartilhar recursos. O tipo de rede é definido pela sua área de abrangência, podemos classificar as redes

Leia mais

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta Protocolo O que é um protocolo? Humano: que horas são? eu tenho uma pergunta Máquina: Definem os formatos, a ordem das mensagens enviadas e recebidas pelas entidades de rede e as ações a serem tomadas

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. Essa estratégia foi deixada para trás. Atualmente, o software de rede é altamente

Leia mais

VEÍCULO CONTROLADO POR ARDUINO ATRAVÉS DO SISTEMA OPERACIONAL ANDROID

VEÍCULO CONTROLADO POR ARDUINO ATRAVÉS DO SISTEMA OPERACIONAL ANDROID VEÍCULO CONTROLADO POR ARDUINO ATRAVÉS DO SISTEMA OPERACIONAL ANDROID André Luis Fadinho Portante¹, Wyllian Fressatti¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil andreportante@gmail.com, wyllian@unipar.br

Leia mais

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO Jessica Garcia Luz, Wyllian Fressatti Universidade Paranaense (Unipar) Paranavaí - PR - Brasil jessica.garcia.luz@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações. Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações. A partir de agora, iremos conhecer o hardware do Arduino e suas caracteristicas

Leia mais

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Revisão. Karine Peralta karine.peralta@pucrs.br

Revisão. Karine Peralta karine.peralta@pucrs.br Revisão Karine Peralta Agenda Revisão Evolução Conceitos Básicos Modelos de Comunicação Cliente/Servidor Peer-to-peer Arquitetura em Camadas Modelo OSI Modelo TCP/IP Equipamentos Evolução... 50 60 1969-70

Leia mais

Telecomunicações. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Telecomunicações. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Telecomunicações Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução à tecnologia de redes Redes de Computadores Século XX - Era da Informação -> invenção do computador. No início, os mainframes

Leia mais

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Redes

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Redes André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Redes Noções de Redes: Estrutura básica; Tipos de transmissão; Meios de transmissão; Topologia de redes;

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

REDE DE COMPUTADORES

REDE DE COMPUTADORES SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL REDE DE COMPUTADORES Tecnologias de Rede Topologias Tipos de Arquitetura Prof. Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1 REDES LOCAIS LAN -

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE V: Telecomunicações, Internet e Tecnologia Sem Fio. Tendências em Redes e Comunicações No passado, haviam dois tipos de redes: telefônicas e redes

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Introdução a Computação Móvel

Introdução a Computação Móvel Introdução a Computação Móvel Computação Móvel Prof. Me. Adauto Mendes adauto.inatel@gmail.com Histórico Em 1947 alguns engenheiros resolveram mudar o rumo da história da telefonia. Pensando em uma maneira

Leia mais

Meio Físico. Mensagem. Protocolo. Emissor e Receptor. Data Terminal Equipment Data Communications Equipment

Meio Físico. Mensagem. Protocolo. Emissor e Receptor. Data Terminal Equipment Data Communications Equipment Emissor Receptor Meio Físico Mensagem Protocolo Emissor e Receptor Data Terminal Equipment Data Communications Equipment (DTE) + (DCE) Meio Físico Mensagem ( pacote ) O meio físico É o elemento que transmite

Leia mais

Redes de Computadores. Prof. Késsia Marchi

Redes de Computadores. Prof. Késsia Marchi Redes de Computadores Prof. Késsia Marchi Redes de Computadores Redes de Computadores Possibilita a conexão entre vários computadores Troca de informação Acesso de múltiplos usuários Comunicação de dados

Leia mais

Cap 01 - Conceitos Básicos de Rede (Kurose)

Cap 01 - Conceitos Básicos de Rede (Kurose) Cap 01 - Conceitos Básicos de Rede (Kurose) 1. Quais são os tipos de redes de computadores e qual a motivação para estudá-las separadamente? Lan (Local Area Networks) MANs(Metropolitan Area Networks) WANs(Wide

Leia mais

Modelo OSI. Prof. Alexandre Beletti Ferreira. Introdução

Modelo OSI. Prof. Alexandre Beletti Ferreira. Introdução Modelo OSI Prof. Alexandre Beletti Ferreira Introdução Crescimento das redes de computadores Muitas redes distintas International Organization for Standardization (ISO) Em 1984 surge o modelo OSI Padrões

Leia mais

Agregador de feeds RSS para dispositivos móveis

Agregador de feeds RSS para dispositivos móveis Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

Evolução na Comunicação de

Evolução na Comunicação de Evolução na Comunicação de Dados Invenção do telégrafo em 1838 Código Morse. 1º Telégrafo Código Morse Evolução na Comunicação de Dados A evolução da comunicação através de sinais elétricos deu origem

Leia mais

Técnicas para interação de computador de bordo com dispositivo móvel usando tecnologia bluetooth

Técnicas para interação de computador de bordo com dispositivo móvel usando tecnologia bluetooth Técnicas para interação de computador de bordo com dispositivo móvel usando tecnologia bluetooth João Paulo Santos¹, Wyllian Fressaty¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil Jpsantos1511@gmail.com,

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Guia para o Google Cloud Print

Guia para o Google Cloud Print Guia para o Google Cloud Print Versão 0 BRA-POR Definições das observações Utilizamos o ícone a seguir ao longo deste manual do usuário: Os ícones de ensinam como agir em determinada situação ou fornecem

Leia mais

FIREWIRE. O logotipo padronizado: Suas principais vantagens:

FIREWIRE. O logotipo padronizado: Suas principais vantagens: FIREWIRE O barramento Firewire, também conhecido como IEEE 1394 ou como i.link, foi desenvolvido inicialmente pela Apple Computer em 1996, como um barramento serial de alta velocidade, e transfere um grande

Leia mais

TECNOLOGIA WEB INTERNET PROTOCOLOS

TECNOLOGIA WEB INTERNET PROTOCOLOS INTERNET PROTOCOLOS 1 INTERNET Rede mundial de computadores. Também conhecida por Nuvem ou Teia. Uma rede que permite a comunicação de redes distintas entre os computadores conectados. Rede WAN Sistema

Leia mais

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO 1 OBJETIVOS 1. O que é a nova infra-estrutura informação (TI) para empresas? Por que a conectividade é tão importante nessa infra-estrutura

Leia mais

Suporte a redes CAN para Aplicações Embarcadas

Suporte a redes CAN para Aplicações Embarcadas Universidade Federal de Santa Catarina UFSC Departamento De Informática e Estatística INE Bacharelado em Ciências Da Computação Suporte a redes CAN para Aplicações Embarcadas Autor: Alessandro Barreiros

Leia mais

4. Quais são os serviços que podem ser utilizados através desta Tecnologia? 6. O Adaptador PLC causa um aumento no consumo de Energia Elétrica?

4. Quais são os serviços que podem ser utilizados através desta Tecnologia? 6. O Adaptador PLC causa um aumento no consumo de Energia Elétrica? 1. O que significa PLC - PowerLine Communications? 2. Quais são as características técnicas do PLC? 3. Quais são as vantagens da Tecnologia PLC? 4. Quais são os serviços que podem ser utilizados através

Leia mais

FUNCIONAMENTO, VANTAGENS E DESVANTAGENS DAS DIVERSAS TECNOLOGIAS

FUNCIONAMENTO, VANTAGENS E DESVANTAGENS DAS DIVERSAS TECNOLOGIAS FUNCIONAMENTO, VANTAGENS E DESVANTAGENS DAS DIVERSAS TECNOLOGIAS FUNCIONAMENTO DOS RFID s O Um sistema de RFID é composto, basicamente, por uma antena, que funciona como receptor, faz a leitura do sinal

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Arquitetura de Redes de Computadores. Bruno Silvério Costa

Arquitetura de Redes de Computadores. Bruno Silvério Costa Arquitetura de Redes de Computadores Bruno Silvério Costa Projeto que descreve a estrutura de uma rede de computadores, apresentando as suas camadas funcionais, as interfaces e os protocolos usados para

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

AULA Redes de Computadores e a Internet

AULA Redes de Computadores e a Internet UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Bacharelado em Ciência da Computação Disciplina: INF64 (Introdução à Ciência da Computação) Prof: Anilton Joaquim da Silva / Ezequiel

Leia mais

RC e a Internet: noções gerais. Prof. Eduardo

RC e a Internet: noções gerais. Prof. Eduardo RC e a Internet: noções gerais Prof. Eduardo Conceitos A Internet é a rede mundial de computadores (rede de redes) Interliga milhares de dispositivos computacionais espalhados ao redor do mundo. A maioria

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Projeto de controle e Automação de Antena

Projeto de controle e Automação de Antena Projeto de controle e Automação de Antena Wallyson Ferreira Resumo expandido de Iniciação Tecnológica PUC-Campinas RA: 13015375 Lattes: K4894092P0 wallysonbueno@gmail.com Omar C. Branquinho Sistemas de

Leia mais

Guia para o Google Cloud Print

Guia para o Google Cloud Print Guia para o Google Cloud Print Versão A BRA-POR Definições das observações Utilizamos o estilo de observação a seguir ao longo deste manual do usuário: As observações ensinam como agir em determinada situação

Leia mais

Comunicando através da rede

Comunicando através da rede Comunicando através da rede Fundamentos de Rede Capítulo 2 1 Estrutura de Rede Elementos de comunicação Três elementos comuns de comunicação origem da mensagem o canal destino da mensagem Podemos definir

Leia mais