Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
3.1.1 Microcontrolador
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).
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).
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.
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)
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
É 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.
- 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.
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.
4.3.1.Funções do Hardware
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
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
5.1.Apresentação do projeto
5.4.Projeto 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
5.4.3.Diagramas de Seqüência
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
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.
Para melhor entendimento dos campos criado acima, explica-se melhor na tabela
abaixo o significado de cada um:
Nome Significado
5.7.Projeto do Firmware
5.7.2.Diagrama de Estados
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
Érica, 2000.
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.
ANEXOS