TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
-
Upload
bruno-gastaldi -
Category
Education
-
view
19.242 -
download
0
Transcript of TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
CENTRO UNIVERSITÁRIO CENTRAL PAULISTA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
AUTOMAÇÃO RESIDENCIAL USANDO MICROCONTROLADORES E
TECNOLOGIAS DE ESTADO DA ARTE EM PROGRAMAÇÃO
VOLTADA À INTERNET
BRUNO GASTALDI
SÃO CARLOS - SP
2008
II
CENTRO UNIVERSITÁRIO CENTRAL PAULISTA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
AUTOMAÇÃ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
III
_________________________
Orientador Prof. Emerson Carlos Pedrino
IV
DEDICATÓRIA:
Este trabalho é dedicado a toda minha
família, meus professores e colegas de
faculdade e principalmente a DEUS por
ter sempre me colocado no caminho
certo.
V
RESUMO
A realidade de sistemas automatizados é cada vez mais aparente na vida
moderna. Casas e prédios já contam com sistemas integrados de controle que
possibilitam 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êm
acesso. Sendo assim, o presente trabalho tem como justificativa pesquisar,
implementar e simular uma solução de baixo custo utilizando microcontroladores e
tecnologias de estado da arte em programação voltada à internet.
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 the
achievement of many activities with ease and in some cases without the need for
physical 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 to
the Internet.
VII
ÍNDICE DE FIGURAS
Figura 1 – Comunicação dos elementos através da WEB ............................................................. 2
Figura 2 – Navegadores mais utilizados nos dias atuais ............................................................... 3
Figura 3 – Modelos de aplicações WEB ......................................................................................... 5
Figura 4 – Estatística do uso de Softwares de Servidores WEB ................................................... 7
Figura 5 – Núcleo da família 8051 .................................................................................................. 9
Figura 6 – Diagrama de Blocos do projeto proposto ...................................................................... 10
Figura 7 – Fluxograma de navegação ......................................................................................... 13
Figura 8 – Estrutura dos diretórios e arquivos ............................................................................... 14
Figura 9 – Apresentação do site e área de login ............................................................................ 16
Figura 10 – Autenticação do usuário .............................................................................................. 16
Figura 11 – Página principal do sistema responsável por interligar as tarefas .............................. 17
Figura 12 – Apresentação do sistema e lista dos dispositivos ....................................................... 17
Figura 13 – Painel de Controle ...................................................................................................... 18
Figura 14 – Visualização dos cômodos/status ................................................................................ 18
Figura 15 – Edição dos cômodos/status ........................................................................................ 19
Figura 16 – Confirmação dos status alterados ............................................................................... 19
Figura 17 – Visualização de todos os cômodos/status,da residência ............................................ 20
Figura 18 – Recebimento de mensagem SMS ............................................................................... 20
Figura 19 – Saindo do sistema ....................................................................................................... 21
Figura 20 – Estrutura dos diretórios e arquivos ............................................................................. 21
Figura 21 – Área de login ............................................................................................................... 23
Figura 22 – Layout principal do software para PCs ....................................................................... 24
Figura 23 – Cômodos disponíveis na residência ............................................................................ 25
Figura 24 – Exibindo status da lâmpada atual ............................................................................... 26
Figura 25 – Exibindo novo status da lâmpada ................................................................................ 27
Figura 26 – Informações relevantes sobre o usuário ..................................................................... 28
Figura 27 – Suporte via formulário ................................................................................................. 29
Figura 28 – Câmera Online ............................................................................................................ 30
Figura 29 – Gerenciador de tarefas diário ...................................................................................... 31
Figura 30 – Gerenciador de tarefas ............................................................................................... 32
Figura 31 – Status dos periféricos/cômodos .................................................................................. 33
Figura 32 – Estrutura do hardware proposto .................................................................................. 34
Figura 33 – Interface Delphi ........................................................................................................... 35
VIII
LISTA DE TABELAS
Tabela 1 – Bancos suportados pelo PHP ....................................................................................... 6
Tabela 2 – Pinagem da porta serial ............................................................................................... 8
IX
LISTA DE ABREVIATURAS E SÍGLAS
PHP – PHP Hypertext Pre-Processor
PDA – Personal Digital Assistant
WAP – Wireless Access Protocol
PC – Personal Computer
WWW – World Wide WEB
HTML – HyperText Markup Language
XHTML – eXtended HyperText Markup Language
WML – Wireless Markup Language
HTTP – HyperText Transport Protocol
USB – Universal Serial Bus
AJAX – Asynchronous JavaScript and XML
XML – EXtensible Markup Language
CSS – Cascading Style Sheets
UNICEP – Centro Universitário Central Paulista
GSM – Global System for Mobile Communications
CDMA – Code Division Multiple Access
API – Application Programming Interface
SMS – Short Message Service
X
SUMÁRIO
CAPITULO 1 – INTRODUÇÃO ...................................................................................................... 1
1.1 - Objetivo ............................................................................................................... 1
1.2 - Metodologia ......................................................................................................... 1
CAPITULO 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 ............................................................................... 9
CAPITULO 3 - O PROJETO .......................................................................................................... 10
3.1 - Síntese do projeto .............................................................................................. 10
CAPÍ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
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 ............................................................................... 34
CAPÍTULO 5 - CONCLUSÃO ........................................................................................................ 36
5.1 - Implementações futuras ..................................................................................... 36
REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................... 37
APÊNDICE A – Comunicação serial com assembly ...................................................................... 39
APÊNDICE B – Envio de mensagens textuais via SMS ................................................................ 40
APÊNDICE C – SQL de criação do banco padrão ......................................................................... 41
1
CAPÍTULO 1 - Introdução
1.1 OBJETIVO
Este projeto tem como objetivo apresentar, simular e implementar uma
solução de automação residencial de pequeno e médio porte. Para tanto, serão
utilizadas tecnologias de estado da arte em programação voltadas à internet,
procurando obter um resultado final de baixo custo, e diminuir os requisitos de
conhecimentos necessários ao usuário operante do sistema. O controle poderá ser
feito através de interfaces móveis ou fixas como, por exemplo, um PC ou um celular
com WAP que irá estabelecer uma comunicação com um servidor central presente
na residência e ligado a diversos periféricos de controle.
1.2 METODOLOGIA Este projeto segue uma linha de pesquisa bibliográfica baseada em consultas
a livros e sites da internet. Com base nessas pesquisas, o projeto tem finalidade
aplicada, ou seja, aplicação prática e experimental de seu objeto de estudo.
A primeira etapa do projeto é o desenvolvimento de um software de
comunicação via WAP, pelo qual poderá se alterar os periféricos da residência a
partir de um aparelho móvel.
A etapa seguinte constitui-se no desenvolvimento do aplicativo WEB para
monitoração da residência em 3D, através do uso de sensores de uma placa
microcontrolada que será implementada na última etapa.
2
CAPÍTULO 2 – Revisão Bibliográfica
O conceito de World Wide Web (WWW), ou Internet, descreve um sistema de
informações de hipertexto, como descrito por Oliveira (2003). Ele constitui-se de uma
forma visual de navegar pelas informações com o uso de vínculos, que ligam uns
aos outros permitindo uma leitura de forma não linear.
Para se obter o resultado final, que é a WWW, muitos elementos são
interligados de forma única, formando uma vasta rede de comunicações. Além dos
elementos comuns, novos elementos estão sendo criados e ligados a esta rede,
criando espaço para novas funcionalidades tais como e-commerce e serviços
baseados 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 WEB 2.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 outras
inúmeras possibilidades. Se um PC está conectado à Internet, existe a possibilidade
de 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. Os
PCs tornaram-se parte integrante no cotidiano das pessoas, e hoje é difícil imaginar
a vida sem eles.
3
2.1.2 – CELULAR Um telefone celular é um aparelho de comunicação que possibilita a
transmissão de dados e voz, através de ondas eletromagnéticas. Grande parte dos
aparelhos e operadoras de celulares que utilizam tecnologias como GSM, CDMA e
3G, atualmente, já disponibilizam estes serviços para seus usuários, permitindo a
navegação pela Internet através de micro-browsers, além de utilizar serviços como
câ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 designado
por ser apenas um navegador, é um tipo de programa usado em computadores e
cada vez mais em outros dispositivos, como alguns telefones celulares, assistentes
pessoais digitais (PDAs) e controles industriais, com a finalidade de localizar, exibir
e 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 WEB 2.2.1 – HTML
Hypertext Markup Language (HTML) é a linguagem básica utilizada para criar
documentos para a WEB e, juntamente com HTTP (Protocolo de Transferência de
Hipertexto) e URLs (Localizador Uniforme de Recursos), é um dos três principais
protocolos da WEB (W3C, 2005).
4
2.2.2 – XML Falcão (2007), afirmou que o XML é a abreviação de EXtensible Markup
Language (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 Wide
WEB 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 Wireless
Markup Language. Trata-se de uma linguagem de marcação baseada em XML
pró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 uma
aplicaçã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 traduzido
para folhas de estilo em cascata, e nada mais é que um documento onde são
definidas regras de formatação ou de estilos, a serem aplicadas aos elementos
estruturais de marcação.
A finalidade das CSS é a de retirar do HTML toda e qualquer declaração que
vise à 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 de
tabelas para obtenção de espaçamentos não são admitidos ou são admitidos com
restrições em um projeto WEB com CSS. Vale afirmar que o usa-se o HTML para
estruturação e CSS para apresentação (Maujor, 2007).
2.2.5 – JAVASCRIPT
JavaScript foi desenvolvido pela Netscape e são scripts de linguagem
utilizada em milhões de páginas da WEB e aplicações em servidores mundiais.
5
Contrariamente aos populares equívocos, não é JavaScript "interpretativo
Java". Em suma o JavaScript é uma linguagem de programação que é pequena e
leve, orientada por objetos e multiplataforma. Apesar de não ser útil como uma
linguagem autônoma, foi desenhada para ser facilmente embutida em outros
produtos 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, mas
sim um termo que define uma nova abordagem de uso conjunto de um número de
tecnologias existentes, incluindo: HTML ou XHTML, CSS, JavaScript, Document
Object Model, XML, XSLT e os objetos XMLHttpRequest. Quando estas tecnologias
são combinadas no modelo AJAX, as aplicações WEB são capazes de fazer
atualizações incrementais e rápidas na interface do utilizador sem ser necessário
recarregar novamente toda a página. Isto faz com que a aplicação passe a ser mais
rá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 modelo
com 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") é uma
linguagem de script Open Source de uso geral, muito utilizada para o
desenvolvimento de aplicações WEB embutido dentro do HTML.
6
O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo
Linux 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 XHTML
e outros arquivos XML.
Talvez a mais forte e mais significativa característica do PHP seja seu suporte
a uma ampla variedade de banco de dados.
Na tabela 1 são apresentados os bancos de dados que são atualmente
suportados (php.net, 2007).
Tabela 1 – Bancos suportados pelo PHP
Adabas D InterBase PostgreSQL Empress mSQL Solid Hyperwave MySQL Velocis 2.3 – PROTOCOLOS DE COMUNICAÇÃO 2.3.1 – HTTP
HTTP (Hypertext Transfer Protocol) é o conjunto de regras para a
transferê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 para
comunicaçã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 utilizar
comandos adequados, que não estão em linguagem HTML.
2.3.2 – WAP
WAP (Wireless Application Protocol) é uma especificação de segurança que
permite aos usuários acessarem informações instantaneamente através de
dispositivos sem fio, como celulares, pagers, rádios bidirecionais, telefones
inteligentes 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 e
Mobitex, e ainda é suportado por todos os sistemas operacionais. Ones manipulados
7
com dispositivos manuais que incluem PalmOS, EPOC, Windows CE, FLEXOS, OS /
9, e JavaOS (Viva o Linux, 2003).
2.4 – SERVIDOR E BANCO DE DADOS 2.4.1 – APACHE
É um servidor WEB com código fonte aberto (não proprietários) e de domínio
público (gratuito), desenvolvido e continuamente melhorado por centenas de
programadores 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 a
linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada)
como interface. Ele se tornou o mais popular banco de dados open source do mundo
porque possui consistência, alta performance e confiabilidade, além de ser fácil de
utilizar. Atualmente está sendo utilizado em mais de seis milhões de aplicações em
todos 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.
8
2.5 – INTERAÇÕES COM COMPONENTES FÍSICOS 2.5.1 – PORTA SERIAL
Conforme afirma Rogercom (2006), a porta serial é utilizada principalmente
para comunicação de dados. Pode ser utilizada também para acessar e controlar
dispositivos conectados ao PC, mas possui algumas desvantagens em relação à
porta paralela.
A porta serial é muito usada entre os componentes do computador, e tem
uma concepção simples: uma linha para enviar e outra para receber dados, além de
outras que são eventualmente utilizadas para padronizar o envio e recebimento dos
dados. Por sua simplicidade, a porta serial tem sido usada para fazer o PC se
comunicar com qualquer dispositivo imaginável. Mesmo sendo lenta quando
comparada a porta paralela, ela apresenta uma performance superior quando
utilizada para comunicar-se com modems, mouses e sistemas de controle, os quais
podem 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 utilizam
conectores 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 via
porta serial, bastam 3 pinos: pino 5 – Terra, pino 3 – transmissão de dados, pino 2 –
recepção de dados.
9
2.5.2 – DELPHI É um ambiente de desenvolvimento de aplicações para Windows criado pela
Borland. Baseado no conceito de componentes, classes pré-fabricadas e em sua
maioria visuais. Suas ferramentas de design possibilitam rápida criação de protótipos
de aplicações, que somados ao amplo conjunto de seus componentes, tornam os
protótipos em aplicações robustas e otimizadas.
A linguagem Delphi tem como base o Object Pascal e possuem bibliotecas
tais como, o ZeosLib que é um conjunto de componentes para interagir com bancos
de dados tais como MySQL, PostgreSQL, Interbase, Firebird, Oracle e SQLite.
2.6 – COMPONENTES FÍSICOS 2.6.1 – MICROCONTROLADOR 8051
Na figura 5 é apresentada a arquitetura 8051 onde encontram-se uma CPU
de 8 bits, um contador de 16 bits e um registrador de 16 bits que é usado para
acessar 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 128
bits. O bloco inferior destina-se a trabalhar como outra memória de dados, enquanto
que o bloco superior está dedicado aos registradores especiais que controlam os
diversos 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 ser
usadas para receber ou para gerar sinais digitais e podem ser acessadas bit a bit, ou
seja, cada bit da porta pode ser programado como entrada ou como saída.
Figura 5 – Núcleo da família 8051
Fonte: MZEDITORA (2006)
10
CAPÍTULO 3 – O Projeto
3.1 SÍNTESE DO PROJETO A primeira etapa foi o desenvolvimento de um software capaz de se
comunicar com os periféricos via celular. A base do mesmo é implementada nas
diversas 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 o
sistema permita controlar os periféricos através de um browser utilizando uma
interface 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ário
através do PC ou celular interage com o sistema. Este através de um browser
interpreta a linguagem utilizada e interage com o banco de dados recuperando e
atualizando 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 de
uma placa obtida na UNICEP, onde os componentes mais importantes são o
microcontrolador, seus periféricos, chaves e sensores, para citar somente alguns.
Essa placa tem a finalidade de controlar e mostrar os estados dos periféricos
existentes.
11
CAPÍTULO 4 – Desenvolvimento
4.1 – CONSIDERAÇÔES INICIAIS
Neste capitulo é realizada uma análise da solução proposta para construir um
sistema de automação residencial baseado em WML, HTML e PHP através da
comunicação WAP e HTTP. Será demonstrada aqui a construção do software para
integração com o banco de dados. Na seção 4.2 são analisadas desde as interfaces
até os programas de comunicações. Isto inclui todos os softwares localizados no
servidor, seu funcionamento e seu esquemático de comunicação.
4.2 – DESENVOLVIMENTO DA SOLUÇÃO 4.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 seus
códigos e assim permitir ao usuário emitir comandos e visualizar os resultados. A
descrição é baseada no modelo de desenvolvimento clássico (ou cascata) partindo
da 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 de
gerência e inteligência, e por fim o software de comunicação a ser implementado na
próxima etapa.
Com base no objetivo do projeto proposto estão listados abaixo alguns itens a
ser 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.
12
Para aumentar as possibilidades de uso de um sistema de automação foram
idealizadas duas interfaces para a utilização do sistema. As interfaces escolhidas
foram um PC utilizando um navegador por meio do protocolo HTTP e um celular
utilizando um micro-browser e o protocolo WAP. Cada interface possui limites e
capacidades diferentes, portanto, cada uma deve ser diferenciada para usar os
recursos disponíveis. Com isso a interface do PC deve ser a mais completa e
permitir todos os comandos do sistema, porém a interface de um celular deve ser
simplificada, 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 e
possibilidade de efetuar tarefas complexas de implementação de objetos.
Para criar as interfaces com o usuário sobre um sistema em PHP, duas
linguagens de saída foram escolhidas: O HTML para o PC e o WML para a interface
de celulares. A interface do PC ganhará mais funcionalidades utilizando AJAX.
O MySQL será o servidor de banco de dados utilizado por ser nativo da
linguagem PHP.
Os periféricos a serem alterados nesse projeto estão divididos em duas
partes: Área Interna (lâmpada, ventilador, porta e janela) e Área Externa (motor da
piscina, garagem e alarme).
Como citado no item 4.2.2, para a interface de um celular usando o protocolo
WAP, o software desenvolvido contem apenas as opções básicas e necessárias
como:
• 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.
13
Figura 7 – Fluxograma de navegação.
Partindo da página inicial o usuário passa pelo login onde será autenticado
pelo sistema e direcionado para a página principal. A mesma consiste em interligar
outras páginas e tem como objetivo principal o link de acesso ao painel de controle
onde o usuário poderá alterar o status do periférico desejado.
14
4.2.4 – IMPLEMENTAÇÃO 4.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;
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 dos
periféricos são divididos em:
• Ligado/Aberto/Ativado;
• Desligado/Fechado/Desativado;
• Queimado.
Quando o dispositivo queima é emitida automaticamente uma mensagem
SMS para o usuário, dizendo qual dispositivo está queimado, o cômodo a qual
pertence e à data e à hora. Para simular essa mensagem definimos em nosso
sistema 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 mostrando
passo 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.
16
Figura 9 – Apresentação do site e área de login.
No login o usuário é validado e direcionado em caso de sucesso para a
pá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 as
partes da base operacional e compor a API WEB, disponibilizando as interfaces para
que o usuário tenha acesso ao sistema alem disso fornece um menu para que o
usuário interaja com o sistema.
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 sistema
desenvolvido para o acesso WAP. Já o segundo item é uma legenda com os
possíveis status dos periféricos.
Figura 12 – Apresentação do sistema e lista dos dispositivos.
18
Abaixo é apresentado detalhes do terceiro item do menu principal que tem
como 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 os
cômodos e exibir-los separadamente.
Figura 14 – Visualização dos cômodos/status.
19
O item 3.2 referente à figura 13 é responsável por fazer a alteração dos
perifé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 dos
status realizadas pelo item anterior.
Figura 16 – Confirmação dos status alterados.
20
Na figura 17 são apresentados em uma única página todos os cômodos e
seus 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 seguinte
mensagem será exibida no celular (Figura 18).
Figura 18 – Recebimento de mensagem SMS.
21
Abaixo é apresentado o quarto item do menu principal que é a tela de
encerramento do sistema (Figura 19).
Figura 19 – Saindo do sistema
.
Como visto acima todo o sistema encontra-se funcionando e já hospedado no
domínio http://wap.br-automation.com.br.
4.2.4.2 – SOFTWARE PARA PCs
Como no software para celulares, o primeiro passo é apresentar o
detalhamento da estrutura dos arquivos contidos no servidor (Figura 20).
Figura 20 – Estrutura dos diretórios e arquivos.
22
1. 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.
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 grande
desvantagem, por isso, um esforço maior foi dedicado a procurar formas de tornar as
interfaces mais amigáveis.
Uma navegação visual pode resolver este problema, ilustrando ao usuário
claramente onde e o que está sendo controlado em cada cômodo. Esta solução
possibilita que qualquer usuário possa utilizar o sistema sem necessidade de
treinamento prévio ou conhecimentos aprofundados.
Como o objetivo do projeto proposto era a comunicação com os periféricos da
residê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 a
figura 21.
Figura 21 – Área de login.
Em seguida é apresentado o layout (tela) principal do software desenvolvido
para PCs, utilizando o protocolo HTTP voltado para WEB (Figura 22).
24
Figura 22 – Layout principal do software para PCs.
Nota-se pela tela principal do software que além de prever o controle dos
periféricos da residência, também tem outras funcionalidades tais como gerenciador
de tarefas, serviços, câmera online, gerenciador de logs, contato, link para acesso
WAP, perfil, entre outros.
Na figura 23 são apresentados todos os cômodos disponíveis e
automatizados da residência.
25
Figura 23 – Cômodos disponíveis na residência.
Ao passar o mouse sobre os cômodos, a imagem é alterada facilitando a
interação com o usuário, para que o mesmo selecione o cômodo desejado e faça as
devidas alterações dos status dos periféricos (Figura 24).
26
Figura 24 – Exibindo status da lâmpada atual.
Ainda a critério de interação, ao passar o mouse sobre os periféricos contidos
no cômodo, uma layer surge fazendo perguntas sugestivas do tipo: “Você deseja
ligar a lâmpada?”. Caso haja alteração no periférico, imediatamente é enviada a
atualizaçã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 na
qual, 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?”.
27
Figura 25 – Exibindo novo status da lâmpada.
Com este software é possível alterar todos os periféricos disponíveis em cada
cômodo de maneira fácil e rápida.
O software também conta com um sistema de perfil, onde são armazenadas
as 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 e
vão ser executadas e extrair logs do administrador, para que o mesmo tenha total
controle de quem utilizou o sistema.
Informações como nome, senha, e-mail, ultimo acesso também fazem parte
do perfil (Figura 26).
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 ao
mesmo. Muitas vezes, o usuário acaba desistindo do atendimento por falta de
paciência e até mesmo por ter tentado e não ter obtido sucesso.
Atentando para isso, o software proposto conta com um suporte 24 horas
através de um formulário de contato incluso no próprio sistema para quando houver
qualquer tipo de problema, basta apenas preenchê-lo.
Também está disponível o telefone e o e-mail do administrador responsável
pela manutenção do software.
Ainda para maior comodidade do usuário, diariamente é enviado um relatório
de monitoramento para os desenvolvedores com uma analise de procedimentos
executados junto com o desempenho obtido pelo mesmo, para quando houver
qualquer irregularidade, o mesmo é submetido à manutenção e correção imediata
(Figura 27).
29
Figura 27 – Suporte via formulário.
A segurança através de câmeras online também foi adotada neste software. A
soluçã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 a
necessidade do usuário. Essas câmeras podem ser implantadas e monitoradas sem limites de meios
físicos.
Na figura 28 é apresentada uma imagem extraída da câmera juntamente com
informações de dia e hora.
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 das
mesmas.
Este gerenciador está disponível na tela principal do software, onde pode-se
adicionar tarefas para ativar ou desativar periféricos de qualquer cômodo
automatizado da residência.
Na figura 29 é apresentado o funcionamento do gerenciador de tarefas
diárias, onde basta apenas inserir a hora e clicar no quadrado ao lado para checar o
dispositivo desejado.
31
. Figura 29 – Gerenciador de tarefas diário.
O segundo gerenciador pode tanto gerenciar tarefas diárias como também
tarefas em longo prazo.
Seu funcionamento é semelhante ao gerenciador de tarefas diário, porém
nele é 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 o
usuário não deseje mais realizá-las.
Com essa flexibilidade é possível programar a hora que as portas e janelas
serão fechadas, que o motor da piscina será ligado ou até mesmo quando os
alarmes externos da residência serão ativados ou desativados.
Na figura 30 são exibidas de forma simples as tarefas a serem executas
conforme foram programadas.
32
Figura 30 – Gerenciador de tarefas.
Para maior praticidade o software conta com uma exibição rápida de todos os
status dos periféricos disponíveis no momento (Figura 31).
33
Figura 31 – Status dos periféricos/cômodos.
34
4.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 recebem
dados pela porta serial. O hardware para a comunicação já estava pronto e foi obtido
na própria UNICEP.
O hardware terá um objetivo simples, ele será responsável por receber
comandos 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 para
obter resultados. A primeira parte do hardware é denominada de módulo de
endereçamento, responsável por determinar qual elemento deve ser controlado, e a
segunda parte, denominada de periférico de controle, é responsável por guardar o
estado do periférico e efetuar alterações. A conexão com o computador é realizada
por 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 uma
memória, mantendo armazenado o estado atual dos elementos, para que, ao se
manipular outros elementos, o primeiro não se apague e sim mantenha o estado
atual. 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 sinais
altos e sinais baixos.
35
A estrutura do projeto implementa uma base operacional, na qual, diferentes
tipos de periféricos podem ser conectados. Porém, será desenvolvido como exemplo
apenas um controle para lâmpadas.
A linguagem de comunicação utilizada para desenvolver o software usado no
microcontrolador 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, ele
interpreta e executa o comando.
Como citado acima, o Delphi é responsável pela comunicação entre o
hardware através da porta serial e o servidor de dados online. Ele também funciona
como 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és
da interface Delphi.
Figura 33 – Interface Delphi.
36
CAPÍTULO 5 – Conclusão
O projeto proposto teve êxito em apresentar e implementar uma solução de
automação residencial de pequeno e médio porte. Para esta solução foram
utilizadas tecnologias de estado da arte em programação voltada à internet,
procurando obter um resultado final de baixo custo e diminuir os requisitos de
conhecimentos necessários ao usuário operante do sistema.
A disciplina de Engenharia de Software forneceu base para a metodologia de
implementação, estabelecendo o conhecimento básico para a separação em etapas
e definindo itens a serem abordados em cada uma. As matérias voltadas à
programação como Banco de Dados, juntamente com a experiência profissional
obtida ao longo do curso, auxiliaram no desenvolvimento do software do projeto e do
conhecimento 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 a
implementação do hardware utilizado. Dessa forma, conclui-se que o projeto
estimulou o uso de maior parte dos conhecimentos obtidos durante a graduação e,
com isso, firmou conceitos aprendidos e aplicados na prática, demonstrando sua
importância à carreira profissional de engenheiro.
5.1 – IMPLEMENTAÇÕES FUTURAS Para possibilitar a aplicação comercial deste produto, as perspectivas de
melhorias 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.
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 o
Suporte 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ível
em: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=432, Acessado julho
de 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 novembro
2007.
38
RAFAEL DOHMS: Disponível em: http://www.rafaeldohms.com.br, Acessado em
março de 2008.
SIMULADOR WAPSILON. Disponível em: http://www.wapsilon.com, Acessado em
março de 2008.
NETCRAFT: WEB Server Survey, 2006. Disponível em:
http://news.netcraft.com/archives/WEB_server_survey.html, Acessado em novembro
2007.
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.
39
APÊNDICE A – Comunicação serial com assembly
40
APÊNDICE B – Envio de mensagens textuais via SMS
41
APÊNDICE C – SQL de criação do banco padrão