Você está na página 1de 48

Centro Universitário Positivo UNICENP

Núcleo de Ciências Exatas e Tecnológicas NCET


Engenharia da Computação
Danilo Alberto Santos

Sistema Customizável de Votação Online

Curitiba
2005
2
Centro Universitário Positivo UNICENP
Núcleo de Ciências Exatas e Tecnológicas NCET
Engenharia da Computação
Danilo Alberto Santos

Sistema Customizável de Votação Online


Monografia apresentada à disciplina de
Projeto Final, como requisito parcial a
conclusão do Curso de Engenharia da
Computação. Orientador: Professor Marcelo
Mikosz Gonçalves.

Curitiba
2005
3
SUMÁRIO

1. Introdução........................................................................................................................ 9
2. Motivação ...................................................................................................................... 10
3. Fundamentação Teórica ................................................................................................ 11
3.1. Teoria do Hardware................................................................................................. 11
3.1.1 Microcontrolador ................................................................................................ 11
3.1.2. Microcontrolador 8051 ...................................................................................... 11
3.1.2. Porta Serial ....................................................................................................... 13
3.1.3 Transmissão via telefonia celular....................................................................... 14
3.1.4. Mensagens em modo PDU............................................................................... 14
3.2. Teoria do Software .................................................................................................. 15
3.2.1. PHP .................................................................................................................. 15
3.2.2. Funcionalidades do PHP .................................................................................. 15
3.2.3. MYSQL ............................................................................................................. 16
3.2.4. Servidor Apache ............................................................................................... 16
3.2.5. Benefícios de utilizar PHP, Apache e MYSQL.................................................. 17
4. Especificação Técnica ................................................................................................... 18
4.1. Aspectos Funcionais ............................................................................................... 19
4.2. Módulos do Sistema................................................................................................ 19
4.3. Especificação do Hardware..................................................................................... 21
4.3.1.Funções do Hardware ....................................................................................... 21
4.3.2.Interface com o Usuário..................................................................................... 21
4.3.3.Componentes Utilizados .................................................................................... 21
4.3.4.Diagrama em blocos com descrição.................................................................. 22
4.3.5.Ambiente de desenvolvimento........................................................................... 23
4.4. Especificação do Software ...................................................................................... 23
4.4.1.Linguagem e ferramenta de desenvolvimento ................................................... 23
4.4.2.Interface com o usuário ..................................................................................... 23
4.4.3.Fluxograma com descrição................................................................................ 24
4.5. Estimativa de Investimento ..................................................................................... 26
4.6. Especificação de Validação do Projeto ................................................................... 27
5. Projeto ........................................................................................................................... 28
4
5.1.Apresentação do projeto .......................................................................................... 28
5.2.Descrição funcional do projeto ................................................................................. 28
5.3.Requisitos mínimos para o funcionamento do projeto.............................................. 28
5.4.Projeto do Software.................................................................................................. 28
5.4.1.Diagrama de Classe .......................................................................................... 29
5.4.2.Casos de Uso .................................................................................................... 30
5.4.3.Diagramas de Seqüência................................................................................... 31
5.5. Interface do Software .............................................................................................. 34
5.5.1. Cadastrar Votação............................................................................................ 34
5.5.2. Resultados Parciais .......................................................................................... 35
5.5.3. Habilitar Votação .............................................................................................. 36
5.5.4. Resultados Parciais de cada módulo................................................................ 37
5.6.Modelo Relacional e Dicionário de Dados................................................................ 37
5.7.Projeto do Firmware ................................................................................................. 38
5.7.1. Fluxograma....................................................................................................... 39
5.7.2. Diagrama de Estados ....................................................................................... 40
6. Resultados..................................................................................................................... 41
6.2. Resultados do Módulo via SMS .............................................................................. 42
6.3. Resultados do Módulo Interface direta com o Usuário............................................ 43
7. Conclusão...................................................................................................................... 44
8. Cronograma ................................................................................................................... 46
9. Referencias Bibliográficas ............................................................................................. 47
5
LISTA DE FIGURAS

Figura 01 Esquemático do chip microcontrolador 8051 [1]. ............................................ 12


Figura 02 Esquema da ligação do cabo serial de uma ponta a outra. ............................ 13
Figura 03 - Funcionamento dos três softwares ao mesmo tempo na Internet. .................. 17
Figura 04 - Modelo do projeto em uma visão ampla, de forma geral. ................................ 18
Figura 05 - Funcionamento geral do projeto dividido em módulos. ................................... 20
Figura 06 - Diagrama em blocos especifico do funcionamento geral do projeto................ 22
Figura 07 - Fluxograma do software específico ao computador Servidor. ......................... 24
Figura 08 - Fluxograma do software específico ao computador Cliente. ........................... 25
Figura 09 Diagrama de Classe do Software. .................................................................. 29
Figura 10 - Diagrama de Caso de Uso do Software. ......................................................... 30
Figura 11 Diagrama de Seqüência do caso de uso Criar Votação. ................................ 31
Figura 12 Diagrama de Seqüência do caso de uso Visualizar Resultados Estatísticos.. 32
Figura 13 Diagrama de Seqüência do caso de uso Encerrar Votação. .......................... 32
Figura 14 Diagrama de Seqüência do caso de uso Realizar Voto.................................. 33
Figura 15 - Diagrama de Seqüência do caso de uso Visualiza Resultado Final................ 33
Figura 16 Software de Votação para administração dos votos Cadastrar Votação ..... 34
Figura 17 - Software de Votação para administração dos votos Resultados Parciais .... 35
Figura 18 Software de Votação para administração dos votos Habilita Votação......... 36
Figura 19 Software de Votação para administração dos votos Resultados Parciais de
cada Módulo. ..................................................................................................................... 37
Figura 20 Modelo Relacional entre as tabelas do banco de dados em mySQL.............. 38
Figura 21 Fluxograma do Firmware no Kit 8051. ............................................................ 39
Figura 22 Diagrama de Transição de Estados do Firmware........................................... 40
Figura 23 Página de Internet desenvolvida em PHP para a votação online. .................. 41
Figura 24 Software computando um voto1 no banco de dados recebido por mensagem
SMS. .................................................................................................................................. 42
Figura 25 Foto do módulo via Interface com o Usuário (Kit 8051 + Circuito Auxiliar) ..... 43
6
LISTA DE SIGLAS

SMS Short Message Service


PHP Hypertext Preprocessor
A/D Analógico/Digital
Kbps Kilo bits por segundo
PDU Packet Data Unit (Unidade de Pacote de Dados)
TTL - Transistor-Transistor Logic
ASCII - American Standart Code for Interchange of Information
GSM Global System for Mobile
LCD - Liquid Crystal Display
UNICENP Centro Universitário Positivo
WEB Internet
EPROM - Erasable Programmable Read-Only Memory
RAM - Random-Access Memory
URL - Uniform Resource Locator
HTTP - HyperText Transfer Protocol
IMAP Intelligent Network Application Part
SNMP Simple Network Management Protocol
NNTP - Network News Transfer Protocol
CPU - Central Processing Unit
7
Resumo

Hoje em dia utiliza-se muito o sistema de votação no mercado. Não são apenas as
pequenas empresas que investem nesse tipo de utilidade, mas também as de grande
porte, como os programas de TV (Big Brother) e sistemas interativos de grandes lojas
(Renner, Americanas).
O sistema de votação trata de contabilizar os votos através de uma configuração
customizada através de três módulos. Os três módulos do projeto são: votação interativa
(via usuário), votação via WEB (Internet) e votação via mensagem SMS. Após a
mensagem ser enviado por qualquer um dos módulos, o sistema de Banco de Dados
armazena temporariamente os dados para no final contabilizar os votos.
O projeto é constituído tanto de hardware quanto de software e utiliza conceitos de
sistemas distribuídos, microprocessadores, teleinformática, algoritmos e sistemas digitais.
Além desses módulos é possível expandir ainda mais o projeto, tudo depende do
andamento do mesmo. O objetivo também é projetar um sistema simples e de baixo custo,
visto que os sistemas semelhantes no mercado são mais caros e um pouco mais inviáveis.
Apesar do projeto não ter um custo tão grande quanto ao de sistemas de grande
porte, o objetivo é o mesmo, realizar uma votação customizada baseada em 3 módulos
para quaisquer utilidades desenvolvidas pela empresa.
8
Abstract

Nowadays the voting system in the market is wide used. They are not only the small
companies that invest in this kind of utility, but also of big ones, such as the TV programs
(Big Brother) and interactive systems from big stores (Renner, Americanas).
The voting system treats to enter the votes through a customized configuration
among three modules. The three modules of the project are: interactive voting (through
user), WEB voting (Internet) and SMS voting. After the message has been sent by anyone
of the modules, the Database system stores the data temporarily, so in the end it counts
the votes.
The project is constituted of both software and hardware blocks, and it uses the
concepts of distributed systems, microprocessors, teleinformatics, algorithms and digital
systems.
Beyond those modules it is still possible to expand the project even more, everything
depends on the course itself. The objective is also to project a simple low cost system, thus
that similar systems in the market are more expensive and a little more impracticable.
Despite the project do not have high costs as robust ones, the objective is the same,
to carry out a customized voting based in three modules for any utilities developed by the
company.
9
1. Introdução

Hoje em dia, o ramo de entretenimento utiliza votações on-line para que o público
interaja com a programação e, as empresas que utilizam muito o sistema de votação, para
ter um feedback dos clientes. As pessoas se divertem estando cara a cara com a vida das
pessoas, por exemplo, o programa de TV Big Brother. Eles realizam uma votação para
eliminar uma pessoa da casa, restando apenas para as pessoas que estão assistindo,
darem sua opinião votando na pessoa desejada, seja pelo telefone fixo, quanto pelo SMS
ou votando na página disponibilizada pela Globo.
O sistema desenvolvido terá a mesma lógica e objetivo, realizar uma votação
customizável para diversas utilidades na empresas. Em uma loja, por exemplo, servirá
para identificar se os clientes estão satisfeitos com o atendimento.
O projeto final que será desenvolvido busca atender esse nicho de mercado que
está em crescimento. Existem poucas empresas no Brasil que desenvolvem este tipo de
tecnologia. O sistema de votação vem aumentando cada vez mais no mercado, faz-se
necessário desenvolver uma tecnologia de baixo custo que venha resolver este problema.
A principal meta a ser alcançada é criar uma solução para as empresas que,
necessitam de sugestões de fora (lojas), para melhoria na qualidade de seus produtos,
melhoria no atendimento, ou outros, isso na área comercial. Caso utilize o sistema como
entretenimento, ele funcionará da forma que acontece no Big Brother, a pessoa em casa
fará a votação via telefone celular, enviando um SMS para o sistema, ou então acessando
o site disponibilizado para voto ou mesmo via interface direta com o usuário.
10
2. Motivação

Assistindo aos programas de televisão, temos uma visão superficial do


funcionamento do sistema da empresa. Esses programas utilizam sistemas modernos,
baseados em projetos de engenharia da computação. Esses projetos iniciam-se através
de testes realizados entre as faculdades que acabam saindo e aparecendo no mercado,
trazendo mais tecnologia e novos sistemas ao mundo real. Baseado nessa tecnologia será
desenvolvido um sistema customizável de votação on-line, que tratará de contabilizar
votos, de uma determinada situação criada pela própria empresa.
Também estava interessado em aprender como funciona o envio de mensagens
utilizando o telefone celular. Com o advento de envio de mensagens escritas através do
telefone celular foi criada uma nova forma de comunicação.

Outro fator importante é o conhecimento de criar enquetes via Internet. Será


utilizado o PHP Editor para criar páginas dinâmicas em PHP, onde será publicada a
página para a votação desejada pelo servidor. O cliente fará acesso direto à página, mas
sem precisar configurar, e sim apenas votar na opção desejada. Os votos serão
armazenados no banco de dados dentro do servidor, sendo úteis a qualquer hora.
11
3. Fundamentação Teórica

3.1. Teoria do Hardware

3.1.1 Microcontrolador

Microcontrolador é um dispositivo utilizado para controlar e monitorar funções


durante um processo. A partir do advento dos circuitos integrados TTL (Transistor-
Transistor Logic), pode-se delinear três gerações no que diz respeito à implementação de
controladores. O alto consumo de energia, a grande quantidade de chips envolvidos e a
dificuldade em se realizar reengenharia tornaram a segunda geração atraente aos
projetistas.

O advento dos microprocessadores tornou versátil o projeto de circuitos destinados


ao controle: é a segunda geração de controladores. Boa parte das funções, antes
implementadas por hardware, passou a serem implementadas por software.

A terceira geração veio para integrar em um único chip boa parte dessa estrutura.
Microcontroladores integram as funções de um microprocessador, memória de dados e de
instruções e ainda, dependendo da complexidade, portas seriais e paralelas bidirecionais,
conversores A/D, timers, watchdog entre outros. (PEREIRA DA SILVA, 2000).

3.1.2. Microcontrolador 8051

A partir da década de 80, a família MCS-51 da Intel obteve grande sucesso, com
microcontroladores de uso geral com capacidades de memória e E/Ss diferenciados. A
família MCS-51 pode incorporar memória de programa e dados internamente com a
possibilidade de expansão de até 64K bytes de programa e mais 64 Kbytes de dados.
Permite o acesso a portas internas de E/S, canal de comunicação serial UART full duplex,
interrupções com estrutura nesting com 5 fontes mascaráveis e dois níveis de prioridade,
timers/counters de 16 bits, oscilador interno, freqüência de clock típica de 12 MHz. A
família MCS-51 permite facilidades de software que permitem a execução de complexas
operações aritméticas e lógicas (multiplicação, divisão, permuta e deslocamento de bits,
etc). Esta família trabalha com bancos de registradores nominais e também com bits
12
endereçáveis na RAM. A figura abaixo ilustra a pinagem do microcontrolador 8051:
(PEREIRA DA SILVA, 2000).

Figura 01 Esquemático do chip microcontrolador 8051 [1].

Para a implementação do hardware foi escolhido o microcontrolador 8051 por este


atender aos requisitos básicos, a porta serial, para transmitir os dados do celular ao banco
de dados, confirmando o funcionamento do projeto.

Outra vantagem para a sua utilização no projeto são as ferramentas necessárias


que estão disponíveis no laboratório de lógica programável do curso de engenharia da
computação do UNICENP.

- Vantagens de utilizar o microcontrolador 8051

- Popular: prontamente disponível e amplo suporte. Gamas completas de produtos


de suporte estão disponíveis de graça e comercialmente.
13
- Rápido e eficaz: a arquitetura se correlaciona de perto com o problema sendo
solucionado (sistemas de controle). Instruções especializadas significam que menos bytes
precisam ser buscados e menos jumps condicionais são processados.

- Baixo custo: alto nível de integração do sistema em um único componente.


Poucos componentes são necessários para se criar um sistema que funcione.

- Ampla gama de produtos: uma única família de microcontroladores cobre as


opções que outros fornecedores só conseguem cobrir com um número razoável de
diferentes e incompatíveis famílias. Desse modo, o 8051 proporciona economia real em
termos de custo de ferramentas, treinamento e suporte para software.

3.1.2. Porta Serial

Na transmissão serial, o envio de certo caractere (vários bits) é feita de tal forma,
que cada bit de cada caractere é transmitido de forma seqüencial, um após o outro.

Para que vários sistemas se comuniquem, será criado um código binário para cada
caractere, de tal forma que exista compatibilidade. Atualmente usa-se o código ASCII
(American Standart Code for Interchange of Information), neste código, cada caractere
possui se corresponde em binário, incluindo-se aí vários caracteres de controle e sinais
especiais.

Figura 02 Esquema da ligação do cabo serial de uma ponta a outra.


14
3.1.3 Transmissão via telefonia celular

A finalidade de um sistema de telefonia celular é permitir a comunicação entre dois


telefones móveis ou entre telefones móveis e fixos. Para isso, é utilizado um sistema
composto pela rede de telefonia pública comutada (RTPC), que atende aos telefones
fixos, e por uma rede de telefonia móvel, composta pela CCC (Central de Controle Celular)
e algumas ERBs (Estações Radiobase), além dos TCs (Telefones Celulares). A CCC
comunica-se com ERBs por meio de circuitos de voz e dados.
De forma a utilizar uma rede de comunicação de dados já inteiramente pronta, a
tecnologia adotada para o projeto é a de telefonia celular. Usando transmissão de
mensagens de texto (SMS) como meio de transmissão de dados.
O cálculo do custo para a transmissão via celular terá variação entre R$200,00 e
R$250,00, mais o preço da aquisição de um aparelho celular compatível com o protocolo
utilizado. O preço cobrado pelas companhias de telefone celulares para mensagens de
texto está em média R$ 0,35. E esse valor é padrão até para as grandes empresas, pois
as operadoras de telefonia não alteram a taxa cobrada, pois não interessa a quantidade, o
preço já é tabelado para qualquer pessoa.

3.1.4. Mensagens em modo PDU

Este é o formato PDU no qual os celulares GSM utilizam para fazer o envio de
mensagens SMS. A mensagem escrita é transformada da representação de 7-bits para o
formato octetos 8-bits. Cada caracter é representado por um valor em código ASCII. Este
valor é representado em 7-bits, mas este valor é convertido para o formato octeto 8-bits
como demonstrado abaixo. [2]
Mensagem d a n i l o
AscII 100 97 110 105 108 111
AscII (binário) 1100100 1100001 1101110 1101001 1101100 1101111
110
010
Conversão 0 110000 1 11011 10 1101 001 110 1100 11 01111
para 8bits 1 1100100 10 110000 001 11011 1100 1101 01111 110 11
Representaçã
o em
Hexadecimal E4 B0 3B CD 7E 3
Tabela 01 Conversão do modo 7 bits para 8-bits (octal)
15
3.2. Teoria do Software

3.2.1 PHP

A linguagem PHP sempre foi uma linguagem voltada a WEB. Uma linguagem de
script server-side rica em funções para manipular strings, arquivos, vetores, etc. Uma
linguagem flexível que possui acesso nativo a uma boa quantidade de bancos de dados.
Mas uma linguagem, até então, sem perspectiva de ser usada para construção de
aplicações gráficas.
O PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma
interação com o usuário através de formulários, parâmetros da URL e links. A diferença de
PHP com relação a linguagens semelhantes a Javascript é que o código PHP é executado
no servidor, sendo enviado para o cliente apenas html puro. Desta maneira é possível
interagir com bancos de dados e aplicações existentes no servidor, com a vantagem de
não expor o código fonte para o cliente. Isso pode ser útil quando o programa está lidando
com senhas ou qualquer tipo de informação confidencial.
O que diferencia PHP de um script CGI escrito em C ou Perl é que o código PHP
fica embutido no próprio HTML, enquanto no outro caso é necessário que o script CGI
gere todo o código HTML, ou leia de um outro arquivo.
(http://www.base64.com.br/article.php?recid=213)

3.2.2 Funcionalidades do PHP

Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode ser
feita também com PHP, como coletar dados de um formulário, gerar páginas
dinamicamente ou enviar e receber cookies.
O PHP também tem como uma das características mais importantes o suporte a um
grande número de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle,
Sybase, PostgreSQL e vários outros. Construir uma página baseada em um banco de
dados torna-se uma tarefa extremamente simples com PHP.
No projeto, o php será utilizado para acesso ao banco de dados pelo MYSQL,
recebendo os votos através de uma enquete gerado pelo servidor.
16
Além disso, PHP tem suporte a outros serviços através de protocolos como IMAP,
SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda é possível abrir sockets e interagir com
outros protocolos.

3.2.3 MYSQL

MYSQL é um sistema de gerenciamento de banco de dados relacional que utiliza a


linguagem padrão SQL e é largamente utilizado em aplicações internet. O interessante de
utilizar o MYSQL, é a sintaxe ser sem simples além ter uma baixa demanda de recursos
de hardware, ou seja, não requer muita máquina para utilização do mesmo.
A simplicidade na administração do banco de dados ajuda também na velocidade
da abertura da página, pois é utilizado mais para aplicações onde se precisa utilizar mais
consultas do que atualizações. È recomendado também, pois seu protocolo de rede é
mais enxuto e de simples utilização.

3.2.4 Servidor Apache

É o servidor WEB mais utilizado no mundo em qualquer tipo de plataforma que teve
sua origem de um projeto desenvolvido pela NCSA (National Center for Supercomputing
Applications) da Universidade de Illinois em 1995. Entretanto, a NCSA não desenvolveu
muito o projeto, o que levou alguns desenvolvedores insatisfeitos com isso a se juntarem e
começarem a desenvolver uma série de inovações em cima do código original do Web
Server da NCSA. Disso surgiu o Apache (derivado de Apatchy, um trocadilho devido a
enorme quantidade de paches criados pela equipe). Então, em dezembro do mesmo ano,
o Apache 1.0 foi lançado e, em 1996, já tinha se tornado o servidor Web mais popular do
mundo. (http://visviva.com.br/internet/)
Abaixo temos algumas características técnicas do servidor APACHE:

-Suporte a HTTP 1.1 para criação de virtual hosts baseados em DNS (vários web
sites em uma só máquina);
- Suporte a Secured Socket Layer (SSL) para transações seguras;
17
- Suporte a CGI´s, Perl e PHP (páginas dinâmicas);
- Suporte a autenticação baseada em HTTP;
- Logs customizáveis;
- Configuração rápida e simples.

Aliada a sua extrema qualidade e robustez, o Apache tem uma vantagem que o
torna muito atraente: é gratuito. Por ser um software livre, seu código fonte também é livre
e pode ser instalado em vários servidores diferentes.

3.2.5 Benefícios de utilizar PHP, Apache e MYSQL

- Fornecem tudo o que você necessita para construir aplicações e sites Web
sofisticados, e de maneira mais simples do que alternativas.
- Não trazem elevados custos de licença de run-time, por CPU ou por usuário.
- Fornecem produtividade, performance, escalabilidade, segurança e confiabilidade.
- São softwares livres, trazendo uma minimização dos custos.

Figura 03 - Funcionamento dos três softwares ao mesmo tempo na Internet.


18
4. Especificação Técnica

Na especificação técnica é apresentada uma visão geral do sistema customizável


de votação on-line e uma prévia descrição de cada módulo do qual o projeto é composto.
A figura 04 nos mostra um esquema do projeto como um todo, pois é dividido em
três módulos, gerando, ao final da votação, o total de votos realizados durante o período
em aberto. Um dos módulos será composto de: um celular que receberá os dados dos
celulares dos votadores, enviando para o microcontrolador os votos sendo assim enviado
automaticamente para o banco de dados. Outro módulo abrange somente servidor e
clientes. O cliente (votante) poderá somente escolher entre os votos cadastrados e
liberados pelo servidor (Administrador dos votos), isto é, ele fará acesso à página criada
em PHP, por um navegador (ex: Internet Explorer), para acesso da votação. Logo após a
votação ser realizada, o voto é enviado para o banco de dados. O último módulo é
simples, pois o usuário estará votando através do hardware diretamente, ou seja, o
votante terá acesso aos dois votos liberados na interface (botão 1 ou 2) e a visualização
via LCD no kit do microcontrolador, logo após a votação também será enviado os votos
para o banco de dados.

Figura 04 - Modelo do projeto em uma visão ampla, de forma geral.


19
4.1 Aspectos Funcionais

O sistema de votação trata de contabilizar os votos através de uma configuração


customizada utilizando três módulos subdivididos em: via WEB, via SMS e diretamente
com o usuário. Após a mensagem ser enviada por qualquer um dos módulos, o sistema de
Banco de Dados armazena temporariamente os dados para no final contabilizar os votos.
O projeto será desenvolvido de forma genérica para que possa ser utilizado para a
apuração de votações genéricas de quase todos os tipos, sendo muito útil para pequenas
e grandes empresas.
O software será responsável de realizar o acesso ao banco de dados instalado no
servidor. Além disso, ele terá de receber os dados da votação via serial da memória do kit
do microcontrolador 8051, ou seja, as pessoas que realizarem os votos via SMS e via
interface direta com o hardware (apenas apertar um dos dois botões), automaticamente
após realizarem o voto desejado, o sistema enviará os votos para o microcontrolador para
depois enviar ao programa, que assim será enviado para o banco de dados.
Um dos problemas que não é possível garantia é a velocidade em que será enviada
a mensagem SMS ao módulo SMS do projeto, porque as mensagens enviadas ao
computador, não depende diretamente do sistema e sim da operadora do telefone
acoplado ao projeto.

4.2 Módulos do Sistema

O Sistema divide-se diretamente em três módulos (figura 05). O sistema via WEB
ficará dividido em parte servidor que armazenará a página criada em PHP com os dados
armazenados no banco de dados MYSQL, e parte cliente na qual a pessoa de qualquer
lugar e qualquer computador poderá votar e participar da votação utilizando um navegador
de Internet. Lembrando que a pessoa deverá ter um computador com acesso a Internet,
seja conexão discada ou cabo, e também um navegador padrão instalado no computador
para acesso a página da votação armazenada na Internet. No cliente não é preciso ter o
APACHE instalado para acesso, será necessário somente no computador servidor. O
sistema liberará a votação para os três módulos depois, do responsável pela criação dos
votos (Servidor), terminar a configuração do mesmo.
20
O sistema via Interface direta com usuário utilizará um KIT do microcontrolador
8051. Esse kit terá uma memória EPROM para armazenará o programa em C ANSI que
terá a função de comunicar os dados que saem dos botões do kit (Voto 1 ou Voto 2)
através da serial chegam ao computador que assim armazenará no software em C++ que
enviara para o banco de dados (MYSQL) imediatamente. Através do LCD é possível a
visualização das opções e da confirmação de voto.
Da mesma forma que o sistema direto com o usuário, utilizou a porta serial para
envio dos dados para o computador servidor, o sistema via mensagem SMS terá a mesma
forma de envio, mas trabalhará da seguinte forma: a pessoa que deseja votar deverá ter
em mãos o seu celular sabendo o número liberado para a votação. Ela escolhe entre o
voto1 ou voto2 e fará a votação digitando a palavra voto1 ou voto2 numa mensagem de
texto e logo envia para o telefone celular acoplado (numero liberado para votação) ao
computador servidor. Assim que enviada a mensagem, o celular que está integrado ao
computador via serial, será enviado ao banco de dados da mesma forma que o módulo 3.

Figura 05 - Funcionamento geral do projeto dividido em módulos.


21
4.3 Especificação do Hardware

4.3.1.Funções do Hardware

O hardware do projeto será basicamente o kit do microcontrolador 8051 completo,


composto por uma memória EPROM (27C256) (para armazenar o programa em
Assembly), uma memória RAM (62256) (armazenar dados temporariamente) e o próprio
microcontrolador que fará o processamento dos votos da interface externa para o usuário
realizar a votação direta com o hardware, votando pelo teclado e visualizando via LCD sua
votação.

4.3.2.Interface com o Usuário

A interface com o usuário é realizada através do hardware elaborado para


comunicação com o computador servidor. A pessoa que utilizar a votação direta com o
hardware, realizará a votação diretamente do sistema, sendo possível a escolha entre o
voto1 ou voto2.

4.3.3.Componentes Utilizados

- Microcontrolador 8051;
- Memória EPROM (27C256);
- Memória RAM (62256);
- Latchs (74LS373);
- Potenciômetro 10K;
- Resistor 100Ohms e 10K;
- Display LCD;
- Capacitores, Cristal.
- Push-Bottons.
- Patola
22
4.3.4.Diagrama em blocos com descrição

Figura 06 - Diagrama em blocos específico do funcionamento geral do projeto.

Nesse diagrama temos o projeto dividido nos três módulos, mas explicando em
pequenos blocos para detalhar um pouco mais o sistema.
Na primeira coluna temos o funcionamento do sistema via WEB, no qual já foi
explicado anteriormente, que o usuário fará a votação online, via um navegador de
Internet. Na segunda coluna temos o funcionamento do sistema via SMS, um sistema
mais complexo que trabalhará utilizando um celular ligado ao computador servidor via
cabo de dados serial. A terceira coluna mostra o mesmo 8051 com LCD ligado a 2 botões
que a pessoa fará a votação no próprio local.
23
4.3.5.Ambiente de desenvolvimento

O ambiente de desenvolvimento para a programação da EPROM do


microcontrolador 8051, é o software Keil Vision, que é possível se trabalhar com a
linguagem C ANSI.
No Keil Vision será feita a implementação do programa que estará na EPROM
(firmware). A emulação do kit do 8051 será feito na EXROM, para teste do funcionamento
da serial, onde fará a transferência dos votos para o banco de dados instalado no
Servidor.
O LP10 terá o objetivo de gravar o firmware, implementado no Keil Vision, na
memória EPROM.

4.4 Especificação do Software

4.4.1.Linguagem e ferramenta de desenvolvimento

A linguagem escolhida para o desenvolvimento do software é a linguagem C++,


utilizando o software Borland C++ Builder 6 como ambiente de programação e também
utilizando para armazenamento dos votos o banco de dados MYSQL, interligado com o
servidor APACHE e o PHP Editor para desenvolvimento da página em PHP.

4.4.2.Interface com o usuário

A interface com o usuário através do software será somente através da WEB


(Internet). A pessoa que deseja votar acessará um endereço na WEB para realizar a
votação. O Cliente nunca terá acesso ao código e nem à configuração da votação,
somente a página pronta para a votação.
24
4.4.3.Fluxograma com descrição

No fluxograma baixo (figura 07) temos a explicação de como funcionará o projeto


no Servidor, onde somente o Administrador do sistema fará a criação da votação. Primeiro
ele insere o titulo e objetivo da votação, depois o primeiro voto com seus comentários
necessários e depois o segundo com seus comentários necessários. Caso queria colocar
foto ele colocará depois na própria pagina em PHP.

Figura 07 - Fluxograma do software específico ao computador Servidor.


25
Na figura 08 abaixo, temos o fluxograma do sistema no qual o usuário ou qualquer
outra pessoa através de um browser (navegador), terá acesso para a votação iniciada pelo
Administrador no Servidor.

Figura 08 - Fluxograma do software específico ao computador Cliente.

O fluxograma acima nos mostra em detalhes o funcionamento de como o sistema


WEB funcionará. O usuário iniciará a votação abrindo a página de internet habilitada para
a votação. Na página mostrará as 2 opções de votos com seus comentários e objetivo da
votação. A pessoa fará a sua escolha entre um dos dois votos e assim que ela confirmar
seu voto o voto é enviado para o software que em seguida envia para o banco de dados.
26
4.5 Estimativa de Investimento

Levando em conta os componentes necessários para o projeto e as horas de


trabalho utilizadas, mostra-se na tabela abaixo a estimativa de investimento/custo deste
projeto para a produção de uma unidade do sistema. Não estão sendo considerados os
custos de utilização dos equipamentos como osciloscópio, fonte e outros, e softwares
como o Borland C++ Builder 6 e PHP Editor (livre) e outros que estão sendo
disponibilizados no laboratório, pois caso necessitasse a compra desses produtos,
encareceria muito o custo do projeto tornando-se inviável a realização do mesmo. Por
enquanto não serão incluídos os custos de resistores, mas quando estiver definido estará
incluído na lista.
Recurso Quantidade Custo Unitário (R$) Custo (R$)
Microcontrolador 8051 1 25,00 25,00
Memória EPROM (27C256) 1 10,00 10,00
Memória RAM (62256) 1 10,00 20,00
Gastos com Transmissão 1 250,00 250,00
Microsoft Windows XP 1 500,00 500,00
Microsoft Office XP 1 550,00 550,00
Display LCD 1 35,00 35,00
Telefone Celular Siemens 1 398,00 398,00
MC-60
Cabo Serial Siemens 1 150,00 150,00
Componentes/Placas/Conec n 200,00 200,00
tores
Keil Vision 1 1000,00 1000,00
Software de programação 1 0,00 0,00
em PHP (PHP Editor)
Banco de dados (MYSQL) 1 0,00 0,00
Servidor Apache 1 0,00 0,00
Horas de Trabalho 400 7,00 2800,00
TOTAL 3135,00 6037,00
Tabela 02 Custos Estimados para realização do Projeto
27
4.6 Especificação de Validação do Projeto

O módulo de votação diretamente com o usuário está ligado ao microcontrolador


8051, que envolve conceitos de microprocessadores, sistema digitais. Já o módulo SMS
envolve conceito de sistemas distribuídos e teleinformática. Será utilizado o hyperterminal
para realizar os testes de funcionamento do telefone celular, software auxiliar que faz
comunicação pela serial como os 2 módulos.
Teste com o servidor/cliente: A configuração da votação será feita no servidor
utilizando o software PHP Editor para realizar testes de funcionamento da enquete em
PHP. Serão enviadas mensagens do cliente ao servidor para testar a interface
cliente/servidor. Logo Após isso será implementado a enquete customizada para a versão
final do projeto.
O teste do software em Builder: O software em C++ será apenas útil para
comunicação do microcontrolador 8051 e do celular, com o banco de dados (MYSQL) para
armazenamento dos votos. Durante os testes, primeiramente utilizará o método passo a
passo para análise dos dados.
Após os testes parciais, serão feitos os testes com todos os módulos interligados
entre si. Essa parte será uma das partes mais complicadas do sistema, pois ligará a parte
de hardware (8051), o celular e a parte de software (PHP) para que eles funcionem
sincronizadamente.
28
5. Projeto

5.1.Apresentação do projeto

O projeto abrange a forma de implementação do software e hardware especificados


nos itens acima. Nessa parte serão mostrados todos os diagramas de caso de uso,
diagramas de seqüência, diagrama de classe, o MER (modelo entidade relacionamento),
que mostra as tabelas do banco de dados, o fluxograma do firmware com seus diagramas
de estados do projeto completo.

5.2.Descrição funcional do projeto

O projeto funcionará do modo como apresentado no texto anteriormente, um


sistema customizável que fará a contabilização dos votos realizados pelos três módulos
liberados pelo sistema. Nos diagramas a seguir, teremos o funcionamento detalhado do
hardware e software, abrangendo os seus respectivos esquemáticos e diagramas de
software e firmware.

5.3.Requisitos mínimos para o funcionamento do projeto

O requisito mínimo para o funcionamento do projeto é ter um computador PC, com


potencia para rodar um servidor APACHE, com o banco de dados MYSQL. Um Pentium
de 800 MHz com 256MB de RAM, seria o recomendável para rodar esses softwares junto
ao Borland Builder C++ 6.0 para o desenvolvimento do software q fará a comunicação
serial do microcontrolador 8051 e do celular ao banco de dados MYSQL.

5.4.Projeto do Software

O software do computador Servidor tem como objetivo, criar a votação, habilitar


votação, visualizar resultados parciais dos votos, visualizar os resultados parciais e
encerrar a votação. Abaixo teremos os diagramas do software em C++ (Administrador) e
PHP (Usuário).
29
5.4.1.Diagrama de Classe

O diagrama de classe é mostrado na figura 09:

Figura 09 Diagrama de Classe do Software.

A classe cPrincipal é a classe base para as demais classes, ela fará o controle do
que passa pela serial do kit 8051, as chamadas das funções da classe cProtocolo e todas
as funções da interface (form).
30
A classe cProtocolo tem a função de armazenar as mensagem vinda pelo celular,
com suas funções para validação da mensagem para assim será enviar para o banco de
dados para armazenamento até o final da votação.
A classe cPort fará a comunicação dos votos recebidos via interface direta com o
usuário (pelo teclado), sendo assim enviados para o banco de dados.
O frmInterface será a interface direta com o Administrador para o início da votação
e a conclusão da votação, fora a opção de pesquisa temporária que ele poderá fazer
temporariamente.

5.4.2.Casos de Uso

A figura 10 mostra o diagrama de caso de uso do software em C++ e em PHP.

Figura 10 - Diagrama de Caso de Uso do Software.


31

Existem 2 atores nesse diagrama. Um deles é o Administrador que criará a votação,


encerrará a votação e poderá visualizar resultados parciais estatísticos. O segundo ator
(Usuário) terá somente a seguinte função, de realizar a votação criada pelo Administrador.
Note que o Administrador também pode ter a função de realizar o voto, mas o Usuário não
poderá acessar nenhuma função do Administrador.

5.4.3.Diagramas de Seqüência

Abaixo segue os seguintes diagramas de seqüências, baseados no diagrama de


caso de uso acima.

5.4.3.1. Criar Votação

Figura 11 Diagrama de Seqüência do caso de uso Criar Votação.


32
5.4.3.2. Visualizar Resultados Parciais

Figura 12 Diagrama de Seqüência do caso de uso Visualizar Resultados Estatísticos.

5.4.3.3. Encerrar Votação

Figura 13 Diagrama de Seqüência do caso de uso Encerrar Votação.


33
5.4.3.4 Realizar Voto

Figura 14 Diagrama de Seqüência do caso de uso Realizar Voto.

5.4.3.5. Visualizar Resultado Final

Figura 15 - Diagrama de Seqüência do caso de uso Visualiza Resultado Final.


34
5.5 Interface do Software

Abaixo temos as interfaces do software do Adminstrador:

5.5.1 Cadastrar Votação

Figura 16 Software de Votação para administração dos votos Cadastrar Votação

Através da aba Cadastrar Votação ele inicia o processo de cadastro, preenchendo


os campos abaixo. Assim que preenchido todos os campos o administrador deve clicar em
Envia Dados para preparar a votação pela WEB.
35
5.5.2 Resultados Parciais

Figura 17 - Software de Votação para administração dos votos Resultados Parciais

Através dessa aba é possivel visualizar os resultados parciais dos 3 módulo


funcionando ao mesmo tempo, onde cada módulo é atualizado em seu tempo
determinado. Aqui quando cria-se uma nova votação deve-se colocar os 2 votos
respectivamente em ordem e também inserindo os valores iniciais da mesma.
36
5.5.3 Habilitar Votação

Figura 18 Software de Votação para administração dos votos Habilita Votação

Essa é uma aba muito importante para o início da votação. Através do botão Seta
Enquete Atual/Ativa Serial é possivel iniciar os 3 módulos para iniciar-se a votação, mas
antes deve ser inserido o ID da votação (de acordo com o codigo inserido na tabela
anterior) e depois setar o ID da votação desejada (atual). Logo após isso é possivel iniciar
a votação clicando no botão.
37
5.5.4 Resultados Parciais de cada módulo

Figura 19 Software de Votação para administração dos votos Resultados Parciais de


cada Módulo.

Essa aba é uma aba adicional onde o usuário pode saber o que está acontecendo
em cada módulo, só apenas a votação pela internet que não tem um vinculo direto com
variáveis dentro do software, não faz a contagem.

5.6.Modelo Relacional e Dicionário de Dados

Para o armazenamento dos votos realizados pelos três módulos, é necessárias


apenas algumas tabelas que farão a contagem dos votos, e a validação do IP, se ele já
votou ou não, para não ter problemas de votos repetidos. Abaixo, na figura 19, temos o
modelo relacional entre elas:
38

Figura 20 Modelo Relacional entre as tabelas do banco de dados em mySQL.

Para melhor entendimento dos campos criado acima, explica-se melhor na tabela
abaixo o significado de cada um:

Nome Significado

ID Identificação da enquete (auto-increment)


voto1 Campo onde será armazenada a quantidade de voto1.
voto2 Campo onde será armazenada a quantidade de voto2.
cod_tipo_enquete Chave estrangeira da tabela tipo_enquete.
código Campo onde é armazenado o código da enquete.
descrição Armazena a descrição dos votos (quais são os votos).
idip Identificação do IP.
id Campo onde é armazenado o IP do usuário.

Tabela 03 Dicionário de dados do modelo relacional

5.7.Projeto do Firmware

O firmware será o programa em C que estará rodando dentro da memória EPROM


para funcionamento dos botões e da serial para transferência dos dados do kit 8051 para
o banco de dados no Servidor. Na figura 16, mostra-se o funcionamento do mesmo.
39
5.7.1.Fluxograma

Figura 21 Fluxograma do Firmware no Kit 8051.

O fluxograma acima funciona da seguinte maneira: é setada a configuração do


LCD, os níveis de configuração dos pinos, o endereço para escrita, etc. Após setar a
configuração do LCD, deve-se setar a configuração da serial, que trabalhará a 9600 bps.
Para garantir que nenhum dados esta armazenada na RAM, opcionalmente é inserido um
ZeraVotos para setar a variável da serial para n . Se for lido algo da serial, ele verificará
se foi o botão 1 ou botão 2, se a INT0 estiver em 1, o botão 1 foi pressionado, logo o voto1
será enviado para a RAM, que logo envia pela serial ao software de administração dos
votos. Caso, o INT1 for para 1, o botão 2 foi pressionado, sendo assim setado o voto2, e
40
enviado para o software. Esse é um processo que continua sem fim até que seja
encerrada a votação.

5.7.2.Diagrama de Estados

Um diagrama de transição de estados (DTE) serve para modelar o comportamento


tempo-dependente de um sistema. Abaixo, na figura 21, podemos ver o funcionamento do
firmware através de um DTE.

Figura 22 Diagrama de Transição de Estados do Firmware.


41
6. Resultados

Os resultados estão divididos em 3 partes:

6.1 Resultados do módulo via WEB

Nesse módulo obtivemos sucesso pois o servidor MYSQL funcionou perfeitamente


em sincronia com o servidor APACHE utilizando a linguagem de PHP para o
desenvolvimento da página para disponibilizar os votos para os usuários que podem votar
de qualquer computador localizado na Internet.
Abaixo segue a tela da página desenvolvida em PHP para a votação online:

Figura 23 Página de Internet desenvolvida em PHP para a votação online.


42
6.2 Resultados do Módulo via SMS

Com o software desenvolvido em C++ conseguimos obter sucesso no recebimento


das mensagens de SMS de qualquer celular. O software consegue ler as mensagens
recebidas pelo celular acoplado ao computador, diferenciando quais são as mensagens
invalidas, quais as mensagens que são identificadas como votos e também quando não
existem mensagens. O resultado desse módulo funcionou 100%, pois todas as
mensagens que eram enviadas, chegavam sem problema algum e, o software identificava
qual era o voto escolhido e depois enviando para o MYSQL que também rodou 100% no
servidor.

Figura 24 Software computando um voto1 no banco de dados recebido por mensagem


SMS.
43
6.3 Resultados do Módulo Interface direta com o Usuário

Neste módulo não tive muito problema pois existia somente um LCD e 2 botões
para o usuário realizar a votação. Esse módulo funcionou totalmente sem problema algum.
O kit do microcontrolador 8051 se encaixou perfeitamente as necessidades do projeto,
porque consegue obter as informações necessárias através da porta serial com sucesso.
O circuito adicional obedece aos comandos enviados através do kit 8051 (botões e
potenciômetro). O software em C++ também consegue identificar o que é o voto1 e o que
é voto2, sendo descartada a hipótese de receber dados inválidos pela serial através do
8051.

Figura 25 Foto do módulo via Interface com o Usuário (Kit 8051 + Circuito Auxiliar)
44
7. Conclusão

Através do desenvolvimento do projeto final do curso de Engenharia da


Computação conseguimos aprender a usar todo o conhecimento aprendido durante o
curso, nas matérias mas específicas em especial, utilizando implementações, testando os
softwares, implantando banco de dados, como trabalhar com um projeto na área de
engenharia, bem como a estipular datas para as atividades envolvidas em um projeto. Um
dos métodos mais importantes para o desenvolvimento de um projeto é a realização de
um cronograma porque nos mostra onde inicia, onde se encerra e todas as atividades que
serão exercidas no meio do cronograma. Isso torna o trabalho mais organizado e mais
fácil para o desenvolvedor. O cronograma é toda a base do projeto, para que todo o
trabalho seja feito organizadamente e com qualidade.
Durante o desenvolvimento do projeto, tive diversas dificuldades, pois se foi
necessário o aprendizado de uma linguagem não abrangida durante o curso, mas que
existe uma semelhança com a linguagem C, que é a linguagem dinâmica de criação de
páginas de Internet, o PHP. Durante o desenvolvimento da página também foi-se
necessário a instalação do banco de dados MYSQL, que seria o responsável pelo
armazenamento da votação de uma forma geral. A linguagem SQL foi aprendida durante o
curso, que facilitou bastante o desenvolvimento da tabela do banco de dados e toda a
configuração da mesma.
Durante a implementação do projeto em si, houve algumas mudanças no circuito
auxiliar para simplificação do circuito que não se fazia necessário, logo foi retirada e
alterada. Na implementação do software, onde foi a parte mais trabalhosa, o
desenvolvimento de como o celular acoplado a serial faria para receber as mensagens.
Foi-se necessário um estudo como o celular trabalhava. Isso era um problema porque
houve dificuldades para encontrar a forma de como o celular é controlado a partir de um
cabo de dados (serial). As empresas fabricantes de aparelhos celulares e as operadoras
dificultam muito o acesso às informações sobre o funcionamento de seus aparelhos. Foi
necessário um estudo mais profundo desse funcionamento.
Um profissional deve estar atento ao mercado de trabalho, aberto a aprender coisas
novas e sempre se manter informado de tudo, não apenas na área de engenharia e
45
tecnologia, mas sim de todas as áreas, pois isso proporcionará um desempenho melhor
durante a sua vida.
Terminando, aprendi o funcionamento geral de como funciona todo o sistema de
gerenciamento de um projeto, desde os estudos sobre como realizar até a fase de
implementação do mesmo. Todo esse trabalho foi possível devido a estudos e esforços,
tendo como visão o mercado de trabalho para o projeto, de como esse projeto funciona
nas pequenas e grandes empresas, que já utilizam essa forma de trabalho para entreter e
tirar conclusões sobre seu trabalho e o desempenho da empresa.
46
8. Cronograma

O período previsto para a realização do projeto está no Anexo 04.


47
9.Referencias Bibliográficas

[ 1 ] PEREIRA DA SILVA, V, Aplicações práticas do microcontrolador 8051. São Paulo,

Érica, 2000.

[ 2 ] SMS and the PDU format Lars Pettersson: http://www.dreamfabric. com/sms/

[ 3 ] TC45 AT Command Set Siemens Cellular Engines. 2003.

[ 4 ] Short Message Service: What, How, and Where?

http://www.wirelessdevnet.com/channels/sms/features/sms.html

[ 5 ] NICOLOSI, DENIS E.C., Microcontrolador 8051 Detalhado. São Paulo, Érica, 2001, 2ª

Edição.

[ 6 ] Página Oficial do PHP: http://www.php.net

[ 7 ] The Apache Software Foundation: http:///www.apache.org

[ 8 ] Development Open Source Database MySQL: http://www.mysql.org


48

ANEXOS

Você também pode gostar