Baixe o app para aproveitar ainda mais
Prévia do material em texto
HAISSAM YEBAHI INOSENSOR: FERRAMENTA PARA GERENCIAMENTO DE SENSORES PARA ARDUINO Monografia apresentada no Centro de Educação do Planalto Norte/CEPLAN, da Universidade do Estado de Santa Catarina/UDESC, como requisito parcial para conclusão do curso de Pós-graduação Lato Sensu de Especialização em Desenvolvimento de Software. Orientador: Alex Luiz de Sousa SÃO BENTO DO SUL, SC 2013 HAISSAM YEBAHI INOSENSOR: FERRAMENTA PARA GERENCIAMENTO DE SENSORES PARA ARDUINO Monografia apresentada no Centro de Educação do Planalto Norte/CEPLAN, da Universidade do Estado de Santa Catarina/UDESC, como requisito parcial para conclusão do curso de Pós-graduação Lato Sensu de Especialização em Desenvolvimento de Software. Banca Examinadora Orientador: __________________________________________ M.Eng. Alex Luiz de Sousa Universidade do Estado de Santa Catarina Membro: __________________________________________ Dr. Nilson Ribeiro Modro Universidade do Estado de Santa Catarina Membro: __________________________________________ Dr. Mário Ezequiel Augusto Universidade do Estado de Santa Catarina São Bento do Sul, SC, 03/10/2013. Ao meu amor, Thalita Gabriela Costa, pelo carinho, paciência e apoio durante a realização deste trabalho. AGRADECIMENTOS Agradeço a todos que direta ou indiretamente contribuíram com a concretização deste trabalho. Em primeiro lugar agradeço a Deus, por ter me guiado diante de tantas dúvidas mesmo quando a esperança parecia não ser suficiente. Ao professor e o orientador Alex Luiz de Sousa, de maneira especial, por confiar na minha capacidade, pelo apoio e contribuição. A minha amiga e coordenadora de TI da empresa Tigre S.A. Palmira Bozzola Serpa por sempre apoiar e permitir a ausência do trabalho para comparecer às aulas da pós graduação durante os dias de semana. Ao meu amigo Bruno Hasse por me apresentar o Arduino e que serviu de base para este projeto. Ao meu amigo Cleomar Roeper pela parceria durante as viagens a São Bento do Sul durante os dias de aula e pela indicação do curso de Pós-Graduação. As demais pessoas, amigos, professores que apoiaram ou contribuíram para este projeto com ideias, sugestões e críticas. RESUMO YEBAHI, Haissam. InoSensor: Ferramenta para gerenciamento de sensores para Arduino. 2013. 141 f. Monografia apresentada no Centro de Educação do Planalto Norte/CEPLAN, da Universidade do Estado de Santa Catarina/UDESC, como requisito parcial para conclusão do curso de Pós-graduação Lato Sensu de Especialização em Desenvolvimento de Software, São Bento do Sul, 2013. As tecnologias estão cada vez mais inseridas no cotidiano das pessoas. Com o passar do tempo, novas soluções surgem com o intuito de facilitar a execução de tarefas manuais e reduzir o tempo gasto em tarefas rotineiras, que poderiam ser executadas por equipamentos eletrônicos de maneira mais eficaz e controlada. Independente do ambiente em que é aplicada, a Automação pode proporcionar o gerenciamento de recursos de forma bastante eficiente e sustentável em ambientes residenciais, prediais ou industriais. A Domótica, ou automação residencial, é composta por dispositivos e sistemas interconectados através de uma rede de comunicação, responsável por prover os mecanismos necessários à supervisão e gerenciamento do ambiente relacionado. A Domótica está se tornando cada vez mais acessível devido principalmente à grande disseminação e ao baixo custo oriundo do aumento do número de fabricantes desses dispositivos. O emprego de soluções integradas gera inúmeras vantagens como redução de custos, facilidade de instalação e expansão do sistema. Estão disponíveis no mercado diferentes plataformas para prototipação e desenvolvimento de sistemas baseados em microcontroladores de forma bastante simples a custos relativamente baixos. Arduino é uma plataforma open source que combina diferentes tipos de hardware e possui uma arquitetura padrão composta por portas analógicas e digitais e um microcontrolador da família Atmel. O microcontrolador é responsável pelo gerenciamento de sensores e periféricos conectados ao dispositivo. Apesar da simplicidade da plataforma, o desenvolvimento de soluções exige conhecimentos básicos de eletrônica e programação durante a elaboração do firmware do Arduino. Seguindo esse conceito, a ferramenta InoSensor foi desenvolvida com o objetivo de facilitar o uso de sensores e permitir o gerenciamento e monitoramento da plataforma Arduino remotamente, sem realizar a programação do hardware sempre que houver a necessidade de modificar as configurações dos sensores conectados. A solução da ferramenta InoSensor é composta dos seguintes módulos: (i) Sistema Web para gerenciamento de Arduino, responsável por cadastrar o Arduino, seus sensores e as ações que devem ser executadas na ocorrência de eventos configurados; (ii) Firmware do Arduino, para interpretar as ações e comunicar com o sistema gerenciador Web; e (iii) Sistema para atualização de firmware do Arduino, desenvolvido para simplificar as etapas de atualização do Arduino, sem a necessidade da IDE de desenvolvimento. Entre os diferenciais existentes na ferramenta InoSensor, em comparação a soluções similares existentes, destaca-se a capacidade de monitoramento remoto de sensores através de redes locais ou Internet e de uso da solução por pessoas sem conhecimento em programação, pois as configurações dos sensores e atuadores são realizadas pelo servidor Web. Este projeto teve como objetivo relacionar as diferentes áreas de conhecimento estudadas no curso de Especialização em Desenvolvimento de Software. A solução desenvolvida é responsável por apresentar uma alternativa de baixo custo na área de Domótica e de fácil utilização, pois seu uso não necessita de conhecimentos em programação. Palavras-chave: Arduino. Monitoramento de sensores. Eletrônica. Domótica. ABSTRACT YEBAHI, Haissam. InoSensor: Management Tool for Arduino Sensors. 2013. 141 f. Monograph (Pós-graduação Lato Sensu de Especialização em Desenvolvimento de Software) - Universidade do Estado de Santa Catarina. Programa de Pós-graduação em Desenvolvimento de Software, São Bento do Sul, 2013. The technologies are becoming more present on people's lives. Over time, new solutions come up to facilitate the execution of manual works and reduce the time spent on routine tasks that could be executed by electronic devices more effectively and controlled. Regardless the environment that it is applied, Automation can provide resource management more efficiently and sustainably in residential and industrial environments. Home Automation consists in devices and systems interconnected through a network, which are responsible for providing a mechanism for monitoring and managing the related environment. Home Automation is increasing its accessibility due to the large spread and low cost provided by the growing number of manufacturers of these devices. The use of integrated solutions generates numerous advantages such as cost reduction, simple installation and system expansion. There are available different platforms for development of systems based on microcontrollers fairlysimple and with a relative low costs. Arduino is an open source platform that combines different hardware types and a standard architecture made by analog and digital ports with an Atmel microcontroller. This microcontroller is responsible for managing sensors and peripherals connected to the Arduino. Despite the simplicity of the platform, the development for solutions requires basic knowledge about electronics and programming. According to this concept, the InoSensor tool was developed to facilitate the use of sensors and enable easy management and monitoring of the Arduino platform remotely, with no need to perform programming of the firmware whenever is needed to modify sensors settings. The InoSensor solution consists in the following modules: (i) a Web management system, responsible to register the Arduino, its sensors and the actions that must be performed when an event occurs; (ii) Arduino firmware, to interpret the action and communicate with the Web Management System; and (iii) firmware update wizard, developed to simplify the steps for updating the Arduino with no need to use Arduino’s IDE. Among the existing differentials in InoSensor tool, compared to existing solutions, there is the ability of remote monitoring sensors across a local network or the Internet, and the use of the solution by people without programming knowledge because the sensors and actuators setting are carried out on the Web server. This Project aimed to relate the different knowledge areas studied in the course of Software Development Specialization. The developed solution is responsible for presenting a low-cost and easy to use alternative in Home Automation area, because no programming knowledge is required to use this tool. Keywords: Arduino. Sensors monitoring. Electronic Automation. Home automation. LISTA DE ILUSTRAÇÕES Figura 1 – Interdisciplinaridade na Automação .................................... 26 Figura 2 – Exemplos de sensores para Arduino .................................... 28 Figura 3 – Exemplo de sensor de umidade do solo ............................... 31 Figura 4 – Módulo de comunicação sem fio Xbee ................................ 33 Figura 5 – Transmissor X10 .................................................................. 34 Figura 6 – Exemplo de Receptor ........................................................... 35 Figura 7 – Esquemática de comunicação dos módulos IHC ................. 37 Figura 8 – Primeiro modelo de Arduino projetado ............................... 40 Figura 9 – Modelo atual do Arduino Uno ............................................. 40 Figura 10 – Arduino Mega .................................................................... 41 Figura 11 – Principais componentes do hardware do Arduino ............. 41 Figura 12 – Alimentação de energia do Arduino .................................. 42 Figura 13 – Portas de alimentação de energia para sensores ................. 43 Figura 14 – Identificação de operação na comunicação serial .............. 44 Figura 15 – Microcontrolador Atmel no Arduino ................................. 45 Figura 16 – Estrutura interna de um microcontrolador Atmel .............. 46 Figura 17 – Arquitetura Harvard ........................................................... 47 Figura 18 – Botão para reiniciar o Arduino........................................... 49 Figura 19 – Conectores de expansão ..................................................... 51 Figura 20 – Shields sobrepostos e conectados sobre um Arduino ......... 52 Figura 21 – Exemplo de circuito integrado em um sensor .................... 53 Figura 22 – Portas utilizadas pelo shield ethernet no Arduino Mega.... 56 Figura 23 – Exemplo de sketch carregada na IDE do Arduino ............. 57 Figura 24 – Seleção do modelo do Arduino na IDE ............................. 58 Figura 25 – Framework Noduino .......................................................... 60 Figura 26 – Ferramenta Breakout .......................................................... 61 Figura 27 – Visão macro da representação do sistema .......................... 65 Figura 28 – Sensor Temperatura e Umidade DHT11 ............................ 66 Figura 29 – Fotoresistor ........................................................................ 66 Figura 30 – Sensor de chama ................................................................ 67 Figura 31 – Sensor de gás ..................................................................... 67 Figura 32 – Sensor de vibração ............................................................. 68 Figura 33 – Sensor magnético ............................................................... 68 Figura 34 – Sensor presença PIR .......................................................... 69 Figura 35 – Relé .................................................................................... 69 Figura 36 – LED RGB .......................................................................... 70 Figura 37 – Buzzer ................................................................................ 70 Figura 38 – Arduino conectado à protoboard ....................................... 72 Figura 39 – Modelo de protoboard ....................................................... 72 Figura 40 – Shield ethernet ................................................................... 73 Figura 41 – Diagrama de casos de uso .................................................. 82 Figura 42 – Diagrama de pacotes PHP do framework CodeIgniter ...... 84 Figura 43 – Diagrama de pacotes ExtJS ............................................... 87 Figura 44 – Diagrama de classes Java................................................... 88 Figura 45 – Diagrama entidade relacionamento ................................... 90 Figura 46 – Diagrama de atividades...................................................... 92 Figura 47 – Diagrama MVC da aplicação InoSensor ........................... 96 Figura 48 – Prompt de comando do Arduino Builder ........................... 98 Figura 49 – Estrutura simplificada do arquivo CSV ........................... 100 Figura 50 – Tela inicial da ferramenta InoSensor ............................... 102 Figura 51 – Tela de usuários da ferramenta InoSensor ....................... 103 Figura 52 – Tela de detalhes do sensor ............................................... 104 Figura 53 – Exibição das configuração de portas do Arduino ............ 105 Figura 54 – Lista de Arduinos cadastrados ......................................... 106 Figura 55 – Tela de cadastro de Arduino ............................................ 107 Figura 56 – Lista de sensores e ações do Arduino .............................. 108 Figura 57 – Tela para cadastro de sensor ............................................ 109 Figura 58 – Tela para cadastro de ação de um sensor ......................... 110 Figura 59 – Tela de verificação de configuração ................................ 111 Figura 60 – Tela de notificações ......................................................... 112 Figura 61 – Tela do assistente de configuração .................................. 113 Figura 62 – Memória utilizada pelo Arduino Mega2560 .................... 119 Figura 63 – Memória utilizada pelo Arduino Uno .............................. 120 LISTA DE QUADROS Quadro 1 – Comparação da especificação dos Arduinos ...................... 51 Quadro 2 – Comparativo com ferramentas similares ............................ 62 Quadro 3 – Tipos de portas utilizadas por cada sensore ....................... 71 Quadro 4 – Componentes eletrônicos do projeto ................................116 Quadro 5 – Equipamentos para testes do projeto ................................ 117 LISTA DE ABREVIATURAS E SIGLAS ADC Analog Digital Convert AJAX Asynchronous JavaScript And XML ALU Arithmetic Logic Unit API Application Programming Interface CABA Continental Automated Buildings Associations CEDIA Custom Electronic Design and Installation Association CI Circuito Integrado CPU Central Processing Unit DHCP Dynamic Host Configuration Protocol EEPROM Electrically Erasable Programmable Read-Only Memory ER Entidade Relacionamento FTDI Future Technology Devices International GLP Gás Liquefeito de Petróleo GND Ground GPRS General Packet Radio Service GSM Global System for Mobile HTML Hyper Text Markup Language HTTP Hyper Text Transfer Protocol I2C Inter Integrated Circuit IDE Integrated Development Environment IHC Intelligent Home Control IP Internet Protocol JSON JavaScript Object Notation KB Kilobyte LCD Liquid Crystal Display LDR Light Dependent Resistor LED Light Emitting Diode MAC Media Access Control MISO Master In Slave Out MOSI Master Out Slave In MVC Model View Controller OSGI Open Service Gateway Initiative OSI Open System Interconnection PC Program Counter PDT PHP Development Tool PHP Hypertext Preprocessor PING Packet Internet Grouper PIR Passive InfraRed PWM Pulse Width Modulation P2P Peer to Peer RAM Random Access Memory RGB Red Green Blue ROM Read Only Memory RX Receiver SCK Serial Clock SMD Semi Metalic Disc SPI Serial Peripheral Interface SRAM Static Random Access Memory TCP Transmission Control Protocol TX Transmitter UDP User Datagram Protocol UML Unified Modeling Language USART Universal Synchronous Asynchronous Receiver Transmitter USB Universal Serial Bus SUMÁRIO 1 INTRODUÇÃO ....................................................................... 18 1.1 FORMULAÇÃO DO PROBLEMA ......................................... 19 1.2 SOLUÇÃO PROPOSTA ........................................................... 20 1.3 OBJETIVOS .......................................................................... 201 1.3.1 Objetivo geral .......................................................................... 21 1.3.2 Objetivos específicos ............................................................... 21 1.4 METODOLOGIA ..................................................................... 22 2 FUNDAMENTAÇÃO TEÓRICA ......................................... 25 2.1 AUTOMAÇÃO ......................................................................... 25 2.1.1 Sensores .................................................................................... 27 2.2 DOMÓTICA ............................................................................. 29 2.3 SOLUÇÕES PARA AUTOMAÇÃO DOMÓTICA ................. 33 2.3.1 X10 ............................................................................................ 33 2.3.3 Sistema Lonworks ................................................................... 38 2.4 ARDUINO ................................................................................ 39 2.4.1 Hardware ................................................................................. 39 2.4.1.1 Fonte de alimentação ................................................................ 41 2.4.1.3 Microcontrolador ...................................................................... 44 2.4.1.4 Reset .......................................................................................... 49 2.4.1.5 Conectores de expansão e portas ............................................... 49 2.4.1.6 Shields ....................................................................................... 52 2.4.1.7 Sensores .................................................................................... 53 2.4.2 Comunicação ........................................................................... 53 2.4.2.1 Redes e Internet ......................................................................... 54 2.4.3 Armazenamento de Dados Externo ....................................... 55 2.4.4 Plataforma de Desenvolvimento ............................................. 56 2.4.4.1 Compilação de código ............................................................... 59 2.4.5 Modelos e variantes ................................................................. 59 2.5 FERRAMENTAS SIMILARES ................................................ 60 2.5.1 Noduino .................................................................................... 60 2.5.2 Breakout ................................................................................... 61 2.5.3 Arduino-Homebot ................................................................... 61 2.6 ANÁLISE COMPARATIVA ENTRE AS FERRAMENTAS . 62 2.7 CONCLUSÕES DO CAPÍTULO ............................................. 63 3 PROJETO ................................................................................ 64 3.1 COMPOSIÇÃO DO SISTEMA ................................................ 64 3.1.1 Sensores Utilizados .................................................................. 65 3.1.2 Plataforma de Prototipação .................................................... 71 3.1.3 Shield ethernet e SD ................................................................. 73 3.2 COMPORTAMENTO DO SISTEMA ...................................... 73 3.2.1 Ações ......................................................................................... 74 3.3 PROTOCOLO DE COMUNICAÇÃO...................................... 75 3.3.1 Monitor de Notificações .......................................................... 75 3.4 MODELAGEM DO SISTEMA ................................................ 76 3.4.1 Requisitos ................................................................................. 76 3.4.1.1 Requisitos Funcionais ............................................................... 76 3.4.1.2 Regras de Negócio .................................................................... 77 3.4.1.3 Requisitos Não-Funcionais........................................................ 79 3.4.2 Casos de Uso ............................................................................ 80 3.4.3 Diagramas de Pacotes e Classes ............................................. 83 3.4.4 Diagrama Entidade-Relacionamento..................................... 89 3.4.5 Diagrama de Atividades ......................................................... 92 3.5 CONCLUSÕES DO CAPÍTULO ............................................. 93 4 IMPLEMENTAÇÃO .............................................................. 94 4.1 PADRÕES DE PROJETO MVC .............................................. 94 4.2 TECNOLOGIAS E FERRAMENTAS ..................................... 94 4.2.1 Servidor Web ........................................................................... 94 4.2.2 ExtJS ........................................................................................ 95 4.2.3 C/C++ ....................................................................................... 96 4.2.4 Java ..........................................................................................97 4.2.5 Arduino Builder ...................................................................... 97 4.3 BANCO DE DADOS................................................................ 98 4.4 PROTOCOLO DE CONFIGURAÇÕES DO ARDUINO ........ 99 4.5 APRESENTAÇÃO DA FERRAMENTA .............................. 101 4.5.1 Módulo Web InoSensor ........................................................ 101 4.5.1.1 Cadastro de Usuários .............................................................. 102 4.5.1.2 Configuração Geral ................................................................. 103 4.5.1.3 Configuração de E-mail .......................................................... 103 4.5.1.4 Tipo de Ação ........................................................................... 103 4.5.1.5 Sensor ...................................................................................... 104 4.5.1.6 Tipo de Porta ........................................................................... 104 4.5.1.7 Modelo de Arduino ................................................................. 105 4.5.1.8 Arduino ................................................................................... 105 4.5.1.9 Monitoramento ........................................................................ 111 4.5.2 Módulo Atualização de Firmware ....................................... 113 4.6 CONCLUSÕES DO CAPÍTULO ........................................... 113 5 TESTES E VALIDAÇÃO .................................................... 115 5.1 TESTES DO FIRMWARE DO ARDUINO ........................... 115 5.2 TESTES DE INTEGRAÇÃO ................................................. 117 5.3 TESTE DE ESCALABILIDADE DO FIRMWARE .............. 118 5.4 PROBLEMAS IDENTIFICADOS .......................................... 119 5.5 CONCLUSÕES DO CAPÍTULO ........................................... 121 6 CONCLUSÕES ..................................................................... 122 6.1 TRABALHOS FUTUROS ...................................................... 124 REFERÊNCIAS .................................................................... 125 APÊNDICES .......................................................................... 128 18 1 INTRODUÇÃO O uso de dispositivos eletrônicos, seja para a realização de tarefas do cotidiano ou para Automação industrial, está presente nos mais variados ambientes. O simples fato de utilizar um sensor infravermelho para detectar a presença de movimento, ou ligar uma lâmpada automaticamente ao escurecer, envolve componentes eletrônicos que reduzem a necessidade de executar tarefas manualmente. Independente da aplicação, o uso de tecnologia para Automação, seja para residências, empresas ou indústrias, proporciona o gerenciamento de recursos de forma bastante eficiente e sustentável, além de obter diversos benefícios como redução de custos, manutenção e segurança (DIAS; PIZZOLATO, 2004). A automação residencial, também conhecida como Domótica, é formada por um conjunto de dispositivos e equipamentos interconectados através de uma rede para comunicação. Nesse contexto, as informações são coletadas e processadas, conforme as regras são definidas. Determinadas ações podem ser executadas com o objetivo de supervisionar ou gerenciar o ambiente em que estão inseridas e assim satisfazer as necessidades de comunicação, conforto e segurança (DIAS; PIZZOLATO, 2004). Devido às constantes mudanças e às necessidades individuais de cada cenário, o comportamento de sistemas automatizados deve proporcionar flexibilidade e uma fácil adaptação às condições do ambiente (SGARBI; TONIDANDEL, 2006). Para Sousa (2009), com a crescente popularização da Internet, tornou-se possível desenvolver novos modelos de sistema baseados em ações executadas de forma remota e transparente para controle e atuação de forma bastante rápida e segura. Atualmente a velocidade de acesso a rede mundial de computadores, possibilita que as informações sejam transmitidas por diferentes meios e entre dispositivos geograficamente distribuídos, sem a necessidade de altos investimentos em infraestrutura. Estão disponíveis no mercado, plataformas que permitem a programação de microcontroladores de forma bastante simplificada a custos relativamente baixos se comparados à prototipação de hardware customizado para Automação. Arduino é uma das plataformas para prototipação e desenvolvimento baseada em microcontroladores mais populares da atualidade. Em 2011, já haviam sido vendidas mais de trezentas mil 19 unidades da versão original. Isso se deve principalmente à sua característica open source1, o que torna possível o desenvolvimento de diversas soluções para uma mesma arquitetura (TORRONE, 2011). Sua concepção envolve a combinação de diferentes modelos de hardware, empregados através de uma arquitetura e software padrão para a prototipação de circuitos eletrônicos sem exigir grandes conhecimentos, pois grande parte dos componentes são construídos para facilitar a utilização de sensores. Desenvolvida para controlar o ambiente em que está inserida, a interação entre os componentes na plataforma Arduino ocorre por meio dos sinais recebidos por sensores conectados as portas analógicas e digitais existentes na placa principal. O gerenciamento é realizado por um microcontrolador Atmel AVR. A programação é feita com o uso de uma variante da linguagem C, que permite criar projetos autônomos ou a comunicação com software de outros dispositivos eletrônicos (Arduino, 2013). Ainda que a simplicidade da plataforma facilite o desenvolvimento das mais variadas soluções, é necessário que os interessados, além de conhecimento em eletrônica básica, também tenham conhecimentos mais avançados de lógica e programação. Devido à ausência de um sistema operacional, a codificação de microcontroladores com limitações de processamento e memória exige maior atenção na elaboração do software que estará embarcado no dispositivo, pois todo controle necessário deve estar presente na solução. 1.1 FORMULAÇÃO DO PROBLEMA Muitas das ações envolvidas ao se criar projetos baseados em sensores incluem padrões e rotinas em código programado bastante semelhantes, mas que necessitam de retrabalho para ajustar as ações executadas. Essas atividades despendem tempo e dificultam a manutenção, quando uma simples parametrização poderia adaptar as regras e comportamentos desejados a um novo contexto. Segundo alguns princípios presentes na Automação e Domótica, é necessário que haja uma forma simples de gerenciar os dispositivos e 1 Software de utilização livre e sem custo que permite a alteração e distribuição de cópias de forma gratuita de acordo com a licença de software livre, visando beneficiar a comunidade de todos os desenvolvedores e usuários (SEABRA, 2007) 20 as ações que devem ser executadas com base nas regras estabelecidas. Levando-se em conta o ambiente que se deseja controlar ou monitorar, é preciso que se considere a possibilidade de realizar um monitoramento remoto de forma centralizada, para facilitar e acelerar o processo de análise de informações. A plataforma Arduino possui soluções simples para as mais variadas tarefas, porém é necessário programar os sensores sempre que for preciso ajustar as condições e ações que devem ser automatizadas. Estão disponíveis na Internet soluções com as quais é possível executar comandos de forma remota no Arduino como uso da comunicação serial. Isso acaba por limitar a autonomia do dispositivo em ambientes distribuídos, devido à necessidade de um computador para prover o serviço de conexão da rede ou Internet para o Arduino. 1.2 SOLUÇÃO PROPOSTA Neste trabalho, foi desenvolvida a ferramenta InoSensor, com o propósito de facilitar e simplificar o processo de adição de sensores e permitir o monitoramento e controle de Arduino em uma rede local ou Internet. Sua utilização estende-se como uma ferramenta de apoio para disciplinas como Eletrônica Básica e Redes de Computadores, pois pode facilitar a compreensão de conceitos teóricos aprendidos em cursos de graduação com foco em tecnologia ou para pessoas interessadas em alternativas para Automação de baixo custo. A proposta da solução InoSensor contempla o desenvolvimento dos seguintes módulos: (i) Sistema Web para gerenciamento de Arduino; (ii) Firmware para interpretar as ações e comunicar com o sistema gerenciador Web; e (iii) Sistema para atualização de firmware de Arduino. A execução e desenvolvimento deste projeto justificam-se por contemplar e integrar diversas áreas do curso de Especialização de Desenvolvimento de Software, como engenharia de software, sistemas web, padrões de projeto, programação, sistemas distribuídos, redes de computadores e banco de dados, além de contribuir para o meio acadêmico como uma ferramenta de apoio para disciplinas como Eletrônica Básica, Programação e Sistemas Distribuídos. 21 1.3 OBJETIVOS Esta subseção define as metas e características necessárias para que a proposta da ferramenta desenvolvida atinja os objetivos definidos para a solução do problema. 1.3.1 Objetivo geral Desenvolver um sistema de monitoramento de sensores para a plataforma Arduino por meio de uma rede local ou Internet para simplificar o processo de ajuste de configurações, sem a necessidade de reprogramar o firmware em caso de mudanças de regras e ações. 1.3.2 Objetivos específicos Estudar os conceitos relacionados à Domótica, sensores, comunicação via rede ethernet e armazenamento de dados para Arduino; Pesquisar soluções similares de ferramentas para gerenciamento de sensores com Arduino; Pesquisar as tecnologias necessárias para o desenvolvimento do projeto; Elaborar a modelagem conceitual do sistema; Implementar o sistema; Módulo para gerenciamento de Arduino; Módulo para cadastro de sensores; Sensor de temperatura e umidade; Relé; Foto resistor; Sensor de fogo; Sensor de vibração; Sensor magnético; LED RGB; Buzzer; Sensor de presença infravermelho. Módulo para cadastro de ações Enviar e-mail; Acionar sensor; Ligar LED RGB. 22 Módulo para reset remoto de alarme; Módulo para atualização de configurações; Firmware para controle de sensores e ações para Arduino; Sistema de apoio à atualização de firmware; Desenvolver protocolo para troca de informações entre gerenciador e Arduino. Testar e validar a implementação das funcionalidades propostas pela ferramenta; Documentar o desenvolvimento e resultados alcançados. 1.4 METODOLOGIA A estrutura deste trabalho foi dividida em seis grandes etapas, listadas abaixo: Levantamento bibliográfico: Documentar os temas envolvidos neste trabalho para facilitar a compreensão e selecionar as soluções mais adequadas para o desenvolvimento da ferramenta InoSensor; Fundamentação teórica sobre a área de Automação e Domótica na área da Computação; Fundamentação teórica sobre Arduino, shields e sensores com o objetivo de identificar as características e particularidades da plataforma, bem como os mecanismos necessários para gerenciar os dispositivos conectados; Pesquisa de soluções similares para Automação com Arduino a fim de avaliar inovações e soluções eficazes existentes. Análise técnica: Estudo das tecnologias necessárias para o desenvolvimento da ferramenta proposta, suas particularidades e compatibilidades; Estudo das tecnologias envolvidas na ferramenta: JavaScript Object Notation (JSON), framework ExtJS, Javascript, PHP, MySQL, Java e C++ para microcontroladores Atmel presentes no Arduino; Padrões de projetos Model View Controller (MVC) para PHP e JavaScript, com o objetivo de facilitar a ampliação da ferramenta em versões futuras; Avaliar os protocolos de comunicação e bibliotecas disponíveis para Arduino, tanto para comunicação via 23 ethernet quanto para armazenamento de dados em cartão de memória SD; Pesquisar soluções para atualização de firmware sem a necessidade da IDE de desenvolvimento para Arduino. Levantamento de requisitos e modelagem: Definição dos requisitos e funcionalidades da ferramenta proposta; Definição dos requisitos e regras de negócio necessários para contemplar o funcionamento da ferramenta InoSensor; Modelagem Unified Modeling Language (UML) do sistema, a análise deverá abranger a especificação e componentes de software necessários para desenvolver os módulos propostos no escopo do trabalho. Para isto serão modelados, casos de uso, diagrama de atividades e diagrama de pacotes e diagrama de classes; Definição do modelo Entidade Relacionamento (ER) para o banco de dados utilizado no servidor Web. Desenvolvimento: Desenvolvimento do sistema, seguindo o escopo e a definição do projeto; Definição da estrutura de banco de dados para suprir as necessidades do sistema; Implementação dos módulos propostos conforme a definição dos requisitos. Todo o desenvolvimento deve seguir a modelagem e as funcionalidades descritas no escopo do trabalho. Testes e validação: Executar testes e validações da solução proposta e verificar as funcionalidades desenvolvidas, corrigindo-as caso seja necessário; Testes das funcionalidades presentes, avaliando se os serviços implementados alcançaram os resultados esperados; Testes de comunicação de rede e atualização de dispositivos via ethernet para certificar-se de que a atualização é executada corretamente. Documentação: Durante o projeto, são registradas as etapas executadas desde o levantamento do problema, a fundamentação teórica, a proposta da solução, o desenvolvimento, testes, validações, os resultados finais e as conclusões. Esta documentação deve permitir que interessados possam compreender a solução, acrescentar novas 24 funcionalidades em versões futuras e efetuar os mesmos testes executados para a validação do projeto. 1.5 ESTRUTURA DO TRABALHO No primeiro capítulo, é apresentada uma introdução sobre o projeto, objetivos, a devida importância do projeto na assimilação e aplicação dos temas abordados no curso de Especialização em Desenvolvimento de Software. No segundo capítulo (Fundamentação Teórica), são definidos os conceitos relacionados a Automação, Domótica, soluções para automação residencial e Arduino e meios de comunicação, além de um estudo de soluções similares disponíveis, para comparação com a ferramenta InoSensor. O terceiro capítulo (Projeto) descreve as especificações das funcionalidades da ferramenta InoSensor, sua documentação, diagrama de atividades da UML, requisitos e regras de negócio, diagrama de pacotes, diagrama de classes e modelo ER do banco de dados. No quarto capítulo (Implementação) e quinto capítulo (Apresentação da Ferramenta), são apresentados os resultados obtidos durante a implementação da ferramenta, descrevendo as funcionalidades implementadas. O quinto capítuloapresenta os resultados dos testes aplicados para avaliar a conformidade dos requisitos e verificar a integração entre os módulos desenvolvidos. O sexto e último capítulo apresentam as conclusões, dificuldades encontradas durante o desenvolvimento e sugestões para trabalhos futuros que possam aprimorar e expandir as funcionalidades presentes na ferramenta. 25 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo, são abordados os conceitos necessários para o projeto, a fim de servir como base para o desenvolvimento da solução proposta pela ferramenta InoSensor. A seção 2.1 apresenta o estudo sobre Automação, sua evolução com o uso de computadores e os conceitos relacionados a esse trabalho, como sensores e atuadores. Na seção 2.2, são abordados os temas relacionados a Domótica e os benefícios que podem ser gerados com o seu uso. Na seção 2.3, são apresentadas algumas das soluções existentes no mercado para a Automação residencial e predial. Os estudos da plataforma Arduino, suas particularidades e os conceitos necessários ao desenvolvimento da solução proposta, são apresentados na seção 2.4. A seção 2.5 apresenta um estudo de ferramentas similares existentes e um comparativo entre as funcionalidades das ferramentas pesquisadas e a ferramenta InoSensor. Por fim, na seção 2.6, são apresentadas as considerações dos estudos da fundamentação teórica. 2.1 AUTOMAÇÃO Desde a antiguidade o homem tem buscado ferramentas para reduzir a carga de trabalho e para facilitar a execução de tarefas de forma automatizada, desenvolvendo instrumentos que o auxiliem a controlar e alcançar seus objetivos de forma mais rápida. A área de Automação foi impulsionada com o crescimento adjunto da Revolução Industrial e trouxe diversos benefícios, tanto para o setor industrial, com a introdução das máquinas para substituir o homem e melhorar os processos produtivos, quanto para as pessoas, que puderam despender seu tempo em atividades mais importantes para melhorar a sua condição de vida (BIONDO, 2011). Para Martins (2012), a Automação pode ser definida por um conjunto de técnicas que possibilitam construir sistemas ativos, capazes de atuar de forma autônoma com base em informações recebidas no meio que atuam, de forma bastante eficiente. Uma das características presentes na Automação é a realização de trabalhos por sistemas apoiados por computadores, com o objetivo de reduzir a intervenção humana e obter maior segurança, qualidade e rapidez. Um erro comum é confundir a Automação com automatização, que está relacionada à execução de movimentos automáticos, repetitivos e mecânicos. 26 A Automação permite a integração de conhecimentos, substituindo observação, esforços e decisões humanas por dispositivos (mecânicos, elétricos e eletrônicos) e software desenvolvido para gerenciamento e controle. Essa integração é ilustrada na Figura 1 e demonstra a interdisciplinaridade entre áreas afins como: (i) a computação, responsável por prover os mecanismos necessários à modelagem, análise e simulação do software, (ii) a eletrônica, responsável por processar os sinais e controlar os equipamentos, (iii) a mecânica, formada por todos os equipamentos conectados que formam a parte física do sistema e (iv) sistema de controle, responsável por definir o comportamento e ações desejadas do sistema (MARTINS, 2012). Figura 1 – Interdisciplinaridade na Automação Fonte: ROSARIO (2009) Antes da Automação ser realizada por computadores, o controle de tarefas e comandos de máquinas era feito por circuitos com válvulas eletrônicas e equipamentos de controle, medição elétrica e pneumática conectados a fios elétricos. A adaptação a um novo contexto exigia a modificação nas conexões, sendo que em muitos casos tornava-se mais barato substituir o sistema por um novo painel controlador (ROSARIO, 2009). 27 Por volta da década de 70, os avanços tecnológicos permitiram a substituição das válvulas por transistores e dos fios por circuitos integrados, trazendo inúmeros benefícios. Esses avanços possibilitaram transferir as modificações de hardware para o software e deram origem aos Controladores Lógicos Programáveis (CLPs), que possuem memória programável e executam instruções de entrada e saída (MARTINS, 2012). A produção desses equipamentos em larga escala, possibilitou o desenvolvimento de microprocessadores dedicados a um baixo custo. A utilização de componentes eletrônicos como sensores, atuadores e circuitos controladores não está mais limitada a ambientes industriais e são empregados em diversas áreas de aplicações como robótica, medicina, automação predial e Domótica (MARTINS, 2012). Qualquer que seja o emprego da Automação, é necessário que existam mecanismos para determinar condições variáveis (e.g., temperatura, luminosidade, umidade) do ambiente e informar ao circuito eletrônico a ocorrência de eventos para avaliar e comandar a execução de ações desejadas (WENDLING, 2010). Dois dos principais elementos que podem ser encontrados na Automação são os sensores e os atuadores. 2.1.1 Sensores Um sensor pode ser descrito como um dispositivo eletroeletrônico que possui a propriedade de transformar uma grandeza física (e.g., calor, luz, som, movimento) relacionada ao material utilizado na fabricação do sensor em um sinal elétrico. Pode-se citar como exemplos: (i) sensores de fotodiodos para conversão elétrica/luminosa, (ii) termistores para conversão elétrica/térmica e (iii) sensores magnéticos para conversão elétrica/magnética (WENDLING, 2010). A Figura 2 ilustra diferentes tipos de sensores que podem ser utilizados com a plataforma Arduino. 28 Figura 2 – Exemplos de sensores para Arduino Fonte: Adaptado de DX2 (2013) Os sinais gerados por sensores podem ser manipulados, armazenados ou servir como base para processamento por outros dispositivos. Podem ser utilizados em sistemas de monitoramento para detectar abertura de portas, movimento de pessoas, vibrações, ruídos, princípios de incêndio e temperatura (SOUSA, 2009). Alguns sensores não possibilitam a leitura do sinal gerado diretamente pelo sistema de controle, sendo necessário um circuito de interface responsável por produzir um sinal que possa ser lido pelo controlador. O dispositivo completo, formado pelo sensor e o circuito de interface, é denominado transdutor. Como exemplos, podem ser citados os transdutores de temperatura, detecção de presença, velocidade, campo eletromagnético, etc. (WENDLING, 2010). 2.1.2 Atuadores Um sistema automatizado deve possibilitar a execução de ações baseadas em eventos e informações coletadas do ambiente pelos sensores. Os atuadores agem sobre o ambiente através de um sinal gerado pelo controlador e normalmente são compostos por uma interface eletromecânica que tem suas características alteradas conforme os impulsos elétricos recebidos (PINHEIRO, 2013). Como os atuadores estão relacionados à interface de saída, existem basicamente dois tipos: 2 Disponível em: http://www.dx.com/ 29 Saídas digitais: representadas por valores discretos, que permitem determinar se uma grandeza física atingiu um valor predeterminado e admitem o estado ligado e desligado. Essas saídas possibilitam controlar dispositivos como relés, solenoides, LEDs (WENDLING, 2010); Saídas analógicas: convertem valores contínuos em sinais de saída de tensão, normalmentevariando entre 0V e 5V. Essas saídas podem controlar motores e luminosidade (ALIEVI, 2005). 2.2 DOMÓTICA Por volta dos anos 80, a Automação presente nas indústrias alcançou as edificações corporativas e originou um novo conceito denominado de edifício inteligente, que possibilitou o emprego de componentes e soluções para proporcionar diversos benefícios, tais como: gerenciamento, conforto, economia e prevenção de acidentes (DIAS, PIZZOLATO, 2004). A aplicação dos conceitos de Automação em edifícios torna os ambientes mais produtivos, saudáveis e eficientes, além de contribuir para o aumento da produção e redução de custos operacionais. Estes fatores permitiram o emprego mais fácil da Automação em ambientes comerciais e industriais, em relação aos habitacionais (DIAS, PIZZOLATO, 2004). Com o passar dos anos, os mesmos princípios de Automação passaram a ser aplicados nas residências, utilizando equipamentos direcionados a criação de casas inteligentes com ênfase no controle de recursos, iluminação, segurança, temperatura, conforto e entretenimento. Com a grande popularização, a Automação residencial passou a ter uma designação própria, conhecida como Smart House ou Intelligent House. No Brasil, é empregado o termo Domótica, sob influência do termo francês Domotique (ROSARIO, 2009). A Domótica agrega diversos conceitos de outras ciências, como arquitetura, engenharia, computação e possui o objetivo de oferecer novas possibilidades, introduzidas pelas tecnologias digitais frente as necessidades do usuário, e uma maior interação com a residência (BOLZANI, 2007). Um sistema Domótico é formado por diversos componentes, dispositivos e sistemas interconectados por meio de uma rede de comunicação. Essa rede é responsável pela troca de informações e pela 30 execução de ações para supervisionar e gerenciar o ambiente no qual o sistema está inserido (DIAS, PIZZOLATO, 2004). A Automação residencial está cada vez mais acessível, devido ao barateamento das tecnologias e ao aumento da concorrência no setor. O uso de soluções integradas gera ainda mais vantagens, podendo ser citadas a redução de custos, maior facilidade para a instalação e expansões do sistema (ROSARIO, 2009). No Brasil, a Associação Brasileira de Automação residencial (AURESIDE) menciona que o emprego da Domótica em construções residenciais e prediais, além de ser uma ferramenta de marketing, é um diferencial para o setor, pois agrada tanto os desejos de pessoas interessadas por tecnologia, que estão sempre em busca de novidades, quanto pessoas que anseiam por maior segurança, ambas características que podem ser encontradas em sistemas de automação predial (DIAS, PIZZOLATO, 2004). As inúmeras soluções tecnológicas que podem ser incorporadas na Domótica criam novas oportunidades, aumentando a qualidade de vida das pessoas e até mesmo removendo impedimentos que dificultam a mobilidade de pessoas portadoras de necessidades especiais, além de possibilitar um maior racionamento no consumo de recursos como água e luz e auxiliar na preservação do meio ambiente (DIAS, PIZZOLATO, 2004). Uma das utilidades da Domótica é aliar o uso de dispositivos eletrônicos à equipamentos da informática de forma sistêmica e possibilitar uma gestão integrada de recursos presentes em um ambiente. Segundo Rosário (2009), essa ciência tem tornado a vida mais confortável, segura e até mais divertida, com a programação de tarefas rotineiras para serem executadas de acordo com as necessidades. De face a essa nova realidade, as residências podem usufruir de benefícios de sistemas denominados complexos, que não atuam somente como controladores, mas sim como gerenciadores, com a troca de informações entre todos os sistemas que compõem as instalações automatizadas, para que as funcionalidades possam ser personalizadas pelo cliente (DIAS, PIZZOLATO, 2004). As necessidades de economia, conforto e segurança criam as condições ideais para viabilizar o emprego da Domótica em questões como (ROSÁRIO, 2009): Controle de Energia e Água: O uso de módulos apropriados possibilita uma melhor gestão de recursos, levando-se em consideração os aspectos do ambientes que se deseja controlar. 31 É possível, por exemplo, o acionamento noturno de equipamentos, detecção de presença e desligamento automático após um determinado tempo. Já para o racionamento de água, é possível realizar o controle com o emprego de sensores de presença, botão temporizador, irrigação do solo conforme as condições de umidade da terra (Figura 3); Figura 3 – Exemplo de sensor de umidade do solo Fonte: DX (2013) Controle de Segurança: Existem diversos sensores para controle da segurança em diferentes níveis, que determinam as ações a serem executadas, baseadas nos eventos ocorridos. Com apenas alguns componentes, é possível detectar situações de emergência como: vazamento de gás, detecção de presença, prevenção de incêndios, controles de acessos, abertura de portas e janelas e emissão de sinais sonoros ou luminosos. O uso de sensoriamento em um sistema de alarme possibilita proteger áreas comercias e residências e foi desenvolvido para manter as dependências seguras de forma simples, executando ações como disparo de alarmes, acendimento de lâmpadas, etc; Controle de Temperatura e Umidade: São fatores de comodidade. Através do controle térmico, é possível programar equipamentos de aquecimento, ventilação, desumidificadores e condicionadores de ar para serem ligados ou desligados e propiciar um melhor nível de conforto, além de gerar maior comodidade e propiciar o uso racional de energia. 32 Levando-se em conta as necessidades da Automação, é primordial que os equipamentos sejam integrados e interligados com o objetivo de oferecer aos usuários a ampliação dos resultados desejados. Em relação à tecnologia empregada, os sistemas de automação podem ser categorizados de duas formas (DIAS, PIZZOLATO, 2004): Centralizado: São os sistemas nos quais o processamento ocorre de forma centralizada em uma central de controle, onde são conectados todos os dispositivos presentes no circuito. Essa central é responsável por receber os sinais e informações dos sensores e enviar os comandos das ações e ajustes que devem ser executados no sistema; Distribuído: Os dispositivos conectados possuem processamento inteligente, cada qual com uma função específica para atender uma necessidade do sistema. Os dispositivos apresentam-se conectados por meio de uma rede, realizando a comunicação e troca de informações entre sensores e atuadores, além de possibilitar o controle e monitoramento do sistema. Independente da arquitetura, um sistema de Automação deve prover flexibilidade no desenvolvimento das soluções e na integração dos dispositivos, dessa forma é necessário escolher a tecnologia adequada ao projeto de Automação. Apesar dos benefícios propostos pela Domótica, ainda existem diversos desafios a serem superados principalmente por existirem poucos protocolos e dispositivos padronizados para a aplicação de soluções em residências, onde muitas destas soluções são herdadas dos ambientes de Automação industrial. Devido à crescente demanda, existem diversas entidades nacionais e internacionais que buscam definir mecanismos para padronizar o emprego de soluções tecnológicas residenciais, como a Continental Automated Buildings Associations (CABA), a Open Service Gateway Initiative (OSGI) e a Custom Electronic Design and Installation Association (CEDIA) (BOLZANI, 2007).Atualmente, no Brasil, existem normas internacionais relacionadas à definição dos padrões de cabeamento para sistemas de Automação. Destacam-se a ANSI/EIA/TIA-570-A para cabeamento residencial e a norma ANSI/EIA/TIA-862, para edifícios comerciais (PINHEIRO, 2004). 33 Um dos destaques no cenário atual do mercado é a Zigbee Alliance, responsável por desenvolver um padrão de redes sem fio (Figura 4) de baixo custo, também conhecido como Xbee, destinado a aplicações embarcadas, formada por dezenas de empresas como Mitsubishi, Samsung, Cisco, Philips, Motorola, entre outras (DIAS, PIZZOLATO, 2004). Figura 4 – Módulo de comunicação sem fio Xbee Fonte: DX (2013) 2.3 SOLUÇÕES PARA AUTOMAÇÃO DOMÓTICA Grandes corporações estão se unindo para formar consórcios e associações para aperfeiçoar e desenvolver soluções integradas de produtos e sistemas de Automação residencial. Nas subseções a seguir, são descritas algumas das soluções convencionais existentes para aplicação da Domótica. 2.3.1 X10 Desenvolvida na década de 70 pela empresa escocesa Pico Electronics, é uma tecnologia para controlar dispositivos em residências através da transmissão de dados binários pela corrente elétrica. Atualmente, o protocolo também está disponível para operar via rádio frequência (WOLLZ, 2012). Devido ao tempo de mercado, o sistema X10 é um dos protocolos mais utilizados no mundo para Automação residencial, principalmente devido a expiração da patente no ano de 1997, que possibilitou a fabricação dos dispositivos por diferentes empresas, além de uma grande difusão e diversificação de produtos (WOLLZ, 2012). 34 Uma das grandes vantagens desse sistema é a facilidade de instalação, já que a comunicação é feita na própria estrutura de rede elétrica (DIAS, PIZZOLATO, 2004). Existem dois tipos de dispositivos no sistema X10, os transmissores e os receptores. Os transmissores (Figura 5) são responsáveis por enviar sinais de comando para os equipamentos que serão controlados (ROSARIO, 2009). Existem diferentes tipos de controladores, podendo ser citados: (i) módulo transmissor serial, para envio de comandos para a rede elétrica e gerenciamento dos receptores pelo computador; (ii) módulo transmissor termostato, que possibilita ligar e desligar equipamentos com base na temperatura ajustada; (iii) módulo transmissor para controle via telefone, pelo qual pode-se receber comandos via linha telefônica e controlar os equipamentos da rede. Figura 5 – Transmissor X10 Fonte: ROSARIO (2009) Os receptores são os equipamentos que recebem os comandos dos transmissores, sendo que um receptor pode ser controlado por mais de um controlador (ROSARIO, 2009). Entre os modelos convencionais de receptores, podem ser citados: (i) o módulo receptor de lâmpada com função de ligar, desligar, ajuste de intensidade luminosa (dimmer); (ii) módulo receptor para tomada, para ligar e desligar equipamentos elétricos. 35 O funcionamento é bastante simples. Cada receptor (Figura 6) deve ser configurado com um endereço formado por um código da casa representado por uma letra (A-P), seguido por um identificador para o receptor (A1-A16), totalizando 256 endereços possíveis de serem configurados. Após a configuração, um transmissor conectado na mesma rede elétrica ou frequência pode enviar um comando para controlar um equipamento em um endereço específico ou até mesmo todos os equipamentos configurados em um mesmo código de casa (ROSARIO, 2009). Figura 6 – Exemplo de Receptor Fonte: ROSARIO (2009) Os modelos mais simples de receptores não permitem que seu status seja detectado pelos transmissores. Os modelos que possibilitam desenvolver sistemas mais robustos com comunicação em mão dupla e retroalimentação de status, custam de duas a quatro vezes mais (WOLLZ, 2012). Apesar dos benefícios propostos pelo X10, existem limitações que devem ser consideradas e solucionadas com o emprego de técnicas e recursos apropriados. Em relação à segurança, é necessário instalar filtros nas entradas da residência para impedir a entrada ou saída de 36 sinais gerados por outros módulos X10. Para casos em que a residência utilize circuito bifásico ou trifásico, a transmissão do sinal deve ser feita em diferentes fases. Outro fator importante é a limitação da velocidade de comunicação, pois a taxa máxima de transmissão é de 60bps. Em condições que necessitam de maior velocidade e confiabilidade, deve-se optar por soluções mais robustas e confiáveis (DIAS, PIZZOLATO, 2004). 2.3.2 IHC A Inteligent Home Control (IHC) é uma tecnologia proprietária para Automação residencial com comunicação via cabeamento estruturado. Baseada em uma arquitetura centralizada, os dispositivos presentes na instalação do sistema são conectados a um equipamento central, responsável pelo gerenciamento local por um controle remoto ou, remotamente, com o uso de telefone, Internet e smartphones (DIAS, PIZZOLATO, 2004). A configuração do sistema é feita através da programação das funções dos dispositivos em um software baseado em perguntas e respostas, responsável por adaptar as necessidades e preferências do usuário. Como o IHC é desenvolvido em uma plataforma modular padronizada, suas funcionalidades podem ser adaptadas e expandidas de forma gradativa e implantadas em etapas (TERUEL, 2008). Entre os principais módulos responsáveis pelo funcionamento existentes no sistema IHC (Figura 7), podem ser citados (DIAS, PIZZOLATO, 2004): Módulo gerenciador: responsável pelo gerenciamento do sistema, é uma unidade composta por um microprocessador responsável por receber os comandos dos dispositivos e pelas ações feitas com base nas configurações do usuário. Possui uma capacidade máxima de 128 entradas e 128 saídas (SCHNEIDER ELECTRIC, 2013); Módulos de Entrada: Possibilitam ao sistema ler informações do ambiente e são responsáveis por receber os sinais provenientes de dispositivos acionadores conectados na rede. Cada módulo de entrada possui 16 portas digitais; Módulo de Saída: Possui a função de acionar os dispositivos de saída conectados e ativar luzes e LEDs de acordo com o 37 estado dos equipamentos e do sistema. Cada módulo de saída suporta 8 saídas digitais ou dimmerizadas; Módulos de alimentação de energia: São empregados quando os módulos de entrada e saída não fornecem corrente elétrica suficiente para equipamentos que necessitam de tensão própria para o funcionamento; Módulo de comunicação remota: Permite gerenciar e controlar os equipamentos do sistema pela linha telefônica ou Internet. Figura 7 – Esquemática de comunicação dos módulos IHC Fonte: SCHNEIDER ELECTRIC (2013) A tecnologia IHC pode ser considerada uma plataforma bastante sólida com inúmeras soluções para Automação de residências e edifícios, porém a arquitetura proprietária reduz a possibilidade de 38 integrar os equipamentos a outros sistemas e as funcionalidades de software estão limitadas às soluções disponibilizadas pela empresa. 2.3.3 Sistema Lonworks Também conhecido como LON, foi projetado pela empresa Echelon Corporation em 2005. Foi originado de um grande conjunto de protocolos e do sistema Fieldbus, empregado na Automação Industrial na década de 60 (BIONDO, 2011). A principal motivação no desenvolvimento de um novo padrão era fornecer uma plataforma comum para a interoperabilidade de dispositivos de diferentes fabricantes. A comunicação entre os equipamentos é feitapor cabeamento estruturado através do protocolo LonTalk, implementado com base no modelo Open Systems Interconnection (OSI) que permite distribuir o processamento de carga e controlar de dois até trinta e dois mil dispositivos (TERUEL, 2008). No sistema LON, o controle é descentralizado. Os dispositivos denominados “Nós”, são compostos por um microcontrolador Neuron, comunicando-se por um protocolo Peer to Peer (P2P) entre os atuadores e sensores, sem a necessidade de transmitir as informações para uma central de processamento. Esse sistema também faz a comutação das mensagens em diferentes meios físicos, como fibra ótica, infravermelho, radio frequência, par trançado, bastando para isso que transmissores e receptores sejam compatíveis a um mesmo meio (BIONDO, 2011). Todo o controle é realizado pelo software Lonwork Network Service, composto por uma Application Programming Interface (API) para permitir a programação, gerenciamento e diagnóstico, além de suportar o protocolo IP que possibilita a integração da rede com a Internet (BIONDO, 2011). A aplicação da tecnologia LON é reconhecida pela American National Standards Institute (ANSI) e é adotada como padrão aberto para instalação em ambientes industriais, prediais e residenciais, além de ser uma das três tecnologias recomendadas para automação predial pela Inteligent Building Institute (IBI) (WOLLZ, 2012). Apesar dos benefícios propostos, a interoperabilidade entre equipamentos desenvolvidos por diferentes fabricantes é baixa pois, por serem equipamentos importados, o custo de implantação torna-se caro para o uso na Domótica. 39 2.4 ARDUINO Arduino é uma plataforma open source criada para a prototipação de circuitos eletrônicos de forma flexível e foi desenvolvida com o intuito de ser utilizado por pessoas com conhecimentos básicos em eletrônica, engenharia ou programação (GERTZ; JUSTO, 2012). Criado originalmente na Itália no ano de 2005 por Massimo Banzi e David Cuartielles, Arduino é um nome próprio originado de um rei italiano que significa “forte amigo” (WHEAT, 2011). A placa normalmente na cor azul é o objeto mais conhecido da plataforma e é composta por portas de conexão para comunicação com outros dispositivos. Um dos principais componentes presentes na placa principal do Arduino é o microcontrolador AVR Atmel, responsável pelo processamento e que pode ser facilmente programado com instruções para possibilitar a interação com o meio externo por meio das portas de entradas e saída (GERTZ; JUSTO, 2012). 2.4.1 Hardware Apesar de existirem diferentes modelos de placas, sua arquitetura de hardware é bastante semelhante, sendo que as principais diferenças estão na capacidade de memória, processamento e o número de portas analógicas e digitais disponíveis (BOXALL, 2013). O Arduino Uno (Figura 8) foi anunciado em setembro de 2011 e foi o marco inicial para o lançamento oficial da versão 1.0 do software de desenvolvimento. Nessa versão, a comunicação serial era feita com um conector SRS-232 e o hardware era equipado com um microcontrolador ATmega8 com frequência máxima de 16MHz e 8KB de memória de programa (WHEAT, 2011). Desde o lançamento oficial, novas versões foram lançadas e suas funcionalidades aprimoradas. Nos modelos mais recentes (Figura 9), a comunicação serial é feita por uma interface Universal Serial Bus (USB), com um circuito Future Technology Devices International (FTDI), que faz a conversão de SRS-232 para USB (WHEAT, 2011). 40 Figura 8 – Primeiro modelo de Arduino projetado Fonte: WHEAT (2011) Figura 9 – Modelo atual do Arduino Uno Fonte: WHEAT (2011) Semelhante ao Arduino UNO, o Arduino Mega (Figura 10) diferencia-se pelo tamanho um pouco maior, pela quantidade de portas disponíveis e pelo emprego de um processador ATmega com maior capacidade de memória. 41 Figura 10 – Arduino Mega Fonte: WHEAT (2011) O diagrama da Figura 11 apresenta uma arquitetura simplificada dos principais componentes presentes na placa de um Arduino: porta serial USB, fonte de energia, portas de entrada e saída (também conhecidas como conectores de expansão) e o microcontrolador. Os componentes deste diagrama são descritos nas subseções a seguir. Figura 11 – Principais componentes do hardware do Arduino Interface Serial USB Conectores de Expansão Placa de I/O Arduino Microcontrolador Atmel Conectores de Expansão Fontes de Alimentação Fonte: Adaptado de WHEAT (2011) 2.4.1.1 Fonte de alimentação Por se tratar de um dispositivo eletrônico, é necessário que exista uma fonte de energia para o funcionamento do Arduino. A 42 alimentação de energia pode ser fornecida de três formas (Figura 12): pela porta USB, pelo conector de alimentação externa ou pela porta de tensão não regulada (VIn) com limite de 5V. Nas placas atuais, mais de uma alimentação de energia pode ser usada, devido à presença de um circuito inteligente capaz de identificar e selecionar a fonte de alimentação com maior voltagem. Este circuito regulador também possui a função de estabilizar a tensão de 5V que será fornecida para o circuito (WHEAT, 2011). Figura 12 – Alimentação de energia do Arduino Fonte: WHEAT (2011) A alimentação de energia, quando fornecida pela porta USB, provê uma tensão de 5V e corrente variando de 100mA quando conectado como um dispositivo não enumerado, e até 500mA quando conectado como um dispositivo enumerado (WHEAT, 2011). Essa energia pode ser suficiente para fornecer tensões de 3.3V e 5V nas portas de alimentação, para sensores de baixo consumo (Figura 13), porém para sensores e dispositivos que necessitam de maior carga (e.g., reles, motores, solenoides), deve-se considerar uma fonte de alimentação alternativa para ligá-los, caso contrário poderá ocorrer uma sobrecarga de tensão, ocasionando a queima do circuito. Em alguns modelos de Arduino, existe um regulador de tensão de 3.3V utilizado principalmente por modelos de placas mais antigos na interface de comunicação USB FTDI (WHEAT, 2011). No mesmo conjunto de portas de energia, existe uma porta denominada reset, para reinicializar o dispositivo ao se fornecer uma tensão de 5V. Os conectores também são equipados com duas portas GND, que estão relacionadas com o polo negativo do circuito. 43 Figura 13 – Portas de alimentação de energia para sensores Fonte: WHEAT (2011) É importante ressaltar que a alimentação fornecida afeta diretamente a frequência com que o processador irá operar. Por exemplo, o microcontrolador ATmega328 (Arduino Uno) pode operar com tensão variando entre 1.8V e 5.5V, o que permite trabalhar com frequências entre 4MHz e 20 MHz. Para o modelo ATmega2560 (Arduino Mega) a frequência é de 16MHz e não possui variação com tensão menor (WHEAT, 2011). 2.4.1.2 Porta USB Nos modelos convencionais do Arduino, a interface USB possui três funções básicas (BOXALL, 2013): Alimentação de energia: Fornece energia para o circuito do Arduino e sensores conectados às portas; Gravação de firmware: Um dos mecanismos básicos para a atualização de código do microcontrolador é feito com o envio das instruções programadas através da porta USB, também conhecido como upload de código. Essa tarefa normalmente é feita pela Integrated Development Environment (IDE) do Arduino; Troca de informações: A interface USB oferece conectividade para a troca de informações do computadorcom os dispositivos conectados e vice-versa. 44 O modo de operação para comunicação serial é realizado pelo padrão SRS-232. Esse mecanismo é baseado em um modo assíncrono, que opera no mesmo clock do processador durante a comunicação serial. Quando a comunicação serial é feita via interface USB, duas portas são utilizadas para essa tarefa, a porta zero RX para recepção e a porta um TX para transmissão, portanto o uso destas portas para outros fins depende da necessidade da comunicação serial ou não. As placas do Arduino normalmente são equipadas com Light Emitting Diode (LED) para facilitar a identificação da recepção e a transmissão de informações pela comunicação serial (Figura 14). Figura 14 – Identificação de operação na comunicação serial Fonte: WHEAT (2011) 2.4.1.3 Microcontrolador O microcontrolador (Figura 15) é responsável pelo processamento das instruções do firmware e pelo controle das operações do Arduino. Esse componente pode estar presente de duas formas: soldado na placa no modelo Semi Metalic Disc (SMD) ou montado sob um invólucro conectado na placa principal, sendo que o segundo modelo permite a troca do chip apenas desconectando-o da placa principal (WHEAT, 2011). Os microcontroladores são circuitos integrados caracterizados por incorporar diversos elementos dentro de um mesmo componente. Um microprocessador necessita que outros componentes sejam adicionados para poder operar, como por exemplo memória, chipset e barramentos para enviar e receber dados. A existência desses 45 componentes dentro do mesmo circuito é o principal aspecto que diferencia um microprocessador de um microcontrolador, tornando-o um sistema computacional completo (SALLES, 2009). Figura 15 – Microcontrolador Atmel no Arduino Fonte: WHEAT (2011) Nota: Na parte superior da figura, um exemplo de microcontrolador montado, na parte inferior exemplo de um microcontrolador soldado. Os microcontroladores Atmel AVR possuem a característica de serem eficientes em termos de consumo energético e desempenho. São desenvolvidos com a tecnologia Reduced Complexity Instruction Set Computer (RISC) de 8 bits formado por instruções de 16 e 32 bits (ATMEL, 2013). Apesar de muitos acharem que a arquitetura RISC objetiva reduzir o número de instruções, na realidade o objetivo é reduzir a complexidade das instruções para serem executadas no menor número de ciclos possíveis, fazendo com que não seja necessário executar processamentos adicionais para decodificar as instruções (ATMEL, 2013). O software escrito para Arduino, também denominado firmware, é carregado para a área de memória dos microcontroladores Atmel através de um software conhecido como bootloader. O bootloader fica armazenado na área de memória de programa e sua 46 responsabilidade é possibilitar a comunicação do dispositivo com a interface USB pela qual o firmware é carregado. Esse código é sempre executado na inicialização e permite ao ambiente de desenvolvimento enviar o comando de reinicialização para começar o envio do novo firmware. Em processadores, a velocidade pode ser medida em Million Instructions Per Second (MIPS). Uma característica importante na família dos microcontroladores AVR é a velocidade de processamento, pois o seu conjunto de instruções necessita de apenas um ciclo de máquina para executar a maioria das instruções. Tomando como exemplo um microcontrolador AVR operando com um oscilador de 4MHz, pode-se considerar que a velocidade de processamento é de 4 MIPS. Essa informação pode ser de grande importância quando for necessário executar operações com alta velocidade e desempenho (SOARES, 1998). A Figura 16 mostra um diagrama simplificado dos principais componentes existentes em um microcontrolador Atmel AVR, descritos na sequência (WHEAT, 2009): Figura 16 – Estrutura interna de um microcontrolador Atmel Fonte: WHEAT (2011) Central Processing Unit (CPU): As instruções presentes no firmware são executadas pela CPU e normalmente são compostas por: uma Arithmetic Logic Unit (ALU) responsável 47 por executar operações lógicas e aritméticas, registradores de 8 bits, registrador de status, Program Counter (PC), um decodificador de instruções, interfaces para acesso a memória interna e periféricos (WHEAT, 2009). São baseados na arquitetura Harvard (Figura 17), que utiliza dois barramentos, um para memória de dados e outro para memória de programa, que possibilitam maior velocidade no processamento (SOARES, 1998). Figura 17 – Arquitetura Harvard Modelo Harvard CPU Memória de Dados Memória de Programas Fonte: Adaptado de SOARES (1998) Memória de programa e dados (ROM, Flash, RAM, EEPROM): As memórias presentes nos microcontroladores são caracterizadas pela volatilidade. Normalmente a capacidade é bastante reduzida (na ordem de KBs) se comparada aos computadores atuais e varia com o modelo. Vale ressaltar que as memórias não voláteis possuem a vida útil reduzida a cada escrita. A Read Only Memory (ROM) é uma memória não volátil responsável por armazenar o conjunto de instruções que formam a aplicação. Um microcontrolador possui apenas um programa na memória que é sempre executado quando é inicializado ou reiniciado (desconsiderando o bootloader). Já a memória Random Access Memory (RAM) é responsável por armazenar as variáveis durante a execução do programa. Como as aplicações são pequenas, não há a necessidade de copiá-las para a memória RAM (WHEAT, 2011). Memória Flash é uma memória não volátil e regravável, cujas informações permanecem salvas mesmo após o desligamento do Arduino. 48 Suporta até dez mil gravações e pode gravar configurações ou persistir dados em caso de queda de energia. A Electrically Erasable Programmable Read-Only Memory (EEPROM) é semelhante à memória Flash, mas usa uma tecnologia mais antiga. Essa é uma memória bastante limitada (menor que 1KB), porém com uma vida útil bem maior, em torno de cem mil gravações (ARDUINO, 2013); Clock: Também conhecido como circuito de relógio, é um circuito oscilador responsável por controlar a sincronização das operações do sistema. A frequência é ajustada por um cristal de quartzo, presente na placa principal do Arduino. O ajuste da frequência é dependente da alimentação fornecida, permitindo trabalhar em modo de economia de energia ou alto desempenho (WHEAT, 2013); Periféricos: Os microcontroladores Atmel são formados por circuitos adicionais que facilitam a comunicação com outras partes do sistema e a integração com novos componentes. Pode- se citar: (i) a presença de portas de entrada e saída, sendo essas divididas em analógicas ou digitais, utilizadas para comunicação com outros dispositivos, (ii) interrupção externa para executar ações na ocorrência de eventos externos ao sistema, (iii) temporizador ou contador com a função de controlar tempo ou até mesmo interrupções para serem tratadas por outros sistemas, (iv) watchdog timer para reinicialização do sistema periodicamente para se recuperar de falhas e o (v) Universal Synchronous Asynchronous Receiver Transmitter (USART), um padrão universal para comunicação serial de forma síncrona ou assíncrona; Conversores analógicos-digitais: Os microcontroladores usados no Arduino possuem um periférico Analog Digital Converter (ADC) para a conversão de sinais analógicos em um respectivo sinal digital variando entre 0 e 1023. Estes conversores tornam-se importantes quando se trabalha com dispositivos
Compartilhar