Вы находитесь на странице: 1из 60

RESUMO Este trabalho tem por objectivo implementar um sistema de controle de acesso aos compartimentos da maternidade da Clnica Cruz

Azul. A ideia deste sistema surge como resposta ao problema de roubo de bebs que tem se verificado constantemente nas maternidades dos hospitais da cidade de Maputo. O sistema visa controlar a abertura de portas (accionamento de fechaduras elctricas) usando carto com cdigo de barras. Ele fisicamente constituido por leitores de cdigos de barras, um microcontrolador, um computador pessoal (PC) e fechaduras elctricas. Os leitores e as fechaduras sero montados na porta de cada compartimento da maternidade, estes por sua vez, estaro interligados a um microcontrolador PIC16F877A, atravs de uma rede de comunicao serial. O microcontrolador possui um software cuja funo intermediar a comunicao entre os leitores de cdigo de barras, o PC e as fechaduras. No PC ser instalada uma base de dados (BD), onde sero cadastrados os dados dos cartes, dos seus proprietrios e das fechaduras. Ser tambm instalada uma aplicao cuja funco receber os dados na porta serial (COM1) do computador, verificar se os mesmos esto cadastrados na BD e enviar um comando para o microcontrolador operar a fechadura.

AGRADECIMENTOS A Deus, pelo seu imenso amor, misericrdia e graa. Por me ter dado fora, sade e condies para que pudesse chegar a este nvel. Sem Ele nada disto teria sido possvel. minha famlia, em particular a minha querida me, por ter criado condies para que nada me faltasse durante o perodo de formao. Aos meus amigos e colegas, em especial a Tafiranhica Juga, por ter se privado de usar o seu computador, para que eu pudesse fazer este trabalho. A Henriques Maculuve, Araujo Nuaila, Lauchande Givandas e Igidio Pedro, pelas contribuies em ideias e solues, as quais foram preponderantes para a realizao deste trabalho. Aos meus professores, que durante a minha estadia na universidade, procuraram passar-me seus conhecimentos para que eu pudesse ser o que sou.

ESTRUTURA DO TRABALHO Captulo 1. Introduo, objectivos e especificao do problema Este captulo

apresenta uma introduo, os objectivos a serem alcanados, qual o problema que se pretende resolver e a proposta para a soluo do problema. Captulo 2. Fundamentao terica Neste captulo apresenta-se a fundamentao terica das tecnologias usadas para o desenvolvimento deste sistema. Capitulo 3. Desenvolvimento do trabalho Neste captulo fala-se de uma forma geral de como o sistema funciona, especifica-se os seus blocos, faz-se a abordagem dos requisistos, e implementao. Captulo 4. Viabilidade econmica Neste captulo apresentado o oramento do projecto. Captulo 5. Concluses e recomendaes Anlise e recomendaes para o projecto.

LISTA DE ABREVIATURAS A/D Conversor Analgico Digital API Application Programming Interface ASCII - Cdigo Padro Americano para o Intercmbio de Informao BD Base de Dados BISYNC - Binary Synchronous Communication CPU Unidade Central de processamento DCE - Data Circuit-terminating Equipment DTE - Data Terminal Equipment EAN - European Article Number EEPROM Eletric Erasable Programable Randomic Memory EIA Electronic Industries Association FLASH Memria de leitura com escrita electrnica I2C Inter-Integrated Circuit LED Diodo Emissor de Luz LRC - Longitudinal Redundancy Checking PC Computador Pessoal PIC Peripheral Interface Controller PWM - Pulse Width Modulation RAM Random Access Memory RETMA - Radio Electronics Television Manufacturers Association RISC - Reduced Instruction Set Computer ROM Read Only Memory RS RETMA Standard Rx - Receptor SOH Start of Header SPI Serial Peripherical Interface STX - Start of Text TTL - Transistor Transistor Logic Tx - Transmissor UPC - Universal Product Code USART - Universal Synchronous Serial Receiver Transmitter

LISTA DE FIGURAS Figura 1. Cdigo de barras..12 Figura 2. Processo de leitura de um cdigo de barras..14 Figura 3. Diagrama de pinos do PIC16F87716 Figura 4 Transmisso sincrona..19 Figura 5. Transmisso Assincrona....19 Figura 6. Descrio dos pinos do Conector DB9 macho20 Figura 7. Formato de um pacote do protocolo orientado a byte...23 Figura 8. Formato de um pacote do protocolo orientado a bit..24 Figura 9. Diagrama de blocos do sistema de controle de acessos usando cdigo de barras......26 Figura 10. Leitor de cdigo de barras SLOT READER 30.27 Figura 11. Sensor de cdigo de barras....28 Figura 12. Placa descodificadora de cdigo de barras......28 Figura 13. Formato do pacote de dados do leitor de cdigo de barras...29 Figura 14. cdigo de barras EAN-8...30 Figura 15. Formato do pacote de dados para comunicao entre o microcontrolador e o computador ....32 Figura 16. Formato do pacote de dados para comunicao entre o computador e o microcontrolador ..32 Figura 17. Diagrama esquemtico de controlo de acesso aos compartimentos..33 Figura 18. Fechadura Elctrica...36 Figura 19. Instalao do leitor de cdigo de barras na porta....41 Figura 20. Instalao da fechadura elctrica na porta ..41 Figura 21. Ilustrao de um carto para mdico.42 Figura 21.1. Ilustrao de um carto para parturiente...42 Figura 22. Sensor de cdigo de barras Nonus com cabo..50 Figura 23. Conetores da placa descodificadora......50 Figura 24. Ligao do microcontrolador ao PC...52 Figura 25 Multiplexao dos sinais dos leitores do cdigo de barras..53 Figura 26. Accionador da fechadura elctrica e LEDs...54 Figura 27. Fonte de alimentao...54 Figura 28 Fluxograma do programa executado no microcontrolador..55 Figura 29 Fluxograma do programa executado no PC..56
5

Figura 30 Interface para Login do administrador do sistema....57 Figura 31 Interface principal57 Figura 32. Interface para cadastro de funcionrios da maternidade....57 Figura 33. Interface para cadastrar Utentes (Parturientes e Visitantes)..58 Figura 34. Interface para consultar utilizadores...58 Figura 35. Interface para Obteno de relatrios de acesso a compartimentos...58

LISTA DE TABELAS Tabela 1. Comparao entre tecnologias usadas em sistemas de controle de acesso.11 Tabela 2 Caracteres do protocolo orientado a byte.23 Tabela 3. Viabilidade econmica...43 Tabela 4. Funo dos sinais no padro RS 232..48 Tabela 5. Caracterticas tcnicas do leitor de cdigo de barras SLOT READER 30.49

ndice
1. INTRODUO, OBJECTIVOS E ESPECIFICAO DO PROBLEMA............................... 9 1.1. 1.2. 1.3. 1.4. 2. Introduo.............................................................................................................................. 9 Objectivos .............................................................................................................................. 9 Especificao do problema............................................................................................... 10 Soluo ................................................................................................................................ 10

FUNDAMENTAO TERICA ............................................................................................... 12 2.1. Cdigo de barras ................................................................................................................ 12 Leitores de cdigos de barras .................................................................................. 13

2.1.1. 2.2.

Microcontroladores............................................................................................................. 14 O Microcontralodor PIC16F877 ............................................................................... 15 Programao de microcontroladores ...................................................................... 16

2.2.1. 2.2.2. 2.3. 2.4. 3.

Comunicao serial ........................................................................................................... 18 Protocolos de comunicao.............................................................................................. 22

DESENVOLVIMENTO DO TRABALHO ................................................................................. 25 3.2. Especificao dos componentes ..................................................................................... 27 Leitor de cdigo de barras ........................................................................................ 27 Circuito electrnico..................................................................................................... 30 Progama executado no microcontrolador............................................................... 32

3.2.1. 3.2.2. 3.2.3.

3.2.4. Base de dados ................................................................................................................. 32 3.2.4. Software no PC........................................................................................................... 35

3.2.6. Fechadura elctrica ........................................................................................................ 36 3.3. Implementao do sistema ............................................................................................... 36 Cdigo do software no PC ........................................................................................ 36

3.3.1.

3.3.2.Base de dados .................................................................................................................. 41 3.3.3. Instalao do sistema ..................................................................................................... 41 3.3.4. Gerar e imprimir cdigos de barras .............................................................................. 42 4. 5. VIABILIADADE ECONMICA .................................................................................................. 43 CONCLUSES E RECOMENDAES ................................................................................ 44 5.1. 5.2. Concluses .......................................................................................................................... 44 Recomendaes................................................................................................................. 45

REFERNCIAS BIBLIOGRFICAS ................................................................................................ 46 ANEXO 1 Tabelas........................................................................................................................... 48 ANEXO 2 Figuras, Esquemas Electrnicos e Fluxogramas .................................................... 50 7

ANEXO 3 Cdigo fonte do Software para recepo e envio de dados pela pota serial...... 59

1. 1.1.

INTRODUO, OBJECTIVOS E ESPECIFICAO DO PROBLEMA Introduo

O surgimento dos computadores pessoais (PCs) contribuiu de forma grandiosa para o desenvolvimento da automao. Actualmente, com recurso a PC possvel realizar tarefas, controlar processos com maior agilidade, segurana, economia e conforto, o que tem como consequncia o aumento da qualidade de vida das pessoas. natureza do ser humano procurar a forma mais fcil de realizar o seu trabalho dirio, a electrnica e informtica tm sido as ferramentas mais usadas para atingir este objectivo. A cada ano so criados novos dispositivos de controle, com intuito de facilitar as tarefas dirias das pessoas. Como exemplo podemos citar as caixas electrnicas de pagamento usadas nos supermercados, muitas destas usam a tecnologia de cdigo de barras para identificar produtos e controlar a entrada e sada dos mesmos nos supermercados. Esta tecnologia serviu de inspirao para o desenvolvimento deste projecto. 1.2. O Objectivos presente trabalho tem como objectivo fundamental a aplicao dos

conhecimentos adquiridos ao longo da formao, no desenvolvimento de um sistema capaz de dotar as maternidades de meios suficientes, capazes de previnir restringindo ou controlando o acesso de pessoas estranhas, utentes e funcionrios do servio de sade aos compartimentos da maternidade. Os objectivos especficos do trabalho so: a) Projectar circuitos condicionadores de sinal usando o microcontrolador PIC16F877; b) Acoplar leitores de cdigo de barras ao microcontrolador; c) Acoplar fechaduras elctricas ao microcontrolador; d) Interligar o microcontrolador e um PC; e) Criar um protocolo de comunicao entre o microcontrolador e o PC e viceversa; f) Desenhar uma BD para cadastrar cartes com cdigo de barras, utilizadores e compartimentos da maternidade;
9

g) Desenhar uma aplicao capaz de receber dados na porta serial, verificar se os mesmos esto cadastrados na BD e enviar um comando ao microcontrolador para accionar ou no a fechadura. 1.3. Especificao do problema

Os hospitais so locais onde a populao procura por servios de sade, isto faz com estes locais sejam frequentados por qualquer indivduo, sem ou quase nenhuma restrio. Nalgumas vezes, indivduos de m f, usam-se deste facto para lograr seus intentos, isto , para subtrairem bens dos hospitais e at mesmo de pessoas que vo a procura dos servios de sade. Frequentemente tem se ouvido casos de indivduos que fazem-se as maternidades dos hospitais com objectivo de roubar recm nascidos, o que tem de certa forma preocupado aos utentes e os diregentes destas unidades hospitalares, dado que difcil identificar tais indivduos porque estes locais so frequentados por qualquer indivduo. O problema , como previnir estes actos. 1.4. Soluo A soluo proposta neste trabalho a instalao de um sistema de controle de acesso aos compartimentos da maternidade. Existem no mercado vrias tecnologias que podem ser usadas para projectar sistemas electrnicos de controle de acesso, das quais as mais usadas tm sido: Teclado Matricial Controle de acesso atravs da introduo de uma senha de segurana do utilizador; Carto Magntico Controle de acesso atravs da leitura electrnica de dados gravados em um carto magntico; Cdigo de Barras Controle de acesso atravs da leitura electrnica de dados codificados em barras e impressas em um carto; Biometria Controle de acesso atravs da leitura electrnica de dados biomtricos do utilizador (Por exemplo a impresso digital do utilizador);

10

RFID Controle de acesso atravs da leitura electrnica de dados transmitidos via rdio frequncia, de uma tag para um reader (leitor). A tabela1 abaixo mostra as comparaes entre as tecnologias acima mencionadas. O objectivo desta tabela justificar a escolha da tecnologia de cdigo de barras para a concepo do sistema de controle de acesso para clnica Cruz Azul.
Tabela 1. Comparao entre tecnologias usadas em sistemas de controle de acesso

Parametros do Sistema Modelo de leitor de dados Custo do leitor de dados (Mt) Custo de fabrico de carto do utilizador Segurana Velocidade de leitura Contacto Visual

Cdigo de Barras SLOT READER 30 5.503,60 Baixo

Teclado Matricial Atmel Avr

Biometria (Fingerprint) Geomok Testech Bio-I 24.869,23 Sem custos

Carto Magntico Minimag Solo 15.810,85 Alto

RFID

GAO RFID 216011 51.518.50 Alto

355,30 Sem custos Baixa Baixa Sim

Alta Alta Sim

Alta Alta Sim

Alta Alta Sim

Alta Alta No

Comparando os preos de aquisio dos leitores de dados, conclui-se que o teclado matricial o mais barrato, seguido pelo leitor de cdigo de barras. O leitor de cdigo de barras apresenta um nvel de segurana e velocidade de leitura de dados melhor em relao ao teclado matricial. Estes parametros foram determinantes para a escolha da tecnologia a usar, visto que o sistema ser instalado num hospital, e o preo do sistema dever ser menor possvel. O tempo de resposta tambem deve ser o menor possvel e o nvel de segurana deve ser alto. Sendo assim, conclui-se que a tecnologia ideal para a concepo deste sistema a de cdigo de barras.

Os dados contidos nesta tabela foram obtidos nos sites dos fabricantes dos respectivos equipamentos. E a converso da moeda estrangeira para o metical foi feita usando o mesmo cmbio usado na tabela de viabilidade econmica

11

2.

FUNDAMENTAO TERICA

Neste captulo so apresentados aspectos tericos relacionados com as tecnologias usadas neste sistema. 2.1. Cdigo de barras

Hoje em dia, muitos produtos so identificados com um cdigo alfanumrico. O progresso da tecnologia, que tornou relativamente baratos e acessveis aparelhos de leitura ptica e computadores, tornou tambm o uso deste tipo de cdigos bastante frequente. Por exemplo, os produtos que compramos num supermercado esto identificados por um cdigo de barras, como o mostrado na Figura 1. Segundo Cechet (2006), o cdigo de barras no mais do que um smbolo composto por barras paralelas de larguras e espaamentos variados que representam uma determinada informao.

Figura 1. Cdigo de barras in Milies, C. Polcino (2006,p. 1)

Segundo Milies (2006), a primeira patente de um cdigo de barras foi atribuda em 1952 a Joseph Woodland e Bernard Silver. Seu cdigo consistia num padro de circunferncias concntricas de espessura varivel. Ao submeter o pedido de patentes, eles descreviam seu invento como uma classificao de artigos atravs de identificao de padres. Por volta de 1970, uma empresa de acessria, a McKinsey & Co., junto com a Uniform Grocery Product Code Council (companhias Norte Americanas), definiu um formato numrico para identificar produtos e pediu a diversas companhias que elaborassem um cdigo adequado. Dentre as companhias contactadas, a que acabou apresentando a proposta vencedora foi a IBM e o cdigo foi criado por George J. Laurer (MILIES, 2006). O cdigo proposto, formalmente aceite em Maio de 1973, passou a ser conhecido como cdigo UPC (Universal Product Code) e foi adoptado nos Estados Unidos e
12

Canad. Ele consistia em uma sequncia de 12 dgitos, traduzidos para barras (MILIES, 2006). Tipos de cdigos de barras mais utilizados Existem diversos tipos de cdigo de barras, portanto os formatos das barras variam de acordo com o cdigo. Cdigo EAN-13 (European Article Number) - Padro adotado para codificao de produtos em supermercados, permite a codificao de at 13 dgitos numricos. Cdigo EAN-8 - Verso simplificada do padro EAN-13, para aplicao em produtos onde a etiqueta no padro EAN-13 fique muito grande. Este padro permite a codificao de at 8 dgitos numricos. Cdigo 2 de5 Intercalado - Utilizado quando se desejam imprimir apenas dgitos numricos, muito utilizado em aplicaes comerciais. Cdigo 3 de 9 - Utilizado quando se desejam imprimir caracteres alfa-numricos; muito utilizado em aplicaes industriais. 2.1.1. Leitores de cdigos de barras O leitor de cdigo de barras um equipamento com capacidade para capturar um cdigo de barras impresso em um carto, crach ou algum outro tipo de documento e disponibiliz-lo em uma porta de sada, serial ou paralela, para comunicao com outros equipamentos, como um PC por exemplo. Este dispositivo tem no seu interior, um emissor de luz normalmente vermelha e um sensor para receber a reflexo dessa luz. Assim, se o dispositivo for colocado em uma superfcie branca, a luz emitida vai reflectir na superfcie, o sensor vai captar essa reflexo e gerar um sinal elctrico que corresponde a superfcie branca. De maneira oposta, se o dispositivo for posicionado em cima da superfcie escura, normalmente preta, a luz emitida pelo dispositivo ser absorvida e o sensor no captar nenhum reflexo, o sensor ir gerar um sinal elctrico correspondente a cor preta. Se o leitor for passado sobre uma etiqueta de cdigo de barra com velocidade constante, o leitor ir gerar uma sequncia de sinais elctricos conforme o mesmo vai passando pelas barras (largas e finas) pretas e espaos em branco. Atravs da luz reflectida pelos espao, ou pelas barras, o leitor interpreta o cdigo. A interpretao acontece atravs do uso de um conversor A/D que transforma o sinal elctrico analgico produzido pela luz recebida pr meio de um sensor
13

fotoelctrico, em um sinal digital (sucesso de 0 e 1 em forma de pulso), assim, cada caractere do cdigo interpretado como um nmero binrio, onde cada mdulo reproduz um digito 1 ( reflexo da luz pelo cdigo, ou seja, espao no cdigo ), ou um digito 0 (absoro da luz pelo cdigo, ou seja, barra no cdigo).

Figura 2. Processo de leitura de um cdigo de barras in Cechet, Rafael (2006, p.21)

Actualmente, quase todos os leitores contm circuitos descodificadores cuja funo transformar os sinais elctricos de um dispositivo leitor de cdigo de barras em um caracter correspondente, de acordo com o padro do cdigo utilizado. 2.2. Microcontroladores

Um microcontrolador difere de um microprocessador em vrios aspectos. O primeiro e o mais importante, a sua funcionalidade. Para que um microprocessador possa ser usado, outros componentes devem-lhe ser adicionados, tais como memria e componentes para receber e enviar dados, enquanto o microcontrolador foi projectado para ter todos estes componentes. Nenhum outro componente externo necessrio, uma vez que todos os perifricos necessrios j esto contidos nele. Este facto poupa tempo e espao necessrio, aquando do design de um sistema.

14

2.2.1. O Microcontralodor PIC16F877 O PIC16F877 um dos mais recentes produtos da Microschip. Tem todos componentes que um moderno microcontrolador tem e, devido ao seu baixo custo, amplo campo de aplicaes e alta qualidade, tem sido a soluo ideal para aplicaes como: controle de processos industriais, controle de mquinas, medio de valores, entre outros. Algumas das suas funcionalidades so descritas abaixo: Arquitectura RISC (CPU de instrues reduzidas); apenas 35 instrues; todas as instrues de um ciclo, excepto os saltos; Frequncia de operao de 0 a 20MHz; Oscilador interno de preciso; frequncia pode ser escolhida por software entre 31KHz e 8MHz; Tenso de alimentao entre 2.0V e 5.5V; consumo: 220A@2.0V@4MHz; modo de poupana de energia; 35 pinos de I/O; alta corrente para polarizar LEDs directamente; interrupo quando h mudana nos estados lgicos dos pinos de entrada; Memria ROM de 8k em tecnologia FLASH; o chip pode ser programado cerca de 100.000 vezes; Memria EEPROM de 256 bytes; o chip pode ser programado cerca de 1.000.000 vezes; Memria RAM de 368 bytes; Conversor A/D; 14 canais; 10 bits de resoluo; 3 temporizadores / contadores independentes; Temporizador Watch-dog; Mdulo comparador analgico; 2 comparadores analgicos; referncia de tenso programvel; Sada por PWM (Pulse Width Modulation);
15

Mdulo USART melhorado; Suporta os padres RS-485, RS-232; deteco automtica de Baudrate; Porta srie sncrona; suporta os modos I2C e SPI; Quase todos os pinos so multi-funcionais;

Figura 3. Diagrama de pinos do PIC16F877 in PIC16F877 Datasheet

2.2.2. Programao de microcontroladores Programar um microcontrolador significa transferir para sua memria de programas um conjunto de instrues que sero executado pela CPU. As instrues devem ser carregadas j no formato binrio, capaz de ser compreendido pela CPU. No entanto, este formato de difcil interpretao por seres humanos. Da surge a necessidade de um sistema de desenvolvimento. Um sistema de desenvolvimento para projectos que empreguem

microcontroladores, tipicamente se utiliza de computadores pessoais para executar os softwares de desenvolvimento, tais como assembladores, compiladores e gravadores.
16

Atravs do uso de assembladores e compiladores, pode-se implementar programas facilmente compreensveis e convert-los para um executvel (linguagem de mquina). O gravador permite que o programa executvel seja transferido para a memria do microcontrolador. As linguagens mais utilizadas actualmente para a programao de

microcontroladores so as linguagens Assembly, C e Basic. Antes que se escolha entre uma destas linguagens, necessrio examinar cuidadosamente os requisitos de velocidade de execuo, de espao de memria a ocupar e o tempo disponvel para o desenvolvimento do programa (DO CARMO, 2005). Segundo (Pereira, 2003) linguagem Assembly consiste em uma forma alternativa de representao dos cdigos de mquina usando mnemnicas, ou seja, abreviaes de formas usuais que descrevem a operao efectuada pelo comando em cdigo de mquina. Esta linguagem de baixo nvel, isto , no possui nenhum comando, instruo ou funo alm daqueles definidos no conjunto de instrues do processador utilizado. Isto implica em um trabalho extra do programador para desenvolver rotinas e operaes que no fazem parte do conjunto de instrues do processador, produzindo por conseguinte, programas muito extensos e complexos, com um fluxo muitas vezes difcil de ser seguido. Contudo, a linguagem que oferece os melhores resultados quando se pretende poupar espao de memria e aumentar a velocidade de execuo do programa (Pereira, 2003). A linguagem Basic dispe de instrues para implementar comunicao serial, PWM, leitura de entrada analgica, gerao e medida de impulsos, gerao de tom e gravao e leitura de memria EEPROM. Possui entrada para botes com eliminao de rudos e auto-repetio, conhecidos por deboucing. Entretanto, uma linguagem de execuo lenta, pois executa aproximadamente apenas 2000 instrues por segundo (DO CARMO, 2005). A linguagem C, segundo Pereira (2003), devido a sua proximidade com o hardware e o Assembly, uma linguagem extremamente eficiente. considerada como a linguagem de alto nvel mais eficiente actualmente disponvel. O uso do C permite a construo de programas e aplicaes muito mais complexas do que seria utilizando apenas o Assembly.

17

2.3.

Comunicao serial

Segundo Canzian (2005), a Comunicao de Dados estuda os meios de transmisso de mensagens digitais para dispositivos externos ao circuito originador da mensagem. Dispositivos Externos so geralmente circuitos com fonte de alimentao independente dos circuitos relativos a um computador ou outra fonte de mensagens digitais. Um canal de comunicao um caminho sobre o qual a informao pode trasfegar. Ele pode ser uma linha fsica (fio) que conecta dispositivos de comunicao, ou ondas electromagnticas, laser, ou outra fonte de energia radiante. Um canal no qual a direco de transmisso inalterada referido como canal simplex. Um canal half-duplex um canal fsico no qual as mensagens podem fluir nas duas direces, mas nunca ao mesmo tempo. A maioria das mensagens digitais so longas e, por no ser prtico nem econmico transferir todos os bits de uma mensagem simultaneamente, a mensagem quebrada em partes menores e transmitida sequencialmente. A transmisso bitserial, tambm chamada de transmisso serial, converte a mensagem em um bit por vez atravs de um canal. Cada bit representa uma parte da mensagem. Os bits individuais so ento rearranjados no destino para compor a mensagem original. Este o mtodo de comunicao usado por diversos perifricos de computadores. Transmisso Assncrona e Transmisso sncrona Geralmente, na transmisso serial os dados so organizados em frames (pacotes) e estes so enviados seguidos de uma pausa, at que a mensagem tenha sido totalmente transmitida. O circuito receptor dos dados deve saber o momento apropriado para ler os bits individuais desse canal, saber exactamente quando um pacote comea e quanto tempo decorre entre bits. Quando isto ocorre, diz-se que o transmissor e o receptor esto sincronizados. Duas tcnicas de transmisso de dados so usadas para garantir a sincronizao: Na transmisso sncrona, canais separados so usados para transmitir dados e informao de tempo. O canal de temporizao transmite pulsos de clock para o receptor. Atravs da recepo de um pulso de clock, o receptor l o canal de dados e armazena o valor do bit encontrado naquele momento. O canal de dados no lido novamente at que o prximo pulso de clock chegue.

18

Figura 4. Transmisso sincrona in Canzian, Edmur (2005 p.10)

Na transmisso assncrona a informao enviada por um nico canal. Para que a comunicao se torne possvel, o receptor e o emissor devem ser configurados antecipadamente, isto , o oscilador no receptor deve gerar um sinal de clock interno que igual ao do transmissor. Para o protocolo serial mais comum, os dados so enviados em pequenos pacotes de 10 ou 11 bits, dos quais 8 constituem a mensagem. Quando o canal est em repouso, o sinal correspondente no canal tem um nvel lgico 1. Um pacote de dados sempre comea com um nvel lgico 0 (start bit) para sinalizar ao receptor que uma transmisso foi iniciada. O start bit inicializa um temporizador interno no receptor avisando que a transmisso comeou e que sero necessrios pulsos de clock. Seguido do start bit, 8 bits de dados de mensagem so enviados na taxa de transmisso especificada. O pacote concludo com os bits de paridade e de parada (stop bit).

Figura 5. Transmisso Assncrona in Canzian, Edmur (2005 p.12)

19

[1]

Onde: T Durao de um bit

Baud rate (Taxa de transferncia) - velocidade com que os dados so enviados atravs de um canal. No padro RS-232, ocorre uma transio de sinal por bit, a taxa de transferncia e a taxa de bit (bit rate) so iguais. Por exemplo, se tivermos um baud rate de 9600 bauds (9600 bps), T=1/9600=104s.

Interface serial RS-232 (EIA-232) O padro RS-232 especfica as tenses, temporizaes e funes dos sinais, um protocolo para troca de informaes, e as conexes mecnicas. O equipamento que faz o processamento dos sinais chamado DTE (Data Terminal Equipment usualmente um computador), tem um conector DB9 ou DB25 macho, O equipamento doutra extremidade denominado de DCE (Data Circuit-terminating Equipment), tem um conector DB9 ou DB25 fmea. Na figura a seguir apresentada a definio dos sinais para um dispositivo DTE.

Entra no DTE Sai do DTE Figura 6. Descrio dos pinos do Conector DB9 macho in Canzian, Edmur (2005 p.15)

20

As funes dos sinais no padro RS-232 podem ser vista no anexo 1, tabela 4. No padro RS-232, Sinais com tenso entre 3 volts e 25 volts com relao ao terra (pino 5) so considerados nvel lgico 1, e tenses entre +3 volts e +25 volts so considerados nvel lgico 0. A faixa de tenses entre 3 volts e +3 volts considerada uma regio de transio para o qual o estado do sinal indefinido. O padro RS-232 especifica uma taxa mxima de transferncia de dados de 20.000 bits por segundo (o limite usual 19200 bps). Baud rates fixos no so fornecidos pela norma. Contudo, os valores mais usados so 300, 1200, 2400, 4800, 9600 e 19200 bps.

Conversor de nvel TTL/CMOS para RS-232 e vice-versa A maior parte dos circuitos digitais utilizam nveis TTL ou CMOS. Portanto, o primeiro passo para conectar um circuito digital a uma interface RS-232 transformar nveis TTL (0 a 5 volts) em RS-232 e vice-versa. Isto feito por conversores de nvel. Existe uma variedade de circuitos que executam esta funo mas, o mais utilizado tem sido o MAX232 (da Maxim). Ele capaz de gerar tenses de +10 volts e 10 volts a partir de uma fonte de alimentao simples de +5 volts, bastando para isso alguns condensadores externos. Este CI (circuito integrado) tem 2 receivers (conversor RS-232 para TTL/CMOS) e 2 drivers (conversor TTL/CMOS para RS232) no mesmo encapsulamento.

Controle de fluxo de dados (handshaking) Se a conexo entre um DTE e um DCE for diversas vezes mais rpida do que a velocidade do DCE, os dados transmitidos do DTE podem se perder, nesse caso, necessrio controlar o fluxo de dados. Isto pode ser feito de trs maneiras: 1. Sem controle de fluxo, os dados so enviados mesmo quando o receptor no puder receber mais dados. Isto pode levar a perca de dados, quando o emissor transmite os dados a uma velocidade superior que a receptor mas, pode ser usado quando os bytes a serem transmitidos por vez so poucos (esta a forma usada neste sistema). 2. O controlo do fluxo de dados por software, tambm conhecido como XON/XOFF utiliza 2 caracteres ASCII; XON e XOFF. O DCE deve ter um buffer que, quando enche o DCE envia o carcter XOFF para avisar o DTE
21

para parar de enviar dados. Quando o DCE estiver pronto para receber mais dados ele envia o carcter XON e o DTE enviar mais dados. Este tipo de controlo de fluxo tem a vantagem de no necessitar linhas adicionais, s linhas TxD e RxD. 3. O controlo do fluxo de dados por hardware, tambm conhecido como RTS/CTS utiliza 2 linhas extras em seu cabo serial alm das 2 linhas para transmisso de dados. Quando o DTE quer enviar dados ele activa a linha RTS. Se o DCE tiver espao para receber esses dados, ele ir responder activando a linha CTS e o DTE comear a enviar dados. Se o DCE no tiver espao para receber dados ele no activa a linha CTS. 2.4. Protocolos de comunicao

Segundo Do Carmo (2005), protocolo um conjunto de regras pr estabelecidas, cuja funo fazer com que a comunicao de dados entre equipamentos seja realizada com segurana e de forma ordenada. Estas regras obedecem a uma sequncia lgica e normalmente padronizada. A seguir so mostrados dois tipos de protocolos mais usados para comunicar dispositivos, usando a conexes seriais. Protocolo orientado a byte De acordo com Do Carmo (2005), so protocolos que utilizam caracteres ASCII para o controle de operao e do trfego de suas mensagens. Estes protocolos so os mais antigos e so usados com frequncia em linhas de longa distncia. O Binary Synchronous Communication (BISYNC) um exemplo de um protocolo orientado a byte muito utilizado actualmente. H 16 caracteres que controlam a conversao do protocolo. A tabela abaixo apresenta os caracteres mais utilizados na criao de protocolos e as suas respectivas funes, segundo Do Carmo (2005).

22

Tabela 2 Caracteres do protocolo orientado a byte


Carcter ASCII SOH STX ETX EOT ETB ENQ ACK0 e ACK1 NAK SYN ITB 01 02 03 37 26 2D 1070 e 1061 3D 32 1F Cdigo (hex) Funo Identifica o incio do cabealho Identifica o incio do texto e o fim do cabealho. Identifica o fim do texto. sempre transmitido como ltimo carcter. Indica o fim da transmisso. Indica o fim de um bloco, iniciado com um SOH ou um STX. Pede uma resposta em X segundos estao remota, ou requer uma retransmisso da ltima mensagem. Reconhecimento positivo de uma mensagem recebida e est pronto para receber outra mensagem. Reconhecimento negativo de uma mensagem recebida, indicando a necessidade de retransmisso. Mantm o sincronismo entre o transmissor e o receptor. Usado para dividir o texto da mensagem transmitida em blocos.

O formato tpico de um pacote do protocolo orientado a byte mostrado na figura a seguir. SYN SYN SOH CABEALHO STX TEXTO ETX Figura 7. Formato de um pacote do protocolo orientado a byte in Do Carmo, Vilson (2005, p.17) BCC

Este formato representa uma conexo entre dois dispositivos. Inicialmente o bloco enviado com caracteres de sincronismo SYN, seguidos do carcter SOH que pode indicar o envio de endereo do transmissor. Aps o SOH, enviado o cabealho com o endereo do receptor de destino, aps isso enviado a mensagem, que precedida pelo carcter STX. Aps o texto, pode seguir o carcter ETB, significando que, apesar de ter sido preenchido todo campo disponvel no bloco, a mensagem ainda no terminou, ou o carcter ETX, indicando o fim do texto. E por fim, colocado o bloco o BCC-Block Check Character, que so um ou mais caracteres para verificao de erros (DO CARMO, 2005). Protocolo orientado a bit De acordo com Do Carmo (2005), protocolos orientados a bit so protocolos que no utilizam caracteres ASCII para delimitar blocos de mensagem. Todo o controle

23

tratado em nvel de bit, ou seja, campos formados por combinaes binrias bem definidas. O formato tpico de um pacote de protocolo orientado a bit mostrado na figura a seguir.

FLAG ENDEREO CONTROLE MENSAGEM FSC Figura 8. Estrutura de um pacote do protocolo orientado a bit. in Do Carmo Vilson (2005, p.18)

FLAG

FLAG - sequncia binria que delimita o incio e o fim da mensagem. constituda pela sequncia 01111110. ENDEREO - Campo formado por 8 bits, que codificam o controlo da comunicao. MENSAGEM - Informao til propriamente dita. FCS - Campo formado por 16 bits para verificao de erros, empregando a tcnica CRC (Cyclic Redundancy Cheking) (DO CARMO, 2005).

24

3.

DESENVOLVIMENTO DO TRABALHO

O sistema de controle de acesso desenvolvido neste projecto subdivide-se em trs mdulos bsicos: Mdulo de entrada de dados; Mdulo de processamento de dados; Mdulo actuador. Mdulo de entrada de dados Este mdulo basicamente constitudo pelo leitor de cdigo de barras e o microcontrolador PIC16F877. Em cada porta de acesso aos compartimentos da maternidade ser instalado um leitor de cdigo de barras. Para que os utentes da maternidade possam aceder aos compartimentos desta, devero fazer passar os seus cartes nos leitores das respectivas portas. Ao fazer passar o carto no leitor, este capta os dados, descodifica-os numa sequncia de bits correspondente ao tipo de cdigo de barras usado. A esta sequncia de bits acrescentam-se cdigos de controle de acordo com o protocolo de comunicao usado pelo leitor. Os dados so posteriorimente transmitidos para o microcontrolador. No microcontrolador instalalou-se um software capaz de perceber o protocolo de comunicao usado pelo leitor. O microcontrolador recebe os dados, extrai a informao til, isto , o cdigo do usurio e adiciona a este, os cdigos de endereo do leitor e os caracteres de controle do protocolo de comunicao entre o microcontrolador e o PC. Mdulo de processamento de dados Este mdulo consiste em um computador. A comunicao entre o microcontrolador e o computador se d atravs da Porta Serial RS-232. Mas, para que esses dois equipamentos troquem informaes correctamente necessrio que eles tenham um protocolo de comunicao. A modalidade de transmisso (comunicao entre o microcontrolador e o Pc) HalfDuplex, ou seja, tanto o computador como o microcontrolador enviam e recebem dados atravs de dois fios pelo canal Serial. No PC estar instalada uma base de dados, onde sero cadastrados no s os dados dos cartes e dos seus proprietrios, como tambm os dados das portas a serem controladas. Ser tambm instalado uma aplicao cuja funo receber os
25

dados na porta serial, verificar se os mesmos esto cadastrados na base ou se esto habilitados a aceder o compartimento em causa, no caso afirmativo, enviar um comando ao microcontrolador, para que este envie um sinal ao mdulo de actuador. Atravs dos dados recebidos do microcontrolador, a aplicao poder ler o cdigo do usurio e o endereo do leitor, comparar os dados do cdigo do usurio com os cadastrados na base de dados. Estando ou no o utilizador habilitado a aceder o compartimento em causa, a aplicao envia um comando ao microcontrolador. Mdulo Actuador Este mdulo basicamente constitudo pelo microcontrolador, fechadura elctrica e LEDs. O microcontrolador recebe os dados enviados pelo PC, extrai o endereo do leitor de cdigo, verfica o comando a ser executado, isto , se deve ou no accionar a fechadura em causa. Em caso afirmativo, o microcontrolador coloca um sinal no pino de sada ligado a fechadura correspondente ao endereo do leitor em causa. Este sinal, energiza o rel acoplado, e este por sua vez, fecha os contactos da fechadura, fazendo com que a porta seja aberta. Ao mesmo tempo um LED verde aceso, indicando ao utilizador que a porta foi aberta. Caso o comando enviado pelo PC seja negativo, o microcontrolador devolve o funcionamento ao sistema, mantendo aceso um LED vermelho na fechadura, o que indica que o acesso foi negado. A figura seguinte mostra o diagrama de blocos dos mdulos desenvolvidos.

LEITOR DE CDIGO DE BARRAS

MICROCRONTROLADOR

PC

FECHADURA ELCTRICA

Figura 9. Diagrama de blocos do sistema de controle de acessos usando cdigo de 26 barras

3.2.

Especificao dos componentes

3.2.1. Leitor de cdigo de barras O leitor de cdigo de barras usado neste projecto o SLOT READER 30 , foi desenvolvido pela empresa brasileira NONUS, ele mostrado na figura abaixo.

Figura 10. Leitor de cdigo de barras SLOT READER 30 in Nonus (p.1)

Este leitor basicamente constituido por: sensor de cdigo de barras; placa descodificadora; Guia ou canaleta. a) Sensor de cdigo de barras O sensor de Cdigo de Barras um sensor ptico para a captura de cdigo de barras em documentos ou cartes. Sua utilizao necessita de uma placa de descodificao, para os diferentes tipos de padres de cdigo de barras existentes no mercado.

27

Figura 11. - Sensor de cdigo de barras Nonus in Nonus (p.4)

As caractersticas tcnicas deste leitor podem ser vistas no anexo 1, tabela 5. No anexo 2, figura 22. pode-se ver a figura do sensor de cdigo de barras com o respectivo conector e as legendas dos pinos b) Placa descodificadora Esta placa est directamente conectada ao sensor, sua funo receber o sinal vindo do sensor e descodificar o cdigo em causa. Ela contm uma firmware capaz de descoficar cdigos de barras nos padres 2 de 5 intercalado, 39, EAN e 128.

Figura 12. Placa descodificadora de cdigo de barras in Nonus (p.2)

Caractersticas tcnicas Alimentao Consume 5VDC +/-10% 20mA Mximo

No anexo 2, figura 23., pode-se ver uma ilustrao do conector para a placa descodificadora e as legendas dos respectivos pinos.

28

Comunicao entre o leitor e o microcontrolador A placa comunica-se com o microcontrolador atravs de um canal Half duplex, ligado aos pinos 4 e 6 do interface de comunicao da placa (CN3). O sinal de sada enviado no nvel RS-232, o que torna necessrio, um conversor de nvel RS-232 para TTL. O sinal de sada da placa tem os seguintes parametros: Taxa de transferncia (velocidade de comunicao) ---------------------------2400bps Paridade -------------------------------------------------------------------------------------------Impar Numero de bits por carcter-----------------------------------------------------------------7 bits Numero de Stop bits-----------------------------------------------------------------------1Stop bit A cada documento lido com sucesso, o Leitor transmite o seguinte pacote: STX Dados ETX LRC

Figura 13. Formato do Pacote de dados do leitor de cdigo de barras

Onde: STX - indica o incio da Mensagem (02H) Dados - caracteres lidos no cdigo de barras ETX - indica o fim da Mensagem (03H) LRC - verificao de erros de transmisso (ou-exclusivo de todos os dados transmitidos incluindo ETX e excluindo STX)

Ao receber esta mensagem, o microcontrolador recalcula o LRC, compara o LRC recebido com o calculado. Caso sejam iguais, o microcontrolador deve transmitir o cdigo de controlo ACK (06H) ao leitor. Este cdigo indica que a mensagem foi recebida correctamente. No caso de erro, o microcontrolador deve transmitir ao leitor o cdigo de controlo NACK (15H). Este cdigo indica que a mensagem recebida no confere o LRC transmitido com o calculado, e a mensagem deve ser retransmitida. O leitor aguarda por estes cdigos por um perodo de 0,5 segundos, no recebendo resposta considera que a mensagem foi transmitida correctamente.

29

Neste sistema usou-se o cdigo de barras do tipo EAN-8, que uma variao do EAN-13. Como o nome sugere, EAN-8 codfica 8 digitos.

Figura 14. cdigo de barras EAN-8 in Milies, C. Polcino (2006,p. 12) 3.2.2. Circuito electrnico Os sub-circuitos do sistema esto ilustrados no anexo 2 figuras 24; 25; 26 e 27. Para o desenho destes circuitos foi usado o programa Proteus Professional. Na figura 25., os componentes J1 J8 identificam os conectores dos leitores de cdigos de barras, onde: O pino 1 est ligado aos pinos 2 e 5 dos conectores CN3 e CN5 respectivamente da placa descodificadora; O pino 2 est ligado ao pino 6 do conector CN3 da placa descodificadora; O pino 3 est ligado ao pino 4 do conector CN3 da placa descodificadora. Os componentes MAX232 (1) MAX232 (9) identificam os conversores de nvel RS-232 para TTL e vice-verse. O componente U2 (74151) identfica um multiplexador de 8 entradas. Os pinos 9; 10 e 11 seleccionam uma das entradas do MUX (X0, X1, X2, X3, X4, X5, X6 e X7 ), isto , seleccionam um leitor para que possa enviar dados ao microcontrolador. Por exemplo, quando o microcontrolador enviar o valor binrio 000 aos pinos de seleco (9; 10 e 11), o leitor J1 ser seleccionado. O pino 7 habilita e desabilita o MUX, o seu estado tambm determinado pelo microcontrolador. O componente U3 (74HCT238) identfica um demultiplexador de 8 sadas. Os pinos 1; 2 e 3 seleccionam a sada do DEMUX (Y0, Y1, Y2, Y3, Y4, Y5, Y6 e Y7), isto , seleccionam um leitor para que possa receber dados provenientes do

microcontrolador. Por exemplo, se num dado instante o microcontrolador enviar o valor binrio 001 aos pinos de seleco (1; 2 e 3), os dados provenientes do microcontrolador, que entram pelo pino 6 do DEMUX, sero entregues ao leitor J2. Os pinos 4 e 5 habilitam e desabilitam o DEMUX, os seus estados tambm so determinados pelo microcontrolador.
30

Na figura 24, o componente U1 (PIC16F877) identfica o microcontrolador, este o corao do sistema. Ele recebe os dados enviados pelos leitores, verfica a paridade de cada byte recebido, excluindo o carcter ETX, compara com o dados do LRC. Se a paridade verificar, signfica que os dados recebidos esto correctos. O

microcontrolador envia os dados para o PC atravs do pino 25. O componente ligado aos pinos 13 e 14 (XTAL) um cristal de quartzo oscilando a 10.000.000 (dez milhes de vezes por segundo) ou simplesmente 10Mhz. Este cristal gera os pulsos precisos para o bom funcionamento do microcontrolador. O componente J9 identifica a porta COM1 do PC (porta serial RS-232). O sub-circuito da figura 26 especfica o accionador da fechadura elctrica. Usou-se um rel para fechar ou abrir os contactos elctricos da fechadura e ao mesmo tempo ligar os LEDs D4 (verde) e D5 (vermelho). Usou-se o rel porque no se pode ligar a sada do microcontrolador directamente na fechadura, pois ela accionada com 12Vac / 400mA (corrente alternada). O LED D4 ligado sempre que a fechadura accionada, isto para indicar ao utente que a porta foi aberta. Para cada fechadura a ser controlada ser necessrio um circuito idntico ao sub-circuito da figura 26. Os sinais que accionam a fechadura vm dos pinos: 2, 3, 4, 5, 6, 7, 8 e 9 do microcontrolador. O sub-circuito da figura 27 especfica a fonte de alimentao para o circuito electrnico do sistema. A sada de 12V utilizada somente para alimentar os subcircuito da figura c), e a sada de 5V para alimentar os demais componentes do circuito. Comunicao entre o microcontrolador e o PC O processo de transferncia de dados do microcontrolador para o computador ocorre logo aps a recepo dos dados no microcontrolador. A comunicao entre o microcontrolador e o computador realizada sem interrupes. Os dados so enviados carcter a carcter para o computador, usando um protocolo semelhante ao usado na comunicao entre o leitor de cdigo de barras e o microcontrolador. O formato do pacote de dados para comunicao entre o microcontrolador e o computador mostrado na figura abaixo.

31

Endereo do leitor de cdigo de barras Cdigo do carto lido ETX DADOS Figura 15. Formato do pacote de dados para comunicao entre o microcontrolador e o computador

STX

O computador verfica se o primeiro e o ultimo carcter recebido so STX e ETX respectivamente, no caso afirmativo, ele armazena o segundo byte, que corresponde ao endereo do leitor de cdigo de barras, e depois armazena os bytes que correspondem ao cdigo do carto. Se na verificao, se constatar que o primeiro e o ltimo byte no correspondem a STX e ETX respectivamente, o pacote recebido descartado, pois no se tratam de dados vlidos. O mesmo processo acontece no sentido inverso, isto , comunicao entre o computador-microcontrolador.

Endereo do leitor de cdigo de barras Comando ETX DADOS Figura 16. Formato do pacote do protocolo de comunicao entre o computador e o microcontrolador

STX

Onde o campo comando corresponde ao comando enviado para a abrir ou no a fechadura, dependendo de se o utilizador est ou no habilitado a aceder o compartimento em causa. Se comando = 01 abrir a fechadura; Se comando = 00 no abrir a fechadura. 3.2.3. Progama executado no microcontrolador No anexo 2, figura 28, pode-se ver o fluxograma que mostra as principais tarefas executadas pelo microcontrolador. A partir deste, pode-se escrever o cdigo pra ser gravado no microcontrolador. 3.2.4. Base de dados Para que este sistema possa gerenciar o acesso aos compartimentos da maternidade da clnica em causa, foi criado uma base dados onde sero cadastrados todos os utilizadores da maternidade (funcionrios, parturientes e visitantes).

32

Na figura temos um diagrama que mostra, de forma resumida, o funcionamento do sistema, isto , quais utilizadores podem aceder a qual compartimento.

UTILIZADORES DO SISTEMA

COMPARTIMENTOS

Funcinrios Mdicos

Sala de espera para parturientes Sala de parto

Parteiras
Berario

Pessoal de Limpeza Cozinheiros Administrao Utentes Parturientes Visitantes

Sala para mdicos Sala para parteiras Sala para pessoal de limpeza Cozinha Corredor de acesso aos compartimentos da maternidade

Figura 17. Diagrama esquemtico do controlo de acesso aos compartimentos As cetas no diagrama indicam que o utilizador em causa est habilitado a aceder a um certo compartimento.

A partir deste diagrama , projetou-se o Modelo Entidade-Relacionamento (MER) da base de dados. Este modelo constituido pelas entidade do sistema (Funcionrios, utentes e compartimentos) e pelos seus relacionamentos.

33

ADMINISTRADOR Nome Senha


Chave primria

campo nome armazena o nome usado pelo administrador do sistema, para manejar a base de dados; campo senha armazena a senha do administrador; a chave primria desta tabela formada pelos dois campos.

UTILIZADOR Pnome

Snome

Apelido

Id
Chave primria

Tipo

campo Pnome armazena o primeiro nome do utilizador; campo Snome armazena o sobrenome do utilizador; campo Apelido armazena o ltimo nome do utlizador; campo Id armazena o nmero de identificao atribuido ao utilizador ( este o mesmo nmero que ser codificado em barras e impresso no crach do utilizador); campo Tipo armazena o tipo de funcionrio (Mdico, parteira, cozinheiro, pessoal de limpeza e administrao) ou de utente (parturiente e visitante); A chave primria desta tabela formada pelo campo Id.

COMPARTIMENTO Cnome Cnumero

TipoUtilizador
Chave primria

campo Cnome armazena o nome do compartimento; campo Cnumero o nmero (endereo) atribuido ao compartimento; campo TipoUtilizador armazena o tipo de funcionrio, equivalente ao campo Tipo da tabela UTILIZADOR; a chave primria desta tabela formada pelos campos Cnumero e TipoUtilizador.

34

ACESSO IdCompartimento IdUtilizador

Data

Hora

campo IdCompartimento armazena o nmero do compartimento cuja porta foi aberta; campo IdUtilizador armazena o nmero de identificao do utilizador que a acedeu a um dado compartimento; campo Data armazena o dia ms - ano em que a porta de um compartimento foi aberta; campo Horas arnazena a hora : minutos : segundos em que a porta de um compartimento foi aberta.

A tabela ADMINISTRADOR preenchida no momento da instalao do sistema. Ela usada para certificar que a nica pessoa que pode manejar a base de dados o administrador, previamente cadastrado nesta tabela. Na tabela UTILIZADOR so cadastrados os utilizadores do sistema, isto , s se pode aceder a algum compartimento se se estiver cadastrado nesta tabela. A tabela COMPARTIMENTO tambm preenchida no momento da instalao do sisema, ela verfica se um utilizador est habilitado a aceder a certo compartimento. Esta verificao feita automaticamente pelo sistema (veja o cdigo do programa que ser instalado no PC). A tabela ACESSO preenchida automaticamente pelo sistema, ela usada para armazenar o nmero do compartimento cuja porta foi aberta, o nmero do utilizador que acedeu ao compartimento e a data e hora de acesso. Os dados nos campos da tabela ACESSO permanecem na base de dados durante 5 dias, aps este perodo, eles so automaticamente apagados, isto para evitar que o espao no disco duro do computador se esgote. 3.2.4. Software no PC O software para o PC foi desenvolvido usando a linguagem de programao C\C++. A funo do software de receber os dados enviados pelo microcontrolador na porta serial, verificar se os mesmos esto cadastrados na base dados e enviar um
35

comando (string) ao microcontrolador. Os dados recebidos e enviados pela porta serial (COM1) do PC encontram-se no formato ou cdigo ASCII. O fluxograma do software pode ser visto no anexo 2, figura 29. 3.2.6. Fechadura elctrica

Figura 18. Fechadura Elctrica in http://www.nardinieletrica.com.br;

A fechadura lctrica o actuador do sistema. da marca HDL, modelo C-90, fabricada por uma empresa brasileira (HDL). Ela instalada na porta, do lado de dentro do compartimento. No existe outra forma de accionar a fechadura do lado de fora, para alm do accionamento atravs do leitor de cdigo de barras. Ela pode ser acionada, por dentro, atravs de uma chave ou atravs do boto de destrava manual. Esta fechadura funciona a uma tenso de 12V c.a (corrente alternada), a uma frequncia de 60/50Hz e tem um consumo de 15W. 3.3. Implementao do sistema

3.3.1. Cdigo do software no PC Para escrever o cdigo capaz de receber e enviar dados pela porta serial do PC, usou-se algumas funes do API do windows. Estas tornam o cdigo compatvel com as verses 95/98/Me/NT/2000 e XP da Microsoft. A medida em que se foi escrevendo o cdigo, procurou-se fazer uma breve explanao acerca do mesmo, de modo a deixar o cdigo mais claro, enquanto se vai desenvolvendo:

36

#include <iostream> # include <windows.h> #include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> # define TAMANHO 100

HANDLE hCom = 0; //Manipulador da porta de comunicao char *PortaSerial =COM1; //porta escolhida

HANDLE rs_inicializa() { DCB dcb; // Utilizada para definir todos os parmetros da

comunicao COMMTIMEOUTS CommTimeouts;

hcom = CreateFile( PortaSerial, // Nome da porta GENERIC_READ suportadas (leitura e escrita) 0, //Compartilhamento (0 nenhuma outra abertura permitida) NULL, //Atributos de segurana OPEN_EXISTING, //Abertura do arquivo 0, //Entradas e saidas sem overlapped NULL //Atributos e flags devem ser nulas para COM ); if(hCom == INVALID_HANDLE_VALUE) //Verificao de ocorrncia de erro na tentiva de return 0; de abrir a porta |GENERIC_WRITE, // Operaes

37

Explanao Antes de iniciar uma comunicao atravs da porta serial, necessrio abrir uma conexo. Isto feito atravs da funo CreateFile() do API do windows. Ela aceita varios parmetros, sendo que o primeiro nome da porta, que pode ter valores como COM1, COM2, COM3 e COM4. O segundo especfica o tipo de acesso, isto , para leitura (GENERIC_READ), para escrita (GENERIC_WRITE), ou para leitura e escrita (GENERIC_READ | GENERIC_WRITE). O terceiro parmetro especfica o compartilhamento, se for definido como 0 (zero), a porta no ser compartilahada, ou seja, s pode ser usada por um nico programa. hCom uma varivel do tipo HANDLE (identificador), armazena toda informao necessria sobre a porta serial, ela usada como parmetro por outras funes do API do windows e tambm usada para verificar a ocorrncia de erros. if(!GetCommState(hCom, &dcb)) return 0; dcb.BaudeRate = CBR_2400; dcb.ByteSize = 7; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; if(SetCommState(hCom, &dcb) == 0) return 0; Explanao: A estrutura DCB da API do windows utilizada para definir os parmetros da comunicao, tais como Baud Rate, Byte Size, Parity checking, e Stop Bit. Conforme se disse no momento da especificao do leitor de cdigo de barras, a taxa de transferncia de 2400bps, a quantidade de bits por caracter 7bits, na comunicao entre o microcontrolador e o PC no se usou a verificao de paridade logo, sem paridade e o nmero de Stop Bit 1. A funo GetCommState() tem como objectivo, obter as configuraes da porta depositadas na estrutura DCB. E a funo SetCommState() tem como objectivo, definir o novos parmetros para a porta.

38

If(GetCommTimeouts(hCom, &CommTimeouts) == 0) return 0; CommTimeouts.ReadInternalTimeout = 500; CommTimeouts.ReadTotalTimeoutMultiplier = 500; CommTimeouts.ReadTotalTimeoutConstant = 500; CommTimeouts.WriteTotalTimeoutMultiplier = 500; CommTimeouts.WriteTotalTimeoutConstant = 500; if(SetCommTimeouts(hCom, &Commtimeouts) == 0) return 0; return hCom; } Explanao: As funes GetCommTimeouts() e SetCommTimeouts() da API do windows tm como objectivo obter e modificar as configuraes actuais dos timeouts da porta serial. Quaisquer mudanas nos valores dos atributos da estrutura

COMMTIMEOUTS afectaro consideravelmente os tempos de leitura e escrita na porta serial. char LerDados() { char ReceberBuffer[TAMANHO]; DWORD BytesLidos=0; ReadFile(hCom, ReceberBuffer, TAMANHO, &BytesLidos, NULL ); if(BytesLidos) return ReceberBuffer; else return 0; } Explanao: atravs da funo ReadFile() que feita a leitura dos dados que chegam na porta serial. Esta funo aceita 5 parmetros, sendo o primeiro hCom o identificador da porta serial retornado na abertura da mesma atravs da funo CreateFile(). O
39

segundo um buffer onde os dados lidos da porta serial sero armazenados. O terceito informa funo ReadFile(), qual o tamanho do buffer. O quarto uma varivel onde a funo ReadFile() armazenar a quantidade exacta de bytes lidos. O quinto um ponteiro para uma estrutura "overlapped", no nosso caso no ser utilizada, portanto definimos este parmetro como NULL. Bool EnviarDados(char *SaidaDados, const unsigned int sizaBuffer, unsigned long& length) { if(WriteFile(hCom, SaidaDados, sizeBuffer, &length,NULL) = = 0) { return false; } return true; }

Explanao: A funo WriteFile() do API do windows envia dados pela porta serial. Esta funo aceita 5 parmetros, sendo o primeiro hCom o identificador da porta serial retornado pela funo CreateFile(). O segundo um buffer onde devero estar depositados os dados a serem enviados para a porta serial. O terceiro informa funo qual o tamanho do buffer de dados. O quarto uma varivel onde a funo armazena os bytes escritos. O quinto um ponteiro para uma estrutura "overlapped", no nosso caso no ser utilizada, portanto definimos este parmetro como NULL. Void rs_termina() { CloseHandle(hCom); } Explanao: A funo CloseHandle() da API do windows fecha a porta serial aberta pela funo CreateFile().

40

O cdigo da funo principal (int main()), pode ser visto no anexo 3. 3.3.2.Base de dados Neste sistema usou-se MYSQL para Gerenciar a Base de Dados. Optou-se pelo MYSQL porque o mais popular SGBD para banco de dados relacional que usam linguagem SQL, o que faz com que haja maior nmero de foruns que discutem questes relativas a este. Ele tambm grtis para aplicaes no comerciais. A interface grfica para a base de dados foi desenvolvida no ambiente Visual Basic. NET. Ela foi desenvolvida para facilitar o gerenciamento da base dados, isto , no necessrio que o administrador saiba utilizar o MYSQL, basta que tenha noes bsicas de informtica. As interfaces para a base dados podem ser vistas no anexo 2, figuras 3.2.2; 3.2.2 a), b), c), d) e e). 3.3.3. Instalao do sistema Mola Hidralica

LED vermelho e verde

Leitor de cdigo de barras Figura 19. Instalao do leitor de cdigo de barras na porta.

Fechadura elctrica Figura 20. Instalao da fechadura elctrica na porta.

As figuras acima ilustram a forma como os equipamentos devem ser instalado. Na figura 19 tem-se uma viso externa do compartimento, o leitor de cdigo de barras deve ser instalado a uma distncia de 110cm do cho, no lado direito da porta. Por cima do leitor, a uma distncia de 2 cm, deve-se instalar o circuito com os LEDs de sinalizao.
41

Na figura 20 tem-se uma viso do interior do compartimento, a fechadura deve ser instalada a uma distncia de 110cm do cho, no lado direito da porta. A Mola Hidralica deve ser instalada no canto superior esquerdo, sua funo manter a porta fechada, sempre que no houver nenhuma fora a empurar a porta no sentido de abertura. 3.3.4. Gerar e imprimir cdigos de barras Os cdigos de barras devem ser imprimidos em cartes PVC, retangulares, com dimenses 8.5x5.5cm. Nos cartes para funcionrios, deve ser impresso juntamente com o cdigo de barras, o nome da clnica, o nome, cargo ou funo e a fotografia do funcionrio, de modo que o carto sirva como uma forma de identificao do portador. Nos cartes para parturientes e visitantes, deve ser impresso, para alm do cdigo de barras, o nome da clnica e a designaa do portador (Parturiente ou visitante), este deve estar em letras maiores em relao as demais, de modo a destacar-se. De modo a aumentar a segurana, os nmeros que equivalem ao cdigo no sero imprimidos, isto diminui a possibilidade de falsificao ou clonagem dos cartes.

CLNICA CRUZ AZUL


Nome: Fulano de Tal :
foto

CLNICA CRUZ AZUL

MDICO

PARTURIENTE

Figura 21. Ilustrao de um carto para mdico.

Figura 21.1. Ilustrao de um carto para parturiente.

Os cartes podero ser impressos numa grfica que tenha estes servios. A gerao do cdigo de barras ser feita com auxilio do no software site

Easybarcodelabelpro,

disponivel

para

download

http://www.codigosbarra.com/

42

4.

VIABILIADADE ECONMICA2

Tabela 3. Viabilidade econmica Qty 1 8 36 9 1 1 1 2 16 8 8 9 2 20 8 8 8 1 1 1 1 8 1 1 1 Item Microcontrolador PIC16F877 Preo unit. (Mt) 339,44 Leitor de cdigo de barras SLOT READER 30 5.503,60 Capacitor de poliester de 1F 19,37 Conversor de nvel MAX232 107,59 MUX 74151 43,71 DEMUX 74HCT238 43,71 Oscilador cristal de 10MHz 29,61 Capacitor de cermica de 15pF 5,73 Resistor de 2.2k 5,99 Resistor de 100 5,99 LED verde de 9V 25,00 LED vermelho de 9V 25,00 Capacitor electroltico de 100 F 19,22 Diodo 1N4004 (rectificador) 0,97 Rel GR2-24-DC12 396,48 Transistor BC327 6,65 Fechadura elctrica C-90 2.398,00 Fusvel de 1A 5,07 Transformador 220V para 12V 260,10 Resistor de 1k 5,99 Regulador de tenso 7805 45,18 Mola Hidralica aerea dorma ma200-2 prata 1.871,73 200m de cabo par tranado 11,50 Software Easybarcodelabelpro 2.839,30 Computador 3.0GHz, 256MB de RAM, 18.000,00 40GB de HD + teclado + mouse + monitor Total (Mt) Total (Mt) 339,44 44.028,80 697,32 968,31 43,71 43,71 29,61 11,46 95,84 47,92 200,00 225,00 38,44 19,40 3.171,84 53,20 19.184,00 5,07 260,10 5,99 45,18 14.973,84 2.300,00 2.839,30 18.000,00
107.627,52

Nota: Todos os preos dos componentes acima tabelados foram extrados do website: http://za.rs- online.com, que um revendedor Sul Africano de componentes elecrnicos. Excepto os dispositivos abaixo indicados, que foram extrados do site do fabricante. Leitor de cdigo de barras SLOT READER 30 http:// www.nonus.co.br; Fechadura elctrica C-90 - http://www.nardinieletrica.com.br; Mola Hidralica aerea dorma ma200-2 prata - http://www.twenga.com.br/dir-

Jardim-Bricolagem,Portas-e-janelas,Mola-hidraulica; Software Easybarcodelabelpro - http://www.codigosbarra.com;


A converso das moedas estrangeiras pela metical foi feita usando o cmbio praticado pelo Banco de Moambique no dia 27/11/2010 (USD1 = 35.15Mt, 1Real = 16.35Mt, 1Rand = 5.09Mt ).
2

43

5. 5.1. O

CONCLUSES E RECOMENDAES Concluses projecto seguiu basicamente a proposta inicial apresentada. Um ponto

negativo foi A alterao do local para o qual o projecto era destinado, isto porque os dirigentes do local inicialmente previsto dificultaram a recolha de informaes; A realizao deste projecto permitiu aprofundar e adquirir novos conhecimentos. O aprofundamento dos conhecimentos relativos a microcontroladores, j adquiridos na disciplina de Electrnica Digital 2, os protocolos de comunicao entre dispositivos, adquiridos na disciplina de Sistemas de Computadores e conhecimentos relativos a linguagem de programao C/C++, adquiridos na disciplina de programao; Os novos conhecimentos adquiridos foram em relao tecnologia de cdigo de barras, linguagem de programao Visual Basic, configurao e uso da porta serial do PC, para recepo e envio de dados, a teoria de base de dados e os seus sistemas de gerenciamento; Durante a especificao do software para o microcontrolador observaram-se diferenas entre este e um software para desktop. Primeiro, que usar variveis globais a regra, a programao estruturada, e que era necessrio, muitas vezes trabalhar-se a nvel de bit para aproveitar ao mximo o desempenho do microcontrolador; Foram atingidos com sucesso todos os objectivos definidos no incio do mesmo.

44

5.2.

Recomendaes

Recomenda-se que os cdigos (programas) apresentados neste trabalho sejam primeiro testados antes de serem instalados, isto porque, os testes feitos pelo projectista, foram realizados tomando como base suposies, isto , os cdigos no foram testados com os componentes do sistema. A especificao RS 232, recomenda que o comprimento mximo dos cabos que transportam o sinal (dados) entre dois componentes deve ser de 60m, isto para que no haja atenuao do sinal. Sendo assim, para este sistema, recomenda-se que o mdulo de processamento (mdulo que contm o microcontrolador) seja instalado num local que no esteja a distncias superiores a 60m dos compartimentos a controlar. Deve-se tambem evitar que os cabos que transportam o sinal (dados) sejam instalados prximo a cabos de corrente elctrica e de equipamentos que emitem radiaes electromagnticas, isto para diminuir o nvel de interferncias externas. Recomenda-se tambm a realizao de outros trabalhos ligados a este, de forma a fazer com que este sistema possa servir no s para controlar o acesso na maternidade, como tambm o acesso em todo o hospital. E que os dados possam ser transmitidos atravs de radiaes electromagnticas que propagam no espao (wireless), de modo a diminuir os custo do sistema.

45

REFERNCIAS BIBLIOGRFICAS

1. Azalea Software, Inc.(2005) The Barcode FAQ. Disponvel em http://www.azalea.com/FAQ/BarcodeFAQ_Portuguese.pdf Acesso em 10/08/10. 2. CANZIAN, Edmur (2005). MINICURSO Comunicao Serial - RS232. Disponvel em http://www.professores.aedb.br/arlei/AEDB/Arquivos/rs232.pdf. Acesso em 10/08/10. 3. CECHET, Rafael ( 2006). Prottipo de um sistema de monitoramento de salas de aula utilizando tcp/ip sobre redes Ethernet (802.3) - Trabalho de Concluso de Curso para a obteno dos crditos na disciplina Trabalho. Universidade Regional de Blumenau - Curso de Cincias da Computao Bacharelado. Disponvel em http://campeche.inf.furb.br/tccs/2006-II/20062rafaecCechetvf.pdf. Acesso em 22/08/10. 4. Custom Computer Services, Inc.(2005). Getting Started with CCS C in MPLAB IDE, Brasil. Disponvel em http://www.hsaugsburg.de/~bhopke/Sonstiges/CCS_C/MPLAB%20%20Getting%20Started.pdf. Acesso em 16/10/10. 5. DO CARMO, Vilson.(2005). Prottipo de controle de acesso para academias de ginstica utilizando microcontrolador pic e o padro RS485 -Trabalho de Concluso de Curso para a obteno dos crditos na disciplina Trabalho Universidade Regional de Blumenau Curso de Cincias da Computao Bacharelado. Disponvel em http://campeche.inf.furb.br/tccs/2005-II/20052vilsondocarmovf.pdf. Acesso em 21/08/10. 6. FILHO, Constantino Seixas. Comunicao serial, capitulo 2. Disponvel em http://www.cpdee.ufmg.br/~seixas/PaginaSDA/Download/DownloadFiles/Serial.P DF. Acesso em 15/9/10. http://www.datasheetcatalog.net/pt/datasheets_pdf/M/A/X/2/MAX232.shtml. Acesso em 14/09/10. 7. MAGALHES, Luciano dos Santos. (2009). Abastecimento de estoque por rbo micro controlado Anurio de Produo de Iniciao cientfica Discente Faculdade de Anhanguera de Valinhos. So Paulo. Disponvel em http://sare.unianhanguera.edu.br/index.php/anuic/article/viewPDFInterstitial/560/4 97. Acesso em 22/08/10. 8. MATIC, Nebojsa; ANDRIC, Dragan; JERNIMO, Alberto. (2000). Microcontroladores pic para iniciantes. Disponvel em http://www.wlmquip.com.br/Microcontroladores.pdf. Acesso em 11/10/10. 9. MAX232 DATASHEET 10. Milies, C. Polcino (2006). A matemtica dos cdigos de barras. Disponvel em http://www.ime.ufg.br/bienal/2006/mini/polcino.pdf . Acesso em 26/07/10.
46

11. MURSHED, S. M. Mahbub; Dr HAQ Zahurul. Designing of a barcode reader in the perspective of bangladesh market. Disponvel em http://www.professores.aedb.br/arlei/AEDB/Arquivos/rs232.pdf. Acesso em 10/08/10. 12. NONUS. Manual Tcnico, 8374 - SENSOR OPTICO COD. BARRAS INFRA, Verso 6.3. So Paulo Disponvel em http://www.nonus.com.br/download/ManualSensorBarcode.pdf. Acesso em 20/08/10. 13. PEREIRA, Fbio. (2003) Microcontroladores pic: programao em c. 3.ed. So Paulo: rica. 14. PIC16F87X DATASHEET Disponvel em http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf. 9/9/10 Acesso em

15. SENA. Antnio S. Microcontroladores Pic Disponvel em http://www.senaeng.com/files/curso_pic/manual_PICmicro__a.s.sena___senaen g.com.pdf. Acesso em 11/10/10. 16. ZEGRE, Artur; PEREIRA, Victor. ( 2006). Controlo de acesso a salas de alunos. Projecto de Final do Curso do 1 Ciclo em Engenharia Electrnica e de Computadores Escola Superior Tecnologia Setbal, Portugal. Disponvel em http://ltodi.est.ips.pt/aabreu/controloacessos/relat%C3%B3riocontroloacessos.pdf. Acesso em 21/8/10.

47

ANEXO 1 Tabelas Tabela 4. Funo dos sinais no padro RS 232 Pino Nome 1 Received Line Detector (CD) Descrio Signal Usado quando o DCE for um modem. habilitado (nvel lgico 0) quando uma conexo telefnica estabelecida. desabilitado (nvel lgico 1) quando no houver resposta. Received Data (RxD) Este sinal est activo quando o DTE receber dados do DCE. Quando o DCE estiver em repouso, o sinal mantido em nvel lgico 1. Transmitted Data (TxD) Este sinal est activo quando dados estiverem sendo transmitidos do DTE para o DCE. Quando nenhum dado estiver sendo transmitido, o sinal em nvel lgico 1. DTE Ready (DTR) Tambm chamado de Data Terminal Ready. Este sinal habilitado (nvel lgico 0) pelo DTE quando for necessrio abrir o canal de comunicao, isto , est pronto para receber dados. Caso contrrio desabilitado (nvel lgico 1). Signal Ground (GND) Sinal de terra de proteco (Est conectado a carcaa do conector). Tambm utilizado como referncia. Para outros sinais. DCE Ready (DSR) Este sinal habilitado (nvel lgico 0) para sinalizar ao DTE que o dispositivo est conectado ao canal de comunicao e pronto para transmitir. Request to Send (RTS) Este sinal habilitado (nvel lgico 0) para preparar o DCE para aceitar dados transmitidos pelo DTE. Quando o DCE estiver pronto, ele responde habilitando o sinal CTS Clear to Send (CTS) Este sinal habilitado (nvel lgico 0) pelo DCE para informar ao DTE que a transmisso pode comear. Os sinais RTS e CTS so e utilizados no controle do fluxo de dados em dispositivos DCE. Ring Indicator (RI) Usado quando o DCE for um modem. habilitado (nvel lgico 0) quando um sinal de chamada estiver sendo recebido na linha telefnica.

48

Tabela 5. Caracterticas tcnicas do leitor de cdigo de barras SLOT READER 30 Emissor de Luz LED infra Vermelho: Cumprimento de onda 890nm +/- 10nm Velocidade de leitura 20 a 200cm/s Distncia focal De 8mm +/-1.5mm, do documento ao centro dos furos de fixao Altura mnima do cdigo 7mm Alimentao 5V +/-10% Consumo (Corrente) 25mA mximo Sada digital TTL (barra branca: nvel lgico 1, barra preta: nvel lgico 0) Temperatura de operao 0 a 50 C Temperatura de -20 a 60 C armazenamento Peso 20g in Manual do kit slot reader

49

ANEXO 2 Figuras, Esquemas Electrnicos e Fluxogramas

Figura 22. Sensor de cdigo de barras Nonus com cabo

Legendas da figura 3.2.1 a) 1 Jumper para +5VDC ou LED de alimentao 2 - 5VCC (cabo laranja) 3 Terra (cabo castanho) 4 Sinal (cabo vermelho) 5 Sinal analgico (no usado)

Figura 23. Conetores da placa descodificadora Legendas da figura 3.2.1 b) CN1 PARA CONECTAR O SENSOR DE CDIGO DE BARRAS. 1 Polarizador 2 VCC 3 Terra
50

4 Dados CN2 PARA CONECTAR SENSOR MAGNCTICO (NO USADO) CN3 INTERFACE DE COMUNICAO 1 Clock Terminal (no usado) 2 Terra 3- Dados Teclado (no usado) 4 Receptor 5 clock teclado (no usado) 6 Transmissor 7 Dados Terminal (no usado) 8 - +5VCC CN4 SENSOR DE CDIGO DE BARRAS 2 + PINOS RESERVADOS (NO USADO) CN5 EXTENSORES - LED E BEEP(NO USADO).

51

Figura 24. Ligao do microcontrolador ao PC

52

53

Figura 26. Accionador da fechadura elctrica e LEDs 26.

Figura 27. Fonte de alimentao

54

INICIO

INTERRUPO NO PINO 26?

NO

SIM

LER O 1 BYTE

SELECCIONAR LEITOR (MUX)

NO NO

INTERRUPO NO PINO RB0?

BYTE STX?

SIM

SIM

LER O 2 BYTE (ENDEREO)

LER DADOS DO LEITOR

LER O 3 BYTE (COMANDO)

NO

EXISTE O BYTE STX?

ENVIAR CARACTER NACK PARA O LEITOR

SIM

NO

COMANDO=01?

NO

EXISTE O BYTE ETX?

SELECIONAR LEITOR (DEMUX)

SIM

SIM

ABRIR A FECHADURA

NO

O LRC VERIFICA?

SIM

MONTA PACOTE DE DADOS

ENVIAR PACOTE DE DADOS PARA O PC

Figura 28. Fluxograma do programa executado no microcontrolador

55

INICIO

INTERRUPO NO PINO 2 DA PORTA SERIAL?


NO SIM

DESCARTAR OS DADOS RECEBIDOS

ARMAZENAR A STRING NO BUFFER

NO

O 1 BYTE STX?

SIM

NO

O 11 BYTE ETX?

SIM

ARMAZENAR O 2 BYTE NA VARIVEL ENDEREO

CONVERTER OS BYTES DA 3 10 POSIO PARA DECIMAL

CONSULTAR NA BASE DADOS

NO

OS DADOS VERIFICAM?

SIM

ENVIAR A STRING STX ENDEREO 00 ETX PARA O PIC

ENVIAR A STRING STX ENDEREO 01 ETX PARA O PIC

Figura 29. Fluxograma do programa executado no PC

56

Figura 30. Interface para Login do administrador do sistema

Figura 31. Interface principal

Figura 32. Interface para cadastro de funcionarios da maternidade


57

Figura 33. Interface para cadatrar Utentes (Parturientes e Visitantes)

Figura 34. Interface para consultar utilizadores

Figura 35. Interface para Obteno de relatorios de acesso a compartimentos

58

ANEXO 3 Cdigo fonte do Software para recepo e envio de dados pela pota serial

int main() { string ComandoRecebido, Enderec, Dados,; MYSQL * conexao; MYSQL_RES *resp; MYSQL_ROW row; if(rs_inicializa()) { Enderec = '\0'; Dados = '\0'; Prefixo = STX; Sufixo = ETX; string * resp resp = &Dados ComandoRecebido='\0'; ComandoRecebido = LerDados(); if((ComandoRecebido.substr(0, 3) == "STX") && (

ComandoRecebido.substr(12, 3) == "ETX" )) { Enderec = ComandoRecebido.substr(3, 1); Dados = ComandoRecebido.substr(4, 8); string query2 = "INSERT INTO acesso VALUES (" + Enderec + "," + Dados + "," + "CURRENT_DATE," + "CURRENT_TIME"+")"; conexao = mysql_init(NULL); if(mysql_real_connect(conexao,"localhost","admin","12345","Cruz_Azul ",0,NULL,0)) { string query1 = "SELECT tipo FROM utilizador WHERE id = " + Dados ; if(!(mysql_real_query(conexao, query1.c_str(),query1.size()))
59

{ res=mysql_use_result(conexao); row=mysql_fetch_row(res); if(row[0]) { string query = "SELECT cnome,cnumero,tipoUtilizador WHERE cnumero= " + Enderec + FROM "AND

compartimento

tipoUtilizador=" + row[0]; if(!(mysql_real_query(conexao, query.c_str(),query.size())) { res=mysql_use_result(conexao); row=mysql_fetch_row(res); if(row[0] && row[1] && row[2]) { mysql_real_query(conexao, query2.c_str(), query2.size())); EnviarDados((Prefixo + Enderec + 1 + Sufixo).c_str(),

ComandoAbrir.Length(), &BytesEscritos ); } else EnviarDados((Prefixo + Enderec + 0 + Sufixo).c_str(),

ComandoFechar.Length(), &BytesEscritos ); } } else EnviarDados((Prefixo + Enderec + 0 + Sufixo).c_str(),

ComandoFechar.Length(), &BytesEscritos ); } mysql_close(conexao); } } rs_termina(); } return 0;}


60

Вам также может понравиться