UNICENP CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS CURSO DE ENGENHARIA DA COMPUTAÇÃO PROJETO FINAL



Documentos relacionados
UNICENP CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS CURSO DE ENGENHARIA DA COMPUTAÇÃO PROJETO FINAL

Índice. Utilizando o integrado Operação monoestável (Temporizador) Operação astável (Oscilador)... 07

Tutorial de Eletrônica Aplicações com 555 v

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Desenvolvimento de Módulo Wireless para Acionamento de Cargas via Porta Paralela

Controle universal para motor de passo

Filtros de sinais. Conhecendo os filtros de sinais.

IW10. Rev.: 02. Especificações Técnicas

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

MANUAL DO PVP SUMÁRIO

Ambiente de Pagamentos

Aplicação Prática de Lua para Web

Aplicativo da Manifestação do Destinatário. Manual

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Eletrônica Industrial Apostila sobre Modulação PWM página 1 de 6 INTRODUÇÃO

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

Monitor de Rede Elétrica Som Maior Pro. Manual do Usuário Versão 3.9f

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

2 Diagrama de Caso de Uso

Manual do Visualizador NF e KEY BEST

Conheça o 4017 (ART062)

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Um Driver NDIS Para Interceptação de Datagramas IP

Programando em PHP. Conceitos Básicos

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Circuito integrado 555 e suas aplicações

Tutorial de Utilização do CellControl SMS I/O em rede DXNET com CLP Dexter µdx série 200

02 - Usando o SiteMaster - Informações importantes

Tutorial de Utilização do CellControl SMS 200 em rede DXNET com CLP Dexter µdx série 200

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Sistema de Telemetria para Hidrômetros e Medidores Aquisição de Dados Móvel e Fixa por Radio Freqüência

Leitor MaxProx-Lista-PC

Conceitos de Banco de Dados

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Manual de Instalação... 2 RECURSOS DESTE RELÓGIO REGISTRANDO O ACESSO Acesso através de cartão de código de barras:...

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Modulador e demodulador PWM

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

CONTROLE DIGITAL DE VOLUME

Desenvolvendo Websites com PHP

Conectar diferentes pesquisas na internet por um menu

ACIONAMENTOS ELETRÔNICOS (INVERSOR DE FREQUÊNCIA)

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

T O M e P U L S O. Disca em linhas ECONÔMICAS. Discadora Telefônica

Versão Liberada. Gerpos Sistemas Ltda. Av. Jones dos Santos Neves, nº 160/174

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

GUIA DE INSTALAÇÃO F 19

MANUAL DE CONFIGURAÇÃO

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

VESOFTWARE - DESENVOLIMENTO DE SISTEMAS E WEBSITES Fone: (11) VIVO(11) TIM(11)

INFORMATIVO DE PRODUTO

3 SCS: Sistema de Componentes de Software

Módulo de Usuário 04 Orientações para o Uso 05 Acessando as Salas 06 Dentro do Ambiente das Salas 08 (1) Outros Usuários 09 (2) Seus Dados 09 (3)

Arquitetura de Rede de Computadores

Manual Integra S_Line

2.) Listagem Página a Página

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Manual do usuário. Softcall Java. versão 1.0.5

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Análise de Dados do Financeiro

Manual de Registro de Saída. Procedimentos e Especificações Técnicas

Manual Captura S_Line

Manual de Utilização. Sistema. Recibo Provisório de Serviço

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

Testador de cabos de rede

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Manual de utilização do módulo NSE METH-8RL/Exp

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Histórico da Revisão. Data Versão Descrição Autor

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

MANUAL DE UTILIZAÇÃO

IMPORTANTE: O PNM4R2 não entra em estado funcional enquanto o Windows não

Data Autor Descrição Revisão Configuração HX600 via GPRS 1.0

Central de Alarme de Oito Zonas

Manual do AP_Conta. Manual do AP_Conta. Aplicativo para digitação e envio de contas médicas no padrão TISS

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

1. CAPÍTULO COMPUTADORES

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Carlos Rafael Guerber. Modelagem UML de um Sistema para Estimativa Elétrica de uma Lavanderia

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Prof. Marcelo Machado Cunha

Manual BitFarmácia Popular Versão 2 Software Autorizador Farmácia Popular

Manual Comunica S_Line

Manual de Instalação. GPRS Universal

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Transcrição:

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 1

SUMÁRIO LISTA DE FIGURAS...iii 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 i

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 ii

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 iii

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 iv

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 utilizaçã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 possibilidade 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. 5

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]. 6

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 7

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. Usuário Access - ASP Computador - Acoplamento - Dispositivos Internet Aplicação Internet Comunicação via rede elétrica 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. 8

Foram analisados datasheets dos componentes a serem utilizados e livros de eletrônica que auxiliam 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 facilitar 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. 9

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]. 10

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. 11

Figura 2. Pinagem e diagrama do CI 555. Neste projeto, o 555 é utilizado 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. 12

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 - Utilizado 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. 13

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 utilização do sistema tenha bastante flexibilidade e uma facilidade de acesso muito simples no modo de operação pelo usuário. O sistema de conexão com a Internet utilizará um servidor onde estarão rodando um programa em ASP para atualização dinâmica das páginas e um sistema gerenciador de 14

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 15

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 habilita 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. 16

Rede Elétrica Local Seletor Oscilador Acoplador Filtro Detetor de Tom Interruptor Computador Equipamento Circuito Emissor Circuito Receptor 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. 17

- 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. 18

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. 19

Usuário Acesso-Local Usuário Acesso-Remoto Logon e senha Atualizar dados Consultar dados Sistema de Controle Programado de Dispositivos Logon e senha Consultar dados Data e Hora Acionar porta paralela Sistema Operacional Circuito Emissor Figura 6. Diagrama de fluxo de dados Nível 0. 20

Usuário Acesso-Remoto Usuário Senha Usuário Acesso-Local Usuário Senha Sistema Operacional Data Hora Efetuar Logon Efetuar Logon Comparar Dados Valida usuário Valida usuário Porta Pino Atualizar Dados Atualizar Dados Cookie Retorna status Envia dados Banco Dados Retorna status Acionar Porta Paralela Envia bit Circuito Emissor 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. 21

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. 22

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. 23

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 confiabilidade 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. 24

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. J4 J1 1 R1a VCC L1 C4 J5 ent1 J2 ent2 1 R1b 1 L2 C3 1 2 Saida R2 U1 7 DSCHG 5 4 CV 6 RST 2 THR TRG 8 VCC OUT 3 R3 Q1 TIP111 LM555 C2 GND C1 J3 1 GND 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. 25

Como: R1a = 10 R1b = 47 R2 = 20 C2 = 1nF e utilizando 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; 26

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 27

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. 1 2 J1 PLUG MACHO C1 L2 L3 D1 D2 C2 C3 1 3 2 R1 3 2 6 5 U1 C5 INPUT L FIL TC TR 4 4 LM567C OUTPUT OUT FIL 8 1 R3 R2 C6 2 1 3 Q1 D3 3 6 1 2 K1 4 5 8 7 RELE C4 C9 1 T1 5 6 4 8 D5 D6 VCC C11 C7 1 3 2 R4 3 2 6 5 U1 INPUT L FIL TC TR 4 4 LM567C OUTPUT OUT FIL 8 1 R6 R5 C10 2 1 3 Q1 D4 3 6 1 2 K2 4 5 8 7 RELE PLUG FEMEA 1 2 J2 C8 Figura 10. Circuito receptor. A seguir é apresentada a lista de componentes utilizados 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; 28

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. 29

Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Proposta Especificação Projeto Implementação Validação Documentação Tabela 2. Cronograma do projeto. 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 30

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 inviabilidade 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 utilizaçã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 possibilidade 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. 31

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 confiabilidade 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. 32

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/siliconvalley/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. 33

[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ções Eletrônicas, 1979. 34

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. 35

Anexo 1 Interfaces das Páginas ASP 36

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

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

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

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

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

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

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> 43

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> 44

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") vdispositivo=request.form("listadispositivos") 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,Dispositivo,Data,Hora,Operacao) values ('"&vnome&"','"&vdispositivo&"','"&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> 45

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> 46

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 no cliente um cookie para leitura do programa em C %> <% path_do_arquivo = "c:/temp/aa.txt" Const forreading = 1, forwriting = 2, forappending = 8 Const TriDef = -2, TriTrue = -1, TriFalse = 0 'a linha abaixo gera o arquivo arquivo = path_do_arquivo 'a linha abaixo abre a instância com o objeto Scripting. FileSystemObject Set ObjFSO = CreateObject("Scripting.FileSystemObject") 'abaixo, a linha que cria o arquivo TXT especificado objfso.createtextfile(arquivo) %> <% datasist = DATE sisdata = 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 data desc") %> <% 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) 47

'a linha abaixo gera o arquivo arquivo = path_do_arquivo 'a linha abaixo abre a instância com o objeto Scripting. FileSystemObject Set ObjFSO = CreateObject("Scripting.FileSystemObject") If ObjFSO.FileExists(arquivo) = False then 'abaixo, a linha que cria o arquivo TXT especificado objfso.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á utilizada 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 gravanome ObjStream.WriteLine gravadata ObjStream.WriteLine gravahora 'abaixo, o objeto ObjStream é fechado ObjStream.close Set ObjStream = nothing %> <% RS.MoveNext Loop %> <%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%> 48

<%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.close Set 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%>"> 49

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&"' and Senha_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 If DB.close %> 50

Valida_p.asp <% 'Página de validação de login do usuário, caso haja erro redireciona para pag_erro.asp. É mostrado o status dos dispositivos 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&"' and Senha_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 Dispositivo ",DB,3,3 SET Dispositivos = Server.CreateObject("ADODB.RecordSet") Dispositivos.open "Select Dispositivo from Tab_Dispositivo Order By Dispositivo",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> STATUS ATUAL <P></P> <!--cria lista com situaçao atual dos dispositivos--> <% Do Until Lista.eof%> 51

<%=Lista.Fields("Dispositivo") %> - <%=Lista.Fields("Data") %> - <%=Lista.Fields("Hora") %> - <%=Lista.Fields("Operacao") %> <BR> <% Lista.MoveNext Loop %> </H4> </FONT> </FONT> <P></P> <HR WIDTH=85%> <form action="atualiza_p.asp" method="post"> <Table> Chr(34) & ">" & <p></p> <!--popula combobox com nome dos dispositivos--> Dispositivo: <SELECT id=listadispositivos name=listadispositivos> <% Do While Not Dispositivos.EOF Response.Write"<OPTION value=" &Chr(34) & Dispositivos.Fields("Dispositivo") & Dispositivos.Fields("Dispositivo")& " </OPTION>" Dispositivos.MoveNext Loop %> </SELECT> <% 'Response.Write "<TR><TD>Dispositivo: </TD><TD><INPUT id=usuarioid maxlength=20 name=campo_dispositivo '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_data size=15 ></TD><TD>dd/mm/aaaa</TD></TR>" %> <p></p> <% 52

Response.Write "<TR><TD>Hora: </TD><TD><INPUT id=usuarioid maxlength=20 name=campo_hora size=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> <input type="submit" value="atualizar"> <% DB.close Set DB=Nothing %> 53

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

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; 55

ifstream lecookie("c:/documents and Settings/joarez/cookies/joarez@127.0.0[1].txt"); if (lecookie.is_open()==false){ lecookie.open("c:/documents and Settings/joarez/cookies/joarez@127.0.0[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); 56

} 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") { 57