Montagem

 

 

Peças para a construção do dispositivo:

 

-         1 resistor de 2,2 KΩ

-         1 resistor de 100 KΩ

-         1 resistor de 470 Ω

-         1 LED vermelho

-         1 diodo 1N4007

-         1 transistor NPN - TIP31C

-         1 relé 120V/15A - AT1RC2

-         1 botão do tipo “simplesmente aberto”

-         1 conector DB9 macho

 

 

Peças para confecção do cabo serial:

 

-         2 conectores DB9 fêmea

-         2 capas plásticas para DB9

-         cabo manga 9 vias (Obs: até 15m, segundo padrão RS-232, porém utilize o tamanho necessário para ligar o dispositivo ao computador)

 

 

Programa Controle de Acesso

 

 

/*

 * Universidade Federal Fluminense

 * Engenharia de Telecomunicações

 * Trabalho Final do 2º semestre de 2005

 * Título: Controle de Acesso

 * Objetivo: Controlar o acesso a um ambiente através do login do Linux

 * Aluno: Bruno Leite Diniz

 * Orientador: Luiz Cláudio Schara Magalhães

*/

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <sys/ioctl.h>

#include <sys/time.h>

#include <time.h>

 

static int fd=0;

char buffer[64],*usuario;

struct timeval tv;

time_t hora;

FILE *stream;

 

void abrir_porta_com(){

            printf("\n Acionando tranca...\n");

            fd=open("/dev/ttyS0",O_RDWR | O_NOCTTY); //abre conexão

            ioctl(fd,TIOCMSET,TIOCM_CTS); //levanta de -12v para +12V o pino DSR(6) e CTS(8)

}

 

void fechar_porta_com(){

            printf("\n Desligando acionamento...\n\n");

            close(fd); //fecha conexão

}

 

void escrever_log(){

            stream=fopen("/var/log/ca_log","a"); //cria arquivo ca_log em /var/log

            hora=time(NULL); //obtem a hora

            bzero((void *) &buffer,sizeof(buffer)); //limpa buffer

            sprintf(buffer,"%s -----------> %s",getlogin(),ctime(&hora)); //escreve o login do usuário e a hora formatada para o buffer

            fwrite(buffer,1,strlen(buffer),stream); //escreve do buffer para o arquivo

}

 

void abrir_tranca(){

            abrir_porta_com(); //função para abrir a comunição serial

            tv.tv_sec=0;

            tv.tv_usec=400000; //seleciona 0,4 segundo para a função select

            select(0,NULL,NULL,NULL,&tv); //temporizador para manter a tensão

            fechar_porta_com(); //função fechar a comunicação serial

}

 

int main(){

            printf("\n * * * * Controle de Acesso * * * *\n");

            abrir_tranca(); //função para abrir a tranca eletrônica

            escrever_log(); //função para criar um arquivo de log

            return(0);

}

 

Instalação

 

 

-         instale o sistema Linux no computador

-         copie o programa ca para diretório /

-         crie o arquivo ca_log no diretório /var/log

-         execute permissão: chmod a+rw /var/log/ca_log

-         execute permissão: chmod a+rw /dev/ttyS0

-         substitua os arquivos /etc/passwd e /etc/shadow com os que tenha a lista dos usuários que terão acesso

-         no arquivo /etc/passwd, substitua as linhas /bin/bash para /ca, dando um search e depois um replace do /bin/bash para /ca

-         não troque o /bin/bash do root por /ca, para que este usuário continue tendo acesso ao prompt do terminal

-         desligue a máquina

-         ponha o teclado do lado de fora do ambiente que se quer obter o controle de acesso

-         passe o fio do teclado para dentro e reconecte ao computador

-         ligue o cabo serial do dispositivo ao computador

-         ligue os fios da tranca na saída do dispositivo

-         ligue a máquina

 

 

Operação

 

 

            Após os procedimentos de instalação, o sistema de controle de acesso já estará operacional. Para acionar a tranca, basta o usuário digitar o login e senha no teclado que foi colocado no ambiente externo.

 

            Somente o usuário root tem permissão para logar no ambiente de console terminal, de onde é possível verificar o histórico de acessos no arquivo ca_log em /var/log.

 

            O sistema de gerenciamento dos usuários utiliza as funcionalidades do Linux, como adicionar usuários (adduser) e modificar senha (passwd), por exemplo, e todas as demais.