SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Trabalho de Conclusão de Curso
Atividade Prática de Desenvolvimento de Software
André Devecchi – 14699
André Marcos Silva (Orientador)
Atividade Prática de Desenvolvimento de Software
Um Sistema de Ponto Eletrônico
Digital: projeto e implementação
de hardware e software
André Devecchi
2
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Um Sistema de Ponto Eletrônico Digital: projeto e
implementação de hardware e software
Trabalho submetido à Coordenação de
Ciência da Computação da Faculdade Campo
Limpo Paulista como requisito parcial para
obtenção do título de Bacharel em Ciência da
Computação.
Campo Limpo Pta. (SP), 15 de junho de 2015.
André Devecchi
Banca examinadora
Prof. Me. André Marcos Silva (Orientador)
Prof. Dr. Osvaldo Luiz de Oliveira
Prof. Dr. Luis Mariano del Val Cura (Suplente)
3
Agradeço a todos que acreditam e torcem por mim
principalmente a DEUS por me dar forças e serenidade
nos momentos difíceis e de poder seguir adiante...
4
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Um Sistema de Ponto Eletrônico Digital: projeto e
implementação de hardware e software
SUMÁRIO
RESUMO................................................................................................................ 5
1. PROPOSTA .................................................................................................... 6
Motivação............................................................................................................ 6
Objetivos ............................................................................................................. 6
Metodologia de Trabalho.................................................................................... 6
2. RESULTADOS............................................................................................... 7
Apresentação Funcional...................................................................................... 7
Especificação Técnica......................................................................................... 9
Problemas Encontrados..................................................................................... 12
3. CONCLUSÕES ............................................................................................ 12
4. REFERÊNCIAS ÚTEIS ............................................................................... 13
APÊNDICE A – MANUAL DE USUÁRIO ........................................................ 15
APÊNDICE B – PROJETO DE SOFTWARE....................................................... 18
APÊNDICE C – MANUAL DE OPERAÇÃO E IMPLANTAÇÃO ................... 22
5
RESUMO
Com o objetivo de realizar a integração entre um Dispositivo Embarcado com
conexão Internet a uma Aplicação Web e Base de Dados, este trabalho descreve o
desenvolvido de um Sistema Embarcado de Ponto Eletrônico Digital que provê
uma interface com o usuário para o registro da hora e data e o envio destes
registros para a Aplicação Web e persistência em Base de Dados.
6
1. PROPOSTA
Motivação
A motivação para este estudo vem da curiosidade e interesse pela conexão de
dispositivos do nosso dia-a-dia ou de dispositivos de aplicações específicas se
conectando através da Internet para controle remoto, para supervisionar tarefas ou
coleta de dados. Além de tudo é uma tendência esta revolução Tecnológica atual
conhecida como Internet das Coisas ou do inglês “Internet of Things” (IoT).
Objetivos
Este trabalho tem como objetivo o desenvolvimento de um Sistema Embarcado de
Ponto Eletrônico Digital para demonstrar a conectividade e a integração do
dispositivo a uma Aplicação Web para persistir os registros em Base de Dados. O
Sistema é composto de:
 Sistema Embarcado: irá prover periféricos de interface para o usuário de
visualização (saída) e de identificação (entrada).
 Aplicação Web: irá prover a base de dados e interface para visualização
dos registros recuperados.
Metodologia de Trabalho
Para o desenvolvimento do trabalho proposto será criado um protótipo para a
parte embarcada e uma Aplicação Web para a base de dados e visualização dos
registros com as seguintes ferramentas:
 Sistema Embarcado
o Plataforma de hardware Arduino e sua IDE de desenvolvimento.
o Desenvolvimento de hardware periférico e utilização de Shields e
Breakout para Arduino.
o Exemplos de Sketch das Librarires para os Shields e Breakout.
 Aplicação Web
o Notepad++ - Para edição de código fonte.
o PHP - Linguagem de programação para servidor Web.
o MySQL - Sistema de gerenciamento de bando de dados relacionais.
7
2. RESULTADOS
Apresentação Funcional
O Sistema é composto por duas partes distintas: Sistema Embarcado com a
plataforma de hardware Arduino (Figuras 1 e 2); Sistema Web para persistência
na base de dados e visualização dos mesmos (Figuras 3 e 4).
Figura 1: Protótipo do Ponto Eletrônico Digital
A Figura 1 mostra o protótipo do Ponto Eletrônico Digital aguardando a
aproximação da tag de identificação do funcionário para leitura.
Figura 2: Protótipo do Ponto Eletrônico Digital com a leitura da tag de
identificação
8
A Figura 2 mostra o protótipo do Ponto Eletrônico Digital com a leitura da tag de
identificação do colaborador e o feedback do Sistema Web retornando seu nome.
Figura 3: Tela de autenticação
A Figura 3 mostra a tela de autenticação para que somente usuários com
permissão tenham acesso aos registros dos horários.
Figura 4: Tela dos registros dos horários
A Figura 4 mostra a tela com os registros que foram enviados do Sistema
Embarcado e recuperados da base de dados.
Mais informações sobre o sistema são apresentadas no Apêndice A.
9
Especificação Técnica
Para o desenvolvimento do projeto proposto foram utilizadas as seguintes
ferramentas e tecnologias:
Hardware
Arduino 1.0.5-r2 (Arduino, 2015): Ambiente de Desenvolvimento Integrado ou
do inglês Integrated Development Environment (IDE) gratuito e de código fonte
aberto permitindo a escrita de código e faz com que seja fácil enviar o executável
para a placa. A IDE executa em Windows, Linux e MAC OS. O Arduino IDE é
escrito em Java e é baseado em Processing e outros software de código fonte
aberto. A IDE pode ser usada com qualquer placa Arduino.
Placa Arduino Duemilanove: Plataforma de Desenvolvimento de hardware
aberto com microcontrolador Atmega328 com 32K de memória de programa
sendo 2K utilizados pelo bootloader. Possui porta de comunicação SPI (Serial
Peripheral Interface) pinos (10, 11, 12 e 13) um protocolo de comunicação serial
síncrona, porta de comunicação I2C (Inter-Integrated Circuit) pinos (A4 e A5)
outro tipo de protocolo de comunicação serial síncrona. A Figura 5 mostra a placa
Arduino Duemilanove.
Figura 5: Arduino Duemilanove
Placa Arduino Ethernet Shield: Periférico com interface de acesso para Internet
com encaixe direto a placa Arduino Duemilanove com controlador Ethernet
W5100 com buffer interno de 16K e velocidade de conexão de 10/100Mb realiza
interface de comunicação pela porta SPI (Serial Peripheral Interface) um
protocolo de comunicação serial síncrona. A Figura 6 mostra a placa Arduino
Ethernet Shield.
10
Figura 6: Arduino Ethernet Shield
Placa RTC Breakout: Placa com Relógio de Tempo Real ou do inglês Real Time
Clock (RTC) que utiliza um chip DS1307 e possui uma bateria de lithium para
manter a hora correta mesmo sem alimentação do sistema. Esta placa pode ser
utilizada com qualquer Arduino, microcontrolador e microprocessador realizando
interface de comunicação pela porta I2C (Inter-Integrated Circuit) um protocolo
de comunicação serial síncrona. A Figura 7 mostra a placa RTC Breakout.
Figura 7: Placa RTC Breakout
11
Placa RFID-RC522 Breakout: Placa de leitura de tags em forma de cartões e
chaveiros baseado no chip MFRC522 que é utilizado em comunicação sem
contato a uma frequência de 13.56MHz. Esta placa pode ser utilizada com
qualquer Arduino, microcontrolador e microprocessador realizando interface de
comunicação pela porta SPI (Serial Peripheral Interface) um protocolo de
comunicação serial síncrona. A Figura 8 mostra a placa RFID-RC522 Breakout e
as tags em forma de cartão e chaveiro.
Figura 8: Placa RFID-RC522 Breakout, chaveiro e cartão
Módulo LCD 16x2: Display de Cristal Líquido ou do inglês Liquid Crystal
Display (LCD) é um módulo de 16 colunas por 2 linhas com blacklight de fundo
verde com controlador HD44780 que realiza interface de comunicação de dados
por 4 ou 8 bits. A Figura 8 mostra o modulo LCD 16x2.
Figura 8: Modulo LCD 16x2
Mais informações sobre o Projeto de Hardware são apresentadas no Apêndice C.
12
Software
Notepad++ v6.7.5 (Notepad++, 2015): É um editor de código fonte gratuito que
da suporte a várias linguagens de programação. Roda apenas em Windows; é
escrito em C++ e usa a API WIN32 pura e STL, que lhe da alta velocidade de
execução e um programa de tamanho bem reduzido.
PHP v5.4 (PHP, 2015): PHP Hypertext Preprocessor é uma linguagem de scripts
de propósito geral que é especialmente adequado para desenvolvimento Web. É
rápida, flexível e pragmática.
MySQL v5.5 (MySQL, 2015): É o Sistema Gerenciador de Banco de Dados de
código aberto mais popular do mundo. Apoiado por uma comunidade ativa de
desenvolvedores e entusiastas de código aberto é um banco de dados compatível
com ACID (Atomicity, Consistency, Isolation and Durability) totalmente
integrado e pode ser usado livremente em sua versão Communit Edition.
Mais informações sobre o Projeto de Software são apresentadas no Apêndice B.
Problemas Encontrados
Não foram encontrados problemas para a execução do projeto, pois já se tinha
conhecimentos similares a ferramentas e tecnologias utilizadas no projeto. O
maior desafio na execução do projeto foi a integração de todos os periféricos na
construção do Sistema Embarcado e sua comunicação com uma Aplicação Web
com resposta de feedback.
3. CONCLUSÕES
Este projeto foi bem gratificante de se realizar, pois possibilitou o contato com
diferentes ferramentas e tecnologias e a integração entre elas para a construção de
um sistema bem próximo a de um sistema comercial, sendo possível de se
transformar em um produto para o mercado. O desenvolvimento do projeto
possibilitou à experiência de se fazer a conectividade de um Sistema Embarcado
com uma aplicação específica à rede Internet.
O desenvolvimento do protótipo para teste teve um custo de R$ 248,18. A sua
viabilidade de ser um produto para o mercado é grande, mas para isso, é
necessário adicionar outros recursos ao protótipo, como cartão de memória para
armazenar os registros localmente caso ocorra falha na conexão Internet, bateria
para manter o funcionamento na falta de energia elétrica e uma impressora para
emitir comprovante de entrada/saída para o funcionário, considerando o que a
legislação vigente determina. Como um comparativo de custo, um Ponto
Eletrônico da Henry (Henry, 2015) modelo REP Prisma Super Fácil – R02 tem
um custo de R$ 1.599,00, um Ponto Eletrônico da Dimep (Dimep, 2015) modelo
Miniprint tem um custo de R$ 1.969,00. O protótipo pode oferecer uma solução
personalizada a um custo menor aos produtos citados para empresas de menor
porte.
13
4. REFERÊNCIAS ÚTEIS
Apache (2015). [on-line] Site oficial do Servidor Web Apache disponível em:
http://httpd.apache.org/. Acessado em 21 de Junho de 2015.
Arduino (2015). [on-line] Site oficial do Arduino disponível em:
http://www.arduino.cc/. Acessado em 17 de Maio de 2015.
Arduino Tutorial (2015). [on-line] Site oficial do Arduino com Tutorial com
exemplos das funções do Core e Libraries do Arduino disponível em:
http://www.arduino.cc/en/Tutorial/HomePage/. Acessado em 17 de Maio de 2015.
Arduino Tutorial LiquidDisplay (2015). [on-line] Site oficial do Arduino com
Tutorial de exemplo de como produzir um “Hello World!” utilizando o LCD
disponível em: http://www.arduino.cc/en/Tutorial/LiquidDispaly. Acessado em 17
de Maio de 2015.
Arduino Referencia (2015). [on-line] Site oficial do Arduino de Referencia da
Linguagem que é dividida em três partes: estrutura, variáveis/constantes e funções
disponível em: http://www.arduino.cc/en/Reference/HomePage/. Acessado em 17
de Maio de 2015.
Arduino Tutorial WebClient (2015). [on-line] Site oficial do Arduino com
Tutorial de exemplo de como produzir uma requisição HTTP usando o Ethernet
Shield disponível em: http://www.arduino.cc/en/Tutorial/WebClient. Acessado em
17 de Maio de 2015.
Biblioteca ArduinoJSON (2015). [on-line] Repositório oficial da biblioteca de
parsing of JavaScript Object Notation (JSON) para Arduino disponível em:
https://github.com/bblanchon/ArduinoJson. Acessado em 17 de Maio de 2015.
Biblioteca DS1307 (2015). [on-line] Site oficial da biblioteca DS1307 para
Arduino disponível em: http://www.rinkydinkelectronics.com/library.php?id=34.
Acessado em 17 de Maio de 2015.
Biblioteca MFRC522 (2015). [on-line] Repositório oficial da biblioteca RFID
Arduino para MFRC522 disponível em: https://github.com/miguelbalboa/rfid.
Acessado em 17 de Maio de 2015.
Dimep (2015). [on-line] Site oficial da empresa de Ponto Eletrônico Dimep
disponível em: http://www.dimep.com.br. Acessado em 21 de Junho de 2015.
Henry (2015). [on-line] Site oficial da empresa de Ponto Eletrônico Henry
disponível em: http://www.henry.com.br. Acessado em 21 de Junho de 2015.
MySQL (2015). [on-line] Site oficial do Banco de Dados MySQL disponível em:
http://dev.mysql.com/. Acessado em 17 de Maio de 2015.
Notepad++ (2015). [on-line] Site oficial do editor para código fonte disponível
em: https://notepad-plus-plus.org/. Acessado em 17 de Maio de 2015.
14
PHP (2015). [on-line] Site oficial da linguagem PHP disponível em:
http://php.net/. Acessado em 17 de Maio de 2015.
XAMPP (2015). [on-line] Site oficial do pacote de desenvolvimento com Servidor
Apache, Banco de Dados MySQL, PHP e Perl disponível em:
https://www.apachefriends.org/index.html. Acessado em 17 de Maio de 2015.
15
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Um Sistema de Ponto Eletrônico Digital: projeto e
implementação de hardware e software
APÊNDICE A – MANUAL DE USUÁRIO
Para utilização deste sistema será necessário o protótipo do Ponto Eletrônico
Digital providenciando sua alimentação e conexão para Internet junto com as tags
de identificação dos funcionários. E para acessar a Aplicação Web, basta digitar a
seguinte URL (Uniform Resource Location) http://localhost/tcc.
A Figura A1 mostra o protótipo do Ponto Eletrônico Digital energizado e
aguardando a aproximação da tag de identificação do funcionário para leitura.
Figura A1: Protótipo do Ponto Eletrônico Digital aguardando leitura da tag
de identificação
Na Figura A2 é apresentado o protótipo do Ponto Eletrônico Digital realizando a
leitura da tag e o feedback da Aplicação Web retornando o nome do funcionário e
apresentando o mesmo no LCD com uma saudação de boa tarde.
16
Figura A2: Protótipo do Ponto eletrônico Digital realizando a leitura da tag
de identificação
Quando for acessada a URL http://localhost/tcc a Figura A3 mostra a tela de
autenticação que é apresentada para acesso aos registros dos horários que foram
persistidos na base de dados.
Figura A3: Tela de autenticação
Para ter acesso ao sistema é utilizado um nome de usuário e Senha padrão, sendo
o nome de usuário “faccamp” e a Senha “tcc”, utilizados para teste.
Depois que for realizado a autenticação do usuário é apresentado a seguinte tela
conforme a Figura A4 mostra.
17
Figura A4: Tela para selecionar o funcionário
Na tela da Figura A4 é feita a escolha do funcionário que se quer visualizar os
registros recuperados da base de dados.
E na Figura A5 são apresentados os registros recuperados, sendo que são
mostrados cinco registros por vez numa Tabela simples e havendo mais que cinco
registros os demais podem ser vistos pela paginação dos mesmos.
Figura A5: Tela dos registros mostrando os registros. Outros registros
podem ser exibidos utilizando-se os hiperlinks abaixo da Tabela
18
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Um Sistema de Ponto Eletrônico Digital: projeto e
implementação de hardware e software
APÊNDICE B – PROJETO DE SOFTWARE
Para um melhor entendimento do projeto de software a Figura B1 apresenta o
diagrama do sistema.
Figura B1: Diagrama do Sistema
A comunicação entre o Sistema Embarcado e a Aplicação Web, que executa em
um Servidor Apache (Apache, 2015), está ilustrada na Figura B1. A comunicação
é iniciada quando é feita a leitura da tag do funcionário, onde é pego o UID (User
Identification Data) da tag junto com a hora e dia para criar uma string no
formato de URL (Uniform Resource Location) para ser enviada uma solicitação
pelo método POST ao Servidor Apache, que responde retornando o nome do
funcionário para o dispositivo.
19
As Figuras B2 e B3 apresentam o DER e MER do Banco de Dados, sendo que o
projeto do banco de dados é simples, pois o objetivo é apenas persistir a hora, data
e dia da semana e recuperá-los posteriormente.
Figura B2: Diagrama Entidade Relacionamento do bando de dados
projetado
A arquitetura da Aplicação Web está sintetizada na Figura B2. Ela é representada
por uma entidade “administrador”, que tem permissão de acesso aos registros dos
horários e pela entidade “funcionario”, que se relaciona com a entidade “registro”,
que representa os dados coletados dos funcionários no Sistema Embarcado.
Figura B3: Modelo Entidade Relacionamento
20
A estrutura de diretórios da Aplicação Web é apresentada na Figura B4.
Figura B4: Estrutura de diretórios
Pela Figura B4 pode-se ver que existem os diretórios dao e controller que
possuem as classes para manipulação do banco de dados, as Figuras B5 e B6
apresentam o diagrama de classe do modelo e do controle dos dados.
Figura B5: Diagrama de classe do modelo (diretório dao)
Figura B6: Diagrama de classe do controle (diretório controller)
21
Um ponto importante a se destacar é de como o Dispositivo Web Cliente na
Figura B1 faz a requisição para o Servidor, conforme mostrado na Figura B7.
data = "uid=" + uid +
"&hora=" + rtc.getTimeStr() +
"&data=" + rtc.getDateStr(FORMAT_LONG,FORMAT_LITTLEENDIAN,'/') +
"&dia=" + rtc.getDOWStr(FORMAT_SHORT);
client.println("POST /tcc/pontoeletronico.php HTTP/1.1");
client.println("Host: hostServer");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.println("Content-Type: application/x-www-form-urlencoded;");
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.println(data);
client.println();
Figura B7: Montagem da string da URL e cabeçalho da solicitação para o
Servidor Web
A variável data é do tipo string e recebe uma string no formato de URL com os
dados a serem enviados ao servidor. Os comandos seguintes client.println
enviam o cabeçalho de requisição HTTP pelo método POST junto com o
comprimento da variável data e a própria variável data no corpo do cabeçalho.
Depois que o servidor processa a requisição verificando a qual funcionário o UID
da tag pertence para persistir os dados corretamente, o servidor irá responder a
requisição enviando o nome do funcionário em formato JSON para o Dispositivo
Web Cliente na Figura B1 que será informado no LCD do dispositivo com um
comprimento de “Bom Dia!”, “Boa Tarde!” ou “Boa Noite!” conforme o horário
indicando o sucesso na leitura da tag e persistência do registro na base de dados.
Caso ocorra algum erro na persistência do registro será retornada a mensagem
“Erro no Registro!” e ela será mostrada no LCD.
A seguir será mostrado o formato de resposta JSON que o Dispositivo Web
Cliente receberá:
{“nome”: “Andre Devecchi”}
O JSON acima é retornado em caso de sucesso e o mostrado abaixo em caso de
falha:
{“nome”: “Erro no Registro!”}
22
FACULDADE CAMPO LIMPO PAULISTA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Um Sistema de Ponto Eletrônico Digital: projeto e
implementação de hardware e software
APÊNDICE C – MANUAL DE OPERAÇÃO E IMPLANTAÇÃO
A Figura C1 apresenta o diagrama de blocos do Sistema Embarcado.
Figura C1: Diagrama de blocos do Sistema Embarcado
Na Figura C1 pode-se observar que a comunicação entre o Arduino Duemilanove
com Ethernet Shield e RFID são feitas pelo protocolo de comunicação serial
síncrona SPI (Serial Peripheral Interface). Já a comunicação com o RTC (Real
Time Clock) utiliza o protocolo de comunicação serial síncrona I2C (Inter-
Integrated Circuit). A comunicação com o LDC (Liquid Crystal Display) utiliza 2
vias para controle sendo uma para habilitar o LCD e a outra para selecionar o
envio de comandos ou dados, e 4 vias de comunicação sendo que o byte (8 bits) é
divido em 2 nibbles e o nibble mais significativo é enviado primeiro seguido do
nibble menos significativo.
O Sistema Embarcado é composto por cinco componentes sendo a principal o
Arduino Duemilanove que possui o microcontrolador e é responsável por todo o
processamento do sistema embarcado e os demais componentes como periféricos
do sistema: a Ethernet Shield para Interface com a Internet, Breakout RFID para
leitura das tags de identificação dos funcionários, Breakout RTC que prove hora e
data em tempo real e o Modulo LCD 16x2 para informar os usuários. As Figuras
C2, C3, C4 e C5 apresentam como é o esquema de ligação com o Arduino e seus
periféricos.
23
Figura C2: Esquema de ligação Arduino Duemilanove com Ethernet Shield
Figura C3: Esquema de ligação Arduino Duemilanove com Breakout RFID
24
Figura C4: Esquema de ligação Arduino Duemilanove com Breakout RTC
Figura C5: Esquema ligação Arduino Duemilanove com LCD 16x2
25
A instalação da IDE de Desenvolvimento do Arduino é bem simples bastando ir
ao site oficial do Arduino (Arduino, 2015) e ir para seção de download a duas
opções um arquivo instalador e um arquivo zip. Optou-se pela opção zip, baixe o
arquivo “arduino-1.0.5-r2-windows.zip” ou posterior, descompactar o
arquivo e mover a pasta para o driver C: renomeie a pasta para “arduino-1.0.5-
r2”, ao entrar na pasta C:arduino-1.0.5-r2 basta dar um duplo clique no arquivo
arduino.exe e o programa é executado como mostra a Figura C6.
Figura C6: IDE do Arduino
Com a IDE mostrada na Figura C6 é só escrever o sketch do Arduino e realizar o
upload para a placa e ver o seu programa em funcionamento.
26
Para instalar o Editor de Código Fonte Notepad++ basta ir ao site oficial
(Notepad++, 2015), no site é possível realizar o download do arquivo instalador e
arquivo zip, optou-se pelo download do arquivo “npp.6.7.5.bin.zip” ou
posterior, descompactar o arquivo e mover a pasta para o driver C: renomeie a
pasta para “Notepad++”, ao entra na pasta C:Notepad++ basta dar um duplo
clique no arquivo notepad++.exe e o programa é executado como mostra a
Figura C7.
Figura C7: Notepad++
Com o Editor mostrado na Figura C7 é só escrever os scripts da aplicação.
27
Na configuração do Servidor local utilizou-se o XAMPP que nos oferece todos os
recursos necessários para a aplicação tendo Servidor Apache, MySQL e PHP.
Sugere-se baixar a versão mais atual do XAMPP do site oficial (XAMPP, 2015).
Existem versões para Windows, Linux, MacOS. Pode-se escolher para Windows.
É possível baixar o arquivo instalador e zip, e após escolher o instalador inicie-se
o download.
Pra executar o arquivo instalador basta clicar em Next. Na segunda tela, pode-se
escolher um diretório onde o XAMPP será instalado. Por padrão é o driver onde
está o Windows, logo C:xampp recomenda-se manter o caminho padrão.
Na Figura C8 devem-se definir algumas coisas. Selecione os itens “Install Apache
as service” e “Install MySQL as service”. Isso fará com que o Apache e o MySQL
rodem como serviços do Windows.
Figura C8: Configuração da instalação do XAMPP
Ao clicar em “Install” aguarde. Se o instalador fizer algumas perguntas, clique em
“Yes”.
28
No final da instalação será criado um ícone na sua área de trabalho, o XAMPP
Control Panel. Abra-o e será mostrada a tela da Figura C9.
Figura C9: XAMPP Control Panel
A Figura C9 mostra que o Apache e o MySQL estão “running”, ou seja,
executando. Caso algum deles não esteja, clique no botão “Start” e note a
mensagem “Apache started” ou “MySQL started” na caixa abaixo, indicando que
o serviço foi iniciado.
Para habilitar o PDO para o MySQL abra o arquivo php.ini localizado em
C:xamppphpphp.ini localize a seguinte linha:
;extension=php_pdo_mysql.dll
mudar para:
extension=php_pdo_mysql.dll
e reinicie o servidor Apache.

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo RelacionalJoel Santos
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas iRay Fran Pires
 
Atividade fundamentos-de-redes
Atividade fundamentos-de-redesAtividade fundamentos-de-redes
Atividade fundamentos-de-redesArlimar Jacinto
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Gustavo Zimmermann
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalRodrigo Kiyoshi Saito
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Leinylson Fontinele
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoLeinylson Fontinele
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indroduçãoRafael Pinheiro
 

Mais procurados (20)

Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas i
 
Atividade fundamentos-de-redes
Atividade fundamentos-de-redesAtividade fundamentos-de-redes
Atividade fundamentos-de-redes
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
IHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de DesignIHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de Design
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indrodução
 

Semelhante a Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software

OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Andre Devecchi
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16Gabriel Lima
 
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Thiago Barros, PSM
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetFabio Souza
 
Automacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteAutomacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteDouglas Scriptore
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedFabio Souza
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Eronides Da Silva Neto
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoGlobalcode
 
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...frogstation
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 

Semelhante a Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software (20)

Computação física com arduino
Computação física com arduinoComputação física com arduino
Computação física com arduino
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Domosys
DomosysDomosys
Domosys
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
 
Arduino e a IOT
Arduino e a IOTArduino e a IOT
Arduino e a IOT
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
 
Automacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteAutomacao residencial, a casa inteligente
Automacao residencial, a casa inteligente
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
Introdução ao .Net Micro Framework
Introdução ao .Net Micro FrameworkIntrodução ao .Net Micro Framework
Introdução ao .Net Micro Framework
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Tese de mestrado
Tese de mestradoTese de mestrado
Tese de mestrado
 
Apostila_IC.pdf
Apostila_IC.pdfApostila_IC.pdf
Apostila_IC.pdf
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
 
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 

Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software

  • 1. FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Trabalho de Conclusão de Curso Atividade Prática de Desenvolvimento de Software André Devecchi – 14699 André Marcos Silva (Orientador) Atividade Prática de Desenvolvimento de Software Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software André Devecchi
  • 2. 2 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software Trabalho submetido à Coordenação de Ciência da Computação da Faculdade Campo Limpo Paulista como requisito parcial para obtenção do título de Bacharel em Ciência da Computação. Campo Limpo Pta. (SP), 15 de junho de 2015. André Devecchi Banca examinadora Prof. Me. André Marcos Silva (Orientador) Prof. Dr. Osvaldo Luiz de Oliveira Prof. Dr. Luis Mariano del Val Cura (Suplente)
  • 3. 3 Agradeço a todos que acreditam e torcem por mim principalmente a DEUS por me dar forças e serenidade nos momentos difíceis e de poder seguir adiante...
  • 4. 4 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software SUMÁRIO RESUMO................................................................................................................ 5 1. PROPOSTA .................................................................................................... 6 Motivação............................................................................................................ 6 Objetivos ............................................................................................................. 6 Metodologia de Trabalho.................................................................................... 6 2. RESULTADOS............................................................................................... 7 Apresentação Funcional...................................................................................... 7 Especificação Técnica......................................................................................... 9 Problemas Encontrados..................................................................................... 12 3. CONCLUSÕES ............................................................................................ 12 4. REFERÊNCIAS ÚTEIS ............................................................................... 13 APÊNDICE A – MANUAL DE USUÁRIO ........................................................ 15 APÊNDICE B – PROJETO DE SOFTWARE....................................................... 18 APÊNDICE C – MANUAL DE OPERAÇÃO E IMPLANTAÇÃO ................... 22
  • 5. 5 RESUMO Com o objetivo de realizar a integração entre um Dispositivo Embarcado com conexão Internet a uma Aplicação Web e Base de Dados, este trabalho descreve o desenvolvido de um Sistema Embarcado de Ponto Eletrônico Digital que provê uma interface com o usuário para o registro da hora e data e o envio destes registros para a Aplicação Web e persistência em Base de Dados.
  • 6. 6 1. PROPOSTA Motivação A motivação para este estudo vem da curiosidade e interesse pela conexão de dispositivos do nosso dia-a-dia ou de dispositivos de aplicações específicas se conectando através da Internet para controle remoto, para supervisionar tarefas ou coleta de dados. Além de tudo é uma tendência esta revolução Tecnológica atual conhecida como Internet das Coisas ou do inglês “Internet of Things” (IoT). Objetivos Este trabalho tem como objetivo o desenvolvimento de um Sistema Embarcado de Ponto Eletrônico Digital para demonstrar a conectividade e a integração do dispositivo a uma Aplicação Web para persistir os registros em Base de Dados. O Sistema é composto de:  Sistema Embarcado: irá prover periféricos de interface para o usuário de visualização (saída) e de identificação (entrada).  Aplicação Web: irá prover a base de dados e interface para visualização dos registros recuperados. Metodologia de Trabalho Para o desenvolvimento do trabalho proposto será criado um protótipo para a parte embarcada e uma Aplicação Web para a base de dados e visualização dos registros com as seguintes ferramentas:  Sistema Embarcado o Plataforma de hardware Arduino e sua IDE de desenvolvimento. o Desenvolvimento de hardware periférico e utilização de Shields e Breakout para Arduino. o Exemplos de Sketch das Librarires para os Shields e Breakout.  Aplicação Web o Notepad++ - Para edição de código fonte. o PHP - Linguagem de programação para servidor Web. o MySQL - Sistema de gerenciamento de bando de dados relacionais.
  • 7. 7 2. RESULTADOS Apresentação Funcional O Sistema é composto por duas partes distintas: Sistema Embarcado com a plataforma de hardware Arduino (Figuras 1 e 2); Sistema Web para persistência na base de dados e visualização dos mesmos (Figuras 3 e 4). Figura 1: Protótipo do Ponto Eletrônico Digital A Figura 1 mostra o protótipo do Ponto Eletrônico Digital aguardando a aproximação da tag de identificação do funcionário para leitura. Figura 2: Protótipo do Ponto Eletrônico Digital com a leitura da tag de identificação
  • 8. 8 A Figura 2 mostra o protótipo do Ponto Eletrônico Digital com a leitura da tag de identificação do colaborador e o feedback do Sistema Web retornando seu nome. Figura 3: Tela de autenticação A Figura 3 mostra a tela de autenticação para que somente usuários com permissão tenham acesso aos registros dos horários. Figura 4: Tela dos registros dos horários A Figura 4 mostra a tela com os registros que foram enviados do Sistema Embarcado e recuperados da base de dados. Mais informações sobre o sistema são apresentadas no Apêndice A.
  • 9. 9 Especificação Técnica Para o desenvolvimento do projeto proposto foram utilizadas as seguintes ferramentas e tecnologias: Hardware Arduino 1.0.5-r2 (Arduino, 2015): Ambiente de Desenvolvimento Integrado ou do inglês Integrated Development Environment (IDE) gratuito e de código fonte aberto permitindo a escrita de código e faz com que seja fácil enviar o executável para a placa. A IDE executa em Windows, Linux e MAC OS. O Arduino IDE é escrito em Java e é baseado em Processing e outros software de código fonte aberto. A IDE pode ser usada com qualquer placa Arduino. Placa Arduino Duemilanove: Plataforma de Desenvolvimento de hardware aberto com microcontrolador Atmega328 com 32K de memória de programa sendo 2K utilizados pelo bootloader. Possui porta de comunicação SPI (Serial Peripheral Interface) pinos (10, 11, 12 e 13) um protocolo de comunicação serial síncrona, porta de comunicação I2C (Inter-Integrated Circuit) pinos (A4 e A5) outro tipo de protocolo de comunicação serial síncrona. A Figura 5 mostra a placa Arduino Duemilanove. Figura 5: Arduino Duemilanove Placa Arduino Ethernet Shield: Periférico com interface de acesso para Internet com encaixe direto a placa Arduino Duemilanove com controlador Ethernet W5100 com buffer interno de 16K e velocidade de conexão de 10/100Mb realiza interface de comunicação pela porta SPI (Serial Peripheral Interface) um protocolo de comunicação serial síncrona. A Figura 6 mostra a placa Arduino Ethernet Shield.
  • 10. 10 Figura 6: Arduino Ethernet Shield Placa RTC Breakout: Placa com Relógio de Tempo Real ou do inglês Real Time Clock (RTC) que utiliza um chip DS1307 e possui uma bateria de lithium para manter a hora correta mesmo sem alimentação do sistema. Esta placa pode ser utilizada com qualquer Arduino, microcontrolador e microprocessador realizando interface de comunicação pela porta I2C (Inter-Integrated Circuit) um protocolo de comunicação serial síncrona. A Figura 7 mostra a placa RTC Breakout. Figura 7: Placa RTC Breakout
  • 11. 11 Placa RFID-RC522 Breakout: Placa de leitura de tags em forma de cartões e chaveiros baseado no chip MFRC522 que é utilizado em comunicação sem contato a uma frequência de 13.56MHz. Esta placa pode ser utilizada com qualquer Arduino, microcontrolador e microprocessador realizando interface de comunicação pela porta SPI (Serial Peripheral Interface) um protocolo de comunicação serial síncrona. A Figura 8 mostra a placa RFID-RC522 Breakout e as tags em forma de cartão e chaveiro. Figura 8: Placa RFID-RC522 Breakout, chaveiro e cartão Módulo LCD 16x2: Display de Cristal Líquido ou do inglês Liquid Crystal Display (LCD) é um módulo de 16 colunas por 2 linhas com blacklight de fundo verde com controlador HD44780 que realiza interface de comunicação de dados por 4 ou 8 bits. A Figura 8 mostra o modulo LCD 16x2. Figura 8: Modulo LCD 16x2 Mais informações sobre o Projeto de Hardware são apresentadas no Apêndice C.
  • 12. 12 Software Notepad++ v6.7.5 (Notepad++, 2015): É um editor de código fonte gratuito que da suporte a várias linguagens de programação. Roda apenas em Windows; é escrito em C++ e usa a API WIN32 pura e STL, que lhe da alta velocidade de execução e um programa de tamanho bem reduzido. PHP v5.4 (PHP, 2015): PHP Hypertext Preprocessor é uma linguagem de scripts de propósito geral que é especialmente adequado para desenvolvimento Web. É rápida, flexível e pragmática. MySQL v5.5 (MySQL, 2015): É o Sistema Gerenciador de Banco de Dados de código aberto mais popular do mundo. Apoiado por uma comunidade ativa de desenvolvedores e entusiastas de código aberto é um banco de dados compatível com ACID (Atomicity, Consistency, Isolation and Durability) totalmente integrado e pode ser usado livremente em sua versão Communit Edition. Mais informações sobre o Projeto de Software são apresentadas no Apêndice B. Problemas Encontrados Não foram encontrados problemas para a execução do projeto, pois já se tinha conhecimentos similares a ferramentas e tecnologias utilizadas no projeto. O maior desafio na execução do projeto foi a integração de todos os periféricos na construção do Sistema Embarcado e sua comunicação com uma Aplicação Web com resposta de feedback. 3. CONCLUSÕES Este projeto foi bem gratificante de se realizar, pois possibilitou o contato com diferentes ferramentas e tecnologias e a integração entre elas para a construção de um sistema bem próximo a de um sistema comercial, sendo possível de se transformar em um produto para o mercado. O desenvolvimento do projeto possibilitou à experiência de se fazer a conectividade de um Sistema Embarcado com uma aplicação específica à rede Internet. O desenvolvimento do protótipo para teste teve um custo de R$ 248,18. A sua viabilidade de ser um produto para o mercado é grande, mas para isso, é necessário adicionar outros recursos ao protótipo, como cartão de memória para armazenar os registros localmente caso ocorra falha na conexão Internet, bateria para manter o funcionamento na falta de energia elétrica e uma impressora para emitir comprovante de entrada/saída para o funcionário, considerando o que a legislação vigente determina. Como um comparativo de custo, um Ponto Eletrônico da Henry (Henry, 2015) modelo REP Prisma Super Fácil – R02 tem um custo de R$ 1.599,00, um Ponto Eletrônico da Dimep (Dimep, 2015) modelo Miniprint tem um custo de R$ 1.969,00. O protótipo pode oferecer uma solução personalizada a um custo menor aos produtos citados para empresas de menor porte.
  • 13. 13 4. REFERÊNCIAS ÚTEIS Apache (2015). [on-line] Site oficial do Servidor Web Apache disponível em: http://httpd.apache.org/. Acessado em 21 de Junho de 2015. Arduino (2015). [on-line] Site oficial do Arduino disponível em: http://www.arduino.cc/. Acessado em 17 de Maio de 2015. Arduino Tutorial (2015). [on-line] Site oficial do Arduino com Tutorial com exemplos das funções do Core e Libraries do Arduino disponível em: http://www.arduino.cc/en/Tutorial/HomePage/. Acessado em 17 de Maio de 2015. Arduino Tutorial LiquidDisplay (2015). [on-line] Site oficial do Arduino com Tutorial de exemplo de como produzir um “Hello World!” utilizando o LCD disponível em: http://www.arduino.cc/en/Tutorial/LiquidDispaly. Acessado em 17 de Maio de 2015. Arduino Referencia (2015). [on-line] Site oficial do Arduino de Referencia da Linguagem que é dividida em três partes: estrutura, variáveis/constantes e funções disponível em: http://www.arduino.cc/en/Reference/HomePage/. Acessado em 17 de Maio de 2015. Arduino Tutorial WebClient (2015). [on-line] Site oficial do Arduino com Tutorial de exemplo de como produzir uma requisição HTTP usando o Ethernet Shield disponível em: http://www.arduino.cc/en/Tutorial/WebClient. Acessado em 17 de Maio de 2015. Biblioteca ArduinoJSON (2015). [on-line] Repositório oficial da biblioteca de parsing of JavaScript Object Notation (JSON) para Arduino disponível em: https://github.com/bblanchon/ArduinoJson. Acessado em 17 de Maio de 2015. Biblioteca DS1307 (2015). [on-line] Site oficial da biblioteca DS1307 para Arduino disponível em: http://www.rinkydinkelectronics.com/library.php?id=34. Acessado em 17 de Maio de 2015. Biblioteca MFRC522 (2015). [on-line] Repositório oficial da biblioteca RFID Arduino para MFRC522 disponível em: https://github.com/miguelbalboa/rfid. Acessado em 17 de Maio de 2015. Dimep (2015). [on-line] Site oficial da empresa de Ponto Eletrônico Dimep disponível em: http://www.dimep.com.br. Acessado em 21 de Junho de 2015. Henry (2015). [on-line] Site oficial da empresa de Ponto Eletrônico Henry disponível em: http://www.henry.com.br. Acessado em 21 de Junho de 2015. MySQL (2015). [on-line] Site oficial do Banco de Dados MySQL disponível em: http://dev.mysql.com/. Acessado em 17 de Maio de 2015. Notepad++ (2015). [on-line] Site oficial do editor para código fonte disponível em: https://notepad-plus-plus.org/. Acessado em 17 de Maio de 2015.
  • 14. 14 PHP (2015). [on-line] Site oficial da linguagem PHP disponível em: http://php.net/. Acessado em 17 de Maio de 2015. XAMPP (2015). [on-line] Site oficial do pacote de desenvolvimento com Servidor Apache, Banco de Dados MySQL, PHP e Perl disponível em: https://www.apachefriends.org/index.html. Acessado em 17 de Maio de 2015.
  • 15. 15 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software APÊNDICE A – MANUAL DE USUÁRIO Para utilização deste sistema será necessário o protótipo do Ponto Eletrônico Digital providenciando sua alimentação e conexão para Internet junto com as tags de identificação dos funcionários. E para acessar a Aplicação Web, basta digitar a seguinte URL (Uniform Resource Location) http://localhost/tcc. A Figura A1 mostra o protótipo do Ponto Eletrônico Digital energizado e aguardando a aproximação da tag de identificação do funcionário para leitura. Figura A1: Protótipo do Ponto Eletrônico Digital aguardando leitura da tag de identificação Na Figura A2 é apresentado o protótipo do Ponto Eletrônico Digital realizando a leitura da tag e o feedback da Aplicação Web retornando o nome do funcionário e apresentando o mesmo no LCD com uma saudação de boa tarde.
  • 16. 16 Figura A2: Protótipo do Ponto eletrônico Digital realizando a leitura da tag de identificação Quando for acessada a URL http://localhost/tcc a Figura A3 mostra a tela de autenticação que é apresentada para acesso aos registros dos horários que foram persistidos na base de dados. Figura A3: Tela de autenticação Para ter acesso ao sistema é utilizado um nome de usuário e Senha padrão, sendo o nome de usuário “faccamp” e a Senha “tcc”, utilizados para teste. Depois que for realizado a autenticação do usuário é apresentado a seguinte tela conforme a Figura A4 mostra.
  • 17. 17 Figura A4: Tela para selecionar o funcionário Na tela da Figura A4 é feita a escolha do funcionário que se quer visualizar os registros recuperados da base de dados. E na Figura A5 são apresentados os registros recuperados, sendo que são mostrados cinco registros por vez numa Tabela simples e havendo mais que cinco registros os demais podem ser vistos pela paginação dos mesmos. Figura A5: Tela dos registros mostrando os registros. Outros registros podem ser exibidos utilizando-se os hiperlinks abaixo da Tabela
  • 18. 18 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software APÊNDICE B – PROJETO DE SOFTWARE Para um melhor entendimento do projeto de software a Figura B1 apresenta o diagrama do sistema. Figura B1: Diagrama do Sistema A comunicação entre o Sistema Embarcado e a Aplicação Web, que executa em um Servidor Apache (Apache, 2015), está ilustrada na Figura B1. A comunicação é iniciada quando é feita a leitura da tag do funcionário, onde é pego o UID (User Identification Data) da tag junto com a hora e dia para criar uma string no formato de URL (Uniform Resource Location) para ser enviada uma solicitação pelo método POST ao Servidor Apache, que responde retornando o nome do funcionário para o dispositivo.
  • 19. 19 As Figuras B2 e B3 apresentam o DER e MER do Banco de Dados, sendo que o projeto do banco de dados é simples, pois o objetivo é apenas persistir a hora, data e dia da semana e recuperá-los posteriormente. Figura B2: Diagrama Entidade Relacionamento do bando de dados projetado A arquitetura da Aplicação Web está sintetizada na Figura B2. Ela é representada por uma entidade “administrador”, que tem permissão de acesso aos registros dos horários e pela entidade “funcionario”, que se relaciona com a entidade “registro”, que representa os dados coletados dos funcionários no Sistema Embarcado. Figura B3: Modelo Entidade Relacionamento
  • 20. 20 A estrutura de diretórios da Aplicação Web é apresentada na Figura B4. Figura B4: Estrutura de diretórios Pela Figura B4 pode-se ver que existem os diretórios dao e controller que possuem as classes para manipulação do banco de dados, as Figuras B5 e B6 apresentam o diagrama de classe do modelo e do controle dos dados. Figura B5: Diagrama de classe do modelo (diretório dao) Figura B6: Diagrama de classe do controle (diretório controller)
  • 21. 21 Um ponto importante a se destacar é de como o Dispositivo Web Cliente na Figura B1 faz a requisição para o Servidor, conforme mostrado na Figura B7. data = "uid=" + uid + "&hora=" + rtc.getTimeStr() + "&data=" + rtc.getDateStr(FORMAT_LONG,FORMAT_LITTLEENDIAN,'/') + "&dia=" + rtc.getDOWStr(FORMAT_SHORT); client.println("POST /tcc/pontoeletronico.php HTTP/1.1"); client.println("Host: hostServer"); client.println("User-Agent: Arduino/1.0"); client.println("Connection: close"); client.println("Content-Type: application/x-www-form-urlencoded;"); client.print("Content-Length: "); client.println(data.length()); client.println(); client.println(data); client.println(); Figura B7: Montagem da string da URL e cabeçalho da solicitação para o Servidor Web A variável data é do tipo string e recebe uma string no formato de URL com os dados a serem enviados ao servidor. Os comandos seguintes client.println enviam o cabeçalho de requisição HTTP pelo método POST junto com o comprimento da variável data e a própria variável data no corpo do cabeçalho. Depois que o servidor processa a requisição verificando a qual funcionário o UID da tag pertence para persistir os dados corretamente, o servidor irá responder a requisição enviando o nome do funcionário em formato JSON para o Dispositivo Web Cliente na Figura B1 que será informado no LCD do dispositivo com um comprimento de “Bom Dia!”, “Boa Tarde!” ou “Boa Noite!” conforme o horário indicando o sucesso na leitura da tag e persistência do registro na base de dados. Caso ocorra algum erro na persistência do registro será retornada a mensagem “Erro no Registro!” e ela será mostrada no LCD. A seguir será mostrado o formato de resposta JSON que o Dispositivo Web Cliente receberá: {“nome”: “Andre Devecchi”} O JSON acima é retornado em caso de sucesso e o mostrado abaixo em caso de falha: {“nome”: “Erro no Registro!”}
  • 22. 22 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Um Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e software APÊNDICE C – MANUAL DE OPERAÇÃO E IMPLANTAÇÃO A Figura C1 apresenta o diagrama de blocos do Sistema Embarcado. Figura C1: Diagrama de blocos do Sistema Embarcado Na Figura C1 pode-se observar que a comunicação entre o Arduino Duemilanove com Ethernet Shield e RFID são feitas pelo protocolo de comunicação serial síncrona SPI (Serial Peripheral Interface). Já a comunicação com o RTC (Real Time Clock) utiliza o protocolo de comunicação serial síncrona I2C (Inter- Integrated Circuit). A comunicação com o LDC (Liquid Crystal Display) utiliza 2 vias para controle sendo uma para habilitar o LCD e a outra para selecionar o envio de comandos ou dados, e 4 vias de comunicação sendo que o byte (8 bits) é divido em 2 nibbles e o nibble mais significativo é enviado primeiro seguido do nibble menos significativo. O Sistema Embarcado é composto por cinco componentes sendo a principal o Arduino Duemilanove que possui o microcontrolador e é responsável por todo o processamento do sistema embarcado e os demais componentes como periféricos do sistema: a Ethernet Shield para Interface com a Internet, Breakout RFID para leitura das tags de identificação dos funcionários, Breakout RTC que prove hora e data em tempo real e o Modulo LCD 16x2 para informar os usuários. As Figuras C2, C3, C4 e C5 apresentam como é o esquema de ligação com o Arduino e seus periféricos.
  • 23. 23 Figura C2: Esquema de ligação Arduino Duemilanove com Ethernet Shield Figura C3: Esquema de ligação Arduino Duemilanove com Breakout RFID
  • 24. 24 Figura C4: Esquema de ligação Arduino Duemilanove com Breakout RTC Figura C5: Esquema ligação Arduino Duemilanove com LCD 16x2
  • 25. 25 A instalação da IDE de Desenvolvimento do Arduino é bem simples bastando ir ao site oficial do Arduino (Arduino, 2015) e ir para seção de download a duas opções um arquivo instalador e um arquivo zip. Optou-se pela opção zip, baixe o arquivo “arduino-1.0.5-r2-windows.zip” ou posterior, descompactar o arquivo e mover a pasta para o driver C: renomeie a pasta para “arduino-1.0.5- r2”, ao entrar na pasta C:arduino-1.0.5-r2 basta dar um duplo clique no arquivo arduino.exe e o programa é executado como mostra a Figura C6. Figura C6: IDE do Arduino Com a IDE mostrada na Figura C6 é só escrever o sketch do Arduino e realizar o upload para a placa e ver o seu programa em funcionamento.
  • 26. 26 Para instalar o Editor de Código Fonte Notepad++ basta ir ao site oficial (Notepad++, 2015), no site é possível realizar o download do arquivo instalador e arquivo zip, optou-se pelo download do arquivo “npp.6.7.5.bin.zip” ou posterior, descompactar o arquivo e mover a pasta para o driver C: renomeie a pasta para “Notepad++”, ao entra na pasta C:Notepad++ basta dar um duplo clique no arquivo notepad++.exe e o programa é executado como mostra a Figura C7. Figura C7: Notepad++ Com o Editor mostrado na Figura C7 é só escrever os scripts da aplicação.
  • 27. 27 Na configuração do Servidor local utilizou-se o XAMPP que nos oferece todos os recursos necessários para a aplicação tendo Servidor Apache, MySQL e PHP. Sugere-se baixar a versão mais atual do XAMPP do site oficial (XAMPP, 2015). Existem versões para Windows, Linux, MacOS. Pode-se escolher para Windows. É possível baixar o arquivo instalador e zip, e após escolher o instalador inicie-se o download. Pra executar o arquivo instalador basta clicar em Next. Na segunda tela, pode-se escolher um diretório onde o XAMPP será instalado. Por padrão é o driver onde está o Windows, logo C:xampp recomenda-se manter o caminho padrão. Na Figura C8 devem-se definir algumas coisas. Selecione os itens “Install Apache as service” e “Install MySQL as service”. Isso fará com que o Apache e o MySQL rodem como serviços do Windows. Figura C8: Configuração da instalação do XAMPP Ao clicar em “Install” aguarde. Se o instalador fizer algumas perguntas, clique em “Yes”.
  • 28. 28 No final da instalação será criado um ícone na sua área de trabalho, o XAMPP Control Panel. Abra-o e será mostrada a tela da Figura C9. Figura C9: XAMPP Control Panel A Figura C9 mostra que o Apache e o MySQL estão “running”, ou seja, executando. Caso algum deles não esteja, clique no botão “Start” e note a mensagem “Apache started” ou “MySQL started” na caixa abaixo, indicando que o serviço foi iniciado. Para habilitar o PDO para o MySQL abra o arquivo php.ini localizado em C:xamppphpphp.ini localize a seguinte linha: ;extension=php_pdo_mysql.dll mudar para: extension=php_pdo_mysql.dll e reinicie o servidor Apache.