TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI

  • 3,462 views
Uploaded on

TCC - Automação Residencial usando microcontroladores e tecnologias de estado da arte em programação voltada para à internet. Bruno Gastaldi 06/2008

TCC - Automação Residencial usando microcontroladores e tecnologias de estado da arte em programação voltada para à internet. Bruno Gastaldi 06/2008

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,462
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. CENTRO UNIVERSITÁRIO CENTRAL PAULISTA CURSO DE ENGENHARIA DE COMPUTAÇÃOAUTOMAÇÃO RESIDENCIAL USANDO MICROCONTROLADORES E TECNOLOGIAS DE ESTADO DA ARTE EM PROGRAMAÇÃO VOLTADA À INTERNET BRUNO GASTALDI SÃO CARLOS - SP 2008
  • 2. II CENTRO UNIVERSITÁRIO CENTRAL PAULISTA CURSO DE ENGENHARIA DE COMPUTAÇÃOAUTOMAÇÃO RESIDENCIAL USANDO MICROCONTROLADORES E TECNOLOGIAS DE ESTADO DA ARTE EM PROGRAMAÇÃO VOLTADA À INTERNET BRUNO GASTALDI Trabalho de Conclusão de Curso apresentado ao curso de Engenharia de Computação do Centro Universitário Central Paulista (UNICEP) como requisito parcial para a obtenção do Título de Bacharel em Engenharia de Computação. SÃO CARLOS - SP 2008
  • 3. III_________________________OrientadorProf. Emerson Carlos Pedrino
  • 4. IV DEDICATÓRIA:Este trabalho é dedicado a toda minhafamília, meus professores e colegas defaculdade e principalmente a DEUS porter sempre me colocado no caminhocerto.
  • 5. V RESUMO A realidade de sistemas automatizados é cada vez mais aparente na vidamoderna. Casas e prédios já contam com sistemas integrados de controle quepossibilitam a realização de inúmeras atividades com facilidade e, em alguns casos,sem haver necessidade de presença física. Sistemas automatizados têm o custo muito elevado e poucas pessoas têmacesso. Sendo assim, o presente trabalho tem como justificativa pesquisar,implementar e simular uma solução de baixo custo utilizando microcontroladores etecnologias de estado da arte em programação voltada à internet.
  • 6. VI ABSTRACT The reality of automated systems had been increasing apparent in modern life.Houses and buildings already have control of integrated systems that enable theachievement of many activities with ease and in some cases without the need forphysical presence. Automated systems have a very high cost and few people have access.Therefore, this work looks for research, implement and simulate a solution using low-cost microcontrollers and technologies of state of the art in programming geared tothe Internet.
  • 7. VII ÍNDICE DE FIGURASFigura 1 – Comunicação dos elementos através da WEB ............................................................. 2Figura 2 – Navegadores mais utilizados nos dias atuais ............................................................... 3Figura 3 – Modelos de aplicações WEB ......................................................................................... 5Figura 4 – Estatística do uso de Softwares de Servidores WEB ................................................... 7Figura 5 – Núcleo da família 8051 .................................................................................................. 9Figura 6 – Diagrama de Blocos do projeto proposto ...................................................................... 10Figura 7 – Fluxograma de navegação ......................................................................................... 13Figura 8 – Estrutura dos diretórios e arquivos ............................................................................... 14Figura 9 – Apresentação do site e área de login ............................................................................ 16Figura 10 – Autenticação do usuário .............................................................................................. 16Figura 11 – Página principal do sistema responsável por interligar as tarefas .............................. 17Figura 12 – Apresentação do sistema e lista dos dispositivos ....................................................... 17Figura 13 – Painel de Controle ...................................................................................................... 18Figura 14 – Visualização dos cômodos/status ................................................................................ 18Figura 15 – Edição dos cômodos/status ........................................................................................ 19Figura 16 – Confirmação dos status alterados ............................................................................... 19Figura 17 – Visualização de todos os cômodos/status,da residência ............................................ 20Figura 18 – Recebimento de mensagem SMS ............................................................................... 20Figura 19 – Saindo do sistema ....................................................................................................... 21Figura 20 – Estrutura dos diretórios e arquivos ............................................................................. 21Figura 21 – Área de login ............................................................................................................... 23Figura 22 – Layout principal do software para PCs ....................................................................... 24Figura 23 – Cômodos disponíveis na residência ............................................................................ 25Figura 24 – Exibindo status da lâmpada atual ............................................................................... 26Figura 25 – Exibindo novo status da lâmpada ................................................................................ 27Figura 26 – Informações relevantes sobre o usuário ..................................................................... 28Figura 27 – Suporte via formulário ................................................................................................. 29Figura 28 – Câmera Online ............................................................................................................ 30Figura 29 – Gerenciador de tarefas diário ...................................................................................... 31Figura 30 – Gerenciador de tarefas ............................................................................................... 32Figura 31 – Status dos periféricos/cômodos .................................................................................. 33Figura 32 – Estrutura do hardware proposto .................................................................................. 34Figura 33 – Interface Delphi ........................................................................................................... 35
  • 8. VIII LISTA DE TABELASTabela 1 – Bancos suportados pelo PHP ....................................................................................... 6Tabela 2 – Pinagem da porta serial ............................................................................................... 8
  • 9. IX LISTA DE ABREVIATURAS E SÍGLASPHP – PHP Hypertext Pre-ProcessorPDA – Personal Digital AssistantWAP – Wireless Access ProtocolPC – Personal ComputerWWW – World Wide WEBHTML – HyperText Markup LanguageXHTML – eXtended HyperText Markup LanguageWML – Wireless Markup LanguageHTTP – HyperText Transport ProtocolUSB – Universal Serial BusAJAX – Asynchronous JavaScript and XMLXML – EXtensible Markup LanguageCSS – Cascading Style SheetsUNICEP – Centro Universitário Central PaulistaGSM – Global System for Mobile CommunicationsCDMA – Code Division Multiple AccessAPI – Application Programming InterfaceSMS – Short Message Service
  • 10. X SUMÁRIOCAPITULO 1 – INTRODUÇÃO ...................................................................................................... 1 1.1 - Objetivo ............................................................................................................... 1 1.2 - Metodologia ......................................................................................................... 1CAPITULO 2 – REVISÃO BIBLIOGRÁFICA .................................................................................. 2 2.1 - Dispositivos com acesso WEB ........................................................................... 2 2.1.1 – PC ............................................................................................................. 2 2.1.2 - Celular ........................................................................................................ 3 2.1.3 – Navegadores ............................................................................................. 3 2.2 - Linguagens para WEB ....................................................................................... 3 2.2.1 – HTML ........................................................................................................ 3 2.2.2 – XML ........................................................................................................... 4 2.2.3 - WML ........................................................................................................... 4 2.2.4 - CSS ........................................................................................................... 4 2.2.5 – JavaScript ................................................................................................. 4 2.2.6 – AJAX ......................................................................................................... 5 2.2.7 - PHP ........................................................................................................... 5 2.3 - Protocolo de comunicação ................................................................................. 6 2.3.1 - HTTP .......................................................................................................... 6 2.3.2 - WAP .......................................................................................................... 6 2.4 - Servidor e banco de dados ................................................................................ 7 2.4.1 - Apache ........................................................................................................ 7 2.4.2 - MySQL ........................................................................................................ 7 2.5 - Interação com componentes físicos ................................................................... 8 2.5.1 - Porta serial ................................................................................................. 8 2.5.1.1 - Conectores ou pinagem .......................................................................... 8 2.5.2 - Delphi .......................................................................................................... 9 2.6 - Componentes físicos .......................................................................................... 9 2.6.1 - Microcontrolador 8051 ............................................................................... 9CAPITULO 3 - O PROJETO .......................................................................................................... 10 3.1 - Síntese do projeto .............................................................................................. 10CAPÍTULO 4 – DESENVOLVIMENTO .......................................................................................... 11 4.1 - Considerações Iniciais ....................................................................................... 11 4.2 - Desenvolvimento da solução ............................................................................. 11 4.2.1 - Software .................................................................................................... 11 4.2.2 - Analise ........................................................................................................ 11
  • 11. XI 4.2.3 - Projeto ........................................................................................................ 12 4.2.4 – Implementação .......................................................................................... 14 4.2.4.1 - Software para celulares .......................................................................... 14 4.2.4.1.1 - Interface visual e seu funcionamento .................................................. 15 4.2.4.2 - Software para PCs .................................................................................. 21 4.2.4.2.1 - Interface visual e seu funcionamento .................................................. 23 4.2.3 - Comunicação via serial com o hardware ................................................... 34 4.2.3.1 - Análise do hardware ............................................................................... 34CAPÍTULO 5 - CONCLUSÃO ........................................................................................................ 36 5.1 - Implementações futuras ..................................................................................... 36REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................... 37APÊNDICE A – Comunicação serial com assembly ...................................................................... 39APÊNDICE B – Envio de mensagens textuais via SMS ................................................................ 40APÊNDICE C – SQL de criação do banco padrão ......................................................................... 41
  • 12. 1 CAPÍTULO 1 - Introdução1.1 OBJETIVO Este projeto tem como objetivo apresentar, simular e implementar umasolução de automação residencial de pequeno e médio porte. Para tanto, serãoutilizadas tecnologias de estado da arte em programação voltadas à internet,procurando obter um resultado final de baixo custo, e diminuir os requisitos deconhecimentos necessários ao usuário operante do sistema. O controle poderá serfeito através de interfaces móveis ou fixas como, por exemplo, um PC ou um celularcom WAP que irá estabelecer uma comunicação com um servidor central presentena residência e ligado a diversos periféricos de controle.1.2 METODOLOGIA Este projeto segue uma linha de pesquisa bibliográfica baseada em consultasa livros e sites da internet. Com base nessas pesquisas, o projeto tem finalidadeaplicada, ou seja, aplicação prática e experimental de seu objeto de estudo. A primeira etapa do projeto é o desenvolvimento de um software decomunicação via WAP, pelo qual poderá se alterar os periféricos da residência apartir de um aparelho móvel. A etapa seguinte constitui-se no desenvolvimento do aplicativo WEB paramonitoração da residência em 3D, através do uso de sensores de uma placamicrocontrolada que será implementada na última etapa.
  • 13. 2 CAPÍTULO 2 – Revisão Bibliográfica O conceito de World Wide Web (WWW), ou Internet, descreve um sistema deinformações de hipertexto, como descrito por Oliveira (2003). Ele constitui-se de umaforma visual de navegar pelas informações com o uso de vínculos, que ligam unsaos outros permitindo uma leitura de forma não linear. Para se obter o resultado final, que é a WWW, muitos elementos sãointerligados de forma única, formando uma vasta rede de comunicações. Além doselementos comuns, novos elementos estão sendo criados e ligados a esta rede,criando espaço para novas funcionalidades tais como e-commerce e serviçosbaseados em aparelhos portáteis como PDA’s e celulares. Figura 1 – Comunicação dos elementos através da WEB.2.1 – DISPOSITIVOS COM ACESSO A WEB2.1.1 – PC Os PCs (Computadores Pessoais) permitem criar documentos, planilhas,monitorar finanças, jogar, interagir com pessoas ao redor do mundo além de outrasinúmeras possibilidades. Se um PC está conectado à Internet, existe a possibilidadede ser usado para navegar na WEB, checar e-mails, comunicar-se com os amigos(através de programas de mensagens instantâneas), baixar e enviar arquivos. OsPCs tornaram-se parte integrante no cotidiano das pessoas, e hoje é difícil imaginara vida sem eles.
  • 14. 32.1.2 – CELULAR Um telefone celular é um aparelho de comunicação que possibilita atransmissão de dados e voz, através de ondas eletromagnéticas. Grande parte dosaparelhos e operadoras de celulares que utilizam tecnologias como GSM, CDMA e3G, atualmente, já disponibilizam estes serviços para seus usuários, permitindo anavegação pela Internet através de micro-browsers, além de utilizar serviços comocâmeras digitais e mensagens de texto. Essa evolução auxiliou ainda mais a mobilidade da Internet, abrindo as portasàs novas soluções, e sistemas baseados no acesso remoto por telefones móveis.2.1.3 – NAVEGADORES Um navegador (também conhecido como browser), vulgarmente designadopor ser apenas um navegador, é um tipo de programa usado em computadores ecada vez mais em outros dispositivos, como alguns telefones celulares, assistentespessoais digitais (PDAs) e controles industriais, com a finalidade de localizar, exibire interagir com páginas da WEB e outros recursos na Internet. Na figura 2 são apresentados os navegadores mais usados atualmente. Figura 2 – Navegadores mais utilizados nos dias atuais Fonte: MARKETSHARE (2007)2.2 – LINGUAGENS PARA WEB2.2.1 – HTML Hypertext Markup Language (HTML) é a linguagem básica utilizada para criardocumentos para a WEB e, juntamente com HTTP (Protocolo de Transferência deHipertexto) e URLs (Localizador Uniforme de Recursos), é um dos três principaisprotocolos da WEB (W3C, 2005).
  • 15. 42.2.2 – XML Falcão (2007), afirmou que o XML é a abreviação de EXtensible MarkupLanguage (Linguagem extensível de formatação). Trata-se de uma linguagem que éconsiderada uma grande evolução na internet. Porém, para quem não éprogramador ou não trabalha com o uso de linguagens e ferramentas para a WEB, équase imperceptível as vantagens do XML. O XML é uma especificação técnica desenvolvida pela W3C (World WideWEB Consortium - entidade responsável pela definição da área gráfica da internet),para superar as limitações do HTML, que é o padrão das páginas da WEB.2.2.3 – WML De acordo com Viva o Linux (2003), o WML é a sigla em inglês para WirelessMarkup Language. Trata-se de uma linguagem de marcação baseada em XMLprópria para criar documentos WEB para serem exibidos em micro-browsers(telefones celulares e pagers) que se utilizam da tecnologia WAP. Pode-se dizer a título de analogia que WML é o HTML dos portáteis sem fios.As maiorias das tags WML são iguais as do HTML. No entanto, sendo WML umaaplicação XML é uma linguagem bem mais rigorosa e restrita que HTML.2.2.4 – CSS O CSS é a sigla para Cascading Style Sheets que em português foi traduzidopara folhas de estilo em cascata, e nada mais é que um documento onde sãodefinidas regras de formatação ou de estilos, a serem aplicadas aos elementosestruturais de marcação. A finalidade das CSS é a de retirar do HTML toda e qualquer declaração quevise à formatação e apresentação do documento. Isto significa dizer que tags do tipo<font>, <bold> <b>, <em>, <i>, entre outras, bem como uso de colunas e linhas detabelas para obtenção de espaçamentos não são admitidos ou são admitidos comrestrições em um projeto WEB com CSS. Vale afirmar que o usa-se o HTML paraestruturação e CSS para apresentação (Maujor, 2007).2.2.5 – JAVASCRIPT JavaScript foi desenvolvido pela Netscape e são scripts de linguagemutilizada em milhões de páginas da WEB e aplicações em servidores mundiais.
  • 16. 5 Contrariamente aos populares equívocos, não é JavaScript "interpretativoJava". Em suma o JavaScript é uma linguagem de programação que é pequena eleve, orientada por objetos e multiplataforma. Apesar de não ser útil como umalinguagem autônoma, foi desenhada para ser facilmente embutida em outrosprodutos e aplicações, como navegadores WEB. A sintaxe básica éintencionalmente similar ao Java e ao C++.2.2.6 – AJAX Asynchronous JavaScript and XML (AJAX) não é uma tecnologia em si, massim um termo que define uma nova abordagem de uso conjunto de um número detecnologias existentes, incluindo: HTML ou XHTML, CSS, JavaScript, DocumentObject Model, XML, XSLT e os objetos XMLHttpRequest. Quando estas tecnologiassão combinadas no modelo AJAX, as aplicações WEB são capazes de fazeratualizações incrementais e rápidas na interface do utilizador sem ser necessáriorecarregar novamente toda a página. Isto faz com que a aplicação passe a ser maisrápida e que ofereça respostas rápidas às ações do utilizador (Gonçalves, 2007). Na figura 3 é apresentado o modelo tradicional de aplicação WEB e o modelocom aplicação em AJAX. Figura 3 – Modelos de aplicações WEB.2.2.7 – PHP O PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é umalinguagem de script Open Source de uso geral, muito utilizada para odesenvolvimento de aplicações WEB embutido dentro do HTML.
  • 17. 6 O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindoLinux e suas distribuições, Unix (HP-UX, Solaris e OpenBSD), Microsoft Windows,Mac OS X e RISC OS. As habilidades do PHP incluem geração de imagens, arquivos PDF,animações em flash e podem facilmente criar qualquer padrão texto, como XHTMLe outros arquivos XML. Talvez a mais forte e mais significativa característica do PHP seja seu suportea uma ampla variedade de banco de dados. Na tabela 1 são apresentados os bancos de dados que são atualmentesuportados (php.net, 2007). Tabela 1 – Bancos suportados pelo PHPAdabas D InterBase PostgreSQLEmpress mSQL SolidHyperwave MySQL Velocis2.3 – PROTOCOLOS DE COMUNICAÇÃO2.3.1 – HTTP HTTP (Hypertext Transfer Protocol) é o conjunto de regras para atransferência de arquivos (texto, imagens, som, vídeo e outros arquivos multimídia)na World Wide WEB (Thomson, 2005). Geralmente utiliza-se a porta 80 paracomunicação de sites através da linguagem HTML. Já o HTTPS indica um site seguro que é protegido por firewall e criptografia.Contudo, para haver comunicação com o servidor do site é necessário utilizarcomandos adequados, que não estão em linguagem HTML.2.3.2 – WAP WAP (Wireless Application Protocol) é uma especificação de segurança quepermite aos usuários acessarem informações instantaneamente através dedispositivos sem fio, como celulares, pagers, rádios bidirecionais, telefonesinteligentes e comunicadores. O WAP suporta a maioria das redes sem fio. Estas incluem CDPD, CDMA,GSM, PDC, PHS, TDMA, FLEX, ReFLEX, iDEN, TETRA, DECT, DataTAC eMobitex, e ainda é suportado por todos os sistemas operacionais. Ones manipulados
  • 18. 7com dispositivos manuais que incluem PalmOS, EPOC, Windows CE, FLEXOS, OS /9, e JavaOS (Viva o Linux, 2003).2.4 – SERVIDOR E BANCO DE DADOS2.4.1 – APACHE É um servidor WEB com código fonte aberto (não proprietários) e de domíniopúblico (gratuito), desenvolvido e continuamente melhorado por centenas deprogramadores voluntários de muitas nações, colaborando através da internet.Encontra-se disponível para Linux, Unix, Windows e, devido ao seu desempenho,sofisticação, e estabilidade, é renome a ser o mais popular software do seu gênero. Na figura 4 é mostrado uma estatísticas dos atuais servidores WEB. Figura 4 – Estatística do uso de Softwares de Servidores WEB Fonte: NETCRAFT (2008)2.4.2 – MySQL É um sistema de gerenciamento de banco de dados (SGBD), que utiliza alinguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada)como interface. Ele se tornou o mais popular banco de dados open source do mundoporque possui consistência, alta performance e confiabilidade, além de ser fácil deutilizar. Atualmente está sendo utilizado em mais de seis milhões de aplicações emtodos os continentes (inclusive na Antártica) (MySQL, 2007). O MySQL funciona em mais de 20 plataformas, incluindo Linux, Windows,HP-UX, AIX, Netware, e dá acesso a diversas linguagens tais como: C, C++, Java,PHP, Python, Perl, Ruby, .NET, Oracle Forms, Microsoft ASP, Delphi, entre outros.
  • 19. 82.5 – INTERAÇÕES COM COMPONENTES FÍSICOS2.5.1 – PORTA SERIAL Conforme afirma Rogercom (2006), a porta serial é utilizada principalmentepara comunicação de dados. Pode ser utilizada também para acessar e controlardispositivos conectados ao PC, mas possui algumas desvantagens em relação àporta paralela. A porta serial é muito usada entre os componentes do computador, e temuma concepção simples: uma linha para enviar e outra para receber dados, além deoutras que são eventualmente utilizadas para padronizar o envio e recebimento dosdados. Por sua simplicidade, a porta serial tem sido usada para fazer o PC secomunicar com qualquer dispositivo imaginável. Mesmo sendo lenta quandocomparada a porta paralela, ela apresenta uma performance superior quandoutilizada para comunicar-se com modems, mouses e sistemas de controle, os quaispodem receber e enviar sinais por um meio de transmissão que pode ser RS-232,RS-485 ou por uma linha telefônica onde não a grande volume de dados.2.5.1.1 – CONECTOR OU PINAGEM De acordo com Rogercom (2006), a maioria dos computadores atuais utilizamconectores DB-9 e DB-25 com o padrão Rs-232C (Tabela 2). Tabela 2 – Pinagem da porta serial 25-pinos (DB-25) 9-pinos (DB-9) Simbolo Função 2 3 Tx Transmite dados 3 2 Rx Recebe dados 4 7 RTS Permissão para envio 5 8 CTS Permissão fornecida 6 6 DSR Dado pronto 7 5 GND Terra 8 1 CD Deteção de portadora 20 4 DTR Terminal pronto 22 9 RI Indicador de Ring No projeto da interface para conexão de um dispositivo a ser controlado viaporta serial, bastam 3 pinos: pino 5 – Terra, pino 3 – transmissão de dados, pino 2 –recepção de dados.
  • 20. 92.5.2 – DELPHI É um ambiente de desenvolvimento de aplicações para Windows criado pelaBorland. Baseado no conceito de componentes, classes pré-fabricadas e em suamaioria visuais. Suas ferramentas de design possibilitam rápida criação de protótiposde aplicações, que somados ao amplo conjunto de seus componentes, tornam osprotótipos em aplicações robustas e otimizadas. A linguagem Delphi tem como base o Object Pascal e possuem bibliotecastais como, o ZeosLib que é um conjunto de componentes para interagir com bancosde dados tais como MySQL, PostgreSQL, Interbase, Firebird, Oracle e SQLite.2.6 – COMPONENTES FÍSICOS2.6.1 – MICROCONTROLADOR 8051 Na figura 5 é apresentada a arquitetura 8051 onde encontram-se uma CPUde 8 bits, um contador de 16 bits e um registrador de 16 bits que é usado paraacessar a memória de dados, o que permite endereçar 64 KB de dados. A memória RAM interna tem 256 bytes e está dividida em dois blocos de 128bits. O bloco inferior destina-se a trabalhar como outra memória de dados, enquantoque o bloco superior está dedicado aos registradores especiais que controlam osdiversos recursos do microcontrolador. A arquitetura 8051 também oferece quatro portas paralelas de 8 bits,denominadas de P0, P1, P2 e P3. Essas portas são bidirecionais e podem serusadas para receber ou para gerar sinais digitais e podem ser acessadas bit a bit, ouseja, cada bit da porta pode ser programado como entrada ou como saída. Figura 5 – Núcleo da família 8051 Fonte: MZEDITORA (2006)
  • 21. 10 CAPÍTULO 3 – O Projeto3.1 SÍNTESE DO PROJETO A primeira etapa foi o desenvolvimento de um software capaz de secomunicar com os periféricos via celular. A base do mesmo é implementada nasdiversas tecnologias de estado da arte em internet como PHP, HTML, entre outros. A segunda parte foi o desenvolvimento de uma aplicação WEB, para que osistema permita controlar os periféricos através de um browser utilizando umainterface simples e objetiva contendo plantas da residência (sala, banheiro, cozinha,garagem e demais cômodos), desenvolvidos em 3D. Na figura 6 é apresentado o diagrama em blocos do projeto onde o usuárioatravés do PC ou celular interage com o sistema. Este através de um browserinterpreta a linguagem utilizada e interage com o banco de dados recuperando eatualizando informações para assim controlar os periféricos. Figura 6 – Diagrama de Blocos do projeto proposto. Por fim, a terceira etapa do projeto foi simular e implementar o software deuma placa obtida na UNICEP, onde os componentes mais importantes são omicrocontrolador, seus periféricos, chaves e sensores, para citar somente alguns. Essa placa tem a finalidade de controlar e mostrar os estados dos periféricosexistentes.
  • 22. 11 CAPÍTULO 4 – Desenvolvimento4.1 – CONSIDERAÇÔES INICIAIS Neste capitulo é realizada uma análise da solução proposta para construir umsistema de automação residencial baseado em WML, HTML e PHP através dacomunicação WAP e HTTP. Será demonstrada aqui a construção do software paraintegração com o banco de dados. Na seção 4.2 são analisadas desde as interfacesaté os programas de comunicações. Isto inclui todos os softwares localizados noservidor, seu funcionamento e seu esquemático de comunicação.4.2 – DESENVOLVIMENTO DA SOLUÇÃO4.2.1 – SOFTWARE O software deste projeto é responsável por toda sua inteligência, ou seja, eleé responsável por acionar todo o sistema seguindo as regras definidas em seuscódigos e assim permitir ao usuário emitir comandos e visualizar os resultados. Adescrição é baseada no modelo de desenvolvimento clássico (ou cascata) partindoda análise, descrevendo o projeto e por fim apresentando sua implementação(Rafael Dohms, 2008).4.2.2 – ANALISE O projeto do software é composto por três partes: as interfaces, o software degerência e inteligência, e por fim o software de comunicação a ser implementado napróxima etapa. Com base no objetivo do projeto proposto estão listados abaixo alguns itens aser abordados neste software: • Interfaces remotas para facilitar o uso dos usuários em qualquer lugar e a qualquer hora; • Interface visual para ajudar o usuário a navegar pela residência; • Mensagens textuais através de e-mails e SMS com intuito de facilitar e lembrar o usuário sobre as tarefas a serem realizadas; • Sistema inteligente com programações de tarefas automáticas.
  • 23. 12 Para aumentar as possibilidades de uso de um sistema de automação foramidealizadas duas interfaces para a utilização do sistema. As interfaces escolhidasforam um PC utilizando um navegador por meio do protocolo HTTP e um celularutilizando um micro-browser e o protocolo WAP. Cada interface possui limites ecapacidades diferentes, portanto, cada uma deve ser diferenciada para usar osrecursos disponíveis. Com isso a interface do PC deve ser a mais completa epermitir todos os comandos do sistema, porém a interface de um celular deve sersimplificada, para tornar a interação do usuário a mais simples e rápida possível.4.2.3 – PROJETO A linguagem escolhida foi o PHP por sua sintaxe simples, código aberto epossibilidade de efetuar tarefas complexas de implementação de objetos. Para criar as interfaces com o usuário sobre um sistema em PHP, duaslinguagens de saída foram escolhidas: O HTML para o PC e o WML para a interfacede celulares. A interface do PC ganhará mais funcionalidades utilizando AJAX. O MySQL será o servidor de banco de dados utilizado por ser nativo dalinguagem PHP. Os periféricos a serem alterados nesse projeto estão divididos em duaspartes: Área Interna (lâmpada, ventilador, porta e janela) e Área Externa (motor dapiscina, garagem e alarme). Como citado no item 4.2.2, para a interface de um celular usando o protocoloWAP, o software desenvolvido contem apenas as opções básicas e necessáriascomo: • Visualizar Residência / Cômodos / Periféricos; • Identificar estados dos periféricos; • Alterar estados dos periféricos; • Emitir automaticamente mensagens SMS quando algum periférico estiver queimado; • Emitir automaticamente mensagens SMS quando programado para executar tarefas. Na figura 7 é apresentado um fluxograma de navegação para celulares.
  • 24. 13 Figura 7 – Fluxograma de navegação. Partindo da página inicial o usuário passa pelo login onde será autenticadopelo sistema e direcionado para a página principal. A mesma consiste em interligaroutras páginas e tem como objetivo principal o link de acesso ao painel de controleonde o usuário poderá alterar o status do periférico desejado.
  • 25. 144.2.4 – IMPLEMENTAÇÃO4.2.4.1 – SOFTWARE PARA CELULARES O primeiro passo é detalhar a estrutura dos arquivos contidos no servidor(Figura 8). Figura 8 – Estrutura dos diretórios e arquivos. 1. WAP Neste diretório WAP estão localizados todos os arquivos que serão utilizados para a implementação do software via celular e detalhados logo abaixo: Arquivos: • editar_comodo.php – recebe o status atual do periférico relacionado ao cômodo da residência que está armazenado no banco de dados e exibe as opções ativado, ligado, aberto, desativado, desligado, fechado e queimado para que possa ser alterado. Logo após a escolha dos novos status todo o processamento é enviado para o arquivo editar_comodo_db.php; • editar_comodo_db.php – responsável por receber os novos status dos periférico e enviar as informações para o banco de dados MySQL; • index.php – arquivo inicial do sistema que leva o usuário para o login de autenticação; • login.php – autenticação e validação do usuário no sistema; • logout.php – finaliza o sistema;
  • 26. 15 • painel.php – arquivo responsável por fazer a ligação (link) para exibição dos status de todos periféricos tanto geral como individual (visualizar_comodos.php) e para serem alterados (editar_comodos.php); • principal.php – é responsável por unir todas as partes da base operacional e compor a API WEB, disponibilizando as interfaces para que o usuário tenha acesso ao sistema; • visualizar_comodos.php – responsável por visualizar os status dos cômodos em grupos ou individuais. 2. img Esta pasta armazena todas as imagens a serem utilizadas no software. 3. include Arquivo: • config.php – Contêm os parâmetros de conexão com a base de dados MySQL. Como citado acima na definição do arquivo editar_comodo.php os status dosperiféricos são divididos em: • Ligado/Aberto/Ativado; • Desligado/Fechado/Desativado; • Queimado. Quando o dispositivo queima é emitida automaticamente uma mensagemSMS para o usuário, dizendo qual dispositivo está queimado, o cômodo a qualpertence e à data e à hora. Para simular essa mensagem definimos em nossosistema todos os status citados acima.4.2.4.1.1 – INTERFACE VISUAL E SEU FUNCIONAMENTO Partindo para o próximo passo temos as interfaces do sistema mostrandopasso a passo o uso do mesmo via WAP que foi simulada pelo Wapsilon (2008). Na figura 9 é mostrada a página inicial e a área de login do software.
  • 27. 16 Figura 9 – Apresentação do site e área de login. No login o usuário é validado e direcionado em caso de sucesso para apágina principal, caso contrário será exibido uma mensagem de “Login Inválido“(Figura 10). Figura 10 – Autenticação do usuário. Na figura 11 é mostrada a pagina principal ela é responsável por unir todas aspartes da base operacional e compor a API WEB, disponibilizando as interfaces paraque o usuário tenha acesso ao sistema alem disso fornece um menu para que ousuário interaja com o sistema.
  • 28. 17 Figura 11 – Página principal do sistema responsável por interligar as tarefas. O primeiro item apresentado na figura 12 exibe informações sobre o sistemadesenvolvido para o acesso WAP. Já o segundo item é uma legenda com ospossíveis status dos periféricos. Figura 12 – Apresentação do sistema e lista dos dispositivos.
  • 29. 18 Abaixo é apresentado detalhes do terceiro item do menu principal que temcomo objetivo gerenciar o sistema (Figura 13). Figura 13 – Painel de Controle. Na figura 14 o item 3.1 referente à figura 13 é responsável por listar todos oscômodos e exibir-los separadamente. Figura 14 – Visualização dos cômodos/status.
  • 30. 19 O item 3.2 referente à figura 13 é responsável por fazer a alteração dosperiféricos existentes na residência de forma simples, rápida e eficaz (Figura 15). Figura 15 – Alteração dos cômodos/status. Na figura 16 é mostrado o item 3.2.1 com a confirmação das alterações dosstatus realizadas pelo item anterior. Figura 16 – Confirmação dos status alterados.
  • 31. 20 Na figura 17 são apresentados em uma única página todos os cômodos eseus status, simplificando uma possível busca para o usuário. Figura 17 – Visualização de todos os cômodos/status,da residência. Caso o periférico seja definido com o status de queimado, a seguintemensagem será exibida no celular (Figura 18). Figura 18 – Recebimento de mensagem SMS.
  • 32. 21 Abaixo é apresentado o quarto item do menu principal que é a tela deencerramento do sistema (Figura 19). Figura 19 – Saindo do sistema . Como visto acima todo o sistema encontra-se funcionando e já hospedado nodomínio http://wap.br-automation.com.br.4.2.4.2 – SOFTWARE PARA PCs Como no software para celulares, o primeiro passo é apresentar odetalhamento da estrutura dos arquivos contidos no servidor (Figura 20). Figura 20 – Estrutura dos diretórios e arquivos.
  • 33. 221. WEB No diretório WEB estão localizados todos os arquivos que serão utilizados para a implementação do software via PCs e detalhados logo abaixo: Arquivos: • contato.php – responsável por enviar e-mails via formulário para o administrador do sistema; • default.php – é responsável por unir todas as diferentes partes da base operacional e compor a API WEB, disponibilizando as interfaces para que o usuário tenha acesso ao sistema; • index.php – arquivo inicial do sistema que leva o usuário para o login de autenticação; • login.php – responsável pela autenticação e validação do usuário no sistema; • logout.php – finaliza o sistema; • perfil.php – exibe o perfil do usuário junto com estatísticas de acesso; • rodape.php – contém a imagem do rodapé utilizada em todas as página; • topo.php – transmissão de arquivos HTML além de enviar informações ao cabeçalho, neste arquivo são estabelecidas configurações que informam ao navegador como agir com estes arquivos (Por exemplo: tempo de expiração do cache);2. css Este diretório armazena os arquivos de estilo, com formatação e coloração, que se aplicam às tags HTML.3. img Esta pasta armazena todas as imagens a serem utilizadas no software.4. includes Este diretório se destina às classes, sejam elas de terceiros ou de desenvolvimento próprio. As classes utilizadas para conectar ao banco de dados, gerenciam templates e os objetos do sistema.
  • 34. 23 5. js Arquivos de funções JavaScript são armazenados nesta pasta e invocados pelo browser quando o HTML é interpretado.4.2.4.2.1 – INTERFACE VISUAL E SEU FUNCIONAMENTO A dificuldade de compreensão de um sistema pode ser uma grandedesvantagem, por isso, um esforço maior foi dedicado a procurar formas de tornar asinterfaces mais amigáveis. Uma navegação visual pode resolver este problema, ilustrando ao usuárioclaramente onde e o que está sendo controlado em cada cômodo. Esta soluçãopossibilita que qualquer usuário possa utilizar o sistema sem necessidade detreinamento prévio ou conhecimentos aprofundados. Como o objetivo do projeto proposto era a comunicação com os periféricos daresidência de qualquer localização, acessando o endereço http://www.br-automation.com.br, pode-se fazer o login para entrar no sistema como mostra afigura 21. Figura 21 – Área de login. Em seguida é apresentado o layout (tela) principal do software desenvolvidopara PCs, utilizando o protocolo HTTP voltado para WEB (Figura 22).
  • 35. 24 Figura 22 – Layout principal do software para PCs. Nota-se pela tela principal do software que além de prever o controle dosperiféricos da residência, também tem outras funcionalidades tais como gerenciadorde tarefas, serviços, câmera online, gerenciador de logs, contato, link para acessoWAP, perfil, entre outros. Na figura 23 são apresentados todos os cômodos disponíveis eautomatizados da residência.
  • 36. 25 Figura 23 – Cômodos disponíveis na residência. Ao passar o mouse sobre os cômodos, a imagem é alterada facilitando ainteração com o usuário, para que o mesmo selecione o cômodo desejado e faça asdevidas alterações dos status dos periféricos (Figura 24).
  • 37. 26 Figura 24 – Exibindo status da lâmpada atual. Ainda a critério de interação, ao passar o mouse sobre os periféricos contidosno cômodo, uma layer surge fazendo perguntas sugestivas do tipo: “Você desejaligar a lâmpada?”. Caso haja alteração no periférico, imediatamente é enviada aatualização para a base de dados e alterada a imagem de exibição. Na figura 25 é mostrada a alteração através de um contorno vermelho naqual, status e a imagem foram alterados em relação à figura 24. Nota-se também que a pergunta do periférico também foi alterada para: “Vocêdeseja desligar a lâmpada?”.
  • 38. 27 Figura 25 – Exibindo novo status da lâmpada. Com este software é possível alterar todos os periféricos disponíveis em cadacômodo de maneira fácil e rápida. O software também conta com um sistema de perfil, onde são armazenadasas informações do usuário junto com outras informações relevantes. Neste perfil, também é possível visualizar os relatórios de tarefas que foram evão ser executadas e extrair logs do administrador, para que o mesmo tenha totalcontrole de quem utilizou o sistema. Informações como nome, senha, e-mail, ultimo acesso também fazem partedo perfil (Figura 26).
  • 39. 28 Figura 26 – Informações relevantes sobre o usuário. Nos softwares desenvolvidos atualmente, uma das grandes dificuldades émanter contato com o suporte em caso de dúvidas ou problemas referente aomesmo. Muitas vezes, o usuário acaba desistindo do atendimento por falta depaciência e até mesmo por ter tentado e não ter obtido sucesso. Atentando para isso, o software proposto conta com um suporte 24 horasatravés de um formulário de contato incluso no próprio sistema para quando houverqualquer tipo de problema, basta apenas preenchê-lo. Também está disponível o telefone e o e-mail do administrador responsávelpela manutenção do software. Ainda para maior comodidade do usuário, diariamente é enviado um relatóriode monitoramento para os desenvolvedores com uma analise de procedimentosexecutados junto com o desempenho obtido pelo mesmo, para quando houverqualquer irregularidade, o mesmo é submetido à manutenção e correção imediata(Figura 27).
  • 40. 29 Figura 27 – Suporte via formulário. A segurança através de câmeras online também foi adotada neste software. Asolução aqui proposta foi simples, eficaz e principalmente acessível financeiramente.A cada minuto é extraída uma imagem da câmera e enviada para o servidor onde éexibida pelo navegador. Esse tempo de um minuto pode ser diminuído conforme anecessidade do usuário. Essas câmeras podem ser implantadas e monitoradas sem limites de meiosfísicos. Na figura 28 é apresentada uma imagem extraída da câmera juntamente cominformações de dia e hora.
  • 41. 30 Figura 28 – Câmera Online. Para gerenciar as tarefas o software conta com dois tipos de gerenciadores.O primeiro executa tarefas diárias, facilitando o agendamento constante dasmesmas. Este gerenciador está disponível na tela principal do software, onde pode-seadicionar tarefas para ativar ou desativar periféricos de qualquer cômodoautomatizado da residência. Na figura 29 é apresentado o funcionamento do gerenciador de tarefasdiárias, onde basta apenas inserir a hora e clicar no quadrado ao lado para checar odispositivo desejado.
  • 42. 31 . Figura 29 – Gerenciador de tarefas diário. O segundo gerenciador pode tanto gerenciar tarefas diárias como tambémtarefas em longo prazo. Seu funcionamento é semelhante ao gerenciador de tarefas diário, porémnele é possível adicionar data e hora em que as tarefas serão executadas. Também é possível visualizar as tarefas e até mesmo excluí-las caso ousuário não deseje mais realizá-las. Com essa flexibilidade é possível programar a hora que as portas e janelasserão fechadas, que o motor da piscina será ligado ou até mesmo quando osalarmes externos da residência serão ativados ou desativados. Na figura 30 são exibidas de forma simples as tarefas a serem executasconforme foram programadas.
  • 43. 32 Figura 30 – Gerenciador de tarefas. Para maior praticidade o software conta com uma exibição rápida de todos osstatus dos periféricos disponíveis no momento (Figura 31).
  • 44. 33Figura 31 – Status dos periféricos/cômodos.
  • 45. 344.2.3 – COMUNICAÇÃO VIA SERIAL COM O HARDWARE A comunicação com a porta serial será obtida pelo DELPHI, que éresponsável por executar as tarefas em linha de comando que enviam e recebemdados pela porta serial. O hardware para a comunicação já estava pronto e foi obtidona própria UNICEP. O hardware terá um objetivo simples, ele será responsável por recebercomandos da porta serial e enviar bits de resposta à mesma. A seguir, serádetalhada a etapa de análise do hardware.4.2.3.1 – ANÁLISE DO HARDWARE O hardware pode ser separado em duas partes que trabalham juntas paraobter resultados. A primeira parte do hardware é denominada de módulo deendereçamento, responsável por determinar qual elemento deve ser controlado, e asegunda parte, denominada de periférico de controle, é responsável por guardar oestado do periférico e efetuar alterações. A conexão com o computador é realizadapor meio da porta serial (Figura 32). Figura 32 – Estrutura do hardware proposto. O periférico de controle precisa de um componente capaz de atuar como umamemória, mantendo armazenado o estado atual dos elementos, para que, ao semanipular outros elementos, o primeiro não se apague e sim mantenha o estadoatual. Além disso, ele deve ter o poder de alterar o estado do elemento ligado a ele,por exemplo, desligar uma lâmpada, através de um componente que entenda sinaisaltos e sinais baixos.
  • 46. 35 A estrutura do projeto implementa uma base operacional, na qual, diferentestipos de periféricos podem ser conectados. Porém, será desenvolvido como exemploapenas um controle para lâmpadas. A linguagem de comunicação utilizada para desenvolver o software usado nomicrocontrolador 8051 foi o assembly, que posteriormente foi convertido em binário.Sua lógica é simples e objetiva. Ao receber um determinado dado da porta serial, eleinterpreta e executa o comando. Como citado acima, o Delphi é responsável pela comunicação entre ohardware através da porta serial e o servidor de dados online. Ele também funcionacomo um monitor de status para o servidor. Na figura 33 são mostrados os status atuais ativos (verdes) ou inativos(vermelhos) de todos os cômodos e seus periféricos contidos na residência atravésda interface Delphi. Figura 33 – Interface Delphi.
  • 47. 36 CAPÍTULO 5 – Conclusão O projeto proposto teve êxito em apresentar e implementar uma solução deautomação residencial de pequeno e médio porte. Para esta solução foramutilizadas tecnologias de estado da arte em programação voltada à internet,procurando obter um resultado final de baixo custo e diminuir os requisitos deconhecimentos necessários ao usuário operante do sistema. A disciplina de Engenharia de Software forneceu base para a metodologia deimplementação, estabelecendo o conhecimento básico para a separação em etapase definindo itens a serem abordados em cada uma. As matérias voltadas àprogramação como Banco de Dados, juntamente com a experiência profissionalobtida ao longo do curso, auxiliaram no desenvolvimento do software do projeto e doconhecimento de seus limites. As matérias da área de Elétrica e Eletrônica, como Circuitos Digital I e II,foram amplamente utilizadas e suas teorias postas à prova durante o projeto e aimplementação do hardware utilizado. Dessa forma, conclui-se que o projetoestimulou o uso de maior parte dos conhecimentos obtidos durante a graduação e,com isso, firmou conceitos aprendidos e aplicados na prática, demonstrando suaimportância à carreira profissional de engenheiro.5.1 – IMPLEMENTAÇÕES FUTURAS Para possibilitar a aplicação comercial deste produto, as perspectivas demelhorias são: • Troca do meio de comunicação RS-232 para RS-485 • Servidor local com link de internet dedicado de no mínimo 8 Mbits/s • O desenvolvimento de novos periféricos de ação baseados na estrutura disponibilizada. Desta forma será possível controlar outros elementos como ar condicionado, banheira, microondas entre outros.
  • 48. 37 REFERÊNCIAS BIBLIOGRAFICAS:GONÇALVES, Edson. Dominando AJAX. Rio de Janeiro: Ciência Moderna, 2007.PHP.NET: Hypertext Preprocessor, 2001. Disponível em: http://www.php.net,Acessado novembro de 2007.OLIVEIRA, João de Deus. Requisitos para WEB, 2003. Disponível em:www.inf.furb.br/~egrahl/disciplinas/qualidade/material/POSWEB2/reqWEB.pdf,Acessado em julho de 2007.FALCÃO, Nara de Arruda. Armazenamento de Mídias e Objetos Virtuais Utilizando oSuporte Nativo a XML do Oracle 10g, 2004. Disponível em:http://www.cin.ufpe.br/~tg/2005-2/naf.pdf, Acessado em junho de 2007.VIVA O LINUX: Criando sites para celular com WML. Viva o linux, 2003. Disponívelem: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=432, Acessado julhode 2007.MAUJOR: CSS FAQ - Dúvidas freqüentes de CSS, 2006. Disponível em:http://www.maujor.com/tutorial/faq.php, Acessado junho 2007.MYSQL. MySQL Database Server, 2007. Disponível em:http://www.mysql.com/products/mysql, Acessado em novembro 2007.ROGERCOM, Portas Paralelas, 2006. Disponível em: http://www.rogercom.com,Acessado em novembro 2007.MZEDITORA: Arquitetura 8051, 2002. Disponível em:http://www.mzeditora.com.br/artigos/mic_modernos.htm, Acessado em novembro2007.
  • 49. 38RAFAEL DOHMS: Disponível em: http://www.rafaeldohms.com.br, Acessado emmarço de 2008.SIMULADOR WAPSILON. Disponível em: http://www.wapsilon.com, Acessado emmarço de 2008.NETCRAFT: WEB Server Survey, 2006. Disponível em:http://news.netcraft.com/archives/WEB_server_survey.html, Acessado em novembro2007.W3C: HTML 4.01 Specification, 2005. Disponível em: http://www.w3.org/TR/REC-html40/intro/intro.html#h-2.2 , Acessado em novembro de 2007.
  • 50. 39APÊNDICE A – Comunicação serial com assembly
  • 51. 40APÊNDICE B – Envio de mensagens textuais via SMS
  • 52. 41APÊNDICE C – SQL de criação do banco padrão