59
1 UNICENP – CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS CURSO DE ENGENHARIA DA COMPUTAÇÃO PROJETO FINAL CONTROLE PROGRAMADO DE DISPOSITIVOS VIA INTERNET COM COMUNICAÇÃO LOCAL VIA REDE ELÉTRICA Autor: Joarez Baumeier Prof. Orientador: Laerte Davi Cleto Curitiba 2003

UNICENP – CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE … · que os programas em ASP possuem tal linguagem implementada para acesso ao banco de dados. 2.2.3 Linguagem C O C é uma

Embed Size (px)

Citation preview

1

UNICENP – CENTRO UNIVERSITÁRIO POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS

CURSO DE ENGENHARIA DA COMPUTAÇÃO

PROJETO FINAL

CONTROLE PROGRAMADO DE DISPOSITIVOS VIA INTERNET

COM COMUNICAÇÃO LOCAL VIA REDE ELÉTRICA

Autor: Joarez Baumeier

Prof. Orientador: Laerte Davi Cleto

Curitiba

2003

i

SUMÁRIO

LISTA DE FIGURAS.......................................................................................................ii i

LISTA DE ABREVIATURAS..........................................................................................iv

1 INTRODUÇÃO...........................................................................................................5

2 ESPECIFICAÇÃO.......................................................................................................7

2.1 DESCRIÇÃO ........................................................................................................7

2.2 ESTUDO TEÓRICO.............................................................................................8

2.2.1 ASP – Active Server Pages..............................................................................9

2.2.2 SGBD – Sistema Gerenciador de Banco de Dados..........................................9

2.2.3 Linguagem C.................................................................................................10

2.2.4 Filtro Passa Alta............................................................................................10

2.2.5 CI 555...........................................................................................................11

2.2.6 CI LM567.....................................................................................................13

2.2.7 Rede de Distribuição de Energia Elétrica.......................................................13

2.3 ESPECIFICAÇÃO DO SOFTWARE..................................................................14

2.3.1 Descrição da Aplicação Internet....................................................................14

2.3.2 Programa de Conexão Local..........................................................................15

2.4 ESPECIFICAÇÃO DE HARDWARE.................................................................16

2.4.1 Descrição dos Circuitos.................................................................................17

2.4.1.1 Circuito Emissor ........................................................................................17

2.4.1.2 Circuito Receptor.......................................................................................18

3 PROJETO..................................................................................................................19

3.1 DIAGRAMA DE FLUXO DE DADOS...............................................................19

3.2 APLICAÇÃO ASP..............................................................................................21

3.3 BANCO DE DADOS..........................................................................................23

3.4 CIRCUITO EMISSOR........................................................................................25

3.5 CIRCUITO RECEPTOR.....................................................................................27

3.6 CRONOGRAMA DO PROJETO ........................................................................29

3.7 VALIDAÇÃO DO PROJETO.............................................................................30

ii

3.8 CONSIDERAÇÕES FINAIS...............................................................................31

4 REFERÊNCIAS BIBLIOGRAFICAS........................................................................33

5 ANEXOS...................................................................................................................35

Anexo 1 – Interfaces das Páginas ASP..............................................................................36

Anexo 2 – Listagem do Código Fonte das Páginas ASP....................................................42

Anexo 3 – Listagem do Código Fonte do Programa C ......................................................54

iii

LISTA DE FIGURAS

Figura 1. Diagrama de blocos de funcionamento do projeto...............................................8

Figura 2. Pinagem e diagrama do CI 555. ........................................................................12

Figura 3. Configuração astável do 555.............................................................................12

Figura 4. Esquema da aplicação Internet..........................................................................15

Figura 5. Diagrama de bloco dos circuitos de hardware..................................................17

Figura 6. Diagrama de fluxo de dados – Nível 0. .............................................................20

Figura 7. Diagrama de fluxo de dados – Nível 1. .............................................................21

Figura 8. Esquemático da estrutura lógica do banco de dados do sistema.........................23

Figura 9. Circuito emissor. ..............................................................................................25

Figura 10. Circuito receptor.............................................................................................28

iv

LISTA DE ABREVIATURAS

ASP - Active Server Pages

CI - Circuito Integrado

DFD – Diagrama de Fluxo de Dados

HTML - HyperText Markup Language

ODBC – Open Database Connectivity

SGBD - Sistema Gerenciador de Banco de Dados

SQL - Structured Query Language

5

1 INTRODUÇÃO

Dentre os vários avanços que a informática tem propiciado, um tema que tem crescente

desenvolvimento está relacionado com a Internet e sua utili zação prática no acesso e

controle de dispositivos domésticos.

O projeto a ser apresentado visa apresentar um sistema onde a Engenharia da

Computação está presente no software a ser desenvolvido, na teleinformática e sistemas

distribuídos pela utilização da Web e no hardware que fará a interação da rede elétrica com

os dispositivos eletrônicos.

O projeto possui um grande potencial para sua utilização no cotidiano da vida moderna

visto que pretende dar ao usuário do sistema a possibil idade de interagir com algum

equipamento que pode estar virtualmente do lado oposto do planeta utilizando para isto o

meio altamente difundido da Internet.

O desenvolvimento do sistema utilizando a Internet e página dinâmica dá a

oportunidade de implementar o projeto com um componente poderoso de agregação

comercial pois torna o sistema amigável ao usuário comum e pode suprir necessidades com

este nível de interação.

A utilização da rede elétrica residencial para a comunicação de dados é um diferencial

significativo do projeto, com grande potencial de crescimento devido a fatores como a

existência da rede elétrica em todas as residências, a simplicidade de conexão com todos os

cômodos e a economia no custo de instalação dos cabos de rede, que deixam de existir.

A aplicação deste sistema tem sua utilização focada em qualquer equipamento elétrico

ou eletrônico que possa ter conexão com a rede elétrica da residência, tais como alarmes,

lâmpadas, aquecedores, ar condicionado, exaustores, sistema de calefação, televisores,

computadores, telefones, etc., evidenciando mais este fator de utilização do sistema.

6

Este projeto representa o passo inicial para a utilização de uma tecnologia que vem

sendo pesquisada por empresas de porte como Adaptive Networks, Enekia, Inari e Intellon

entre outras [1].

7

2 ESPECIFICAÇÃO

Nesta etapa do projeto será apresentada a especificação do projeto do controle

programado de dispositivos via Internet com comunicação local via rede elétrica, que

compreende a descrição da dinâmica de funcionamento do sistema, a tecnologia de

software e de hardware a ser empregada e a definição dos blocos funcionais envolvidos.

2.1 DESCRIÇÃO

O projeto pode ser visualizado em duas partes principais distintas em termos de

tecnologia, que são, o desenvolvimento de um sistema de comunicação utilizando a rede

elétrica local considerando a rede elétrica local como sendo uma rede elétrica de 110 V e o

desenvolvimento de uma aplicação Internet onde o usuário é capaz de controlar os

dispositivos de seu ambiente local estando conectado em qualquer lugar na rede mundial.

Estas duas interfaces do projeto podem até mesmo operar de forma independente, ou seja,

os dispositivos podem ser controlados localmente sem que o acesso seja via Internet,

adaptando-se o programa em C para este fim. O sistema Internet, por sua vez, pode ser

utilizado para se comunicar com uma interface de comunicação via rádio, por exemplo.

O sistema consiste em uma aplicação Internet desenvolvida em código ASP (Active

Server Pages ) que tem acesso um banco de dados implementado em Access, ambos

hospedadas em um servidor, e um sistema que envolve a comunicação de um computador

local com um acoplamento a rede elétrica e dispositivos de recepção responsáveis pelo

acionamento direto dos equipamentos com que se pretende interagir, conforme apresentado

na Figura 1.

O usuário se conecta a Internet, executa o login, recebe uma página de visualização do

status atual dos dispositivos e campos para atualização. No caso de atualização, as

informações são gravadas no banco de dados. O computador local deve estar

constantemente ligado com a respectiva aplicação em execução. O computador local faz

uma verificação constante nas informações do banco de dados do servidor, caso algum

8

dispositivo deva sofrer alguma operação, o computador se comunica com a interface de

acoplamento à rede elétrica que acessa o dispositivo correspondente no local e executa a

operação de ligar ou desligar o dispositivo.

Figura 1. Diagrama de blocos de funcionamento do projeto.

2.2 ESTUDO TEÓRICO

Nesta etapa são descritos os conceitos teóricos necessários para que se obtenha o

domínio das tecnologias que serão utilizadas neste projeto.

Para o desenvolvimento do sistema relacionado à Internet o foco da pesquisa se

concentra em desenvolvimento de páginas dinâmicas com acesso a banco de dados, sendo

que grande parte do material inicial de consulta pode ser encontrado em sites relacionados

ao assunto. Foram obtidas apostilas e consultados tutoriais on line, que forneceram o

material necessário para o desenvolvimento do código ASP.

Quanto a comunicação de dados via rede elétrica também foram pesquisados sites sobre

o assunto, especialmente para determinar a tecnologia necessária para o desenvolvimento

dos circuitos de comunicação.

Aplicação Internet Comunicação via rede elétr ica

Access - ASP

Usuário

Computador - Acoplamento - Dispositi vos

Internet

9

Foram analisados datasheets dos componentes a serem utilizados e livros de eletrônica

que auxil iam na configuração e cálculos necessários para estas configurações do projeto.

Entidades e empresas que estão desenvolvendo algum sistema relacionado a

comunicação de dados via rede elétrica foram pesquisados para minimizar erros de escolha

de tecnologia e facil itar o desenvolvimento do projeto.

2.2.1 ASP – Active Server Pages

O ASP é um ambiente de programação por scripts que rodam em servidor que

tenham o sistema operacional Windows com a solução mínima de acesso a Internet,

Microsoft Internet Information Server versão 3.0 no Windows NT Server, Microsoft Peer

Web Services versão 3.0 no Windows NT Workstation e Microsoft Personal Web Server no

Windows 95 ou Windows 98 [15].

O ASP é usado para criar páginas dinâmicas, interativas e de alto desempenho.

Como as páginas ASP, os scripts rodam no servidor e não no cliente. É o próprio servidor

que transforma os scripts em HTML padrão, fazendo com que qualquer browser do

mercado seja capaz de acessar um site que usa ASP.

2.2.2 SGBD – Sistema Gerenciador de Banco de Dados

Um banco de dados pode ser criado e mantido por um conjunto de aplicações

desenvolvidas especialmente para esta tarefa ou por um SGBD. Um SGBD permite a

criação e manipulação de bancos de dados de propósito geral. O conjunto formado por um

banco de dados mais as aplicações que manipulam o mesmo é chamado de Sistema de

Banco de Dados [18].

Um SGBD é uma coleção de programas que permitem ao usuário definir, construir e

manipular Bases de Dados para as mais diversas finalidades.

10

Neste projeto o sistema de armazenamento de dados pode ser escolhido entre os

diversos disponíveis no mercado que tenham compatibilidade com a linguagem SQL, já

que os programas em ASP possuem tal linguagem implementada para acesso ao banco de

dados.

2.2.3 Linguagem C

O C é uma linguagem de programação genérica de nível médio que é utilizada para

desenvolvimento de programas em diversas áreas e atividades, como por exemplo,

computacional: criação de navegadores, planilhas, processadores de texto, calculadora, etc.;

comercial: folha de pagamento, cadastro de pessoas e coisas, controle de vendas, etc.; e na

solução de problemas nos mais diversos campos do conhecimento como química, física,

matemática, etc [19].

Neste projeto a linguagem C é utilizada para manipulação de arquivos e para

comunicação com a porta paralela, tarefas que são executadas com uma implementação

totalmente compatível com o compilador escolhido, no caso o Borland C++ Builder.

2.2.4 Filtro Passa Alta

Filtros são circuitos que permitem a passagem de sinais para uma faixa de freqüência.

Dentro dos filtros passivos, encontramos o filtro passa-baixa e o filtro passa-alta.

Para ondas senoidais, de freqüências altas, a reatância capacitiva assume valores baixos

em comparação com o valor da resistência, dessa maneira a tensão de saída será

praticamente igual a tensão de entrada. Para freqüências baixas, a reatância capacitiva

assume valores altos em comparação com o valor da resistência, atenuando a tensão de

saída para um valor praticamente nulo. Dessa maneira, o filtro permite a passagem de sinais

de freqüências altas, sendo por isso denominado filtro passa-alta [20].

11

O filtro passa alta é utilizado no projeto para fazer o acoplamento entre os circuitos

emissor e receptor com a rede elétrica local pois a tensão com que operam os circuitos do

projeto são da ordem de 5V. Como serão emitidas freqüências acima de 1 kHz sobre a rede

elétrica, que opera em 60 Hz, o filtro evita uma sobrecarga sobre os circuitos.

2.2.5 CI 555

O 555 é um circuito integrado composto de um Flip-Flop do tipo RS, dois

comparadores simples e um transistor de descarga. Projetado para aplicações gerais de

temporização, este integrado é de fácil aquisição no mercado especializado de eletrônica

[21].

Ele é tão versátil e possui tantas aplicações que se tornou um padrão industrial,

podendo trabalhar em dois modos de operação: monoestável (possui um estado estável) e

astável (não possui estado estável). Sua tensão de alimentação situa-se entre 5 e 18v, o que

o torna compatível com a família TTL de circuitos integrados e ideal para aplicações em

circuitos alimentados por baterias. A saída deste C.I. pode fornecer ou drenar correntes de

até 200mA ou 0,2A, podendo assim comandar diretamente relês, lâmpadas e outros tipos de

carga relativamente grandes [21].

Na figura 2 são mostrados os pinos e o diagrama simplificado do CI 555.

12

Figura 2. Pinagem e diagrama do CI 555.

Neste projeto, o 555 é utili zado como oscilador operando em modo astável , isto é a

saída ficará variando entre estados alto e baixo numa freqüência que será determinada pela

configuração da rede RC como pode ser visto na figura 3.

Figura 3. Configuração astável do 555.

13

A freqüência de operação é calculada por: f = 1 / T = 1,44 / (RA + 2RB) x C1.

2.2.6 CI LM567

O CI LM567 é um decodificador de tom de finalidade geral, projetado para atuar

como um interruptor de saturação do transistor quando um sinal de entrada está atuando

dentro da banda-passante. O circuito consiste em um detetor de entrada e de uma saída

controlada por um oscilador com tensão controlada, que determina o centro de freqüência

do decodificador. Os componentes externos são usados para ajustar o centro da freqüência

independentemente da largura de faixa e do atraso da saída [13]. Ou seja, CI LM567 é um

circuito detetor de tom capaz de detectar uma certa freqüência injetada em sua entrada.

A fórmula para se detectar freqüência desejada é dada por: FINPUT = 1 / 2,8 x Rt x Ct.

2.2.7 Rede de Distribuição de Energia Elétrica

As redes de distribuição foram inicialmente projetadas para transmitir energia elétrica

de forma eficiente, assim estas não são adaptadas para fins de comunicação, fazendo com

que seja necessário o emprego de técnicas avançadas. Devido as características especiais da

rede de distribuição como canal de comunicação, investigações profundas e detalhadas

deverão ser feitas para garantir a utilização da mesma de forma eficiente para fins de

comunicação de dados [2].

As redes elétricas são usualmente classificadas em três níveis:

• Alta Tensão - Utili zado para interligar os centros de geração aos centros de consumo,

geralmente percorrendo grandes distâncias, este nível de tensão é marcado

principalmente pelas perdas por efeito Joule, pelas descargas oriundas do efeito corona

(que também introduzem componentes de alta freqüência na rede) e por capacitâncias e

indutâncias parasitas.

14

• Média Tensão - Responsáveis pela interligação das subestações com os centros

distribuídos de consumo, este nível de tensão pode também ser utilizado no

fornecimento de energia elétrica a consumidores de maior porte como indústrias ou

prédios.

• Baixa Tensão - Este é o nível de tensão que efetivamente chega a maioria das unidades

consumidoras derivando do secundário do transformador de redução. A natureza

dinâmica com que as cargas são inseridas e removidas da rede, as emissões conduzidas

provenientes dos equipamentos e as interferências de diferentes naturezas fazem deste

ambiente o mais hostil , para a transmissão de sinais, dentre os três níveis de tensão

apresentados.

2.3 ESPECIFICAÇÃO DO SOFTWARE

Neste item estão definidos as ferramentas de software necessárias para o

desenvolvimento e implementação do projeto, bem como uma breve descrição de cada uma

destas ferramentas.

Estão incluídas neste item o funcionamento das interfaces de software, onde tem-se a

descrição da aplicação Internet e os programas necessários para sua implementação.

2.3.1 Descrição da Aplicação Internet

A aplicação Internet tem como função principal dar ao usuário um alto grau de

interação com os dispositivos eletrônicos de sua residência conectados ao sistema. Isto faz

com que a utili zação do sistema tenha bastante flexibil idade e uma facil idade de acesso

muito simples no modo de operação pelo usuário.

O sistema de conexão com a Internet utili zará um servidor onde estarão rodando um

programa em ASP para atualização dinâmica das páginas e um sistema gerenciador de

15

banco de dados - SGBD, o Microsoft Access que armazenará todas as informações dos

clientes cadastrados bem como as informações referentes aos dispositivos das residências.

Na Figura 4 pode-se observar o esquema de funcionamento da aplicação Internet.

Figura 4. Esquema da aplicação Internet.

Para utilização do sistema o usuário deverá se conectar com a Internet e acessar a

página de login do sistema, onde entrará com o nome e a senha de acesso. Desta forma terá

acesso à página onde são visualizados os dispositivos com seus status atuais e ainda os

campos relativos a atualização desejada, ou seja, data, hora e operação de liga ou desliga

dispositivo. Esses parâmetros serão enviados para o servidor que atualizará o banco de

dados do usuário.

O computador na residência do usuário deve permanecer constantemente conectado

a Internet, requisita a página inicial do sistema para efetuar a confirmação de nome e senha

do usuário, para que possa entrar na página onde estarão atualizados os parâmetros de cada

dispositivo, esta página será sistematicamente atualizada pelo programa para que tenha os

parâmetros para os dispositivos sempre atualizados.

2.3.2 Programa de Conexão Local

O programa de atualização e conexão local será ser desenvolvido em linguagem C e

terá a função de fazer a conexão do computador com o circuito de comunicação via rede

16

elétrica pela porta paralela e a manipulação do cookie gerado pela página de refresh local,

de forma a extrair a data, a hora, o dispositivo e a operação à ser executada.

O Cookie é um arquivo pequeno, normalmente menor que 1Kbyte, que

freqüentemente inclui um identificador único, que é enviado para o browser através de uma

página da Internet e armazenado no disco rígido.

2.4 ESPECIFICAÇÃO DE HARDWARE

Neste tópico são especificados os componentes de hardware que compõe o projeto.

Estes componentes estão definidos em forma de módulos de acordo com a função

específica de cada módulo, representado na Figura 5.

Quando da ativação do sistema de hardware, o computador envia um conjunto de

dados para o circuito emissor, que é composto por um módulo seletor, que habil ita a chave

responsável pela conexão com o oscilador, este por sua vez, envia a freqüência especificada

para o acoplador, que se encarrega de transmitir este sinal pela rede elétrica.

Na rede elétrica estão conectados os dispositivos que recebem a freqüência e

executam a operação de liga/desliga dos equipamentos a eles conectados, os módulos que o

compõe são: o filtro, que recebe o sinal da rede elétrica e retira a freqüência de interesse; o

detetor de tom, que identifica se a freqüência é direcionada para determinado dispositivo; e

o interruptor, que é a chave de liga/desliga que fará o acionamento ou desligamento do

equipamento.

17

Figura 5. Diagrama de bloco dos circuitos de hardware.

2.4.1 Descrição dos Circuitos

Os circuitos que compõe o projeto são descritos neste tópico do projeto, onde são

apresentadas as características físicas e funcional básicas do circuito emissor e do circuito

receptor.

2.4.1.1 Circuito Emissor

O circuito emissor é composto de três blocos funcionais distintos, o bloco seletor,

bloco oscilador e bloco acoplador.

- Bloco Seletor – O computador se comunica inicialmente com este bloco

através da porta paralela. É constituído de resistores, que determinam a

freqüência de operação do CI 555.

- Bloco Oscilador – O componente principal é o CI 555, possui as várias

configurações de entrada necessárias para distinguir os dispositivos de

acordo com a freqüência selecionada. Estas configurações são acessadas

pela bloco seletor.

Seletor Oscilador Acoplador Fil troDetetorde Tom Interruptor

Rede Elétr ica Local

Computador Equipamento

Circuito Emissor Circuito Receptor

18

- Bloco Acoplador – Responsável por enviar a freqüência selecionada para a

rede elétrica. É necessário devido ao fato de que a tensão de saída do

computador é em torno de 5V e a tensão da rede, aproximadamente 127V.

O circuito é constituído de um filtro passa alta que evita que a tensão da

rede elétrica danifique o circuito de baixa potência.

2.4.1.2 Circuito Receptor

O circuito receptor é composto por três blocos funcionais distintos: filtro, detetor de

tom e interruptor, descritos a seguir.

- Filtro – O filtro recupera a freqüência enviada pelo emissor. É a

implementação de um filtro passa alta que exclui a freqüência da rede

elétrica de forma que a freqüência que passa pelo filtro possa ser

identificada pelo bloco detetor de tom.

- Detetor de Tom – O detetor de tom tem como característica o

reconhecimento de determinada freqüência, que é configurada por

componentes passivos externos. Cada dispositivo terá um circuito detetor

de tom configurado de acordo com a freqüência que for selecionada no

bloco seletor do circuito emissor.

- Interruptor – O interruptor é a chave de liga e desliga do dispositivo

relacionada ao equipamento. Possui um acoplamento do tipo relê que isola

a baixa tensão dos blocos funcionais da rede elétrica.

19

3 PROJETO

Neste capitulo são descritas em detalhes todas as etapas para a implementação do

projeto, levando em conta os tópicos descritos na etapa anterior do projeto.

3.1 DIAGRAMA DE FLUXO DE DADOS

O diagrama de fluxo de dados descreve o fluxo de informações e as transformações

que são aplicadas à medida que os dados se movimentam da entrada para a saída do

sistema. É a representação gráfica da descrição lógica do projeto, onde são apresentados os

procedimentos e operações propostos, de forma a permitir uma visualização global do

funcionamento do sistema.

Na Figura 6, a seguir, é apresentado o DFD de nível zero que apresenta em um único

núcleo todas as ações do sistema, de forma resumida, bem como as entidades externas

envolvidas, a partir de onde é feita uma expansão que origina o DFD de nível um,

apresentado na Figura 7, com um, grau maior de detalhamento das operações do sistema.

Com este nível de explosão do diagrama de fluxo de dados já se observa toda a

seqüência de operações e entidades externas envolvidas, bem como o banco de dados, que

vem a ser um dos principais depósitos do sistema.

20

Figura 6. Diagrama de fluxo de dados – Nível 0.

Sistema deControle

Programado deDispositivos

Usuário Acesso-Remoto

Usuário Acesso-Local

Sistema OperacionalCircuito Emissor

Logon e senhaAtualizar dados

Consultar dados

Logon e senha

Consultar dados

Data e Hora Acionar porta paralela

21

Figura 7. Diagrama de fluxo de dados – Nível 1.

3.2 APLICAÇÃO ASP

A aplicação ASP é constituída das páginas que fazem a interação do usuário com o

sistema, ou seja, possui as interfaces necessárias para a comunicação com os equipamentos

que deseja interagir, estas podem ser vistas no Anexo 1.

Usuário Acesso-Remoto

EfetuarLogon

AtualizarDados

Banco Dados

UsuárioSenha

Valida usuário

Retorna statusEnvia dados

Usuário Acesso-Local

EfetuarLogon

AtualizarDados

UsuárioSenha

Valida usuário

Retorna status

Cookie

CompararDados

Sistema Operacional

DataHora

Circuito Emissor

Acionar

Porta

ParalelaEnvia bit

PortaPino

22

A aplicação ASP possibilita ao usuário fazer inicialmente o seu login no sistema, isto

é necessário para que um determinado usuário acesse exclusivamente as informações a ele

pertinentes, este é um fator de segurança importante para acesso ao sistema. Esta página é

denominada de “acesso_p.asp” , tem a função de armazenar as variáveis referentes ao nome

e senha do usuário, estes dados serão utilizados para acesso ao restante do sistema. Caso o

usuário ou senha não estejam corretos será apresentada uma página de erro, denominada

“pag_erro.asp” , que retorna para a página de login automaticamente após alguns segundos .

Logo após o login é apresentada a tela onde é mostrado o status dos dispositivos, tais

como: data, hora e operação a ser executada. Nesta página é feita a atualização dos dados

relativos aos dispositivos. No anexo referente às interfaces ASP, observa-se a disposição

dos dados relativos ao status e, logo abaixo deste, os campos que devem ser preenchidos

para a atualização dos dados desta página que é denominada “valida_p.asp” .

Esta página recebe os dados da página de login e os valida através de uma conexão

com o banco de dados, em seguida os campos atualizados recebem uma instrução SQL que

executa a instrução de atualização.

No local onde está a placa de recepção e emissão de dados, um computador deve

estar permanentemente conectado com a Internet e, inicialmente, é executado um login com

o sistema para se determinar o usuário do sistema e proceder a autenticação do mesmo. A

interface desta página, denominada “acesso_local.asp” é equivalente a página de acesso do

usuário descrita anteriormente, conta inclusive com a verificação de usuário e senha, caso

algo não esteja correto é enviada a página de erro equivalente a “pag_erro.asp” que neste

caso é denominada de “erro_local.asp” .

Para que o sistema local possa realizar a constante verificação dos dados no servidor

é necessário que a sessão do cliente permaneça ativa à cada atualização realizada pela

página de refresh. Esta sessão do usuário é especificada na página denominada

“session_local.asp” que mantém os dados do usuário que acessou o sistema.

23

Logo depois de executado a sessão no ambiente local, a página que é requisitada é a

“refresh_local.asp” , que recebe os dados atualizados do banco de dados, relativos ao

cliente, e executa uma atualização a cada 30 segundos. Esta página tem o formato

semelhante a página “valida_p.asp” , vista anteriormente, no entanto sem os campos de

atualização, apresenta somente o status dos dispositivos.

3.3 BANCO DE DADOS

O banco de dados implementado tem a finalidade de armazenar informações relativas

ao usuário, e aos dispositivos que atuam no sistema, recebendo e enviando informações

para as páginas dinâmicas desenvolvidas em ASP.

Na Figura 8 pode-se observar como está implementado o banco de dados em seu

nível lógico e de inter-relacionamentos.

Figura 8. Esquemático da estrutura lógica do banco de dados do sistema.

O banco de dados, implementado em access, possui uma estrutura bastante simples,

mas que abrange plenamente as necessidades do sistema. É constituído por três tabelas:

Tab_Dispositivos, Tab_Programa e Tab_Usuario, na Tabela1 pode-se observar cada tabela

do banco com o nome de cada campo, tipo de dados e, no lado esquerdo da tabela, os

caracteres CH significam chave primária.

24

A implementação do banco de dados faz a consistência dos dados à serem incluídos,

bem como assegura uma única operação para um determinado dispositivo em determinado

horário. Desta forma o funcionamento do projeto como um todo ganha maior

confiabil idade quanto a interação com os dispositivos relacionados.

Tab_Dispositivo

Nome do Campo Tipo de Dados

CH Dispositivo Texto

Tab_Programa

Nome do Campo Tipo de Dados

CH Nome Texto

CH Dispositivo Texto

CH Data Data/Hora

CH Hora Data/Hora

Operação Texto

Tab_Programa

Nome do Campo Tipo de Dados

CH Nome_Usuario Texto

Senha_Usuario Texto

Tabela 1. Tabelas do banco de dados com campos.

25

3.4 CIRCUITO EMISSOR

O circuito emissor, mostrado na Figura 9 é conectado à porta paralela do computador

por onde são enviados os pulsos necessários para a ativação da freqüência do dispositivo

envolvido em determinada operação (ligar ou desligar). Este sinal é enviado

especificamente para um dos resistores, R1a ou R1b, com valores distintos, isto faz com

que o CI 555 oscile em diferentes freqüências.

A freqüência selecionada é levado à transistor de potência que fornece o sinal final

para aplicação na rede elétrica. Este acoplamento é feito através de duas enroladas com fio

de cobre esmaltado em um bastão de ferrite de 0,6 cm de diâmetro e de 10 cm de

comprimento e de dois capacitores de poliéster com tensão de isolamento de 400 V. L1 é

formada por 80 voltas de fio no bastão e L2 por 240 voltas, o que possibilita um aumento

na tensão de saída da bobina. Este conjunto, bobinas e capacitores, fazem a filtragem do

sinal de baixa freqüência da rede elétrica, evitando uma sobrecarga no sistema que opera

com tensão de 6 volts de corrente contínua.

C3

J5

Saida

12

J3

G N D

1

R1a

G N D

C2

C4

L2

J4

VCC

1

Q1TIP111

R1b

R3

R2

C1

J2

ent2

1

U1

LM555

3

4

8

5

26

7O U T

R S T

VCC

CV

T R GT H R

D S C H G

J1

ent1

1L1

Figura 9. Circuito emissor.

O CI 555 é configurado para operar em modo astável, de forma que os componentes à

serem considerados para o cálculo da freqüência são R1a, R1b, R2 e C2.

26

Como:

R1a = 10

R1b = 47

R2 = 20

C2 = 1nF

e utili zando as fórmulas:

T1 = 0,7 x (R1a + 2 x R2) x C2 , f 1= 1/T1;

T2 = 0,7 x (R1b + 2 x R2) x C2 , f 2= 1/T1;

Obtém-se, respectivamente, f1 ≅ 28 kHz e f2 ≅ 16 kHz, que são as freqüências

emitidas por este circuito sobre a rede elétrica.

A seguir é apresentada a lista de componentes para implementação do circuito

emissor:

Capacitores:

C1 – 0,01 µF, cerâmico;

C2 – 100 µF, cerâmico;

C3, C4 – 10 nF, poliéster 400V.

Resistores:

R1a – 10 kΩ;

R1b – 47 kΩ;

R2 – 20 kΩ;

R3 – 1 kΩ.

Semicondutores:

U1 – LM555;

27

Q1 – TIP111.

Diversos:

L1, L2 – Bobina.

3.5 CIRCUITO RECEPTOR

O circuito receptor, mostrado na figura 10, deve estar conectado a uma das tomadas

da rede elétrica local. Este circuito é constituído por um acoplamento com a rede elétrica,

que é formado por uma bobina com dois enrolamentos de fio de cobre esmaltado sobre um

bastão de ferrite de 0,6 cm de diametro por 6 cm de comprimento e um capacitor de

poliéster. Cada bobina, L1 e L2, possui 130 voltas, fazendo com que não ocorra alteração

na tensão de entrada do sistema. Este conjunto executa a filtragem das baixas freqüências

da rede elétrica.

Na seqüência, dois diodos em oposição na entrada evitam que transientes ou surtos de

alta tensão da rede elétrica possam causar problemas ao circuito integrado.

O CI LM567 tem a sintonia ajustada para uma determinada freqüência do emissor

através do trimpot conectado ao pino 5. Enquanto o CI não recebe o sinal correspondente a

freqüência configurada, a saída permanece em nível alto. Quando é detectada a freqüência

correta da configuração a saída do CI vai à nível baixo, por este motivo as saídas do CI 567

são conectadas ao CI 7404, que invertem o sinal de saída para acionar a lógica dos relês do

circuito.

Cada configuração do CI 567 deve detectar uma freqüência diferente, um deve

detectar 28 kHz e o outro 16 kHz, conforme definido pelo circuito emissor, de forma que

cada sinal é reconhecido independentemente do outro. Quando a freqüência é detectada, o

sinal faz com um pulso seja enviado para a lógica implementada nos relês. Esta lógica é

implementada de forma que se o relê K1 recebe um pulso positivo, o dispositivo é

desligado, e assim permanece “travado”, para que o dispositivo seja ligado o relê K2 deve

receber um pulso positivo, após o qual este também permanece “travado”, e assim

28

sucessivamente. É importante observar que após o relê K2 ter definido a posição de ligar o

dispositivo este assim permanece mesmo que receba novo pulso, o mesmo ocorrendo com o

relê K1 no caso de desligar o dispositivo.

K 1

R E L E

34

5

68

712

R 3

R 5

C 1 0

D 1

R 6

R 2

C 4

C 7

L 2

L 3

U 1

L M 5 6 7 C

12

3

56

8

4

O U T F I LL F I L

I N P U T

T RT C

O U T P U T4

T 11 5

6

4 8

J 1

P L U G M A C H O

12

C 2

Q 1

1

2

3

R 4

13

2

C 9

C 3

V C C

D 5

C 8

C 1 1

U 1

L M 5 6 7 C

12

3

56

8

4

O U T F I LL F I L

I N P U T

T RT C

O U T P U T4

C 1

D 6

D 4

C 6D 3

K 2

R E L E

34

5

68

712

C 5

J 2

P L U G F E M E A

12

Q 1

1

2

3D 2

R 1

13

2

Figura 10. Circuito receptor.

A seguir é apresentada a lista de componentes utili zados na implementação do

circuito receptor:

Capacitores:

C1 – 10 nF, poliéster 400V;

C2 – 100 nF, cerâmico;

C3, C7 – 10 nF, cerâmico;

C4, C8 – 4,7 nF, poliester;

C5, C9 – 100 nF, cerâmico;

C6, C10 – 22 nF, cerâmico;

29

C11 – 1000 µF, eletrolítico.

Diodos:

D1, D2, D3, D4, D5, D6 – 1N4002.

Resistores:

R1, R4 – 10kΩ - potenciômetro;

R2, R5 – 10kΩ;

R3, R6 – 1kΩ.

Semicondutores:

Q1, Q2 – BC549;

U1, U2 – LM567.

Diversos:

L2, L3 – Bobina;

K1, K2 – Relê 5V;

T1 – Transformador – primário=127, secundario=6+6 V, 800mA.

3.6 CRONOGRAMA DO PROJETO

O cronograma do projeto se baseia no cronograma especificado “Manual de Instrução

do Projeto do Final de Curso” , disponibilizado aos alunos para a elaboração do projeto. A

Tabela 2 mostra os meses definidos para as etapas do projeto.

30

Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez

Propo sta

Especificação

Projeto

Implementação

Validação

Documentação

3.7 VALIDAÇÃO DO PROJETO

O desenvolvimento dos sistemas independentes serão feitos de maneira paralela, de

forma que não fiquem etapas individuais para serem desenvolvidas integralmente após a

conclusão das demais etapas que não têm ligação direta.

O sistema que envolve o funcionamento de conexão e acesso a banco de dados via

Internet deverá ter condições de validação antes do sistema de comunicação de dados via

rede elétrica.

A validação integral do projeto envolve a conexão de um usuário com a Internet e seu

acesso a página via confirmação de nome e senha. Na seqüência o usuário deverá

determinar na página, o dispositivo que pretende acionar bem como o horário de

acionamento. O servidor recebe as informações e as atualiza no banco de dados. O

computador que está na residência deve acessar periodicamente o servidor via Internet e

fazer a verificação das informações atualizadas do banco de dados. O programa em C lê os

Tabela 2. Cronograma do projeto.

31

dados atualizados da página local e faz a conexão com o dispositivo que recebe o comando

na hora especificada.

Para fins de validação do projeto uma lâmpada elétrica que estará conectada a rede

elétrica local receberá um comando de liga ou desliga, que deve ser executado na hora

especificada pelo usuário conectado à Internet.

3.8 CONSIDERAÇÕES FINAIS

Algumas considerações importantes devem ficar registradas para análise de problemas

encontrados bem como suas soluções, possíveis soluções ou a inviabil idade de execução.

Quanto à utilização da Internet como meio de circulação das informações do sistema

chega-se a um impasse no que diz respeito a utilização dos dados que estão chegando para

o cliente local, pois apesar dos dados serem apresentados na tela do navegador, o programa

em C que manipula os dados, não tem como extraí-los para utili zação do sistema.

Duas considerações são feitas quanto ao problema exposto:

A primeira consideração é a de que é possível para o programa em C manipular os

dados diretamente do servidor, isto leva a possibil idade da implementação do sistema de

forma que o cliente local seja alterado para servidor local. O que significa manter no

computador do cliente tanto a aplicação de banco de dados como o servidor de páginas.

Além disso o cliente deve possuir um endereço IP fixo que acarreta um custo considerável

a mais na implantação do sistema.

A segunda consideração é a de que o único arquivo manipulável que o código ASP

pode gerar no cliente são os cookies, arquivos no formato texto com informações que

podem ser recuperadas pelo navegador sem intervenção do usuário. Neste caso especifico,

estas informações podem ser utilizadas pelo programa C para verificação dos dados e

interação com os dispositivos.

32

A primeira consideração possui um lado positivo no que diz respeito a eficiência do

sistema em termos técnicos, visto que o acesso direto ao banco de dados no cliente elimina

um intermediário de acesso ao banco de dados. Por outro lado adiciona custo para o cliente

e elimina a forma mais promissora de exploração do sistema comercialmente, isto é, a

prestação de serviço como provedor de acesso e administrador do sistema.

Desta forma o programa em C é desenvolvido procurando tratar os cookies no cliente

mantendo as características inicias das interfaces de acesso à Internet.

Quanto ao hardware, a utilização da rede elétrica se mostrou bastante eficiente em

termos de manter a freqüência emitida pela rede, porém a amplitude do sinal é bastante

atenuado conforme a distância entre o emissor e o receptor aumenta. Isto requer um

aprimoramento na questão de potência a ser enviada para a rede.

Ainda como sugestão para melhoria futura do sistema, pode-se implementar um módulo

de resposta do dispositivo para o computador, confirmando o status atual do mesmo, dando

maior confiabil idade e interação com o sistema.

Como o sistema está sujeito a possíveis ruídos gerados por outros equipamentos ligados

a rede elétrica, que podem ter freqüência coincidente à configurada no receptor, uma forma

de controlar o que é freqüência válida ou não, também é desejável.

O projeto, no entanto, como foi proposto, alcançou seus objetivos plenamente, sendo

que o protótipo aqui desenvolvido executa sem problemas as tarefas para o qual foi

construído.

33

4 REFERÊNCIAS BIBLIOGRAFICAS

[1] http://www.bit.pt/revista/especiais/bit21-1.htm, Março/2003.

[2] http://www.eel.ufsc.br/gpqcom/vidal/PLC/relat.html, Março/2003.

[3] http://www.intellon.com, Março/2003.

[4] http://www.powerlinecommunications.net, Março/2003.

[5] http://www.homeplug.org/index_basic.html, Março/2003.

[6] http://www.geocities.com/Sil iconValley/Monitor/4126/indice.html, Março/2003.

[7] http://icc.skku.ac.kr/~won/electro/telecom.html, Março/2003.

[8] http://www.plexeon.com/access-3.html, Março/2003.

[9] http://www.inovanet.com.br, Março/2003.

[10] http://www.tutorialweb.hpg.ig.com.br/asp.htm, Março/2003.

[11] http:// www.asphelp.com.br, Março/2003.

[12] http://www.darkbr.net/asp.php, Março/2003.

[13] http://www.fairchildsemi.com, Março/2003.

[14] W. Bolton, Análise de Circuitos Elétricos, 2.ed. São Paulo, Makron Books, 1995.

[15] Asbury Stephen, RICART,Manuel Alberto, ASP, Guia do Desenvolvedor, Berkeley,

2001.

[16] W.Kwan, W.Parker, B.Roberts, J.Tatum - PLCCS : A Power Line Carrier

Communications System, submitted to: Joseph Picone.

[17] Jeffry Byrne, Microsoft Access 97, Rio de Janeiro, Campus, 1997.

34

[18] Abraham Silberschatz, Sistema de Banco de Dados, 3. ed. São Paulo, Makron Books,

1999.

[19] Lars Klander & Kris Jamsa, Programando em C/C++: a Bíblia, 1. ed. São Paulo,

Makron Books, 1999.

[20] http://www.facens.br, Julho/2003.

[21] Parr, E.A.; Projetos Eletronicos com o C.I. 555, 1. ed. Rio de Janeiro, SeleçõesEletrônicas, 1979.

35

5 ANEXOS

Anexo 1 – Interfaces das Páginas ASP;

Anexo 2 – Listagem do Código Fonte das Páginas ASP;

Anexo 3 – Listagem do Código Fonte do Programa C.

36

Anexo 1 – Interfaces das Páginas ASP

37

Interface - Página de acesso local - acesso_local.asp.

38

Interface - Página local de verificação de status dos dispositivos - refresh_local.asp.

39

Interface - Página de acesso remoto - acesso_p.asp.

40

Interface - Página de atualização do sistema - valida_p.asp.

41

Interface - Página de erro de logon - pag_erro.asp e erro_local.asp.

42

Anexo 2 – Listagem do Código Fonte das Páginas ASP

43

• Acesso_local.asp

<!--pagina inicial de acesso local, onde o usuario deve entrar com nome e senha. A pagina aciona a pagina "session_local.asp"-->

<HTML><HEAD>

<TITLE> GERENCIADOR DE DISPOSITIVOS - PÁGINA DE ACESSO - LOCAL</TITLE></HEAD>

<BODY>

<IMG SRC = "Logotipo.jpg">

<FONT COLOR=GREEN><FONT FACE=ARIAL><H2><CENTER><B><U> PÁGINA DE ACESSO - LOCAL</B></U></H2></FONT></FONT><BR><form action="session_local.asp" method="get">

<B><FONT FACE=Arial>

<p>Nome: <input type="text" size="40" name="campo_nome"> </p><p>Senha: <input type="password" size="40" name="campo_senha"> </p><BR>

<input type="submit" value="Enviar"></CENTER>

</form></body></html>

44

• Acesso_p.asp

<!--pagina inicial de acesso onde o usuario deve entrar com nome e senha. A pagina aciona a pagina "valida_p.asp"-->

<HTML><HEAD>

<TITLE> GERENCIADOR DE DISPOSITIVOS - PÁGINA DE ACESSO</TITLE></HEAD>

<BODY>

<IMG SRC = "Logotipo.jpg">

<FONT COLOR=GREEN><FONT FACE=ARIAL><H2><CENTER><B><U> PÁGINA DE ACESSO</B></U></H2></FONT></FONT><BR><form action="valida_p.asp" method="POST">

<B><FONT FACE=Arial>

<p>Nome: <input type="text" size="40" name="campo_nome"> </p><p>Senha: <input type="password" size="40" name="campo_senha"> </p><BR>

<input type="submit" value="Enviar"></CENTER></form></body></html>

45

• Atualiza_p.asp

<%' Página de atualização do banco de dados, recebe dados da página "valida_p.asp"

vnome=Request.Form("campo_nome")vdispositi vo=Request.Form("listadispositi vos")vdata=Request.Form("campo_data")vhora=Request.Form("campo_hora")voperacao=Request.Form("campo_operacao")

Set DB = Server.CreateObject("ADODB.Connection")DB.Open "db_powerline","" ,""

SQL="INSERT into Tab_Programa (Nome,Dispositi vo,Data,Hora,Operacao) values('"&vnome&"','"&vdispositi vo&"','"&vdata&"','"&vhora&"','"&voperacao&"')"set RS=DB.execute(SQL)%>

<META HTTP-EQUIV="REFRESH" CONTENT="3; URL =acesso_p.asp"><IMG SRC = "Logotipo.jpg"><FONT COLOR=PURPLE><FONT FACE=ARIAL><H1><CENTER><B><U> <BR><BR>ATUALIZAÇÃO EXECUTADA COM SUCESSO!!</B></U></CENTER></H1></FONT></FONT>

46

• Erro_local.asp

<!--página que é chamada quando o usuário entra com login inválido em "acesso_local.asp"-->

<HTML><HEAD>

<BODY BACKGROUND=Erro.jpg>

<TITLE> GERENCIADOR DE DISPOSITIVOS - ERRO DE ACESSO</TITLE></HEAD>

<META HTTP-EQUIV="REFRESH" CONTENT="3; URL =acesso_local.asp">

</HTML>

47

• Refresh_local.asp

<% 'Página que abre o tabela referente ao usuário conectado e verifica os dados para conexão 'Executa a atualização em tempo determinado, grava um arquivo .txt dos dados atualizados e grava nocliente um cookie para leitura do programa em C %>

<%path_do_arquivo = "c:/temp/aa.txt"Const forReading = 1, forWriting = 2, forAppending = 8Const TriDef = -2, TriTrue = -1, TriFalse = 0

'a linha abaixo gera o arquivoarquivo = path_do_arquivo

'a linha abaixo abre a instância com o objeto Scripting. FileSystemObjectSet ObjFSO = CreateObject("Scripting.FileSystemObject")

'abaixo, a linha que cria o arquivo TXT especificadoobjFSO.CreateTextFile(arquivo)%>

<%datasist = DATEsisdata = CDATE(datasist)horasist = FormatDateTime(DateAdd("h", -1, Now), 3)

Set DB = Server.CreateObject("ADODB.Connection")DB.Open "db_powerline","" ,""

Set RS = Server.CreateObject("ADODB.RecordSet")%>

<%campo_nome=(Request.QueryString("campo_nome"))Set DB = Server.CreateObject("ADODB.Connection")DB.Open "db_powerline", "", ""Set RS = DB.execute("SELECT * FROM Tab_Programa where Nome = '"&campo_nome&"' order by datadesc")%>

<% Do Until RS.eof %>

<%gravadata = RS.fields("Data")%><%gravahora = RS.fields("Hora")%><%gravaoperacao = RS.fields("operacao")%>

<%path_do_arquivo = "c:/temp/aa.txt"

hora2 = RS.fields("Hora")

diferenca = DateDiff("h",horasist,hora2)

48

'a linha abaixo gera o arquivoarquivo = path_do_arquivo

'a linha abaixo abre a instância com o objeto Scripting. FileSystemObjectSet ObjFSO = CreateObject("Scripting.FileSystemObject")

If ObjFSO.FileExists(arquivo) = False then'abaixo, a linha que cria o arquivo TXT especificadoobjFSO.CreateTextFile(arquivo)End If

'a linha abaixo abre o arquivo desejado.Set ObjFile = objFSO.GetFile(arquivo)'a linha abaixo diz o tipo de manipulação que será util izada no arquivo TXT, no caso é para adicionar dados.Set objStream = ObjFile.OpenAsTextStream(forAppending,TriDef)

'o comando WriteLine, abaixo, grava os dados no arquivo TXT especificado.ObjStream.WriteLine gravanomeObjStream.WriteLine gravadataObjStream.WriteLine gravahora

'abaixo, o objeto ObjStream é fechadoObjStream.closeSet ObjStream = nothing%>

<%RS.MoveNextLoop%>

<%RS.MoveFirst%>

<% 'Bloco que gera o cookie no cliente%><%Response.Cookies("Zip")=gravaoperacao%><%Response.Cookies("Zip")=gravahora%><%Response.Cookies("Zip")=gravadata%><%Response.Cookies("Zip").Expires="Janeiro 1, 2004"%>

<%do while not RS.eof %><option><%=RS(0)%><br> <%=RS(1)%> <br><%=RS(2)%> <br><%=RS(3)%><br><%=RS(4)%><BR><BR></option> <% RS.movenext loop %>

<%response.write"<br>"%><%response.write horasist%><%response.write"<br>"%><%response.write hora2%>

49

<%response.write"<br>"%><%response.write diferenca%>

<%sql = ("DELETE * FROM Tab_Programa WHERE Data < date() ")Set RS = DB.execute(sql)

%>

<%if diferenca < 0 then

sql = ("DELETE * FROM Tab_Programa WHERE Data <= date() ")Set RS = DB.execute(sql)

end if%>

<IMG SRC = "Logotipo.jpg">

<%DB.closeSet DB=Nothing%><HTML><HEAD>

<TITLE> GERENCIADOR DE DISPOSITIVOS - PÁGINA DE ACESSO</TITLE></HEAD>

<META HTTP-EQUIV="REFRESH" CONTENT="10;URL="refresh_local.asp?campo_nome="<%=campo_nome%>">

50

• Session_local.asp

<% 'Pagina que valida login e mantem uma sessao aberta para o usuario 'caso haja erro redireciona para erro_local.asp, senao 'redireciona para refresh_local.asp%>

<%Set DB = Server.CreateObject("ADODB.Connection")DB.Open "db_powerline","" ,""

campo_nome=(Request.QueryString("campo_nome"))campo_senha=(Request.QueryString("campo_senha"))

Set RS = Server.CreateObject("ADODB.RecordSet")Set RS = DB.execute("SELECT * FROM Tab_Usuario WHERE Nome_Usuario = '"&campo_nome&"' andSenha_Usuario = '"&campo_senha&"'" )

'***** NÃO COLOCAR NENHUMA TAG ANTES DE Response.Redirect******* **If RS.EOF then

Response.Redirect "erro_local.asp"

else session("campo_nome") = campo_nome Response.Redirect"refresh_local.asp?campo_nome="& campo_nome End IfDB.close

%>

51

• Valida_p.asp

<% 'Página de validação de login do usuário, caso haja erro redireciona para pag_erro.asp. É mostrado ostatus dos dispositi vos e, nesta página é programada a operação a ser executada%>

<%vnome=Request.Form("campo_nome")vsenha=Request.Form("campo_senha")

Set DB = Server.CreateObject("ADODB.Connection")DB.Open "db_powerline","" ,""

Set RS = Server.CreateObject("ADODB.RecordSet")Set RS = DB.execute("SELECT * FROM Tab_Usuario WHERE Nome_Usuario = '"&vnome&"' andSenha_Usuario = '"&vsenha&"'" )

'***** NÃO COLOCAR NENHUMA TAG ANTES DE Response.Redirect******* **If RS.EOF then

Response.Redirect "pag_erro.asp"End If

SET Lista = Server.CreateObject("ADODB.RecordSet")

Lista.open "Select * FROM Tab_Programa where Nome = '"&vnome&"' Order By Dispositi vo ",DB,3,3

SET Dispositi vos = Server.CreateObject("ADODB.RecordSet")Dispositi vos.open "Select Dispositi vo from Tab_Dispositi vo Order By Dispositi vo",DB,3,3%>

<IMG SRC = "Logotipo.jpg"><FONT COLOR=GREEN><FONT FACE=ARIAL><H2><CENTER><B><U> PÁGINA DE ATUALIZAÇÃO</B></U></CENTER></H2></FONT></FONT><FONT COLOR=Dark Purple><FONT FACE=ARIAL><H3><CENTER><B><U> Usuário -

<%Response.Write vnome%>

</B></U></CENTER></H3></FONT></FONT><HR WIDTH=85%><FONT COLOR=Green Copper><FONT FACE=ARIAL><H4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STATUS ATUAL<P></P>

<!--cria lista com situaçao atual dos dispositi vos-->

<% Do Until Lista.eof%>

52

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=Lista.Fields("Dispositi vo") %>-<%=Lista.Fields("Data") %>-<%=Lista.Fields("Hora") %>-<%=Lista.Fields("Operacao") %><BR>

<%Lista.MoveNextLoop%>

</H4></FONT></FONT><P></P><HR WIDTH=85%>

<form action="atualiza_p.asp" method="POST"><Table>

<!--popula combobox com nome dos dispositi vos-->Dispositi vo:<SELECT id=li stadispositi vos name=listadispositi vos><%Do While Not Dispositi vos.EOFResponse.Write"<OPTION value=" &Chr(34) & Dispositi vos.Fields("Dispositi vo") &

Chr(34) & ">" & Dispositi vos.Fields("Dispositi vo")& " </OPTION>"Dispositi vos.MoveNextLoop%></SELECT>

<p></p>

<%'Response.Write "<TR><TD>Dispositi vo: </TD><TD><INPUT id=usuarioID maxLength=20name=campo_dispositi vo 'size=15></TD><TD>dd/mm/aaaa</TD></TR>"%>

<p></p><%Response.Write "<TR><TD>Usuário: </TD><TD><INPUT name=campo_nome size=15 value="&Chr(34)& RS.Fields("Nome_Usuario") & Chr(34)&"></TD></TR>"%><p></p><%Response.Write "<TR><TD>Data: </TD><TD><INPUT id=usuarioID maxLength=20 name=campo_datasize=15 ></TD><TD>dd/mm/aaaa</TD></TR>"%><p></p><%

53

Response.Write "<TR><TD>Hora: </TD><TD><INPUT id=usuarioID maxLength=20 name=campo_horasize=15 ></TD><TD>hh:mm</TD></TR>"%><p></p>

</Table>

<%Response.Write "Operação:" %><input type="radio" name="campo_operacao" value="Liga">Ligar <input type="radio"name="campo_operacao" value="Desl">Desligar

<P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Atualizar">

<%DB.closeSet DB=Nothing%>

54

Anexo 3 – Listagem do Código Fonte do Programa C

55

• Listagem do Código Fonte do Programa C

//---------------------------------------------------------------------------

#include <vcl.h>#pragma hdrstop#include <condefs.h>#include<iostream>#include<fstream>#include<string>#include<stdio.h>#include<conio.h>#include<io.h>#include<vcl.h>#include<time.h>#include<sys/types.h>#include <locale>#include <sstream>

#include "Unit1.h"

using namespace std;//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender) Label1->Caption = TimeToStr(Now()); Label8->Caption = DateToStr(Now());

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender) TDateTime data;

int ndata=1; int nhora=1; int nstatus=1; int espera; char c; char hBuffer[255], hBuffer2[255]; TDateTime tTmp1, tTmp2, tTmp3, tTmp4; string sLine; ifstream *arq;

56

ifstream lecookie("c:/Documents and Settings/joarez/cookies/[email protected][1].txt");

if (lecookie.is_open()==false) lecookie.open("c:/Documents and Settings/joarez/cookies/[email protected][2].txt"); ifstream letabela2("C:/Documents and Settings/joarez/Meus documentos/CookieBuider/Tabela2.txt");

FILE *arquivo; arquivo=fopen("Tabela.txt","w"); fclose(arquivo); arquivo=fopen("Tabela.txt","at");

FILE *arquivo2; arquivo2=fopen("Tabela2.txt","w");

while(!lecookie.eof()) lecookie.getline(hBuffer,255,'=');

lecookie.getline(hBuffer,255,'&');

fprintf(arquivo,hBuffer); putc('\n',arquivo);

fclose(arquivo);

arquivo=fopen("Tabela.txt","r+"); int b = fseek(arquivo,0,SEEK_SET); c = getc(arquivo);

while(ndata < 8) putc(c,arquivo2); c=getc(arquivo);

if(c == '%') putc('/',arquivo2); c=getc(arquivo); c=getc(arquivo); c=getc(arquivo); ndata++;

while(nhora < 8) putc(c,arquivo2); c=getc(arquivo); if(c == '%') putc(':',arquivo2); c=getc(arquivo);

57

c=getc(arquivo); c=getc(arquivo); nhora++;

while(nstatus < 6) putc(c,arquivo2); c=getc(arquivo);

nstatus++;

fclose(arquivo); fclose(arquivo2);

//** ****** ****** *** Compara Data - Hora e Operacao******* ****** ****** ***** *******

_DX = 0x378; _AL = 0; __emit__ (0xEE);//Instrução da CPU

letabela2.getline(hBuffer2,255); sLine = hBuffer2; Label9->Caption = sLine.c_str(); tTmp3 = StrToDate(Label8->Caption); tTmp4 = StrToDate(Label9->Caption);

if(tTmp3 == tTmp4) letabela2.getline(hBuffer2,255); sLine = hBuffer2; Label2->Caption = sLine.c_str(); tTmp1 = StrToTime(Label1->Caption); tTmp2 = StrToTime(Label2->Caption);

if(tTmp1 == tTmp2)

letabela2.getline(hBuffer2,255); Label11->Caption = hBuffer2;

//** ****** ****** ***** Aciona Porta Paralela** ****** ****** ****** ****** ****** ******

for(espera=0; espera<4; espera++) _DX = 0x378; _AL = 0; __emit__ (0xEE);//Instrução da CPU

Sleep (3000); if(Label11->Caption == "Liga")

58

Label12->Caption = "Aciona"; _DX = 0x378; _AL = 1; __emit__ (0xEE);//Instrução da CPU Sleep (3000); else if(Label11->Caption == "Desl") Label12->Caption = "Desliga" ; _DX = 0x378; _AL = 2; __emit__ (0xEE);//Instrução da CPU Sleep(3000);

//---------------------------------------------------------------------------