TCC.pdf

March 29, 2018 | Author: slashman | Category: Arduino, Software Engineering, Software, Science And Technology, Systems Engineering


Comments



Description

MINISTÉRIO DA EDUCAÇÃOSECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE RORAIMA DIRETORIA DE GRADUAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WILLERSON WAGNER DOS SANTOS SILVA ERICA CAMILA SILVA CUNHA JOSÉ GABRIEL RIBEIRO FIGUEIREDO MIGUEL ALESSANDRO ARAÚJO CRUZ SISPROTEGE ALARME INTELIGENTE E AUTOMAÇÃO RESIDENCIAL CONTROLADO PELA INTERNET BOA VISTA – RR 2013 WILLERSON WAGNER DOS SANTOS SILVA ERICA CAMILA SILVA CUNHA JOSÉ GABRIEL RIBEIRO FIGUEIREDO MIGUEL ALESSANDRO ARAÚJO CRUZ SISPROTEGE ALARME INTELIGENTE E AUTOMAÇÃO RESIDENCIAL CONTROLADO PELA INTERNET Trabalho de Conclusão de Curso apresentado ao curso Superior de Tecnologia em análise e Desenvolvimento de Sistemas do Instituto Federal de Educação, Ciência e Tecnologia de Roraima – IFRR, como requisito para obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Orientador: Profª. Saula Leite Oliveira Dantas BOA VISTA – RR 2013 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE RORAIMA DIRETORIA DE GRDUAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS A Comissão Examinadora, abaixo assinada, aprova a pesquisa SISPROTEGE ALARME INTELIGENTE E AUTOMAÇÃO RESIDENCIAL CONTROLADO PELA INTERNET Elaborada por WILLERSON WAGNER DOS SANTOS SILVA ERICA CAMILA SILVA CUNHA JOSÉ GABRIEL RIBEIRO FIGUEIREDO MIGUEL ALESSANDRO ARAÚJO CRUZ Como requisito parcial para obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas Comissão Examinadora: Saula Leite Oliveira Dantas, MSc. (Presidente/Orientador) Pierre da Costa Viana Júnior, MSc. (Membro IFRR) Maria Aparecida Ferreira Barbosa Fernandes (Membro IFRR) Boa Vista, _____ de __________________________ de 2013. AGRADECIMENTOS Agradecemos primeiramente a Deus pela oportunidade de evoluir em nossas vidas, do conhecimento adquirido e as pessoas presentes nesse nosso percurso que certamente foram essenciais para o nosso processo de aprendizagem. Aos nossos pais, que nos fomentaram, fazendo de todo o possível de diversos meios para que fosse alcançar o sucesso da nossa formação acadêmica. A nossa orientadora professora Saula Leite de Oliveira Dantas, que com muita habilidade e conhecimento auxiliou a execução deste trabalho de conclusão de curso. A todos os professores que com disposição repassaram seus conhecimentos, ensinaram não só o caminho, mas até as possíveis pedras que podem aparecer, criando assim, um laço fraterno eterno e muitas vezes serão lembradas em momentos das nossas vidas. A todos os colegas e amigos de classe, que participaram dessa jornada junto a nós, mesmo aqueles que seguiram por outros caminhos, serão para sempre lembrados e os que seguiram o mesmo caminho, só temos a agradecer ao auxilio, esforço e troca de experiências, não ensinando somente o conhecimento didático e sim o da vida. E a todos que participaram direta e indiretamente, o nosso muitíssimo obrigado por participar da realização deste projeto. Não existe vento favorável a quem não sabe onde deseja ir. Schpenhauer RESUMO Esta pesquisa ressalta a importância da construção de um alarme inteligente com automação residencial controlado via internet ou controle remoto sem fio, usando a plataforma Arduino. Para isso o projeto busca responder a seguinte problemática: O desenvolvimento de um alarme residencial por meio de tecnologias de código aberto monitorado pela internet e que tem como premissa básica o monitoramento eletrônico pelo próprio usuário tornará a sua aquisição mais acessível à população? De modo que, sua realização justifica-se por possibilitar ao usuário um monitoramento e controle do alarme de sua própria residência à distancia, aonde possibilitará a ligação de lâmpadas e abertura de portão eletrônico por meio da internet, atividade incomum com alarmes atuais, além ter uma melhoria nos recursos de economia de energia e ainda a compatibilidade com sensores de tecnologias atuais. Neste sentido, é apresentada a base teórica usada para fundamentar o conhecimento que sustenta o processo investigativo desenvolvido. Para t anto, utilizou-se da pesquisa de campo e bibliográfica, com abordagem quali -quantitativa de caráter exploratório, mediante o método analítico e hermenêutico tendo por instrumento de pesquisa um questionário estruturado composto de perguntas do tipo fechada direcionado á possíveis consumidores. Os dados evidenciados possibilitaram perceber que a construção de um alarme inteligente é importante, pois traz como benefício uma relevante redução do consumo de energia, além de ser de fácil manuseio. Palavras-Chave: Alarme, Automação, Arduino, Monitoramento. ABSTRACT This research underscores the importance of building an intelligent alarm with home automation controlled via internet or wireless remote control, using the Arduino platform. For this project seeks to answer the following problems: The development of a residential alarm through open source monitored by the internet and that is the basic premise electronic monitoring by the user technologies will make your purchase more affordable to the population? So that their achievement is justified by allowing the user a monitoring and alarm control his own residence at a distance, where the link will enable lamp and electronic gate opening through the Internet, unusual activity with actual alarms, besides having an improvement in the energy- saving features and also compatibility with current sensor technologies. In this sense, the theoretical basis used to support the knowledge that underpins the research process developed is presented. For this, we used field research and literature, with qualitative and quantitative approach exploratory, through analytical and hermeneutical method by taking the survey instrument a structured questionnaire consisting of closed type of questions directed to potential consumers. The data evidenced realize that enabled the construction of an intelligent alarm is important because it brings a significant benefit as a reduction in energy consumption as well as being easy to handle. Keywords : Alarm, Automation , Arduino , Monitoring . LISTA DE FIGURAS FIGURA 1 – CASO DE USO ........................................................................................ 18 FIGURA 2 – ARDUÍNO UNO R3 ................................................................................. 29 FIGURA 3 – TRANSDUTOR PIEZOELÉTRICO......................................................... 30 FIGURA 4 – PWM VARIANDO A TENSÃO MÉDIA ................................................... 31 FIGURA 5 – RELAY SHIELD ...................................................................................... 32 FIGURA 6 – MÓDULO HIBRIDO 433,92MHZ ............................................................ 33 FIGURA 7 – TRANSMISSOR DE CONTROLE REMOTO 433,92MHZ .................... 33 FIGURA 8 – SINAL TRANSMISSOR HT6P20 HOLTEK OSCILOSCÓPIO .............. 34 FIGURA 9 – CODIFICAÇÃO HOLTEK HT6P20 ......................................................... 34 FIGURA 10 – MICROCONTROLADOR AVR ATMEGA328P .................................... 48 FIGURA 11 – IDE DA PLATAFORMA ARDUÍNO ...................................................... 50 FIGURA 12 – TRANSISTOR BC337 ........................................................................... 51 FIGURA 13 – LIGAÇÃO DO TRANSISTOR BC337 PARA AMPLICAÇÃO DO SOM DA SIRENE .................................................................................................................. 51 FIGURA 14 – PROTO SHIELD ................................................................................... 52 FIGURA 15 – ARDUÍNO E PROTO BOARD .............................................................. 52 FIGURA 16 – ARDUÍNO E PROTO SHIELD .............................................................. 53 FIGURA 17 – TRANSISTOR MOSFET IRLZ44N ....................................................... 54 FIGURA 18 – SISPROTEGE HARDWARE 1 ............................................................. 55 FIGURA 19 – SISPROTEGE HARDWARE 2 ............................................................. 55 FIGURA 20 – SISPROTEGE HARDWARE 3 ............................................................. 56 FIGURA 21 – AUTENTICAÇÃO SISPROTEGE WEB ............................................... 57 FIGURA 22 – AUTENTICAÇÃO WEB RESPONSIVE ............................................... 58 FIGURA 23 – PÁGINA INICIAL ................................................................................... 59 FIGURA 24 – PÁGINA INICIAL WEB RESPONSIVE ................................................ 59 FIGURA 25 – PÁGINA DE EVENTOS ........................................................................ 60 FIGURA 26 – PÁGINA DE EVENTOS WEB RESPONSIVE ..................................... 60 FIGURA 27 – PÁGINA DE CONFIGURAÇÃO ........................................................... 61 FIGURA 28 – PÁGINA DE CONFIGURAÇÃO WEB RESPONSIVE ......................... 61 FIGURA 29 – PROTOCOLO SISPROTEGE .............................................................. 62 LISTA DE TABELAS TABELA 1 – REQUISITOS FUNCIONAIS .................................................................. 19 TABELA 2 – REQUISITOS NÃO FUNCIONAIS ........................................................ 20 TABELA 3 – CONFIGURAÇÃO ARDUÍNO ................................................................ 48 SUMÁRIO 1. INTRODUÇÃO .......................................................................................................... 11 1.1.PROBLEMA ....................................................................................................... 12 1.2. JUSTIFICATIVA ................................................................................................ 12 1.3. OBJETIVOS ...................................................................................................... 13 1.3.1. Geral ........................................................................................................ 13 1.3.2. Específicos............................................................................................. 14 2. FUNDAMENTAÇÃO TEÓRICA ............................................................................... 15 2.1. ENGENHARIA DE SOFTWARE ...................................................................... 15 2.1.1. Engenharia de Requisitos .................................................................... 15 2.1.2. Requisitos funcionais ........................................................................... 16 2.1.3. Requisitos não funcionais ................................................................... 16 2.1.4. Cenário ................................................................................................... 17 2.1.5. Caso de uso ........................................................................................... 17 2.1.6. Documento de requisitos ..................................................................... 19 2.2. METODOLOGIA ÁGIL DE SOFTWARE.......................................................... 21 2.3. EXTREME PROGRAMMING (XP) ................................................................... 22 2.3.1. Valores .................................................................................................... 22 2.3.2. Papéis ..................................................................................................... 24 2.3.3. Práticas de trabalho .............................................................................. 25 2.4. SISPROTEGE HARDWARE ............................................................................ 29 2.4.1. Arduino ................................................................................................... 29 2.4.2. PWM (Pulse Width Modulation) ........................................................... 30 2.4.3. Relay Shield ........................................................................................... 31 2.4.4. Módulo híbrido 433,92mhz ................................................................... 32 2.4.5. Transmissor de controle remoto Holtek HT6P20 ............................ 33 2.5. SISPROTEGE WEB ......................................................................................... 34 2.5.1 Linguagem PHP ...................................................................................... 34 2.5.2. Sistema gerenciador banco de dados (SGBD) Mysql ...................... 36 2.5.3. Servidor Web Apache ........................................................................... 37 2.5.4. Design Web Responsive ...................................................................... 37 2.5.5. Ferramentas utilizadas ......................................................................... 38 3. METODOLOGIA ....................................................................................................... 40 3.1. PESQUISA DE CAMPO E BIBLIOGRÁFICA ................................................... 40 3.2. ABORDAGEM QUALI-QUANTITATIVA ........................................................... 41 3.3. TIPO DE PESQUISA ......................................................................................... 42 3.4. MÉTODO............................................................................................................ 43 3.5. POPULAÇÃO E AMOSTRA .............................................................................. 43 3.6. INSTRUMENTO DE MEDIDA ........................................................................... 43 4. ANÁLISE E DISCUSSÃO DOS RESULTADOS ..................................................... 45 4.1. QUESTIONÁRIO APLICADO AO POSSÍVEL CONSUMIDOR ....................... 45 4.2. DESENVOLVIMENTO DO ALARME SISPROTEGE ....................................... 46 4.2.1. SisProtege Hardware ............................................................................. 47 4.2.1.1. Microcontroladores ............................................................................ 47 4.2.1.2. Arduino UNO R3 .................................................................................. 48 4.2.1.3. Sirene .................................................................................................... 50 4.2.1.4. Proto Shield ......................................................................................... 51 4.2.1.5. Relay Shield ......................................................................................... 53 4.2.1.6. Sensores .............................................................................................. 53 4.2.1.7. Resultado ............................................................................................. 54 4.2.2. SisProtege Web ...................................................................................... 56 4.2.3. Comunicação entre sistemas ............................................................... 62 5. CONSIDERAÇÕES FINAIS ..................................................................................... 63 REFERÊNCIAS ............................................................................................................. 65 APÊNDICEA – ORÇAMENTO ..................................................................................... 68 APÊNDICE B – CÓDIGO FONTE ARDUINO ............................................................. 69 APÊNDICE C – QUESTIONÁRIO ................................................................................ 79 11 1 INTRODUÇÃO A presente pesquisa tem como tema de estudo: “SisProtege alarme inteligente e automação residencial controlado pela internet”, pois o intuito foi fazer uma analise sobre os alarmes disponíveis no mercado de modo que possibilite ao usuário conhecer e ter a sua disponibilidade um alarme inteligente capaz de monitorar sua residência a distancia por meio do uso da plataforma Arduíno. Para tanto, esta pesquisa tem como objetivo principal desenvolver um alarme residencial com automação controlado pela internet que proporcione à população de Boa Vista – Roraima facilidade no gerenciamento da segurança dos seus imóveis e que tenha baixo custo na aquisição e implantação. Sua implementação partiu da premissa de que a automação, em suas mais diversas áreas de atuação, tem facilitado à vida das pessoas proporcionando maior agilidade, conforto, praticidade, segurança, dentre outras vantagens. Pois, com as novas tecnologias como as de transmissão de dados sem fio e de dispositivos controlados via web, já é possível levar esta facilidade conforto para uma gama muito maior de pessoas através da automação residencial . O presente trabalho está constituído de vários capítulos, sendo a primeira dedicada a apresentar o problema, a justificativa, e os objetivos gerais e específicos. O segundo capítulo apresenta a Fundamentação teórica que abordou-se os temas de grande relevância para a compreensão do assunto proposto, tais como: Plataforma Arduíno, sensores de alarmes, modulo híbrido 433,92mhz, linguagem de programação PHP, servidor Web Apache. No terceiro capitulo é apresentado o marco metodológico em que se fundamenta a pesquisa, tais como os procedimentos e técnicas utilizadas, a população e amostra, entre outros. No quarto capitulo é tratado os conceitos e ferramentas utilizados e a para a elaboração e o processo de desenvolvimento da análise e discussão dos resultados. Vale destacar que no decorrer da pesquisa serão utilizado conceitos relacionados à eletrônica e ao desenvolvimento de software com o intuito de utilizar uma ferramenta chamada Arduino para controlar dispositivos eletrônicos como lâmpadas, portões eletrônicos, fechaduras eletrônicas, entre outros, de modo a implementar a automação residencial nos mais diversos ambientes. 12 Com a popularização da automação residencial e a necessidade de aumentar a segurança em vários tipos de ambientes, desenvolvemos a ideia de um alarme residencial que proporcione ao usuário benefícios que dificilmente são encontrados nos alarmes comuns disponíveis no mercado. Contudo pretende-se utilizar o uso dessas aplicações de sistemas de automação com a finalidade de realizar várias funções dentro de um ambiente residencial, de forma simples e integrada valorizando o conforto e a segurança do ambiente, denominada de automação residencial. 1.1 PROBLEMA A problemática deste trabalho surge a partir da observação do monitoramento dos alarmes residências ofertados por empresas de monitoramento eletrônico no comércio local de Boa Vista – Roraima, aonde verificou-se que os mesmos geram um gasto com mensalidades e uma demora no repasse das informações de violação do ambiente. Além disso, o custo de um alarme controlado e monitorado pela internet é bastante elevado, o que motivou os integrantes da equipe a pensarem em uma solução mais acessível aos usuários. Logo, a questão norteadora deste trabalho é: “O desenvolvimento de um alarme residencial por meio de tecnologias de código aberto monitorado pela internet e que tem como premissa básica o monitoramento eletrônico pelo próprio usuário tornará a sua aquisição mais acessível à população?”. 1.2 JUSTIFICATIVA A Cidade de Boa Vista está em constante crescimento, e consequentemente vêm apresentando uma maior procura por dispositivos de segurança que proporcione ao cliente auxílio 24 horas por dia. Atualmente, os alarmes de segurança possuem dois tipos de custo: implantação de equipamentos e a despesa mensal para monitoramento, que geralmente tem custo elevado, limitando-se a um público específico. 13 Com base nas pesquisas desenvolvidas pelos acadêmicos, o SISPROTEGE é um alarme de baixo custo de implantação e sem mensalidades, com automação e monitorado via internet. Outros recursos também foram trabalhados como: economia eficiente de energia, monitoramento pelo próprio usuário e ainda com recursos de automação que geralmente não são encontrados nos alarmes comuns. Ao refletirmos sobre esse aspecto buscou-se entender como o desenvolvimento de um alarme residencial por meio de tecnologias de código aberto monitorado pela internet e que tem como premissa básica o monitoramento eletrônico pelo próprio usuário poderá tornar a sua aquisição mais acessível à população de Boa Vista- Roraima. Diante desta problemática, a realização dessa pesquisa justifica-se por analisar a falta de um alarme com automação monitorado pela internet que tenha um bom custo/beneficio e que tenha recursos de economia de energia bem eficientes no comércio brasileiro e, principalmente no comercio roraimense. Neste sentido a pesquisa é de grande relevância, pois procura entender os benefícios e a acessibilidade deste alarme para a sociedade de forma que se torne um instrumento simples e com maior comodidade para o usuário. No entanto a criação da SISPROTEGE surge como um sistema de segurança completo que pode ser controlado em qualquer lugar do mundo, podendo reduzir gastos como as mensalidades, pagas pelas organizações, o setor industrial e as residências poderia alavancar a economia regional e, também baratear o preço deste tipo de serviço já que este recurso seria destinado a outros fins. Contudo o estudo ganha evidencia por ser um alarme que contribui para a melhoria da qualidade de vida, aonde a segurança é primordial para a vida de cada cidadão. 1.3. OBJETIVO 1.3.1 GERAL Desenvolver um alarme residencial com automação controlado via internet, com recursos de tecnologia que proporcione facilidade no gerenciamento da segurança e ainda com baixo custo para aquisição e implantação. 14 1.3.2 ESPECÍFICOS a) Investigar as formas de monitoramento eletrônico realizada por empresas de segurança na cidade de Boa Vista; b) Identificar como a aquisição do alarme automatizado pode tornar dispensável a contratação de empresas de monitoramento eletrônico; c) Desenvolver um produto com custo/benefício no alcance de todos, reduzindo despesas com mensalidades. 15 2 FUNDAMENTAÇÃO TEÓRICA Para a construção deste projeto é necessário o estudo de alguns conceitos, funcionamento de componentes e peças envolvidos no trabalho. Nesse caso, a fundamentação teórica diz respeito a esta parte do trabalho onde é explicado as etapas do processo de implementação e aprendizagem para chagar ao objetivo final. 2.1 ENGENHARIA DE SOFTWARE Sendo a “engenharia de software tem por objetivo apoiar o desenvolvimento profissional de software, mais do que a programação individual” (SOMMERVILLE, 2011, p.03), há a necessidade de profissionalizar o software e transformá-lo em uma atividade padronizada, estabelecendo, para isso, métodos para evitar a falha durante a criação de software. Por conta disso, “engenharia de software é uma abordagem sistemática para a solução de software; ela analisa questões praticas de custo, prazo e confiança, assim como as necessidades dos clientes e produtores do software” (SOMMERVILLE, 2011, p.06). É com essa engenharia que se pode fazer um planejamento de software, analisar questões sobre o que ele irá atender quem serão seus clientes e como será feito o desenvolvimento. 2.1.1 Engenharia de requisitos Os requisitos de um sistema são as descrições do que o sistema deve fazer, os serviços que oferece e as restrições a seu funcionamento. “Esses requisitos refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada” (SOMMERVILLE, 2011, p. 57). Compreender os requisitos não é uma das tarefas mais fáceis da criação do software e é uma das mais importantes para a o desenvolvimento de qualquer projeto. A dificuldade principalmente na comunicação tanto do cliente que muitas 16 vezes não sabe a importância de cada funcionalidade e o outro grande motivo de falha ou modificação dos requisitos passados para a equipe de desenvolvimento, sobre o que o cliente realmente quer ou precisa, de modo que: O objetivo do processo de engenharia de requisitos é fornecer a todas as partes um entendimento escrito do problema. Isso pode ser conseguido por meio de um certo número de produtos de trabalho, cenário de usuários, listas de funções e de características, modelos de análise ou uma especificação(PRESSMAN, 2006, p.116). Uma prática comum e adotada ao nosso trabalho é a identificação dos requisitos, que posteriormente são divididos em: requisitos funcionais e requisitos não funcionais. 2.1.2. Requisitos Funcionais Requisitos funcionais são, segundo Sommerville (2011), declarações de serviços que o sistema deve fornecer, de como o sistema de reagir a estrada especificas e de como o sistema deve se comportar em determinadas situações. Em alguns casos, estes requisitos também podem explicitar o que o sistema não deve fazer. Como pode ser verificado, esses requisitos ditos funcionais são as características individuais do sistema, como ele recebe os dados de entrada, como são tratados esses dados e como será a saída deles. E, como tal, vão desde requisitos gerais, que são bastante abstratos para os usuários finais, até requisitos bem específicos e detalham claramente e podem ser compreendidos sem dificuldade. 2.1.3 Requisitos Não Funcionais Requisitos não funcionais são, de acordo com Sommerville (2011), as restrições aos serviços ou funções oferecidas pelo sistema. Incluem-se aí, as restrições de timing, no processo de desenvolvimento e aquelas impostas pelas normas. 17 “Ao contrário das características individuais ou serviços do sistema, os requisitos não funcionais, muitas vezes, aplicam no sistema como um todo” (Sommerville, 2011, p. 59). Os requisitos definidos como não funcionais, são os requisitos que não estão diretamente ligados ao usuário, mas ao suporte do sistema como um todo, são eles que definem toda a arquitetura que o sistema terá, ou seja, eles são a base para os requisitos funcionais. Eles permitem ou restringem as funcionalidades individuais. 2.1.4 Cenário As pessoas geralmente acham mais fácil se relacionar com exemplos da vida real do que com descrições abstratas. “Elas podem compreender e criticar um cenário de como elas pode interagir com um sistema de software” (SOMMERVILLE, 2011, p. 73). Descrevendo como o software se comporta, elaborando uma sequencias de ações e respostas, para que seja claro comportamento do software. Com o conjunto dessas ações e respostas feitas, ficam mais claros quais são os requisitos necessários para o sistema e resolve a real problemática do proposto. Sendo criadas situações onde o cliente necessita desativar o alarme, acender uma lâmpada e outras funcionalidades de automação residencial, além da criação de cenários onde se deve seguir a lei, onde foi colocado como requisito que um alarme deve estar em disparo por no máximo 6 minutos. “[...] Os cenários podem ser particularmente uteis para adicionar detalhes a uma descrição geral de requisitos. Trata-se de descrições de exemplos de sessões de interação” (SOMMERVILLE, 2011, p. 73). 2.1.5 Caso de Uso Os casos de uso são uma técnica para captar os requisitos funcionais de um sistema. “Eles servem para descrever as interações típicas entre usuários de um sistema e o próprio sistema, fornecendo uma narrativa sobre o sistema utilizado (FOWLER,2005, p. 104). 18 Com os casos de uso são possíveis construir um ponto de vista de como o sistema se comporta para o usuário. Descrevendo as principais funcionalidades, e o impacto que ele tem no ambiente onde será implantado. Com isso se torna mais fácil a comunicação e a compreensão do que o sistema está propondo. Com a análise de mercado de diferentes tipos de alarmes, observou as principais funcionalidades e com isso incrementamos um sistema que levasse em conta o proposto pelo grupo, o que gerou o seguinte caso e uso: Figura 1 – Caso de Uso A figura acima explicitada nos propõe perceber como se dá a funcionalidade do sistema a ser utilizado pelo usuário de dos benefícios propiciados por sua adoção. 19 2.1.6. DOCUMENTO DE REQUISITOS Este documento mostra de forma clara funcionalidades presentes no sistema, desde requisitos padrões de distintos sistemas de segurança até os diferenciais do SISPROTEGE. O usuário pode administrar as funcionalidades do alarme, da automação e utilizar o controle sem fio de forma básica para ativar e desativar o alarme sem conflito com o sistema, conforme segue nas tabelas 1 e 2 os requisitos do sistema: RF01 – Criar, alterar, excluir usuários: Este requisito permite a criação, alteração e exclusão de usuários. Prioridade: Essencial Importante Desejável RF02 – Ativação e desativação web: Este requisito permite ativar e desativar através da Internet. Prioridade: Essencial Importante Desejável RF03 – Ativação e desativação pelo controle remoto: Este requisito permite ativar e desativar através do controle remoto. Prioridade: Essencial Importante Desejável RF04 – Verificação web: Este requisito permite consultar o estado do alarme pela Internet. Prioridade: Essencial Importante Desejável RF05 – Gerenciar dispositivos: Este requisito permite ligar ou desligar dispositivos ligados às portas de automação residencial presentes no alarme através da internet. Prioridade: Essencial Importante Desejável 20 RF06 – Desativar sirene: Este requisito permite parar o aviso sonoro da sirene pela internet quando houver disparo do alarme. Prioridade: Essencial Importante Desejável TABELA 1 – REQUISITOS FUNCIONAIS RNF01 Ambiente –: O sistema será desenvolvido na linguagem PHP, sendo acessado pela web e utilizando web Responsive. Prioridade: Essencial Importante Desejável RNF02 – Banco de Dados: O sistema será executado no Banco de Dados MySql. Prioridade: Essencial Importante Desejável RNF03 – Hardware: O software será desenvolvido na plataforma Arduíno, Utilizando o Arduíno Uno R3 com memória SRAM2 kb, memória flash 32 kb, EEPROM 1 kb e 14 pinos de entrada e saída. Prioridade: Essencial Importante Desejável RNF04 – Norma ABNT: Segue os padrões da norma ABNT NBR 10151, em caso de disparo, a sirene terá que sinalizar por exatamente 6 minutos, para evitar incômodo à vizinhança. Prioridade: Essencial Importante Desejável RNF05 – Compatibilidade com alarmes: O alarme deve ser compatível com sensores e controles de alarmes comuns. Prioridade: Essencial Importante Desejável 21 RF06 – Desativar sirene: Este requisito permite parar o aviso sonoro da sirene pela internet quando houver disparo do alarme. Prioridade: Essencial Importante Desejável TABELA 2 – REQUISITOS NÃO FUNCIONAIS As tabelas 1 e 2 exemplificam muito bem os requisitos funcionais e não funcionais do programa que interferem diretamente nesse processo. 2.2. METODOLOGIA ÁGIL DE SOFTWARE Segundo Beck (2001), estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Por meio deste trabalho, passamos a valorizar:  Indivíduos e interação entre eles mais que processos e ferramentas;  Software em funcionamento mais que documentação abrangente;  Colaboração com o cliente mais que negociação de contratos;  Responder a mudanças mais que seguir um plano. Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. Posto que, sempre existiu uma grande quantidade de softwares que falhavam ou o projeto não era finalizado. Com o passar dos tempos percebeu-se a necessidade de desenvolver com menor risco os projetos de software, tornando a atividade mais produtiva. Definindo assim uma lógica na criação facilitando o orçamento, o cronograma, as funcionalidades e fornecendo um produto de qualidade para o cliente. Outros dois detalhes importante é a documentação que é criada, que é bastante objetiva, tornando o trabalho mais profissional e concreto, trazendo segurança e clareza para o cliente e desenvolvedor e a o segundo ponto importante é aproximação do cliente e o programa, criando o que o cliente realmente necessita, 22 fornecendo mais flexibilidade e colaborações do que a apenas a criação sem feedback. Dentro desses conceitos e com o grupo formado, trabalhou-se com o Extreme Programming que serviu de base para o desenvolvimento, para tanto, segue abaixo a metodologia adotada. 2.3. EXTREME PROGRAMMING (XP) Segundo Beck (2004) e Cunningham (2002), extreme Programming (XP) é uma disciplina de desenvolvimento de software voltada para pequenas e médias equipes, onde os requisitos são vagos e mudam frequentemente. Desenvolvido por Kent Beck, Ward Cunningham e Ron Jeffries, o XP tem como principal tarefa a codificação, com ênfase menor nos processos formais de desenvolvimento, com uma maior disciplina de codificação e testes. Tem como valores a comunicação, simplicidade, feedback e coragem. 2.3.1. Valores A metodologia de desenvolvimento de software Extreme Programming (XP) é uma metodologia ágil, criada por Kent Beck em 1997. O XP tem várias práticas eficientes isoladamente, mas o principal dessa metodologia é o conjunto. Optando realizar um trabalho mais amplo, integrado e conjunto, seguindo os quatro valores do XP. A comunicação no XP prioriza construir entendimento do problema, para criar a melhor solução ao cliente, fazendo o grupo pensar como um todo e trabalhando em um foco comum, priorizando mais a interação do relacionamento das pessoas envolvidas do que o uso da documentação formal. A comunicação também é fortalecida pela programação em pares, testes e frequente contato com o cliente. A simplicidade, sugerindo a cada integrante do grupo adote a solução funcional mais fácil. Visando a construção das funcionalidades e criando um 23 ambiente suscetível a mudanças futuras sem muito custo. Tendo em vista a resolução de todo problema da forma mais simples, o problema de agora se resolve agora, depois se trata com o problema futuro. O Feedback aproxima a visão da equipe para a verdadeira lógica do projeto, fazendo vários casos de testes e repassando para o cliente, assim ele entendem cada vez mais sobre o desenvolvimento. Tendo um Feedback rápido todos envolvidos no projeto terão um aprendizado mútuo, prevenindo e sanando a corrigir possíveis más interpretações dos programadores, riscos e problemas. Um erro resolvido no início se torna o menos custoso do que sendo resolvido no final, por isso a importância do entendimento das reais funcionalidades do projeto. A coragem é aplicada todo tempo, como por exemplo na tomada de atitude de alterar código já escrito e que se encontra funcional, jogar código fora e reescreve-lo e compartilhar o fonte com todos. Com isso pode notar alguns temores que merecem ser superados. Beck e Fowler (2001) citam alguns dos medos presentes nos desenvolvimentos do projeto, entre os quais estão: a) Clientes temem:  Não obter o que pediram;  Pedir a coisa errada;  Pagar demais por muito pouco;  Jamais ver um plano relevante;  Não saber o que está acontecendo;  Fixarem-se em suas primeiras decisões e não serem capazes de reagir a mudanças nos negócios. b) Desenvolvedores, por sua vez, temem:  Ser solicitados a fazer mais do que sabem fazer;  Ser ordenados a fazer coisas que não fazem sentido;  Ficar para trás tecnicamente;  Receber responsabilidades, sem autoridade;  Não receber definições claras sobre o que precisa ser feito; 24  Sacrificar a qualidade em função de prazo;  Ter que resolver problemas complicados sem ajuda;  Não ter tempo suficiente para fazer um bom trabalho. Além de ter coragem consigo no desenvolvimento deve-se ter esse valor para confiar em todos envolvidos no projeto, realizar o feedback com os outros, encontrar formas simples para solucionar o problema do cliente e fazer a comunicação, em que estado está o projeto e se as funcionalidades estão a desejo do cliente. O XP integra esses quatro valores como se fosse todo o modo de desenvolver o projeto, ou seja, não serão trabalhados os valores separados, mas sim todos juntos do inicio ao fim. 2.1.3.2 Papéis Os papéis que compõem um time XP é formado por diferentes tipos de pessoas, com características e habilidades singulares e necessárias para o sucesso do projeto geral, os papeis não variam muito em relação ao de outros processos e metodologias. Alguns destes papéis são apresentados por Atels, Miller e Novak (2002):  Dono do Ouro: É o cliente que paga pelo desenvolvimento do projeto;  Gerente: Gerencia e acompanha o planejamento do projeto;  Coach: É o técnico do time. Orienta o time, mantendo a disciplina na aplicação das práticas que são padrões da equipe;  Testadores: Ajudam os clientes com a definição dos testes. Realizam os testes do sistema;  Desenvolvedores: Definem a arquitetura, realizam estimativas e implementam o código;  Tracker: Responsável por coletar as métricas do projeto. Ele é capaz de contar uma história da iteração ao final da mesma, através dos apontamentos que realizou e das informações que foram coletadas; 25  Analistas: Ajudam o cliente na definição dos requisitos. Existem variações e diferentes referências sobre papéis em XP. Estes papéis até podem ser acumulados por mais de uma pessoa dentro do time, porem deve tomar certos cuidados (CUNNINGHAM, 2006). 2.1.3.3. Práticas de Trabalho O XP sistematiza várias atividades para conduzir o projeto, afim de que ele seja finalizado, esteja de acordo com o que foi proposto inicialmente e, principalmente, seja funcional. São evidenciadas, a seguir, as práticas utilizadas no desenvolvimento deste projeto, entre as quais está: a) Cliente próximo O XP busca a aproximação do cliente, para as reais funções desejadas por ele sejam implementadas pela equipe de desenvolvimento. Esta aproximação pode ser tanto do cliente com o grupo ou mover o grupo para próximo do cliente, e, como tal, traz mais rapidamente e com maior clareza o feedback, conforme aponta Teles (2004): A redução da distância entre cliente e desenvolvedores também produz outro efeito benéfico: a melhoria na relação de confiança entre as partes envolvidas. Estar próximo fisicamente permite que o cliente perceba mais facilmente os esforços da equipe de desenvolvimento. Além disso, a redução no tempo para a obtenção de resultados também ajuda a elevar a satisfação do cliente, o que também melhora os relacionamentos. Pelo fato de não ter um cliente real, voltou-se o trabalho para o as principais funções, ou seja, funções básicas que um sistema de segurança exerce e incrementamos tecnologia, trazendo uma segurança que possa ser feita pela web. 26 b) Triagem de planejamento Focar nas reais funcionalidades do sistema, reunindo todas as funcionalidades categorizando-as. Segundo Yourdon (2004), as funcionalidades de um sistema podem ser categorizadas em “tem que ser feita”, “deveria ser feita” e “poderia ser feita”. Colocando prioridades no mais importante. Os projetos em XP como a maioria da metodologia ágil, se baseiam em dois fundamentos: release e interações. Releases é o conjunto coeso de funcionalidades prontas a serem usadas pelo cliente formada por várias iterações que são cada pequeno progresso no desenvolvimento, sendo feitas várias iterações de forma incremental e onde são corrigidos possíveis mudanças, erros e interpretações erronias. No final de cada release se faz um no escopo de planejamento pra iniciar a execução da funcionalidade. Foi separado o projeto em partes e colocados em grau de importância e uma lógica, durante a programação. Dividindo em categorias como sugere Yourdon (2004): c) Reunião em pé São reuniões feitas pela equipe servindo para integrar o grupo e para todos visualizem o que foi feito e o que será feito por cada integrante, focando assim no que é realmente importante, no nosso caso em especifico utilizamos essa reunião ao fim da tarde, sendo mais produtiva ao grupo, tanto pelo horário de disponibilidades dos integrantes da equipe o que facilitava a resolução dos problemas que já eram modificadas logo no dia seguinte. d) Programação em par Programação em par é um estilo de programação, onde dois programadores desenvolvem a parte disposta a eles lado a lado, cooperando mutuamente em todos os aspectos, tirando dúvidas escrevendo código e principalmente corrigindo erros, trazendo sempre o conhecimento para a dupla, pois: 27 Esta técnica implementa uma das diversas redes de proteção que os projetos XP utilizam para reduzir os riscos de eventuais falhas. Quando um programador desenvolve em par, ele conta com a presença de outro desenvolvedor que faz uma inspeção imediata de todo o código que é produzido (TELES, 2005, p.79). Cada etapa do processo de desenvolvimento era divido em dois, onde eram revessados constantemente que encerravam uma Sprint (tarefa), fazendo todos interagirem com toda parte da elaboração do projeto. e) Código coletivo Para Beck (2000), o desenvolvedor não apenas programa em par com diferentes pessoas ao longo do tempo, como também tem acesso a todas as partes do código, inclusive aquelas que ele não programou. É, por isso, que ele tem o direito de fazer qualquer alteração que considerar necessária sem ter que pedir permissão. Naturalmente, seus colegas também podem alterar o seu código sem lhe pedir. Isso significa que todos da equipe irão interagir, fortalecendo os laços de confiança, tendo um melhor aprendizado em diferentes áreas. Como essas mudanças serão primeiramente testes, ou seja, não será feita no sistema ou na funcionalidade que esta pronta, pode-se melhorar e ser feita a automatização com mais facilidade pelos desenvolvedores. Junto com a programação em par o código, o coletivo integra a equipe que mesmo desenvolvendo algo pode dar ideias de como melhorar diferentes funcionalidades para os outros colaboradores do grupo. f) Código padronizado Tendo em vista que, a adoção de um padrão ajuda a simplificar a comunicação, a programar em par e a tornar o código coletivo, “da mesma forma, a própria programação em par e a prática de código coletivo ajudam a assegurar que a equipe irá seguir o padrão adotado” (TELES, 2005,p.92). Caso haja inadequação no código a constante revisão torna mais fácil a resolução e como o código é padronizado, facilita a compreensão e o ajuste. Esse 28 padrão é escolhido pela própria equipe e vai evoluindo de acordo com o grau de confiança e comunicação. Pelo fato do código criado ser padronizado e comentado, deixou-se de perder muito tempo e Facilitava a compreensão ao trocar de dupla no código. g) Releases curtas Tornar uma release o mais curta possível, mas também deve conter todos os todos os requisitos que foram julgados importantes, trazendo assim foco ao trabalho, diminuindo a perca de tempo e agregando um feedback maior para o grupo que por sua vez facilitará para as outras iterações e correções de possíveis erros, vendo assim toda a criação, parte por parte do projeto. h) Refatoramento Versões novas tendem a destruir as velhas versões. Mas no caso do refatoramento, essas mudanças aumentam a capacidade do sistema desenvolvido e de forma iterativa ele irá se adequar as mudanças. Essa técnica visa melhorar o código existente tornando mais estruturado sem alterar a sua funcionalidade. Por isso sistemas de códigos fáceis de ler, são mais adequados para metodologias que se fundamentam também em iteratividade, pois com pouco esforço se melhora e modifica o sistema sem grandes riscos. Sempre sabendo que poderá ter implementações futuras. 2.4.SISPROTEGE HARDWARE Neste tópico está descrito todas as tecnologias relacionadas à parte física do sistema, que poderá ser visualizada em sua forma detalhada para melhor entendimento da temática proposta. 29 2.4.1. Arduino Este projeto foi desenvolvido utilizando a plataforma a Arduíno, figura 2, pela sua popularização e facilidade na implementação de sistemas, este dispositivo será responsável pelo controle de sensores, controle da sirene, gerenciamento de controles remotos, discadora e também por gerar o estado de sensores para o PHP. Figura 2: ARDUÍNO UNO R3 Fonte: www.arduino.cc Desse modo, verifica-se que: O Arduino é uma plataforma de prototipagem eletrônica open-source, baseado em um microcontrolador que se conecta ao computador pessoal através de uma porta serial ou USB, dependendo do modelo utilizado. Ele possui uma linguagem de programação própria, baseada em Wiring, que é implementada em um ambiente de desenvolvimento (IDE), também próprio, baseado em Processing, e que pode ser utilizada em vários sistemas operacionais. Através desta plataforma pode-se montar uma variedade de circuitos de forma fácil e ágil, como, por exemplo, um sistema de sensores, cujos dados podem ser interpretados e utilizados pelo próprio Arduino ou repassados para um PC (personal computer, ou computador pessoal). A sua alimentação se dá pela porta USB conectada ao PC ou por uma fonte externa de até 25V (INTERFACING, 2009). A linguagem de programação do Arduino é simples e sua sintaxe se assemelha muito ao C++ e ao Java. Um programa típico possui duas funções básicas, o “void setup()”, que é executada logo no início do programa, e o “void loop()”, que é a função executada repetidamente pelo microcontrolador. Fora elas existem diversas outras funções como por exemplo as que fazem com que um pino emita e receba sinais digitais ou analógicos. 30 O modelo do Arduino escolhido para ser utilizado neste projeto foi o Arduino UNO R3 que utiliza um microcontrolador ATMega328P com interface USB e também um conector de alimentação externa este nos garante recursos de sobra para a execução do projeto. 2.4.2. PWM (Pulse Width Modulation) Uma das funcionalidades do alarme é poder gerar tipos de sinais na sirene, para isso será utilizado uma sirene sem som sintetizado. O transdutor, figura 3, da sirene será alimentado com uma tensão proveniente de um transistor BC337 que este será ligado a uma porta PWM do Arduino para gerar uma frequência em um tensão variável até 12v, a partir da intensidade do sinal irá gerar os sons do alarme. Com isso vai baratear bastante o produto, pois não terá que adquirir uma sirene amplificada. Figura 3 – TRANSDUTOR PIEZOELÉTRICO Para isso é necessário que a tensão fornecida para a sirene seja variável, entretanto isso não seria possível, à primeira vista, utilizando puramente sinais digitais, que funcionam somente com zero ou tensão máxima. A pulse Width Modulation (PWM), ou modulação por largura de pulso, serve justamente como técnica para obter um sinal analógico a partir de um digital: 31 Tendo um circuito que possui apenas uma chave e uma carga qualquer, quando a chave é ligada passará a potência máxima sobre a carga e quando ela está desligada a potência será nula. A pergunta é como fazer para obter um valor diferente de potência sobre a carga entre este valor nulo e a potência máxima, aí está o ponto em que entra a ideia do PWM (GHIRARDELLO, 2008). O PWM consiste em um padrão de rápida alternância entre liga e desliga de um período T, na qual, parte do tempo ela estará em estado ativo e parte do tempo em estado desativado. Vemos assim que a potência média aplicada a carga pode ser diferente dos valores digitais e que a tensão sobre a carga varia, como pode ser evidenciado na figura 4: Figura 4 - PWM VARIANDO A TENSÃO MÉDIA. Fonte: (GHIRARDELLO, 2008) 2.4.3. Relay Shield Inicialmente o alarme vai contar com um Relay Shield, figura 5, para fazer o controle do módulo de automação residencial, bem como:  Ligar lâmpadas;  Abertura de portão elétrico;  Ativação de eletrônicos de potência. 32 Relay Shield é uma placa muito versátil para o Arduino, pois permite acionar cargas em outras tensões de operação (lâmpadas, motores, eletrodomésticos, máquinas, etc.). Funciona como um interruptor eletrônico, onde é possível ligar e desligar a carga pelo Arduino (WEBTRONICO, 2013). Figura 5 – Relay Shield 2.4.4. Módulo Híbrido 433,92MHZ O alarme irá contar com uma comunicação sem fio através de um módulo hibrido na frequência 433,92mhz, figura 6, que além de ser um dos mais baratos com preço variando de 8 a 15 reais. A vantagem de usar esta frequência é porque proporciona compatibilidade com vários tipos de alarmes, podendo ser codificado transmissores de controle remoto modelo HT6P20 Holtek, figura 7. Estes controles remotos são adquiridos em vários modelos e cores além de ser também um dos mais baratos chegando a um valor de 20 reais no comercio local. 33 Figura 6 – Módulo hibrido 433,92mhz 2.4.5. Transmissor de Controle Remoto Holtek HT6P20 O transmissor 433,92mhz, figura 7, se mostrou com um bom custo/beneficio além de ser fácil de ser encontrado no comercio local, para a leitura correta do sinal foi verificado em um osciloscópio de computador, figura 8, facilitando fielmente a leitura no Arduino. Com base nessa leitura do osciloscópio o sinal foi convertido no Arduino com 95% de precisão. Segundo o manual do sinal do HT6P20 verifica-se que 1 período é divido em uma parte baixa e uma alta do sinal, figura 9, quando a parte baixa for maior que a alta o valor do período, o valor do bit é 1, o contrário é 0, fazendo com que gere os 29 bits, sendo que os 4 bits finais (Anticode) serão marcados com “0101”. Figura 7 – Transmissor de controle remoto 433,92mhz 34 Figura 8 – Sinal transmissor HT6P20 Holtek Osciloscópio Fonte: Autoria própria Figura 9 – Codificação Holtek HT6P20 Fonte: Holtek, 2003 2.5. SISPROTEGE WEB Neste tópico está descrito todas as tecnologias e ferramentas utilizadas no desenvolvimento do sistema de administração Web. 2.5.1. Linguagem PHP Alguns autores possuem opiniões adversar sobre a linguagem PHP, mas três autores se destacam por possuírem conceitos que se assemelham e que deixam esse conceito claro. Segundo Barreto a linguagem PHP é: 35 PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma interação com o usuário através de formulários, parâmetros da URL e links. A diferença de PHP com relação a linguagens semelhantes a Javascript é que o código PHP é executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira é possível interagir com bancos de dados e aplicações existentes no servidor, com a vantagem de não expor o código fonte para o cliente. Isso pode ser útil quando o programa está lidando com senhas ou qualquer tipo de informação confidencial (BARRETO, 2000). Também na visão de Hackenhaar e Cardoso (2010), a linguagem PHP surge como uma: linguagem de programação Web PHP foi desenvolvida em 1994 por Rasmus Lerdorf. Essa linguagem utiliza um conjunto de scripts e é voltada para aplicações Web, embutido no HTML. O código é delimitado por tags iniciais e finais, que permitem ao programador oscilar entre o HTML e o PHP. A maneira como o PHP é executado diferencia-se do Javascript, pois é do lado do cliente que o código é executado no servidor, gerando um HTML e o cliente acaba recebendo os resultados gerados pelos scripts. Possui código aberto, não se necessita da compra de licença, o programa é gratuito, é multiplataforma, tem acesso a banco de dados e faz o processamento de imagens ao enviá-las para o navegador do usuário. O PHP como linguagem de programação tem uma sintaxe bastante parecida como com C, Perl e Java, com o PHP é possível desenvolver: 1. Web dinâmicas (websites, intranets e outros); 2. Aplicações Destop (PHP-GTK); 3. Scripts de linha de comando; 4. Tarefas de segundo plano. A linguagem de programação PHP é Software Livre, distribuído sob uma licença na qual os usuários não são obrigados a publicar seu código. A portabilidade é uma das maiores vantagens do PHP, possibilitando sua instalação e configuração em diversos sistemas operacionais tais como: Linux, Mac Os X, Windows, entre outros. Segundo Soares (2011, p. 28), “uma das características mais marcantes do PHP é a sua capacidade de se misturar ao HTML, tornando mais fácil a geração de páginas web dinâmicas”. Já para a NetCraft existem mais de 20 milhões de domínios, sendo que 35% da internet usam a linguagem PHP. Umas das maiores plataforma do mundo em 36 tecnologia é o Yahoo, que utiliza o PHP e chegar receber em seus serviços da internet 150 mil visitantes simultaneamente. 2.5.2 Sistema Gerenciador Banco de Dados (SGBD) MYSQL Alecrim (2008), afirma que “o MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na Internet”. Esta aplicação é muito utilizada em conjunto com a linguagem de programação Web PHP, disponível em vários sites de hospedagem de páginas, pois tem um bom desempenho em conjunto. O MySQL é um SGBD, é um sistema de gerenciamento de banco de dados, que por sua vez usa a linguagem SQL (Structured Query Language) e é conhecido por sua facilidade de uso, sendo utilizada por diversas empresas tais como Facebook, Google, Adobe e Alcatel. Sua interface simples, e também sua capacidade de ser executado em vários sistemas operacionais, é código aberto, são alguns do motivo para este SGBD ser tão usado atualmente, e seu uso estar crescendo cada vez mais. Algumas das vantagens do Mysql em relação a outros bancos de dados do mesmo porte: tem uma facilidade maior para programação, têm funções mais simples, código-aberto e compatível como com diversas linguagens de programação. A seguir, algumas das principais características existentes no MySQL: 1. Portabilidade (suporta praticamente qualquer plataforma atual); 2. Pouco exigente quanto a recursos de hardware; 3. É um software livre; 4. Compatibilidade (existem drivers ODBC, JDBC, .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C, C++, Python, PERL, PHP e Ruby); 5. Facilidade de uso; 6. Excelente desempenho e estabilidade. 37 2.5.3. Servidor Web Apache Segundo informações do projeto Apache (APACHE, 2013), o apache é uma aplicação desenvolvida que utiliza o conceito de software open source. Este conceito visa o desenvolvimento de software sem fins lucrativos e mantidos por uma comunidade de desenvolvedores. Abaixo seguem algumas características que tornaram este servidor de páginas Web muito atrativo: a) Suporte para plataformas open source e proprietárias; b) Sem custos para sua utilização; c) Estruturação em módulos; d) Suporte a várias linguagens: PHP, PERL, HTML, PYTHON; e) Controle de acesso e encriptação utilizando certificados digitas, SSL, entre outros. 2.5.4. Design Web Responsive Segundo Zemel (2012), o Web Design Responsivo é pensar em páginas que se adaptem a todo tipo de dispositivo e contexto de uso. É sair das limitações de um navegador de computador pessoal e seu tamanho previsível, e pensar em páginas com flexibilidade que suportem todo tamanho de tel a, qualquer tipo de resolução, interfaces com touch ou mouse. Kinight (2011) afirma que Web Design Responsivo é uma prática consiste em uma mistura de redes flexíveis e layouts, imagens e o uso inteligente de consultas de mídia CSS. Como o usuário muda a partir de seu laptop para dispositivo móvel, o site deve mudar automaticamente para acomodar resolução, tamanho da imagem e capacidades de script. Ainda segundo Knight (2011), o site deve ter a tecnologia para responder automaticamente às preferências do usuário. Isso eliminaria a necessidade de uma concepção diferente e fase de desenvolvimento para cada novo aparelho no mercado. 38 Web Design Responsivo é desenvolver um site de forma que os elementos que compõe o mesmo, adaptam-se automaticamente à larguras de tela do dispositivo no qual ele está sendo visualizado, ou seja, criar sites flexíveis que ofereçam excelentes experiências de uso em qualquer plataforma. Desse modo, um design responsivo inclui: 1. Adaptar o layout da página de acordo com a resolução em que está sendo visualizada; 2. Redimensionar as imagens automaticamente para que caibam na tela e para que não sobrecarreguem a transferência de dados em um celular, por exemplo; 3. Simplificar elementos da tela para dispositivos móveis, onde o usuário normalmente tem menos tempo e menos atenção durante a navegação; 4. Ocultar elementos desnecessários nos dispositivos menores; 5. Adaptar tamanho de botões e links para interfaces touch(toque) onde o ponteiro do mouse é substituído pelo dedo do usuário; 6. Utilizar de forma inteligente recursos móveis como geolocalização e mudança na orientação do aparelho (horizontal ou vertical). 2.5.5. Ferramentas Utilizadas A seguir serão descritos as ferramentas utilizadas para desenvolvimento do sistema Web. a) ASTAH COMMUNITY Astah Community é uma ferramenta add-on para a UML que está pronto para usar no instante em que você baixá-lo, permitindo que a UML seja rápida e facilmente reforçada. Uma ferramenta prática e simples de usar, para a modelagem UML de criação de diversos tipos de diagramas sendo uma ferramenta add-on, ou seja, utiliza características originais, facilitando o que ela propôs. 39 b) PHPMYADMIN PhpMyAdmin é um software livre desenvolvido em PHP para administração do MySQL pela Internet. A partir deste software livre é possível criar e remover bases de dados criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chave, além disso, o programa de computador é muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados. c) ADOBE DREAMWEAVER O Adobe Dreamweaver fornece uma interface visual intuitiva para a criação e a edição de sites, além de compatibilidade atualizada com os padrões da Web. Enquanto que, o Dreamweaver é um programa de computador com o objetivo de oferecer uma ferramenta para modelagem de páginas da internet, onde se pode trabalhar com vídeos, imagens, textos e muitos outros elementos para a web. Adobe Dreamweaver é o famoso aplicativo de web design desenvolvido pela gigante Adobe, com o objetivo de oferecer uma ferramenta para a modelagem de páginas da internet. O programa conta com uma interface limpa e simplificada, com ferramentas e recursos de edição visual e suporte completo ao HTML5, CSS3 e jQuery. d) BRMODELO A ferramenta utilizada neste trabalho para fazer o DER é o brModelo que é um programa freeware (software gratuito) voltado para o ensino da modelagem no banco de dados relacional desenvolvida e defendida por Carlos A. Heuser. Esta foi a versão 1, com o tempo e recebendo alguns e-mails parabenizando sobre a ferramenta e a ajuda da dela na faculdade, foi feita a versão 2 aprimorada e disponibilizada juntamente com o seu código fonte. 40 3 METODOLOGIA Apresentam-se neste capitulo os procedimentos metodológicos científicos utilizados para a realização da pesquisa, partindo-se do problema, objetivos e finalizando com a apresentação de um documento padrão. Para desenvolver os objetivos e resolver a problemática, foram definidos ações sobre os fatores que norteiam a importância dada a criação SISPROTEGE alarme inteligente e automação residencial controlado pela internet, que busca uma maior comodidade e praticidade de maneira acessível ao usuário. 3.1. PESQUISA DE CAMPO E BIBLIOGRÁFICA A pesquisa de campo tem como objetivo principal, responder ao problema pesquisado de forma que envolva desde o estudo de opinião dos entrevistados até os aspectos peculiares a realidade a sua volta (GIL, 1991). “A vantagem desse tipo de pesquisa é que traz elementos sempre atuais e novidades recentes, o que dá ao trabalho um referencial social e humano do contexto pesquisado” (FURASTÉ, 2007, p. 35). Dessa forma, Gil (1991) destaca que esse tipo de pesquisa se resume, dentre outros aspectos, a analisar, explicar e interpretar os dados coletados, tudo de forma fidedigna e sem qualquer tipo de alteração ou interferência, pois os dados coletados refletem a opinião dos investigados. Portanto, a pesquisa de campo foi utilizada para a coleta dos dados acerca do objeto investigado, possibilitando, assim, compor informações que refletissem os fatores relacionados às questões propostas para responder a problemática central estabelecida para este estudo. Quanto à pesquisa bibliográfica Marconi; Lakatos (2007, p. 33) descreve que é a que abrange a leitura, análise e interpretação com base em material já elaborado, constituído principalmente de livros, artigos, periódicos, entre outros, cujo objetivo é conhecer as diferentes contribuições científicas disponíveis sobre o tema em questão com tripla finalidade: desenvolver hipóteses, aumentar a familiaridade do pesquisador com um ambiente, fato 41 ou fenômeno para a realização de uma pesquisa futura mais precisa ou modificar e clarificar conceitos. Para Furasté (2007, p. 27) por meio da pesquisa bibliográfica “pretende-se atender aos objetivos do autor, uma vez que precisa ir ao encontro da solução para o problema levantado”. Esse tipo de pesquisa possibilitou construir um marco teórico essencial para a compreensão de tema explorado nesse estudo, pois “quanto mais completas e abrangentes forem as fontes bibliográficas consultadas, mas rica e profunda será a pesquisa” (GIL, 2010, p. 27). 3.2. ABORDAGEM QUALI-QUANTITATIVA A pesquisa qualitativa considera que há uma relação dinâmica entre o investigador e o sujeito investigado, isto é, um vínculo indissociável entre o mundo objetivo e a subjetividade do sujeito que não pode ser traduzido em números, de modo que: Os movimentos em torno da pesquisa qualitativa buscam confrontar-se com os excessos da formalização, mostrando-nos que a qualidade é menos questão de extensão do que de intensidade. Deixá-la de fora seria deturpação da realidade (DEMO, 2000, p. 29). Esta abordagem determina a qualidade do sujeito e/ou objeto investigado, para tanto, tem vocação para mergulhar na profundidade dos fenômenos de forma compreensiva, abrindo-se para apreender e pesquisar a realidade alicerçada no consenso obtido da percepção de vários indivíduos diante de um mesmo fenômeno, leva em conta toda a sua complexidade e particularidade. Não almeja alcançar a generalização, mas sim o entendimento das singularidades. Com a pesquisa quantitativa buscou-se coletar os dados que serviram de base para iniciar a pesquisa. Segundo Cervo, Bervian e Da Silva (2007) a pesquisa quantitativa realiza descrições precisas da situação e quer descobrir as relações existentes entre os elementos e componentes. Quanto à pesquisa quantitativa ela possibilita, segundo Chizzotti (2003, p. 51), reunir, de forma criteriosa, “técnicas e a confecção de instrumentos adequados de registro e leitura dos dados colhidos em campo”, e, como tal, centra sua importância 42 na medida em que prevê a mensuração de variáveis pré-estabelecidas, de forma a verificar e explicar sua influência sobre outras variáveis, utilizando-se para isso, da análise da frequência de incidência e de correlação estatística. Para Andrade (2010), a utilização da pesquisa quantitativa é importante porque, além de prevê a mensuração de variáveis pré-estabelecidas, ela busca, o conhecimento por meio do método das ciências da natureza que centra-se na rigorosidade e comprovação científica. Em se tratando disso, Gil (2010, p. 26) evidencia que a utilização da pesquisa quantitativa em trabalhos científicos justifica-se por: Submeter um fato à experimentação em condições de controle e apreciá-lo coerentemente, com critérios de rigor mensurando a constância das incidências e suas exceções e admitindo como científicos somente os conhecimentos possíveis de apreensão em condições de controle, legitimados pela experimentação e comprovados pela mensuração. Sendo assim, essa abordagem foi utilizada para tratar os dados coletados e, desta forma compor estatisticamente os fatores predominantes relacionados ao ambiente investigado. 3.3. TIPO DE PESQUISA Quanto aos objetivos esta pesquisa é exploratória por que tem “como objetivo proporcionar maior familiaridade com o problema, com vistas a torná-lo mais explícito ou a construir hipóteses” (TEIXEIRA, 2007, p. 78) visando o aprimoramento de ideias ou a descoberta de intuições, por isso, é bastante flexível, pois a proposta é possibilitar a consideração dos mais variados aspectos relativos ao fato estudado. Neste contexto a pesquisa exploratória do ponto de vista de seus objetivos, conforme aponta Gil (2008) O objetivo de uma pesquisa exploratória é familiarizar-se com um assunto ainda pouco conhecido, pouco explorado. Assim, ao final de uma pesquisa exploratória, busca-se conhecerá mais sobre aquele assunto por ser um tipo de pesquisa muito específica ela assume características de estudo de caso e bibliográfica. 43 3.4. MÉTODOS Fez-se uso do método Analítico e hermenêutico que trabalha por meio de evidências documentadas por meio de estudos e facilita a interpretação e o aproveitamento das opiniões e resultados obtidos ao longo do processo. O Método Analítico caracteriza-se pelas análises contínuas durante o processo, como define Gil (1994, p. 35), deve se valer em mais de um momento de observação, dando a quem observa uma maior precisão dos fatos. O método hermenêutico identifica os fundamentos para ratificar ou retificar o que se esta pesquisando, usando processos interpretativos facilitando a interpretação e o aproveitamento das opiniões e resultados obtidos ao longo do processo. 3.5. POPULAÇÃO E AMOSTRA O universo corresponde, segundo Marconi e Lakatos (2007, p. 108), “toda a população que o pesquisador possui para extrair a amostra”. Sendo assim, é a população que se tem disponível para selecionar a amostra necessária para que o estudo seja realizado. Em se tratando disso, a pesquisa foi realizada na sede do município de Boa Vista, Estado de Roraima/BR, com pessoas comuns da sociedade e de diversas classes sociais. Neste caso, abrangeu uma população alvo de possíveis consumidores. E teve como amostra 10 pessoas da sociedade de diversas classes sociais. Dentre os participantes da pesquisa, optou-se por trabalhar com aqueles que se dispuseram a responder as perguntas. 3.6. INSTRUMENTO DE MEDIDA Dos instrumentos para coleta de dados sugeridos o mais apropriado é o questionário, pois uma vez instrutrurado por questões relativas a natureza do tema 44 possibilita o registro e análise dos dados que comporão os resultados estabelecidos, conforme ensina Marconi e Lakatos (2007). Sendo assim, o questionário é um instrumento de coleta de dados que permite ao pesquisador obter informações sobre conhecimentos diversos a respeito de uma determinada realidade, pois: É uma técnica de investigação composta por um conjunto de questões que são submetidas a pessoas com o propósito de obter informações sobre conhecimentos, crenças, sentimentos, valores, interesses, expectativas, aspirações, temores, comportamento presente ou passado, etc. Construir um questionário consiste basicamente em traduzir objetivos da pesquisa em questões específicas. (GIL, 2010, p. 121). Como se pode verificar, o questionário consiste num documento que tem a função de proporcionar os dados requeridos, por meio das questões elaboradas e aplicadas, para descrever as características e informações gerais da população, amostra da realidade pesquisada, bem como testar hipóteses previamente elaboradas (GIL, 2010). Com base nisso, foi aplicado, junto aos sujeitos da pesquisa, um questionário estruturado contendo um total de sete questões fechadas objetivando responder ao problema de pesquisa outrora levantado. 45 4. ANALISE E DISCUSSÃO DOS RESULTADOS 4.1. QUESTIONÁRIO APLICADO AO POSSÍVEL CONSUMIDOR Nº Perguntas Respostas Quanti dades % 01 Você possui algum tipo de alarme em sua residência? Sim Não 03 07 30% 70% 02 Você como consumidor, acredita que os alarmes são acessíveis? Sim Não 04 06 40% 60% 03 Em sua opinião o valor de um alarme residencial custa em media quanto para uma residência com 5comudos? Ate 800,00 reais Ate 1.500,00 reais Ate 2.000,00 reais 01 06 03 10% 60% 30% 04 Sabendo que os serviços de monitoramentos feito por empresas especializadas são em grande maioria caros. O que você acha de um alarme residencial que seja monitorado pelo próprio cliente? Bom Ótimo Ruim 02 07 01 20% 70% 10% 05 Quais as dificuldades encontradas para obtenção de um alarme residencial? Falta de recursos financeiros Custo elevado do monitoramento Falta de uma empresa confiável 04 06 0 40% 60% 0% 06 A grande quantidade de assaltos em residências acontece por falta de segurança, você confia em sistema de alarme e monitoramentos feitos por empresas especializadas? Sim Não 09 01 90% 10% 07 O alarme é um meio utilizado para inibir e tirar a visão de infratores dos estabelecimentos residenciais. Baseado nisso você instalaria esse tipo de sistema em sua casa? Sim Não 10 0 100% 0% Fonte dados coletados pelos pesquisadores - 2013 46 Ao analisar as respostas do questionário, buscamos refletir sobre as mesmas para entender como pensa o mercado consumista com relação aos alarmes residenciais e seus serviços de monitoramento. Desta forma buscamos sugerir um alarme inteligente e automação residencial controlado pela internet e partindo desta nova opção verificar como o usuário se comporta ao ter um produto que possa dar - lhe uma maior comodidade e praticidade de maneira acessível. Os resultados obtidos na pesquisa foram satisfatórios e levaram a uma ampla visão dos comportamentos dos possíveis usuários de alarmes e da acessibilidade deste produto em suas residências. Notou-se que a maioria dos entrevistados tem intenção de obter um alarme para suas residências, mas a maioria aponta como uma das dificuldades encontradas para obtenção de um alarme residencial, o fato do alto custo do monitoramento. Diante disto surge a ideia de criar o SISPROTEGE, como forma de trazer comodidade e acessibilidade ao usuário. Também para a redução dos gastos do consumidor, sugerimos um sistema aonde o próprio usuário possa fazer seu monitoramento por meio de telefones moveis e da internet, desta forma buscamos levar este produto ao mercado de modo que possibilite ao usuário conhecer e ter a sua disponibilidade um alarme inteligente capaz de monitoramento da sua residência a distancia de modo que possibilite a economia de energia por meio do uso da plataforma Arduino. 4.2 DESENVOLVIMENTO DO ALARME SISPROTEGE A construção do alarme SISPROTEGE iniciou-se partindo da revisão bibliográfica sobre tecnologia e equipamentos que poderiam ser usadas no desenvolvimento deste projeto aonde verificou-se que a manipulação dos microcontroladores exige conhecimentos avançados em eletrônica, partindo dessa analise destacou-se que a plataforma Arduino que proporciona um ambiente completo para a construção de sistemas microcontrolados por desenvolvedores com conhecimento básico em eletrônica. Partindo desses estudos, constatou o uso das seguintes tecnologias:  Plataforma Arduíno; 47  Linguagem de programação PHP;  Servidor Web Apache;  SGBD MYSQL;  Sensores para alarmes;  Modulo Híbrido 433,92mhz wireless;  Design Web Responsive. No decorrer da primeira etapa, foram adquiridos: Arduino UNO, sensores de infravermelhos, Relay Shield. Na segunda etapa, desenvolveu-se uma versão dos algoritmos do Arduino. Em seguida, foi desenvolvido um sistema Web para administração das funcionalidades do sistema presente no Arduino. Este sistema permitirá a interação entre o usuário e o alarme. Na quarta etapa, foi desenvolvido um protocolo simples para a comunicação USB (Universal serial bus) para fazer a integração de hardware e software. Por fim, a ultima etapa, após a agregação das partes, criou-se o SISPROTEGE. Instalou o sistema na bancada para verificar o funcionamento do mesmo. 4.2.1. SisProtege Hardware Este tópico se refere a metodologia empregado no desenvolvimento da parte física do sistema (Hardware), para isso será explanado algumas tecnologias que estão ligadas a este desenvolvimento. 4.2.1.1. Microcontroladores Segundo Pereira (2013), microcontrolador, figura 10, é um chip que integra em um mesmo encapsulamento, a unidade central de processamento (UCP), unidade lógica e aritmética (ULA), circuitos de suporte, memórias e periféricos. Um microcontrolador é frequentemente referido como um computador num único chip. 48 Figura 10 – Microcontrolador AVR ATMEGA328p Para o funcionamento de um microcontrolador é preciso de alguns componentes eletrônicos, como reguladores de tensão, cristais de frequência entre outros. Por isso foi feito o uso da plataforma Arduino, este já possui um hardware com todos os componentes necessários para funcionamento do microcontrolador, além de já está bastante expandindo no mercado com bibliotecas de códigos e exemplos que facilitam o desenvolvimento de qualquer sistema que use microcontroladores. 4.2.1.2. Arduino Uno R3 Inicialmente o hardware do alarme será desenvolvido utilizando a plataforma Arduino, especificamente Arduino UNO R3 por ter recursos de sobra para a conclusão deste projeto, bem como um Relay Shield, figura 4, para acionamentos de dispositivos elétrico/eletrônicos presentes na residência. Ambos trabalharão em conjunto para executar tarefas referentes à automação residencial. Segundo Arduino (Home page), o Arduino UNO R3 possuí as configurações que estão na tabela 3. Microcontroller ATmega328 Operating Voltage 5V Input Voltage 7-12V 49 (recommended) Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz TABELA 3 – CONFIGURAÇÃO ARDUÍNO Esta configuração de hardware mesmo sendo modesta, permite a execução de todas as funções, até mesmo um processamento paralelo, com uma ótima precisão para análise dos dados e com pinos de entradas e saídas disponíveis para que o alarme possa monitorar vários setores. O Arduino será responsável por administrar sensores, analisar controles, efetuar disparo, gerar sons da sirene, gera estado de sensores para a interface Web, além de contar tempo utilizando os relógios internos. Itens como Interrupções internas e externas, timmers, PWM e outros recursos avançados serão amplamente utilizadas para execução de todas as tarefas executadas no Arduino para que não haja perda de desempenho. O Arduino é uma plataforma de código aberto tanto no hardware como no ambiente de desenvolvimento de software, ele possui uma Interface de Desenvolvimento – IDE multiplataforma, figura 11, que pode ser usado em diferentes sistemas operacionais, Windows, Linux, Mac OS. Esta IDE permite o desenvolvimento dos algoritmos e a gravação deste sistema diretamente no microcontrolador. 50 Figura 11 – IDE da plataforma Arduino. 4.2.1.3. Sirene A sirene escolhida para este alarme é uma sirene simples sem som sintetizado, ou seja, sem som amplificado. O som do alarme será gerado no próprio Arduino utilizando a função Tone(). Esta função é capaz de mudar a frequência do sinal de saída, para isso, esta função recebe um valor como parâmetro da frequência e o Arduino gera um sinal de saída na frequência passada pelo parâmetro. Este sinal proveniente do Arduino tem uma corrente muito baixa, por isso não é possível gerar som diretamente do Arduino para a sirene. Para usar este sinal na sirene é necessário usar um transistor amplificador. O transistor que foi utilizado para amplificar este sinal é o BC337, figura 12, este possui a possibilidade de conduzir uma corrente suficiente para amplificar uma sirene. O esquema, figura 13, está mostrando a ligação entre transistor e Arduino. Para proteger a porta de saída do Arduino e limitar a corrente na base do BC337 foi utilizado um resistor 1k2 OHM entre a base do transistor e o pino de saída do Arduino. Nesta mesma figura demonstra três fios que serão utilizados para fazer a ligação da sirene. Segue as seguintes cores dos fios e funcionalidades: 51  Preto – Terra;  Amarelo – Sinal Amplificado;  Vermelho – Alimentação 12v. Figura 12 – Transistor BC337 Figura 13 – Ligação do Transistor BC337 para amplificação da sirene 4.2.1.4. Proto Shield Para que o hardware seja incorporado em uma única peça, será utilizado um Proto Shield, figura 14, compatível com Arduino. Este acessório servirá de encaixe 52 no Arduino Uno e todos os componentes serão soldados nesta, com isso todos os componentes funcionarão como um, deixando a impressão de que só existe uma peça em funcionamento. Sem o Proto Shield seria feito a ligação em uma Proto Board, figura 15, utilizando vários fios e não ficaria nem um pouco atrativo, diferente de um projeto construído em uma Proto Shield, figura 16. Figura 14 – Proto Shield Figura 15 – Arduíno e Proto Board 53 Figura 16 – Arduino e Proto Shield 4.2.1.5. Relay Shield Toda a automação residencial do sistema será administrada por uma placa de relés, figura 5, onde estes farão o acionamento de cargas de correntes altas, como ligamento de lâmpadas e acionamento de portão eletrônico. Para isso, este Relay Shield será ligado à placa do Arduino por meio de ligações com fios (Jumpers), na mesma forma da figura 15. 4.2.1.6. Sensores Não existe alarme sem sensores, por isso os sensores utilizados neste projeto são sensores de infravermelho passivo. O proposito deste alarme é poder desligar a alimentação elétrica dos sensores quando o alarme estiver desligado e efetuar o inverso quando ligar o alarme para que não haja desperdício de energia. Para que essa regra de negócios funcione é preciso programar um acionador de alimentação, que neste caso será usado um transistor Mosfet IRLZ44N, figura 17. Este transistor será responsável por alimentar os sensores quando o alarme for ligado, levando em consideração que o manual deste sensor diz que o sensor passa dois minutos para 54 estabilizar depois que foi ligado para que não ocorra disparo falso e é através dos Timmers do Arduino, especificamente o Timer 1, que conta exatamente dois minutos para haver de fato um disparo, ou seja, quando o alarme liga, o sensor pode detectar uma presença mas o alarme não entra em disparo, somente dois minutos após o ligamento do alarme que ele de fato pode disparar, este é o tempo que o alarme espera os sensores estabilizarem. Um IRLZ44N pode alimentar simultaneamente mais de 40 sensores. Figura 17 – Transistor Mosfet IRLZ44N 4.2.1.7. Resultado Com a junção de todas estas tecnologias e com o conhecimento adquirido pelas pesquisas bibliográficas foi possível desenvolver um hardware, figura 18, 19 e 20, que pudesse fazer transmissão de dados com o computador. Realizando com isso um alarme controlado pela internet que necessita de um computador servidor para administrar o Arduino e a aplicação Web que será demonstrado nos tópicos a seguir. Todo o código fonte está disposto no Apêndice B, que poderá ser melhorado conforme a necessidade do usuário. Podemos citar o domínio do uso de interrupções de software que foi a grande conquista neste projeto, pois este quesito se mostrou pouco conhecido no meio acadêmico e estudantes em geral, isto facilitou bastante o desenvolvimento deste hardware que se fosse feito de outro modo iria triplicar a complexidade deste sistema de alarme. 55 Figura 18 – SISPROTEGE HARDWARE 1 Figura 19 – SISPROTEGE HARDWARE 2 56 Figura 20 – SISPROTEGE HARDWARE 3 4.2.2. SisProtege Web A interface Web que é responsável por administrar as funções do hardware do alarme abrange as seguintes funcionalidades:  Inserir, alterar e excluir usuários;  Cadastrar e zerar controles remotos;  Ligar e desligar alarme;  Desativar sinalização da sirene;  Ligar e desligar portas de automação;  Enviar sinal portão eletrônico. A seguir, serão explanadas algumas telas do sistema web em 2 modos, normal e Web Responsive para demonstrar as funcionalidades do sistema. Na figura 21 e 22 segue a imagem da tela de autenticação no sistema, uma vez que feito a autenticação, o usuário autenticado fará parte de uma sessão para que possa ter acesso as funcionalidades do sistema. Este é um recurso básico de segurança que 57 restringe o acesso de usuários não permitidos às paginas de controle do alarme. Nesta página contem um botão Sair, que encerra a sessão e redireciona para a página de autenticação. Figura 21 – Autenticação SISPROTEGE WEB 58 Figura 22 – Autenticação Web Responsive A figura 23 e 24 demonstra a página principal do sistema, onde é possível ligar ou desligar alarme, gerenciar automação, abrir portão eletrônico, desativar sirene, entre outros. Ressaltando que no canto superior direito tem uma imagem Protegido, isto diz que o alarme está ligado, se estivesse desligado estaria Desprotegido. 59 Figura 23 – Página principal Figura 24 - Página principal Web Responsive A figura 25 e 26 mostra a página de Eventos, esta foi feita para adicionar no banco de dados todos os eventos de disparo gerados pelo alarme, para isso ser 60 possível o alarme envia uma informação por meio da porta USB (Universal Serial Bus) que será monitorada pelo sistema web, quando receber esta informação o sistema deve fazer o tratamento e guardar no banco de dados o respectivo evento. Figura 25 – Página de Eventos Figura 26 - Página de Eventos Web Responsive 61 Figura 27 – Página de Configuração Figura 28 – Página de Configuração Responsive 62 A figura 27 e 28 mostra a página das configurações do sistema, onde é possível cadastrar controles, zerar controles, cadastrar usuários e configuração da porta USB. 4.2.3. Comunicação entre sistemas Este tópico se propõe mostra a forma de comunicação entre sistema Web e Arduino. Segundo Collucci (2013), enviar bits de forma sequencial por um fio ou barramento é chamado de comunicação serial, é um meio muito utilizado para comunicação entre dispositivos. Existem diversas tecnologias de comunicação serial como RS-232, USB, FireWire, Fibre Channel, SCSI dentre outros. Todas as placas do Arduino possuem ao menos uma porta de comunicação Serial (chamadas de UART ou USART), nos pinos digitais 0 (RX) e 1 (TX), e boa parte deles pode se comunicar com um computador via USB. Utilizando este recurso do Arduíno criou-se uma comunicação com o computador simplesmente escrevendo uma informação na porta de comunicação USB do computador e analisando essa informação no Arduíno. Para que essa técnica funcione é preciso escrever na mesma porta que o Arduíno está conectada. Na figura 29, podemos analisar os comandos (protocolo), para que o Arduíno consiga entender as funcionalidades enviadas pela interface Web. Figura 29 – Protocolo SISPROTEGE Quando é escrito algum caractere descrito na figura 29 na porta de comunicação USB que está conectado o Arduíno o alarme irá responder com a devida funcionalidade. Isto foi necessário tanto para deixar o hardware com fácil integração com outros sistemas e também para o desenvolvimento em equipe. 63 5. CONSIDERAÇÕES FINAIS Este trabalho apresentou a elaboração de um protótipo de um sistema de alarme utilizando a plataforma Arduino. O trabalho surgiu após a constatação de que os alarmes monitorados têm um preço não muito acessível aos consumidores, levando este tipo de segurança a um público específico. O SisProtege é um sistema que foi projetado para famílias independentes de classe, que não podem arcar com as despesas de um sistema de monitoramento de câmeras, propôs-se a construção de um sistema de alarme monitorado pela internet. Apesar de o SisProtege ter como requisito um computador pessoal ligado por 24 horas na residência, o mesmo garante que não terá gastos excessivos com energia uma vez que o consumo de um computador de mesa popular consome cerca de 150 Watts. Em contrapartida a este requisito é proposto o uso de mini- computadores, tais como Raspberry que possuem um consumo de energia extremamente baixo e com preço bem acessível, vale também salientar que este computador servirá também para as tarefas diárias do usuário. Com o SISPROTEGE, o usuário poderá monitorar o alarme da residência em tempo real em qualquer lugar do mundo (rua, trabalho, viagem) pela internet, além de poder ligar ou desligar lâmpadas e fazer a abertura de portão eletrônico. O sistema será totalmente compatível com sensores e controles remotos presentes nos alarmes comuns, garantindo assim a facilidade na implementação, uma vez que os acessórios são facilmente encontrados no comercio local. Os testes realizados na bancada se mostraram bastantes estáveis, garantindo assim a implantação em uma residência. Seu custo se mostrou bastante acessível em comparação aos alarmes deste tipo presentes no comercio geral. A plataforma Arduíno e a linguagem PHP são de código aberto o que garante baixo custo na aquisição deste equipamento. Com base no protocolo desenvolvido, figura 29, o alarme garante a integração de outros sistemas para a comunicação com o mesmo. Como pontos negativos deste projeto, podemos citar a inexistência de uma comunicação com GSM (operadoras de celular) ou discadora de telefones de modo a avisar o usuário quando o alarme detectar um intruso na residência. Por fim, como sugestões para trabalhos futuros: 64  Com relação aos algoritmos desenvolvidos para o Arduíno, sugere-se criar funcionalidades para o cadastro de controles, monitoramento de temperatura do ambiente;  Com relação ao sistema Web, sugere-se desenvolver um mecanismo que guarde no SGBD as ocorrências de disparos ocorridas no alarme. 65 REFERÊNCIAS ANDRADE, Maria Margarida de. Introdução à Metodologia do Trabalho Científico. 10. ed. São Paulo: Atlas, 2010. ARDUINO – home page. Arduino. [S.l.]. Disponível em: <http://www.arduino.cc>. Acesso em: 27 set. 2013. ARDUINO UNO. Arduino. [S.l.]. Disponível em: <http://arduino.cc/en/Main/ArduinoBoardUno>. Acesso em: 30set. 2013. BARRETO, Maurício Vivas de Souza, Curso de Linguagem PHP, [S.l.], 2000. BECK, Kent, Programação Extrema Explicada : Acolha as Mudanças, editora Bookman, ed. 1, 2004 BECK, Kent: Manifesto para o desenvolvimento ágil de software, disponível em:http://manifestoagil.com.br/ http://www.c2.com/cgi/wiki?ExtremeRoles, Acesso em : 26 de Nov. 2013 BOEIRA, Marcelo: O que é Raspberry Pi ?, disponível em: http://blog.marceloboeira.com/raspberry-pi/o-que-e-raspberry-pi/. Acesso em: 30 ago. 2013 COLLUCCI, Anthony, Comunicação Serial com Arduíno, 2013. Disponível em: http://amcollucci.com.br/2013/07/15/comunicacao-serial-com-arduino/ CUNNINGHAM, Ward: Extreme Programming, disponível em: http://www.c2.com/cgi/wiki?ExtremeProgramming, Acesso em : 4 de Out. 2013 CUNNINGHAM, Ward: Extreme Roles, disponível em: http://www.c2.com/cgi/wiki?ExtremeRoles, Acesso em : 4 de Out. 2013 CHIZZOTTI, Antonio. Pesquisa em ciências humanas e sociais. 6. ed. São Paulo: Cortez, 2003. (Biblioteca da educação. Série 1. Escola; v. 16) DEMO, P. Metodologia do conhecimento científico. São Paulo: Atlas, 2000. FRIZZARIN, Fernando Bryan: Usando o sensor de umidade e temperatura DHT11, disponível em: http://www.seucurso.com.br/index.php?option=com_content&view=articl e&id=231:us 66 ando-o-sensor-de-umidade-e-temperatura-dht11&catid=901:arduino&Itemid=65, Acessado em: 30 ago. 2013. FURASTÉ, Pedro Augusto. Normas Técnicas para o Trabalho Científico: Elaboração e Formatação. Explicitação das Normas da ABNT. 14. ed. Porto Alegre: s.n., 2007. GHIRARDELLO, A. Apostila sobre Modulação PWM. 2008. Disponível em: http://www.eletronica.org/arq apostilas/apostila pwm.pdf. Acesso em: 20 nov. 2009. GIL, Antônio Carlos. Como elaborar projetos de pesquisa. São Paulo:Atlas, 1991; 2007. ____. Métodos e Técnicas de Pesquisa Social. 6. ed. 3. reimpr. São Paulo: Atlas, 2010. HACKENHAAR, Jonathan; CARDOSO, Tatiana. Um comparativo entre PHP e JSP: definindo a melhor aplicação para o desenvolvimento de projetos web., Revista iTEC – Vol. I, No 1, 2010. HOLTEK, HT6P20X Series 224 OTP Encoder. 2003. disponível em: http://pdf1.alldatasheet.com/datasheet-pdf/view/85416/HOLTEK/HT6P20B.html INTERFACING with Hardware. [S.l.]: Arduino, 2009. http://www.arduino.cc/playground/Main/InterfacingWithHardware. Acessoem: 29 ago. 2013. KNIGHT, Kayla, Responsive WebDesign: What It Is and How To Use It, 2011. Disponível em: http://coding.smashingmagazine.com/2011/01/12/guidelines-for- responsive-web-design/ Acesso em: 25 Nov. de 2013 LAKATOS, Eva Maria; MARCONI, Marina de Andrade. Fundamentosde Metodologia Científica. São Paulo: Atlas, 5ª ed. 2003; 2007. NETTO, Daniel, O uso do Raspberry Pi pelos profissionais de eletrônica, Saber Eletrônica, v. 468, n. 1, p. 12-20, mar/abr, 2013. PEREIRA, Fábrio, Microcontroladores RL78 Guia Básico. 2013. Disponível em: http://www.perse.com.br/novoprojetoperse/BSU_Data/Books/N1367506931413/Amo stra.pdf SOARES, Walace, Php 5 - Conceitos, Programação e Integração com Banco de Dados, Editora Érica, ed. 1, 2004. 67 TEIXEIRA, Elizabeth. As três metodologias: acadêmica, da ciência e da pesquisa. 4. ed. Petrópolis, RJ: Vozes, 2007. 68 APÊNDICE A - ORÇAMENTO DISPOSITIVO VALOR R$ Arduino UNO R3 55,00 Módulo híbrido 433,92mhz 12,00 Relay Shield 35,00 Controle Remoto sem fio 15,00 Transistor BC337 NPN 2,50 Mosfet IRLZ44N 3,00 Proto Shield 33,00 Total 155,50 69 APÊNDICE B – CÓDIGO FONTE ARDUÍNO #include <avr/io.h> #include <EEPROM.h> #include <TimerOne.h> #include <avr/eeprom.h> #include <avr/interrupt.h> #define p1 7 #define p2 8 #define p3 9 #define p6 3 #define pinMosfet 10 #define sirene 5 #define sen 11 //Analog #define pinoRx 2 #define p6 3 #define power 13 #define baud 9600 #define intervalo 1000 #define tempoLigaSensoresSeg 60 #define tempoDisparoSeg 360 intdisp, contadorTimer = 0; longpreviousMillis = 1000; unsigned long baudprescale; unsignedintbitLido, tempo, baixo, alto; unsigned long dadoLido; intonOFF, sinal, serialOK = 0; charrByte, senOK = 0; void setup() { pinMode(p1, OUTPUT); pinMode(p2, OUTPUT); pinMode(p3, OUTPUT); pinMode(p6, OUTPUT); pinMode(sirene, OUTPUT); pinMode(pinMosfet, OUTPUT); pinMode(sen, INPUT_PULLUP);//configura como entrada em nivel alto pinMode(power, OUTPUT); pinMode(pinoRx, INPUT); digitalWrite(sirene, LOW); digitalWrite(pinMosfet, LOW); digitalWrite(2, LOW); 70 digitalWrite(p1, LOW); digitalWrite(p2, LOW); digitalWrite(p3, LOW); digitalWrite(p6, LOW); attachInterrupt(0, trataInterrupcao, RISING); USART_init(); } void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis> intervalo) { if ((onOFF == 1) & (senOK == 1)){ // ESTE TRECHO DE CÓDIGO FAZ COM QUE O LED DA PORTA 13 FIQUE LIGANDO E DESLIGANDO A CADA 1 SEGUNDO SE O ALARME ESTIVER ATIVADO digitalWrite(13, !digitalRead(13)); } previousMillis = currentMillis; } // ONOFF É A VARIÁVEL QUE DIZ SE O ALARME ESTÁ LIGADO OU DESLIGADO if (onOFF == 1){ if ((digitalRead(sen) == LOW) & (senOK == 1) & (disp == 0)){ //VERIFICA SE O ESTADO DO SENSOR EST� EM ALTO, SE ESTIVER QUER DIZER QUE OUVE DISPARO disp = 1; // EM ALGUM DOS SENSORES Timer1.initialize(1000000); // seta o Timer1 para disparar interrupção a cada 1 segundo Timer1.attachInterrupt( timerIsr ); // seta uma interrupção por estouro de timer } } //if (digitalRead(sen) == LOW)digitalWrite(13, HIGH); /// SE DISP == 1, É A VARIÁVEL QUE INDICA QUE O ALARME ESTÁ EM DISPARO if (disp == 1){ sireneSOM(2); } if (serialOK == 1) { //FLAG SERIAL, SE ESTIVER IGUAL A 1 QUER DIZER QUE CHEGOU SINAL NA USART releShield(rByte); serialOK = 0; rByte = 0; 71 } if (sinal == 1){ // ESTA FLAG DIZ QUE CHEGOU UM DADO DE CONTROLE REMOTO NO MODULO HIBRIDO detachInterrupt(0); // DESATIVA A INTERRUPÇAO 0 ligaDesliga(); sinal = 0; dadoLido = 0; attachInterrupt(0, trataInterrupcao, RISING); //Habilita interrupção pino 2 na borda de descida } }// FIM LOOP voidescreveStringUSART(const String esc){ for (int i = 0; i = esc.length(); i++){ USART_Transmit(esc[i]); } } String stringEstados(){ String est = ""; // (1) se esta em disparo // (2) ligado // (3) iniciando sensores // (4) porta 1 rele shield // (5) porta 2 rele shield // (6) porta 3 rele shield // (7) porta 4 rele shield PORTAO ELETRICO, LIGA POR 1 SEGUNDO E DESLIGA est[0] = disp; est[1] = onOFF; est[2] = senOK; if (digitalRead(p1) == HIGH) est[3] = 1; elseest[3] = 0; if (digitalRead(p2) == HIGH) est[4] = 1; elseest[4] = 0; if (digitalRead(p3) == HIGH) est[5] = 1; elseest[5] = 0; if (digitalRead(p6) == HIGH) est[6] = 1; elseest[6] = 0; returnest; } 72 voidUSART_init(){ baudprescale = (((F_CPU / (baud * 16UL))) - 1); // cli();//desabilita interrpçao global UCSR0B = (1<<RXCIE0) | (0<<TXCIE0) | (1<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02); //HABILITA TODOS OS MODOS DE INTERRUPÇAO SERIAL UCSR0C = (1<<UCSZ01) | (1<<UCSZ00); //Assincrono, caracter 8bits UBRR0L = baudprescale; UBRR0H = (baudprescale>> 8); sei(); //habilita interrpçao global } charavr_Usart_Write_String(char* txData) { char success = 0; int i = 0; // While not end of transmit string while(txData[i] != '\0') { // Print string one char at a time USART_Transmit(txData[i]); // Increment char position in string i++; } success = 1; return(success); } //////////ROTINA DE INTERRUPÇÃO USART//////////////////// ISR(USART_RX_vect) { rByte = UDR0; //char novo = UDR0; if (rByte == 'S') { if (disp == 1) disp = 0; } serialOK = 1; } voidUSART_putstring(char* StringPtr){ 73 while(*StringPtr != 0x00){ USART_Transmit(*StringPtr); StringPtr++; } } voidUSART_Transmit(unsigned char data) { while ( !( UCSR0A & (1 << UDRE0)) ) ; UDR0 = data; } //////////////////------ Rotina da interrupção do timer1 a cada 1 segundo para ligar os sensores -----------///////////////// voidtimerIsr() { contadorTimer++; if (disp == 1){// CONTA O TEMPO QUE PASSOU EM DISPARO PARA PODER DESATIVAR A SIRENE NO TEMPO DETERMINADO if (contadorTimer>tempoDisparoSeg){ disp = 0; contadorTimer = 0; Timer1.detachInterrupt(); } } else{ if (contadorTimer>tempoLigaSensoresSeg){ //CONTA O TEMPO PARA LIGAR A ALIMENTACAO DOS SENSORES NO MOSFET senOK = 1; contadorTimer = 0; Timer1.detachInterrupt(); } } } //////// ------- Esta funcaoé responsável por tratar os retornos da USART--------////// voidreleShield(char le){ if (le == 'S'){// LIGA OU DESLIGA ALARME, SE ESTIVER EM DISPARO, CANCELA O DISPARO if (disp == 1) disp = 0; ligaDesliga(); } elseif (le == 'X'){//CADASTRA CONTROLE REMOTO cadastraControle(dadoLido); } else if (le == 'A'){ // SIMULA DISPARO 74 disp = 1; onOFF = 1; } elseif (le == 'E'){ //transmite para serial os dados das portas dos sensores char* est; // est = stringEstados(); USART_putstring(est); //printf(est); /* for (int i = 0; i >est.length(); i++){ USART_Transmit(est[i]); }*/ } else if (le == '1'){ digitalWrite(p1, !digitalRead(p1)); } else if(le == '2'){ digitalWrite(p2, !digitalRead(p2)); } elseif(le == '6'){// pino 6 programado para dar um pulso de 1 segundo para abrir portaoeletronico digitalWrite(p6, LOW); digitalWrite(p6, HIGH); delay(1000); digitalWrite(p6, LOW); } le = 0; } //////// ------- FUNCAO QUE GERA OS SONS DA SIRENE--------////// voidsireneSOM(constint valor){ if (valor == 1){ tone(sirene, 2000); delay(100); noTone(sirene); delay(100); tone(sirene, 2200); delay(200); noTone(sirene); } else if (valor == 2){ //sireneemdesparo int i = 1200; int a = 0; intche = 1; while (a != 100){ if (disp == 0){ noTone(sirene); return; 75 break; } tone(sirene, i); if (che == 1)i = i + 10; else i = i - 10; if (i > 2000){ che = 0; a++; } if (i < 1200){ che = 1; a++; } delay(1); } noTone(sirene); } else{ noTone(sirene); delay(100); tone(sirene, 1800); delay(200); noTone(sirene); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // voidcadastraControle(const long val){ while (true){ if (sinal == 1){ gravaLongEEPROM(val); // Serial.println("Sinal Recebido!"); break; } } } voidligaDesliga(){ //Serial.flush(); detachInterrupt(0); if (onOFF == 0){ onOFF = 1; Timer1.initialize(1000000); // seta o Timer1 para disparar interrupçao a cada 1 segundo Timer1.attachInterrupt( timerIsr ); // seta uma interrupçao por etouro de timer sireneSOM(1); 76 digitalWrite(pinMosfet, HIGH);// ATIVA O PINO EM ALTO PARA FAZER COM QUE O MOSFET CONDUZA E ALIMENTE OS SENSORES } else{ onOFF = 0; sireneSOM(0); noTone(sirene); disp = 0; Timer1.detachInterrupt(); senOK = 0; digitalWrite(pinMosfet, LOW);// DESLIGA A ALIMENTACAO DOS SENSORES //Serial.println("sirene 0"); } attachInterrupt(0, trataInterrupcao, RISING); } voidleControle() { for ( bitLido = 0; bitLido< 28; bitLido ++) { tempo = 0; baixo = 0; while (true) //aguarda o nivel subir { if (digitalRead(pinoRx) == HIGH) tempo ++; if (tempo > 8) break; baixo ++; if (baixo> 200) break; } tempo = 0; alto = 0; while (true) //aguarda o nivel baixar { if (digitalRead(pinoRx) == LOW) tempo ++; if (tempo > 8){ break;} alto ++; if (alto > 200){ break;} } dadoLido = (dadoLido<< 1); //rotacionadadoLido um byte para esquerda if (baixo > alto){ dadoLido = dadoLido + 1; } } //fim do loop for, lidos os 28 bits delay(10000); 77 if ((dadoLido == 1519821845) || (dadoLido == 177644565)){ sinal = 1; if (disp == 1){ disp = 0; return; } } //USART_Transmit(dadoLido); delay(10000); return; } voidtrataInterrupcao() { detachInterrupt(0); // Liga o LED para sinalizar a atividade da rotina de interrupção // Se o led ficar piscando sem que seja apertado botão do controle, // é sinal de que está chegando muita interferência no RX. digitalWrite(power, HIGH); tempo = 0; alto = 0; while (true) //aguarda o nivel baixar e permanecer 8 ciclos em baixo { if (digitalRead(pinoRx) == LOW) tempo ++; if (tempo > 8) break; alto ++; } if ((alto > 70) and (alto < 200)){ leControle();} digitalWrite(power, LOW); // Desliga o LED attachInterrupt(0, trataInterrupcao, RISING); //Habilita interrupção pino 2 na borda de descida return; } int gravaLongEEPROM1(const long valor){ byte b1[4]; int int1, int2 = 0; int1 = lowByte(valor); int2 = highByte(valor); b1[0] = lowByte(int1); b1[1] = highByte(int1); b1[2] = lowByte(int2); 78 b1[3] = highByte(int2); for (int i = 0; i == 3; i++ ){ EEPROM.write(i, b1[i]); } return 1; } voidgravaLongEEPROM(const long valor){//grava 4 bytes naeeprom intpos = 1; byte a = 0; for (int i = 0; i = 7; i++){ bitWrite(a, i, bitRead(i, valor)); } EEPROM.write(pos, a); pos++; a = 0; for (int i = 8; i = 16; i++){ bitWrite(a, i, bitRead(i, valor)); } EEPROM.write(pos, a); pos++; a = 0; for (int i = 16; i = 20; i++){ bitWrite(a, i, bitRead(i, valor)); } EEPROM.write(pos, a); pos++; a = 0; } booleanverSinalValido(const long sinal){ long myFloat1; // eeprom_write_float( (float *) 20, myFloat1 ); for (int i = sizeof(sinal); i = 0; i--){ if (bitRead(i -1, sinal) == 1){ if (bitRead(i -2, sinal) == 0){ if (bitRead(i -3, sinal) == 1){ if (bitRead(i -4, sinal) == 0){ returntrue; } } } } } } 79 MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA DIRETORIA DE GRADUAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS QUESTIONÁRIO PARA AO CONSUMIDOR 1) Você possui algum tipo de alarme em sua residência? Sim ( ) Não ( ) 2) Você como consumidor, acredita que os alarmes são acessíveis? Sim ( ) Não ( ) 3) Em sua opinião o valor de um alarme residencial custa em media quanto para uma residência com 5cômdos? ( ) ate 800,00 reais ( ) ate 1.500,00 reais ( ) ate 2.000,00 reais 4) Sabendo que os serviços de monitoramentos feito por empresas especializadas são em grande maioria caros. O que você acha de um alarme residencial que seja monitorado pelo próprio cliente? ( ) Bom ( ) Ótimo ( ) Ruim 5) Quais as dificuldades encontradas para obtenção de um alarme residencial? ( )Falta de recursos financeiros ( ) Custo elevado do monitoramento ( )Falta de uma empresa confiável 6) A grande quantidade de assaltos em residências acontece por falta de segurança, você confia em sistema de alarme e monitoramentos feitos por empresas especializadas? ( ) Sim ( ) Não 7) O alarme é um meio utilizado para inibir e tirar a visão de infratores dos estabelecimentos residenciais. Baseado nisso você instalaria esse tipo de sistema em sua casa? ( ) Sim ( ) Não OBRIGADO PELA PARTICIPAÇÃO
Copyright © 2024 DOKUMEN.SITE Inc.