Você está na página 1de 65

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E

TECNOLOGIA DE SÃO PAULO - CAMPUS PIRACICABA

CURSO DE TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL

Renato Honorato de Oliveira


Cledson Flavio Fernandes
Marcelo dos Santos Farias
Donizete Ap. Contessa

PROJETO DE CONCLUSÃO DO CURSO


TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL

TERMÔMETRO COM BLUETOOTH PARA PISCINAS

Piracicaba - SP
02/12/2016
Renato Honorato de Oliveira
Cledson Flavio Fernandes
Marcelo dos Santos Farias
Donizete Ap. Contessa

Termômetro com Bluetooth para piscinas

Monografia apresentada no Curso Superior


de Tecnologia em Automação Industrial do
Instituto Federal de Educação, Ciência e
Tecnologia de São Paulo – Campus
Piracicaba, como pré-requisito para a
obtenção do Título de Tecnólogo em
Automação Industrial.

Orientador:

Piracicaba - SP
02/12/2016
FOLHA DE APROVAÇÃO

Renato Honorato de Oliveira


Cledson Flavio Fernandes
Marcelo dos Santos Farias
Donizete Ap. Contessa

Termômetro com Bluetooth para piscinas

Trabalho de conclusão de curso apresentado ao


Instituto Federal de Educação, Ciência e
Tecnologia de São Paulo, como parte das
exigências para a obtenção do título de
Tecnólogo em Automação Industrial.

Piracicaba, 02 de Dezembro de 2016

BANCA EXAMINADORA

Profº. Marcelo Cunha da Silva – Orientador


Profº.Profº.
Raul Fernando
Ernesto Socoloski–
Kenji LunaOrientador
– Avaliador
Profº. Luiz Henrique Geromel - Avaliador
Profª. Lilian Marques Pino Elias - Avaliadora
Profº. Marco António Bergamaschi – Avaliador

Profº. Edson Stradiotto- Avaliador

DEDICATÓRIA
Profª. Lilian E EPÍGRAFE
Marques Pino Elias - Avaliadora
RESUMO
Está cada vez mais frequente o uso de dispositivos conectados entre si para auxiliar
determinas atividades dos seres humanos. É neste contexto que o presente trabalho, tem
por objetivo desenvolver um termômetro Bluetooth para piscinas, por meio do qual, o
usuário pode em tempo real visualizar a temperatura através de um Smartphone, sem a
necessidade de entrar em contato com a água da pisciana, evitando possíveis desconfortos,
como por exemplo, em estações do ano em que a água encontra-se com a temperatura
abaixo da esperada. O Protótipo localiza-se sob a água da piscina, possui uma célula foto
voltaica em conjunto com duas baterias, apara alimentar o sistema que faz tanto o
monitoramento quanto o envio via Bluetooth do valor da temperatura para um Smartphone.
ABSTRACT
The use of devices connected to each other to assist determined human activities is becoming more
frequent. It is in this context that the present work aims to develop a Bluetooth thermometer for
swimming pools, through which the user can in real time visualize the temperature through a
Smartphone, without the need to come into contact with the water of the pisciana, Avoiding possible
discomforts, such as in seasons of the year when the water is below the expected temperature. The
Prototype is located under the pool water, has a photo voltaic cell in conjunction with two batteries,
food storage system that does both monitoring and sending via Bluetooth the temperature value for
a Smartphone.

Sumário
1. INTRODUÇÃO................................................................................................................. 1
2. FUNDAMENTAÇÃO TEÓRICA.......................................................................................1
2.1. BLUETOOTH.......................................................................................................................2
2.1.1. Surgimento do Bluetooth................................................................................................2
2.1.2. Potência e Alcance........................................................................................................3
2.1.3. Versões do Bluetooth......................................................................................................4
2.1.4. Frequência.......................................................................................................................6
2.1.5. Comunicação..................................................................................................................7
2.1.6. Modulação.......................................................................................................................8
2.1.7. Núcleo de identificação pessoal – Pin......................................................................8
2.1.8. Redes Bluetooth............................................................................................................8
2.1.9. Estados de operação..................................................................................................10
2.2. ECLIPSE.............................................................................................................................11
2.3. MPLAB IDE........................................................................................................................12
2.4. MICRO CONTROLADOR PIC18F4550.........................................................................12
2.5. SENSOR DE TEMPERATURA LM35............................................................................13
2.6. MÓDULO BLUETOOTH HC-06......................................................................................14
2.7. PROTOCOLO RS-232......................................................................................................16
2.8. REGULADOR DE TENSÃO 7805..................................................................................17
2.9. CÉLULA FOTOVOLTAICA..............................................................................................17
3. DESCRIÇÃO DO FUNCIONAMENTO..........................................................................19
4. METODOLOGIA............................................................................................................ 20
4.1. DESENVOLVIMENTO DE SOFTWARE........................................................................21
4.1.3. Localizar Dispositivos.class.....................................................................................25
4.1.4. VisualizarPareados.class..............................................................................................25
4.1.5. ConectarBluetooth.class...............................................................................................26
4.1.6. Verifica Bluetooth.class.................................................................................................27
4.1.7. Código em linguagem C...............................................................................................27
4.1.8. Desenvolvimento do hardware.....................................................................................28
4.1.9. Circuito de controle........................................................................................................28
4.1.10. Conversão AD............................................................................................................29
4.1.11. Comunicação RS232.................................................................................................29
4.1.12. Displays de sete seguimentos.................................................................................30
4.1.13. Circuito de alimentação.............................................................................................30
5. MONTAGEM E TESTES DO PROTÓTIPO...................................................................32
5.1. MONTAGEM......................................................................................................................32
5.2. TESTES DO PROTÓTIPO...............................................................................................35
6. CONSIDERAÇÕES FINAIS...........................................................................................36
6. REFERÊNCIA BIBLIOGRÁFICA..................................................................................36

Lista de Figuras
Figura 1: Logotipo Bluetooth.................................................................................................11
Figura 2: Multiplexação no tempo.........................................................................................16
Figura 3: Configurações de Piconets....................................................................................18
Figura 4: Configuração da Scatternet....................................................................................19
Figura 5: Diagrama de estados de conexão..........................................................................20
Figura 6: PIC 18f4550........................................................................................................... 21
Figura 7: Sensor de Temperatura LM35...............................................................................22
Figura 8: Diagrama do sistema.............................................................................................24
Figura 9: Tela inicial do aplicativo.........................................................................................26
Figura 10: Caixa de diálogo..................................................................................................26
Figura 11: Tela de busca por novos dispositivos...................................................................27
Figura 12: Tela de dispositivos identificados.........................................................................27
Figura 13: Tela de solicitação de pareamento......................................................................27
Figura 14: Tela de informação de temperatura.....................................................................28
Figura 15: Diagrama elétrico do circuito de controle.............................................................32
Figura 16: Diagrama elétrico do circuito regulador de tensão...............................................34

Lista de tabela

Tabela 1: Potência e Alcance dos transmissores Bluetooth..................................................12


1

1. INTRODUÇÃO
Com o advento de tecnologias mais acessíveis, levando em consideração o
custo e disponibilidade, é cada vez mais comum o desenvolver dispositivos que
comunicam entre si para auxiliar tarefas, mesmo que simples, das pessoas ou
processos, como por exemplo, relógios que recebem atualizações do Smartphone
das redes sociais, facilitando a visualização do usuário.
A interatividade do ser humano com determinados aparatos tecnológicos,
estão ligados a praticidade, segurança, entretenimento, conforto, dentre outros. Com
a popularização dos Smartphones, muitas empresas estão desenvolvendo
aplicativos e acessórios para a interação entre as pessoas e as máquinas. Nesse
contesto, o presente trabalho tem por objetivo desenvolver um dispositivo, que seja
capaz de monitorar a temperatura da água de uma piscina com ou sem sistema de
aquecimento d´água, informando tal parâmetro via conexão Bluetooth com um
Smartphone para o usuário. Entretanto nos modelos atuais de termômetros para
este fim, seja ele termômetro de mercúrio ou com mostrador digital (necessidade de
recarregar bateria), em ambos os casos o usuário é obrigado a entrar em contato
com a água da piscina para a interação. Já o termômetro com Bluetooth possui um
módulo que realiza tanto a leitura da temperatura, exibe tal parâmetro em um display
de sete seguimentos como a transferência de dados via Bluetooth. O equipamento é
alimentado através de um sistema fotovoltaico que faz a recarga da bateria,
isentando a necessidade de acoplamento a um carregador.
O termômetro Bluetooth proporcionará comodidade, isentando necessidade
de entrar em contato com a água da piscina, evitando possíveis desconfortos para o
usuário, como por exemplo, em estações do ano que a água encontra-se abaixo da
temperatura esperada. Existe a possibilidade de visualizar a temperatura
diretamente no módulo através de um conjunto de displays, em casos, por exemplo,
que o usuário encontra-se dentro da piscina e se interesse em visualizar a
temperatura água, evitando possíveis danos ao Smartphone, caso esteja em contato
com a água.

2. FUNDAMENTAÇÃO TEÓRICA

Nos capítulos abaixo serão apresentados as referências nas quais se baseia


a o projeto em estudo.
2

2.1. BLUETOOTH

O Bluetooth oferece uma solução para conexões sem fio entre aparelhos à
curta distância e como características principais possui baixo custo e baixo
consumo de energia (Labiod, Afifi, & Santis, 2007).

Bluetooth é um padrão para comunicação sem fio através de um sistema de


rádio de curto alcance utilizado para interconectar os mais variados dispositivos
eletrônicos, tais como os teclados, televisores, home theaters, smartfones, celulares,
impressoras, fones de ouvido, joysticks, mouses, etc. O bluetooth é também muito
utilizado para a comunicação entre computadores portáteis atuando como ponte
entre outras redes como a Internet. Esta série de aplicações é conhecida como
Wireless Personal Area Network (WPAN). As principais características dessa
tecnologia é a robustez, baixo custo, pequeno consumo de energia e a capacidade
de trabalhar com transmissões de dados e de voz ao mesmo tempo.

2.1.1. Surgimento do Bluetooth

A ideia original do Bluetooth surgiu em 1994, quando a empresa Ericsson


Móbile Communications começou a estudar e a desenvolver uma tecnologia que
permitisse a comunicação entre telefones celulares e outros acessórios utilizando
sinais de rádio de baixa potência para a substituição dos cabos. Com base no
estudo dos mecanismos de comunicação em redes de telefonia celular, a empresa
criou um sistema de rádio de curto alcance denominado MCLink. Mais tarde, a
Ericsson percebeu que o projeto poderia dar certo já que a tecnologia era de
implementação relativamente fácil e de baixo custo.

O nome Bluetooth foi uma homenagem a um rei dinamarquês chamado Harald


Blatand, também conhecido como Harald Bluetooth (Haroldo Dente-Azul). Um dos
seus grandes feitos foi à unificação da Dinamarca, e, com alusão e este fato, o
nome Bluetooth foi escolhido. Logo, uma tecnologia que unificasse os mais variados
dispositivos das diversas empresas. O logotipo do Bluetooth que pode ser visto na
3

Figura 1, é a reunião de dois símbolos nórdicos que correspondem às iniciais de


Harald.

Figura 1: Logotipo Bluetooth

Apartir 1997, outras empresas começaram a interessar-se pelo projeto. Um


ano mais tarde, foi criado o Bluetooth Special Interest Group (SIG), consórcio
formado pelas empresas Ericsson, Intel, IBM, Toshiba e Nokia. Estas empresas,
destacavam-se entre as maiores empresas na área de telecomunicações,
fabricação de computadiores e no desenvolvimento de chips e processadores. Com
tal diversidade, o desenvolvimento do padrão tornou possível o uso e a
interoperabilidade dos mais variados dispositivos dentro da tecnologia.

Em 1999, foi criada a primeira versão do protocolo Bluetooth. No ano de


2000, outras empresas se juntaram ao grupo SIG: a 3Com, Agere (Lucent
Technologies), Microsoft e Motorola no desenvolvimento da tecnologia. A partir de
março de 2002, o padrão oficial IEEE 802.15.1 do Bluetooth versão 1.2 foi aprovado
pelo grupo de trabalho Institute of Electrical and Electronics Engineers (IEEE)
802.15.

Conforme relatos históricos, em 1999 foi criado a primeira versão do protocolo


Bluetooth, sendo que no ano de 2000, as empresas 3Com, Agere (Lucent
Technologies), Microsoft e Motorola se juntaram ao grupo SIG no desenvolvimento
da tecnologia. A partir de março de 2002, o grupo de trabalho do Institute of
Electrical and Electronics Engineers (IEEE) definiu como padrão oficial o IEEE
802.15.1 do Bluetooth versão 1.2.

2.1.2. Potência e Alcance

O Bluetooth é baseado numa comunicação sem fio com baixo consumo de


energia que permite transmitir dados entre os mais variados dispositivos dotados
desta tecnologia. No entanto, é necessário que haja uma combinação entre
4

hardware e software para que ocorra a comunicação através de radiofreqüência, ao


qual permita que um dispositivo detecte o outro independente de suas posições,
dentro de um limite de proximidade. A Tabela 1 mostra a potência e o alcance
conforme as classes de transmissores.

Tabela 1: Potência e Alcance dos transmissores Bluetooth

Transmissor Potência Máxima Alcance


Classe 1 100 mW (20 dBm) Até 100 metros
Classe 2 2,5 mW (4 dBm) Até 10 metros
Classe 3 1 mW (0 dBm) Até 1 metro

Baseado nas classes de potência e alcance, conforme tabela acima, tem-se por
exemplo, um dispositivo de classe 3, poderá se comunicar com qualquer outro
dispositivo de qualquer classe se a distância entre eles for de até 1 metro. Distância
suficiente parara conectar um celular nas mãos ou até mesmo no bolso da calça a
um fone de ouvido.

2.1.3. Versões do Bluetooth

Constantemente, a tecnologia Bluetooth passa por evoluções, resultando em


diferenças de suas especificações ao qual resultam em novas versões. Abaixo,
será citado as versões de Bluetooth, desde as mais antiagas a atual.

Bluetooth 1.0: a primeira versão permite a troca de informações entre dois ou


mais dispositivos apenas com a aproximação entre eles. Por se tratar da primeira
experiência, os fabricantes encontraram vários problemas que dificultavam esta
implementação e a interoperabilidade entre dispositivos com esta tecnologia. O
mercado ainda estava aprendendo a lidar com essa novidade e não tardou em
lançar a versão 1.0B para solucionar alguns problemas.

Bluetooth 1.1: lançada em fevereiro de 2001, esta versão representa o


estabelecimento do Bluetooth como um padrão IEEE 802.15, ou seja, padrão
utilizado para redes pessoais (PAN). Cada padrão representa uma tecnologia
otimizada para determinado tipo de mercado e são projetadas de modo a serem
5

complementares entre si. Nela, muitos problemas encontrados na versão 1.0B


foram solucionados e o suporte ao sistema implementado RSSI (RECEIVED
SIGNAL STRENGTH INDICATOR - Indicador da Força do Sinal Recebido em
relação a um ambiente sem fio).

Bluetooth 1.2: lançada em novembro de 2003, a versão 1.2 tem como


principais novidades conexões mais rápidas, melhor proteção contra interferências,
suporte aperfeiçoado a scatternets (rede wirelless) e processamento de voz mais
avançado. Nessa versão temos também menos interferências e um sinal mais forte.

Bluetooth 2.0: lançada em novembro de 2004, a versão 2.0 trouxe importantes


aperfeiçoamentos à tecnologia: aumento na velocidade de transmissão de dados
para 3 Mbps (2.1 Mbps efetivos), correção de falhas existentes na versão 1.2 e
melhor comunicação entre os dispositivos. O suporte para áudio foi criado,
possibilitando assim ouvir música estéreo via fones Bluetooth. Outra melhoria foi
permitir a conexão de vários aparelhos ao mesmo tempo. Além disso, um
importante aperfeiçoamento, principalmente para aparelhos que funcionam a
baterias, ao qual resultou em um menor consumo de energia.

Bluetooth 2.1: lançada em agosto de 2007, a versão 2.1 tem como destaques
o acréscimo de mais informações nos sinais Inquiry (permitindo uma seleção
melhorada dos dispositivos antes de estabelecer uma conexão), melhorias nos
procedimentos de segurança (inclusive nos recursos de criptografia) e melhor
gerenciamento do consumo de energia. O emparelhamento também teve um
funcionamento melhor (emparelhamento é o ato de se conectar um aparelho
Bluetooth a outro).

Bluetooth 3.0: versão lançada em abril de 2009, tem como principal atrativo
um enorme salto nas taxas de velocidade de transferência de dados. Dispositivos.
compatíveis podem atingir a marca de 24 Mbps de transferência. Outra vantagem
é o controle mais inteligente do gasto de energia exigido para as conexões. O
Bluetooth 3.0 é compatível com as versões anteriores da tecnologia. Vários
aprimoramentos na conectividade e na estrutura deixam o Bluetooth mais
poderoso do que nunca, porém, mais ágil e seguro. Com essa nova versão, os
6

fabricantes de produtos com tecnologia Bluetooth se beneficiarão com aumento de


qualidade e menor custo de produção.

Bluetooth 4.0: versão lançada em 2009, é uma atualização à tecnologia


wireless Bluetooth 3.0. A versão 4.0 trabalha com baixo consumo de energia para
transmitir pequenos volumes de dados a pequenas distâncias, permite aos
dispositivos atravessarem redes Wi-Fi 802.11 para transferir dados a uma
velocidade de até 25 Mbps. A nova tecnologia inicialmente foi introduzida em
relógios, contadores inteligentes, pedómetros e outros gadgets que funcionam com
pequenas pilhas. Essa tecnologia posteriormente passou a ser aplicadas em
aparelhos como câmaras fotográficas para permitir a comunicação com outros
dispositivos.

Bluetooth 5.0: a nova versão foi anunciada em um evento oficial em Londres, o


grupo de interesse especial Bluetooth (também conhecido como o SIG) divulgou
seus planos para trazer um novo padrão de interfaces Bluetooth e periféricos. Esta
nova versão do Bluetooth será lançada para os dispositivos entre 2016 ou 2017. A
empresa anunciou que o Bluetooth 5.0 terá novos recursos que de longe são bem
melhores que o padrão atual, incluindo uma avançada distância (4 vezes mais),
maior velocidade (até duas vezes mais) e confiabilidade, bem como oito vezes a
capacidade de dados que uma rede pode manipular.

2.1.4. Frequência

Os dispositivos Bluetooth utilizam a banda de 2,4 GHz, que é uma freqüência


de rádio aberta na maioria dos países e que nos EUA é conhecida como banda ISM.
Nos países europeus e nos EUA, são atribuídos 79 canais de 1 M Hz de largura,
enquanto que apenas 23 canais são alocados na França, Espanha e Japão. Os
canais são acessados usando uma técnica chamada Frequency Hopping Spread
Spectrum (FHSS), com uma taxa de 1 Mbps e modulação GFSK. Esse esquema de
comunicação utiliza do pelo Bluetooth (FH), permite, mesmo utilizando uma
freqüência aberta, garantir que o sinal Bluetooth não sofra ou gere interferências. O
“salto de freqüência” consiste em acessar os canais de rádio diferentes de maneira
muito rápida, fazendo com que a largura debanda fique muito pequena e diminuindo
consideravelmente a chance gerar interferência.
7

Um dispositivo Bluetooth pode transmitir ou receber dados (modo full-


duplex), a transmissão é alternada entre slots para transmitir e slots para receber
dados utilizando um esquema chamado Frequency Hopping Time-Division Duplex
(FH-TDD). Esses slots são canais divididos em períodos de 625 µ s
(microssegundos), ou seja, em 1 segundo temos até 1600 saltos. O dispositivo
denominado mestre inicia suas transmissões nos slots impares, enquanto que os
escravos utilizam os slots pares. A mensagem poderá durar de 1, 3 ou 5 slots
consecutivos. A Figura 2 exemplifica como é feitaa multiplexação no tempo.

Figura 2: Multiplexação no tempo

O canal é dividido em slots de tempo com duração de 625 µs. No slot f(k) o mes
tre transmite seus pacotes. Em f(k+1), o escravo transmite seus pacotes e assim
sucessivamente. Veremos mais adiante que para uma piconet com vários escravos,
o mesmo raciocínio é aplicado.

2.1.5. Comunicação

O Bluetooth faz uso de dois padrões de comunicação, o padrão síncrono


conhecido Synchronous Connection-Oriented (SCO) e assíncrono Asynchronous
Connection-Less (ACL). O link físico SCO é um link simétrico, ponto-a-ponto entre o
dispositivo mestre e um escravo específico. É utilizado para a transmissão de dados
contínuos, como por exemplo, a voz. Os slots são pré-reservados para cada
dispositivo Bluetooth envolvido. Nesse padrão a retransmissão do pacote não é
realizada. Quando ocorrer a perda de dados de voz, como no exemplo, o receptor
acaba reproduzindo o som como um ruído. A taxa de transmissão de dados no
modo SCO é de 432 Kbps, sendo de 64 Kpbs para voz.
8

Já o link assíncrono ACL, provê uma conexão assimétrica, ponto-multiponto e


tira proveito dos slots não usados pelas conexões síncronas para transmiss ão dos
dados. É considerada uma conexão de chaveamento por pacotes. Ao contrário do
SCO, o ACL permite o reenvio de pacotes de dados perdidos. É utilizado por
aplicações que precisam garantir a integridade dos dados como a transferência de
arquivos. A taxa de transmissão de dados no modo ACL pode alcançar 721 Kbps.

2.1.6. Modulação

O Bluetooth utiliza basicamente a modulação FSK. Es ta técnica é


semelhante ao FM, porém FSK desloca a freqüência através de dois pontos
separados e fixos. A freqüência mais alta é chamada de marca, enquanto que a
freqüênciamenor é chamada de espaço. Existe também um modo opcional
chamado deEnhanced Data Rate (EDR) que usa modulação PSK na seqüência de
sincronização, carga útil e trailer e GFSK no código de acesso e no cabeçalho. Para
ambos os modos, a taxa de transmiss ão de símbolos é de 1 Msps (mega símbolos
por segundo), sendo que, a taxa de transmissão de bits é aproximadamente 1 Mbps
no modo FSK e de até 3 Mbps no modo EDR.

2.1.7. Núcleo de identificação pessoal – Pin

Os dispositivos Bluetooth utilizam uma chave de acesso denominada


Personal Identification Number (PIN) para autenticação. Sempre que um dispositivo
deseja estabelecer uma conexão, um pedido de permissão deverá ser enviado. Se a
chave de acesso digitada pelo usuário corresponder à chave de acesso do
dispositivo detectado, a autenticação será realizada com êxito. Se não corresponder,
a autenticação não acontecerá e um aviso de falha será enviado ao dispositivo
solicitante.

2.1.8. Redes Bluetooth

Quando dois ou mais dispositivos compartilham o mesmo canal físico de uma


conexão Bluetooth, eles formam uma rede chamada piconet. Um dos dispositivos
9

Bluetooth será o mestre (master) , enquanto que os demais dispositivos, quando


houver, tornar-se-ão escravos (slave). Até 7 escravos podem estar ativos numa
piconet, e, ainda, muitos outros escravos podem se encontrar conectados em um
modo estacionado (park). Cada escravo estacionado recebe um endereço de 8 bits
e leva apenas 2 ms par a tornar-se ativo. Cabe ao mestre a tarefa de gerenciar a
transmissão de dados na rede e o sin cronismo entre os dispositivos.

Figura 3: Configurações de Piconets

Como podemos observar na Figura 3, as operações b ásicas dentro de um


piconet são: a) mestre com apenas um escravo operando; b) mestre com múltiplos
escravos operando; c) mestre com múltiplos escravos operando e outros escravos
em modo estacionado. Em todas as configurações é possível observar que existe
soment e um mestre para um ou mais escravos. Isso se explica para que não
existam duas piconets com a mesma seqüência de saltos de freqüência, mas o
mestre de uma piconet pode ser escravo em outra piconet.

As Piconets reunidas, que são interligadas através de dispositivos Bluetooth


que fazem parte de uma ou mais piconets formam uma scatternet. Nessas piconets
deve existir sempre uma seqüência de saltos diferentes para que uma piconet não
interfira na outra. À medida que novas piconets se juntem, à possibilidade de utiliz
ação da mesma freqüência aumenta e o desempenho pode cair. Na Figura 4
podemos observar a intrincada rede formada pela reunião de piconets.
10

Figura 4: Configuração da Scatternet

Essas “redes espalhadas” chamadas de scatternet qua ndo interligadas,


formam um sistema ad-hoc composto de múltiplas redes. As redes ad-hoc, não
possuem um nó ou terminal encarregado de receber e encaminhar todas as
comunicações, sendo que, qualquer terminal pode exercer essas funções. Portanto,
uma scatternet é uma rede ad-hoc e todas são WPANs.

2.1.9. Estados de operação

O dispositivo Bluetooth pode estar em dois estados principais de operação


denominados de espera (standby) e de conexão ( connection). O estado de standby
é o estado padrão de baixo consumo de energia, onde apenas o relógio nat ivo do
dispositivo permanece ativo. No estado de conexão o dispositivo Bluetooth pode inte
ragir diretamente com outros dispositivos. A Figura 5 mostra o diagrama de estados
de um controlador Bluetooth.
11

Figura 5: Diagrama de estados de conexão

O estado de conexão se divide em quatro modos: ativo, sniff, hold e park. No


modo ativo o mestre manda pacotes de sincronização periodicam ente e os
escravos recebem e transmitem pacotes. No modo sniff a transmissão entre mestre
e escravo se dá atravésde slots de tempo específicos. No modo hold o escravo fica
sem receber e enviar pacotes por um tempo pré-determinado. Depois pode
sincronizar-se novamente com o mestre e espera por instruções. No modo park o
escravo também não transmite nem recebe pacotes, mas mantém o sincronismo
com o mestre e recebe um endereço glo bal de estacionamento (parked address),
onde o dispositivo passa a usar um endereço glob al em vez do seu endereço
físico. O modo park é de baixíssimo consumo de energia e em tempos regulares, o
dispositivo escuta o canal para verificar eventuais transmissões.

2.2. ECLIPSE

Segundo Lecheta (2014), a Google tem preferência pelo ambiente de


desenvolvimento Eclipse. Para facilitar o desenvolvimento, a compilação e os testes,
existe o plugin ADT (Android Development Tools). Outra possibilidade com o ADT é
rodar diretamente do Eclipse, o emulador do Android com a maioria das
funcionalidades de um Smartphone, para os testes dos aplicativos durante a sua
implementação.

O atual trabalho, considerando que é dominado o conhecimento da linguagem de


programação Java e a utilização da plataforma Eclipse com plugin ADT , optou-se
pela utilização de tal programa considerando que a maioria dos telefones utilizam o
12

sistema Andorid com versões a partir da 2.3. Desta forma é visado que o protótipo
juntamente com a APP (aplicativo), poderá atingir a maioria dos usuários que se
interessem por tal dispositivo.

2.3. MPLAB IDE

Segundo Miyadaira (2011), o MPLAB IDE é um programa que traz fermenta


para gerenciar e elaborar códigos para microcontroladores e possibilita uma simples
conexão o compilador MPLAB C18 ou outros. O MPLAB C18 é um compilador para
microcontroladores da linha PIC18, sedo compatível com o parado ANSI (American
National Standards Institute), possibilita a utilização em um mesmo projeto tanto os
códigos em Assembly quanto em C, níveis configuráveis de otimização de código e
disponibiliza uma biblioteca ampla que possibilita controlar vários periféricos do
PIC18.

2.4. MICRO CONTROLADOR PIC18F4550


O micro controlador PIC18F4550 segundo Miyadaira (2011), sendo baseado
na arquitetura Harvard e suas instruções são do tipo RISC (computador com
Conjunto Reduzido de Instruções). Tal dispositivo é de 8 bits, possui uma memória
de programa de 32kbytes e memória RAM (memória de acesso randômico) de 2.048
bytes, sua tensão de alimentação é de 4 a 5,5 voltes, sua frequência de operação é
de ate 48MHZ com oscilador externo ou 8MHz com oscilador interno. O chip deste
microcontrolador possui quarenta pinos, sendo que, trinta e cinco destes pinos,
dependendo da forma que forem configurados, podem ser entradas ou saídas, ou
ainda, configurados como diversos periféricos, tais como, memória EEPROM de 256
bytes, um módulo CCP (Capture, Compare or PWM) e outro ECCP
(Enhanced,Capture, Compare or PWM), treze módulos A/D (analógico /digitais)
possui resolução de 10 bits, dois comparadores analógicos, uma comunicação
EUSART, entre outros. É possível visualizar todos os pinos na figura 6.
13

Figura 6: Microcontrolador PIC18F4550

No projeto em questão, é utilizado o pino 1 do canal analógico 0 (AN0) é


usado como conversor A/D para leitura do sensor de temperatura, os pinos de 19 a
29 (RD) e 33 a 39 (RB) são configurados como saída digital para controle dos
displays de sete seguimentos e os pinos 25 (TX - transmissão assíncrona EUSART)
e 26 (RX - recepção assíncrona EUSART) para comunicação com o modulo
Bluetooth.

Como o pic18f4550 foi objeto de estudos de algumas disciplinas do curso,


opinou-se por sua utilização como formar de aprimoramento dos conhecimentos
obtidos.

2.5. SENSOR DE TEMPERATURA LM35

Conforme Pinto, Silva, Vieira e Sousa (S.D), o LM35 é um sensor de


temperatura consideravelmente simples, sem a necessidade de implementação de
um circuito condicionador de sinais, fornece uma tensão no pino de saída que é
linear e proporcional à temperatura.

A figura 7 mostra o sensor de temperatura utilizado e a especificação dos


pinos.
14
Figura 7: Sensor de Temperatura LM35

Fonte: http://www.usinainfo.com.br/sensores-para-arduino/sensor-de-temperatura-
lm35-para-projetos-3099.html (acessado em 06/08/2016).

O LM35 é produzido pela National Semicondutores, sendo um transdutor de


precisão em centígrados, possui uma tensão de saída analógica, sua faixa de
medição é de -55°C a +150°C com uma precisão de ± 0,5°C. A tensão de saída é de
10mV por Grau Celsius e saída pode ser conectada diretamente a um Amplificador
Operacional. Por exemplo, se é mensurado em sua saída 222 mV, indicará que a
temperatura é de 22,2°C, qualquer multímetro em sua escala de tensão pode ser
usado como um termômetro de precisão. Partindo deste princípio, qualquer projeto
que envolva tal componente, pode ser simplificado tanto em hardware quanto em
software.

No projeto atual, o LN35 passa os parâmetros da piscina para que o sistema


possa processa-los. Sua escolha se deu por sua simplicidade, como dita
anteriormente, apresentado melhor custo benefício.

2.6. MÓDULO BLUETOOTH HC-06

O módulo bluetooth HC-06 conforme folha de dados (anexo A), facilita a


forma de comunicação sem fio entre dispositivos, por possuir toda a parte de
hardware pronta em um só módulo, necessita apenas de dois terminais para
comunicação via RS232 isentando a necessidade de implementações. O pino TX
transfere os dados recebidos via Bluetooth para o microcontrolador, já o pino RX
recebe os dados do microcontrolador para transferência via Bluetooth. Sua placa
possui um LED que indica se o módulo está pareado com outro dispositivo. Tal
módulo é do tipo slave (escravo), não possibilita a conexão com outros dispositivos,
entretanto, encontrar-se a disposição para que outros aparelhos possam conectá-lo.

É possível visualizado na figura 8.


15

Fonte: http://www.pulsatek.com/en/bluetooth-wireless/84-modulo-bluetooth-hc-06-

Figura 8: Módulo Bluetooth HC06


wireless-arduino-module-transceiver-inalambrico-shield.html (acessado em
06/08/2016).

Especificações:

 Pinos: VCC , GND , TXD , RXD;


 Tensão de Alimentação: 3,6 a 6V;
 Módulo bluetooth possui antena interna;
 Cobertura de sinal: até 10m (sem barreiras físicas);
 Especificação Bluetooth v2.0 + EDR;
 Freqüência: banda de 2.4GHz ISM;
 Modulação: GFSK (Gaussian Frequency Shift Keying);
 Potência de transmissão: não mais do que 4dBm, Classe 2;
 Taxa de dados: Assíncrono: 2.1Mbps (Max) / 160 kbps - Síncrono:
1Mbps/1Mbps
 Perfis suportados: Bluetooth Serial Port (slave);
 Taxa máxima de transmissão serial: 1382400bps;
 Configuração padrão: 9600bps/senha 1234;
 Dimensões: 4.3 x 1.6 x 0,7cm;

O módulo HC-06 é utilizado neste projeto por ser um componente comumente


encontrado no mercado, por possuir um custo reduzido em comparação com outros
16

modelos, alem desses, destaca-se como principal vantagem à praticidade na sua


utilização, necessitando apenas da conexão da alimentação e dos pinos TX e RX.

2.7. PROTOCOLO RS-232

Conforme Niyadaira (2011), o padrão de protocolo para comunicação serial


RS-232 foi desenvolvido pela EIA (Electronic industries Association).

O funcionamento de tal protocolo consiste em obsevar que no canal de


transmissão estar em nível lógico alto (1), isso quer dizer que não estar enviando
dados. Ao iniciar uma transmissão de dados, indica-se colocando o canal em Start
bit (nível lógico 0) , para informar ao receptor o inicio de tal transmissão. O receptor
inicia automaticamente uma contagem de tempo pra recebimento dos dados.

Posterior ao Start bit, o transmissor envia a informação de 8 bits de acordo


com a tabela ASCII (anexo C) , inicia-se pelo bit menos significativo, em seguida o
bit de paridade (opcional) que é responsável pela analise de erros, seguido um Stop
Bit que sinaliza para o receptor o fim da transmissão. Tal Protocolo geralmente
utiliza taxas de transmissões de 300dps, 600bps,

É possível visualizar na figura 9 o vetor relativo a transmissão assíncrona RS-


232.

Figura 9: Transmissão RS-232

Fonte: http://www.newtoncbraga.com.br/index.php/eletronica/52-artigos-
diversos/12095-comunicacao-serial-usando-o-protocolo-rs232-tel213 (acessado em
06/08/2016).
17

2.8. REGULADOR DE TENSÃO 7805

Conforme folha de dados (anexo C), o regulador de tensão 7805 possui as


seguintes especificações:

 Tensão de entrada: DC 7~20V;


 Tensão de saída: DC 5V;
 Corrente de saída máxima: 1ª;
 Proteção térmica contra sobrecarga;
 Proteção contra curto-circuito;
 Encapsulamento: TO-220;
 Temperatura de operação: -40 a 125 °C;

Devido tanto a sua característica de estabilizar a tensão de saída mesmo que


a tensão de entrada ou corrente de saída não estejam estabilizadas como a
simplicidade de implementação, mostrou ser o componente mais indicado para ser
aplicado no controle da variação de tensão é fornecida pela célula fotovoltaica e pelo
conjunto de baterias.

2.9. CÉLULA FOTOVOLTAICA

O efeito foto voltaico segundo Villalva , o fenômeno físico do efeito


fotovoltaico, permite a transformação da energia solar em corrente elétrica, devido a
incidência dos raios luminosos em materiais semicondutores específicos que
constituem uma célula solar.

Na figura 10 mostra os componentes de uma célula fotovoltaica.

Figura 10: Transmissão RS-232


18

http://www.electronica-pt.com/painel-solar-fotovoltaico (acessado em 03/12/2016)

A zona metálica coleta a corrente elétrica gerada e a disponibiliza para uso


nos terminais para conexão da carga. A parte superiro da placa de silício não pode
ser bloqueada dos raios solares, por essa razão a zona metálica superior é em
formato de tela de fina espessura.

As células fotovoltaicas são fabricadas em diversas tecnologias, sendo que as


mais usuais comercialmente são as de silício monocristalinos, policristalino e a do
filme fino de silício.

Especificações da placa solar utilizado no protótipo:

 Tensão: 9 V ;
 Potência: 3 W;
 Material: Monocristalino;
 Dimensões: 125x195mm;
 Peso: 97g.

Para a determinação tais características, considerou-se que é a melhor opção


de célula fotovoltaica, seria aquela que atender as especificações do tempo de carga
da abateria adotada no trabalho atual.

2.10. BATERIA

Atualmente as baterias de Lithium-Ion (Li-Ion) segundo Duarte (2014),


possuem um tempo de vida útil maior que as demais baterias disponíveis no
mercado, por essa razão é largamente encontrada nos dispositivos móveis. As
baterias de Li-Ion disponibilizam em relação às baterias de Ni-MH, o dobro da
capacidade de armazenamento de energia. Alem do que, seu tamanho é reduzido
em comparação com a baterias de Ni-MH com o mesmo valor de tensão, tornado-se
ideal para dispositivos compactos. Outra vantagem da bateria de Li-Ion é que não
possuem o efeito memória, dispensando a necessidade de esgotamento total da
19

mesma para fazer a carga da corrente elétrica. Entretanto deve-se evitar ultrapassar
o limite de cara nominal, pois oferece risco de explosão do invólucro da bateria.

A bateria de Li-Ion que foi escolhida para o protótipo possui as seguintes


características:

 Tensão: 3,7V
 Capacidade: 1400mAh
 Ponto de proteção de sobrecarga: 4,2v
 Ponto de proteção de descarga: 2,7v

As vantagens em relação ao bom desempenho e compactação de uma


bateria de Li-Ion, foram os fatores fundamenteis que ajudaram na escolha.
Entretanto, um detalhe que influenciou na escolha do modelo de tal componente,
estar relacionado com o circuito interno que faz a proteção de para que a carga não
exceda o valor máximo da tensão suportada e que não seja inferior ao consumo
mínio. Tais detalhes são importantes para a simplificação do circuito.

3. DESCRIÇÃO DO FUNCIONAMENTO

O funcionamento do Termômetro Bluetooth, será explicando conforme o


diagrama da figura 11 para facilitar o entendimento.

Figura 11: Diagrama do sistema (arquivo pessoal)


20

O sistema de alimentação é composto por uma célula foto voltaica como fonte
de energia alternativa, um conjunto de duas baterias de lition e um regulador de
tensão. Tal sistema é responsável por garantir o funcionamento de todos os
componentes do termômetro, sem que aja a necessidade de recarregar da bateria
através de um carregador externo pele usuário. A célula fotovoltaica quando
encontra-se em funcionamento, fornece tensão e corrente tanto para carregar a
bateria, quanto para alimentar o regulador de tensão. As baterias são utilizadas para
manter o equipamento em funcionamento quando a célula solar encontra-se
desacoplada eletronicamente.

O microcontrolador PIC18F4550 é responsável pela aquisição da grandeza


física através do sensor, pela exibição do valor de tal grandeza no conjunto de
displays de sete seguimentos e o controle do trafego de dados disponível nos pinos
RX e TX.

Já módulo Bluetooth HC06, quando se encontra pareado com o Smartphone,


é utilizado exclusivamente para a transferência de dados serialmente por onda radio.
O Smartphone por sua vez, através do aplicativo PicinaIFSP , solicita o valor da
temperatura para atualização da tela de supervisão a cada quatro segundos.

4. METODOLOGIA

Para o desenvolvimento deste protótipo, primeiramente necessitou-se à


aquisição do módulo HC06. Tal módulo foi acoplado, conforme figura 12, ao Kit de
desenvolvimento PIC18F#UDTEC.
21

Figura 12: Modulo HC-06 acoplado ao Kit PIC18F#UDTEC (arquivo pessoal).

Após a conexão entre o modulo e o kit, elaborou-se um programa básico para


comunicação RS232 em linguagem C, que consistiu inicialmente em receber e
enviar um único bit via serial entre tais dispositivos. Tal código foi descarregado no
Kit PIC18F#UDTEC, para comunica-se com o Smartphone que foram utilizados no
auxilio ao desenvolvimento do aplicativo PiscinaIFSP. Com o total funcionamento do
aplicativo, iniciou-se o desenvolvimento do código em C e no programa Proteus
elaborou-se os circuitos do Termômetro Bluetooth, para simulação do desempenho
e correções de possíveis falhas de funcionamento.

Após as simulações, adquiriu-se os componentes eletrônicos necessários a


montagem do circuito eletrônicos. Logos após a montagem, reestruturou-se o código
em linguagem C para o total funcionamento de todos os periféricos do equipamento.
Será descrito nos tópicos que se seguem, os passos que foram necessários para o
desenvolvimento e finalização do projeto.

4.1. DESENVOLVIMENTO DE SOFTWARE

4.1.1. Aplicativo Piscina IFSP


22

O aplicativo PiscinaIFSP foi inteiramente desenvolvido na IDE Eclipse com o


plugin Android Developer Tools. A funcionalidade do aplicativo depois de acessado
no Smartphone, consiste inicialmente no menu (activity_main.xml) que possibilita ao
usuário escolher a opções de conectar-se ao termômetro Bluetooth ou sair da tela
inicial.

É possível visualizar na figura 13, a tela inicial com seu menu de botões.

Figura 13: Tela inicial do aplicativo (arquivo pessoal)

Pressionado o botão Conectar, o sistema verifica se o Smartphone suporta


Bluetooth. Caso não esteja disponível esse recurso, o processamento é finalizado.
Entretanto, se há disponibilidade do dispositivo Bluetooth, verifica se o mesmo
encontra-se ativado, caso contrário, o sistema pede permissão ao usuário, para o
APP ativar o dispositivo.

A figura 14 exibe a caixa de dialogo na transição da tela (dispositivos.xml).

Figura 14: Caixa de diálogo (arquivo pessoal)


23

Após a confirmação da permissão de ativação, são listados instantaneamente


na tela todos os dispositivos que se encontram pareados com o Smartphone,
enquanto inicia a varredura, conforme figura 15, por dispositivos não pareados.

Figura 15: Tela de busca por novos dispositivos (arquivo pessoal)

Após a varredura, como consta na figura 16, lista todos os dispositivos


pareados e não pareados.

Figura 16: Tela de dispositivos identificados (arquivo pessoal)

Ao selecionar o dispositivo IFSP Piscina, que é o identificador para o protótipo


do presente trabalho, será aberta uma nova caixa de dialogo caso o device não se
encontra pareado com o com o Smartphone. Tal caixa solicita senha (PIN) para
pareamento do dispositivo Bluetooth conforme figura 17, no entanto, essa etapa será
pulada caso o dispositivo esteja pareado.
24

Figura 17: Tela de solicitação de pareamento (arquivo pessoal)

Vale a pena ressaltar que, em casos que seja selecionado um dispositivo


distinto do protótipo em questão, o aplicativo será finalizado pelo sistema.

A próxima tela que será exibida, representa o supervisório (supervisorio.xml),


responsável tanto pela exibição da temperatura que estar sendo coletada da piscina
pelo Termômetro Bluetooth quanto ao botão de retorno para tela inicial do APP,
como vistos na figura 18.

Figura 18: Tela de informação de temperatura (arquivo pessoal)

Como foi dito, o aplicativo PiscinaIFSP possui três telas de interação com o
usuário, tendo o objetivo principal de monitorar a temperatura da água da piscina. As
classes e as Activity (tela) que foram criadas para alcançar tal objetivo, será
descritas nos tópicos que se seguem e o código fonte encontra-se no Anexo A.

4.1.2. MainActivity.class
25

O MainActivity é a classe inicial do programa, estendendo a classe Activity do


Android que gerencia a interface com o usuário. Ao ser iniciada pela primeira vez ou
ao ser chamada por alguma outra Activity da aplicação (retorno), faz a vinculação do
activity_main.xml através método setContentView (ativa tela). Destaca-se ainda, o
método startActivity() que é chamado quando pressionado o botão conectar na tela
principal, tal método ao ser requisitado, chama a classe LocalizarDispositivos e
aguada em segundo plano.

No trecho do código a seguir, é possível identificar o uso de tais métodos.

setContentView() a quanto o do startActivityque().

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.activity_main);

public void conectar(View view) {

startActivity(new Intent(this, LocalizarDispositivos.class));

4.1.3. Localizar Dispositivos.class

A classe LocalizarDispositivos, herda da classe VisualizarPareados os


atributos e heranças que possibilita as verificações Bluetooth necessárias e fazendo
a vinculação com tela dispositivos.xml, que não se encontra implementada na atual
classe. Pode-se destacar os métodos buscar() que faz a busca pelos dispositivos
que não se encontram pareados e o método updateLista() (herda de
VisualizarPareados) que atualiza o lista com os novos dispositivos encontrados .

4.1.4. VisualizarPareados.class

A classe VisualizarPareados, por sua vez, herda os atributos e heranças da


classe VerificaBluetooth, tornando possível a utilização das configurações Bluetooth
solicitadas. Tal classe, alem de fazer a vinculação da tela dispositivos.xml, possui
26

um método updateLista() que faz atualização de todos os devices encontrados ou


pareados no listview da activity. No código que se segue, é possível visualizar o
método updateLista() implementado.

protected void updateLista() {


// array para conter cada device
List<String> nomes = new ArrayList<String>();
for (BluetoothDevice device : lista) {
boolean pareado = device.getBondState() == BluetoothDevice.BOND_BONDED;
nomes.add(device.getName() + " - " + device.getAddress() + (pareado ? " *pareado"
: ""));
}
Destaca-se também, método onItemClick() que possibilita verificar qual
dispositivo foi selecionado pelo usuário para solicitação de conexão, chamado a
classe ConectarBluetooth e finaliza a tela de dispositivos, conforme trecho do
código.

public void onItemClick(AdapterView<?> adapterView, View view, int idx, long id) {
// Recupera o dipositivo que foi selecionado
BluetoothDevice device = lista.get(idx);
MAC = device.getAddress();
// Chama activity do supervisorio
Intent intent = new Intent(this, ConectarBluetooth.class);
intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
startActivity(intent);
finish();
}

4.1.5. ConectarBluetooth.class

A classe ConectarBluetooth que possui extensão da classe


VisualizarPareados, quando a tela supervisório já se encontra vinculada, executa a
conexão através do método conecta() com o modulo HC08, conforme código da
função que se encontra a seguir.
public void conectar() {
27

BluetoothDevice device = meuBluetooth.getRemoteDevice(MAC);


try {
btSocket = device.createRfcommSocketToServiceRecord(MEU_UUID);
btSocket.connect();
out = btSocket.getOutputStream();
}
catch (IOException e) {
error(e);
Log.e(TAG, "Erro ao conectar: " + e.getMessage(), e);
}
}
Após conectar-se com o protótipo, executa-se o método CountDownTimer()
que gerencia durante 13 horas, o acesso ao valor da temperatura que é mostrado na
tela supervisório cada 4 segundos. É possível visualizar Tal método nas linhas de
código a baixo.

new CountDownTimer(50000000, 4000) {


public void onTick(long millisUntilFinished) {
TextView txtMsg = (TextView) findViewById(R.id.txtTemperatura);
txtMsg.setText(" ");
new ConnectedThread().start();
running = true;
}
}

4.1.6. Verifica Bluetooth.class.

Todas as classes criadas, com exceção da classe MainActivity, possuem


algum tipo de herança com classe VerificaBluetooth. Tal classe é responsável por
verificar se o Smartphone possui Bluetooth e verificar se o mesmo encontra-se
conectado, caso contrario pede permissão para utiliza-lo.

4.1.7. Código em linguagem C.


28

Um programa desenvolvido em linguagem C consiste em uma ou várias


“funções”. Os nomes programa e função se confundem em C pelo fato de que a
linguagem C não utiliza “comandos” como é de costume em outras linguagens de
programação já conhecidas, como por exemplo o PASCAL.

Então podemos afirmar que através de funções predefinidas teremos a


possibilidade de criarmos outras funções em nossos programas de computador,
ampliando assim a biblioteca padrão da linguagem C.

4.1.8. Desenvolvimento do hardware

O desenvolvimento do circuito de alimentação e controle do protótipo, iniciou-


se após a conclusão dos testes preliminares com o kit de desenvolvimento,
programa em linguagem C e o Smartphone juntamente com o aplicativo
PiscinaIFSP.

4.1.9. Circuito de controle

Utilizou-se o microcontrolador PIC18F4550 para controle dos periféricos de


entrada e saída de informações. Essas ações resume-se na conversão AD da
temperatura coletada através do transdutor LN35, controle da comunicação RS232
com mo modulo HC06 e exibição nos dois displays de sete seguimentos da
grandeza física medida.

O diagrama elétrico referente ao circuito de controle pode ser visualizado na


figura 19.
29

Figura 19: Diagrama elétrico do circuito de controle (arquivo pessoal)

4.1.10. Conversão AD.

Para converter o sinal analógico disponibilizado pelo LM35 em sinal digital,


utilizou-se o canal analógico AN0 localizado no pino de numero 2 do
microcontrolador. O valor obtido da conversão é armazenado em uma variável
interna, que será processada no programa embarcado

4.1.11. Comunicação RS232

Intermediário entre o pino 25 (TX) do microcontrolador e o pino RX do HC06


foi implementado um circuito divisor de tensão, com a finalidade de reduzir o valor
de tensão do nível lógico alto de 5 para 3,3 volts, evitando possíveis danos a entrada
do módulo Bluetooth que trabalha com esse menor valor de tensão. Já o pino TX do
HC06 foi conectado ao pino RX (25) do PIC. Com essas configurações de conexão
para ambos os dispositivos, possibilitou-se o envio e recebimento de informações via
comunicação serial.
30

4.1.12. Displays de sete seguimentos.

Visando minimizar o consumo de corrente pelo sistema, utilizou-se os pinos


de RB0 a RB6 e RC0 a RC6 para a conexão do display-1 e do display-2
sucessivamente. É importante destacar que existem técnicas que simplificariam a
elaboração de circuitos para comando de displays, como por exemplo, o uso do
circuito integrado decodificador BCD (Binary Coded Decimal) que reduziria para
quatro o numero de pinos utilizados do microcontrolador, para enviar as informações
para um dos displays, caso associe um transito sendo utilizado como chave e
pequenas mudanças no diagrama, seria possível utilizando apenas os pinos RB0 a
RB3 para a utilização dos dois displays, possibilitando uma maior compactação e
simplificação do circuito semelhante ao sistema utilizado no kit de desenvolvimento.
Porem, tais alterações podem elevar o consumo de corrente do sistema,
possibilitando uma possível descarga da bateria e interrompendo funcionamento do
sistema, em períodos que a célula fotovoltaica não esteja fornecendo corrente.

4.1.13. Circuito de alimentação

O projeto do circuito de alimentação iniciou- pela mensuração da corente


consumida pelo sistema de controle com todas as funções em operação, obtendo
um valor de 100 mA. Tal parâmetro foi utilizado para o dimensionamento tanto da
célula fotovoltaica quanto da associação das baterias.

Para realização dos cálculos, considerou-se que o circuito de controle quando


alimentado, por um período de 12 horas, teria um consumo de corrente de 1200 mA
(consumo máximo) conforme equação 1. Considerou-se que para a eficiência do
circuito de alimentação, seria conveniente que a bateria adequada deveria ser no
mínimo 10% acima do valor adotado, garantido o rendimento esperado.

Equação 1. Corrente total = Tempo de funcionamento* Corrente consumida

Corrente total = 12 hs* 100 mA

Corrente total= 1200 mA


31

Entretanto para aquisição de tal componente, foi necessário primeiramente,


especificar a célula fotovoltaica que melhor adapta-se ao protótipo, considerando
tanto a menor robusto possível, evitando que o protótipo se torne um obstáculo
dentro da piscina, quanto o maior valor possível de corrente para suprir a
necessidade do sistema de controle como a bateria quando esteja em processo de
carga, dentro do ciclo de irradiação solar. A célula adquirida conformes
especificação do fabricante, consegue fornecer uma tensão 9 voltes e uma corente
de 350 mA. Dos quais 100 mA da corrente será consumida pelo sistema, o
excedente foi utilizado como parâmetro para definir as especificações das baterias.

A equação 2, foi utilizada para calcular o tempo que a corrente que excede da
célula solar especificada leva para carregar uma bateria de 1200 mAh.

Equação 2. Duração = Capacidade / Corrente elétrica

Duração = 1200 mAh / 250 mA

Duração = 4,8 hs

Considerou-se que o tempo de irradiação solar médio seria de 8hs, o tempo


de Duração que uma bateria de 1200 mAh necessita para ser carregada
completamente utilizando a corrente disponível é mais que suficiente. Entretanto é
nesse necessário, conforme dito antes, que a bateria possua no mínimo 10% cima
do valor adotado. Considerando baterias com especificações comerciais de corrente
e sistemas integrados de proteção contra sobrecarga e consumo em baixa tensão,
optou-se por baterias de 1400 mAh e 3,7 volts. Baterias com valor nominal de
correte acima de tal valor, podem necessitar de um tempo maior que 8 hs para sua
carga total, mostrando-se desinteressante para as condições do projeto. Utilizaram-
se duas baterias ligadas em serie que totalizou uma tensão de 7,2 volts para suprir a
necessidade do circuito.

Assim ainda, para a alimentação, tanto do microcontrolador quanto do modulo


Bluetooth, conforme folhas de dados, necessitam de tensão de alimentação de
aproximadamente de 5 volts. Para atender essa especificação foi necessário instalar
um regulador de tensão modelo LM7805 para atenuar o valor fornecido pela célula
solar (quando irradiado com a luz solar) ou pela bateria (quando fornecendo tensão).
32

É possível visualizar na figura 20, o diagrama elétrico que representa o


circuito de alimentação.

Figura 20: Diagrama elétrico do circuito regulador de tensão (Arquivo próprio)

Pode-se observar no circuito da figura 20, a existência de um diodo 1N4007,


entre a célula solar e a bateria, com o intuito de evitar o retorno da corrente para a
célula, no momento em que a diferença de potencial de tal dispositivo for menor que
o da bateria, evitando-se assim possíveis danos ao sistema. Outro detalhe a ser
verificado é que entra a entrada e a saída do LM7805 são conectados os
capacitores C1 e C2, cujo a função é filtra ruídos na rede.

5. MONTAGEM E TESTES DO PROTÓTIPO

5.1. MONTAGEM

A etapa inicial da montagem consistiu na elaboração, através do software


Proteus (ARES), do layout da placa de círculo impresso (PCI) do círculo elaborado
anteriormente conforme item 4.18.

É possível visualizar nas figuras 21 e 22, tanto o layout em circuito impresso


quanto o layout em 3D (três dimensões).
33

Figura 21: Layout da PCI (fonte: Arquivo pessoal)

Figura 22: Layout 3D do circuito (fonte: arquivo pessoal)

A após a elaboração de tal layout, imprimiu-se o mesmos em uma folha de


papel especial para a transferência na placa de fenolite, conforme figura 23.

Figura 23: Layout impresso e a placa de fenolite (fonte: arquivo pessoal).


34

Após o processo de corrosão da placa de fenolite, montou-se a placa de


controle utilizado os componentes especificados no item 4.1.8. Tal placa juntamente
com o modulo Bluetooth , case para baterias, placa fotovoltaica e o par de displays

de 7 seguimentos, foram interligados através de um cabo flat confeccionado e


posterior instalados na base de espuma de EVA (acetato-vinilo de etileno), como
pode ser visualizado na figura 23 e 24.

Figura 24: Montagem sob a base de espuma EVA (fonte: arquivo pessoal).
35

5.2. TESTES DO PROTÓTIPO

Devido ao curto período de tempo e as condições climáticas desfavoráveis na


cidade de Piracicaba no estagio dos testes, obrigou-se a restringir a bateria de
ensaios programados.

Entretanto, pode-se comprovar que a célula solar consegue fornecer a corrente que
foi calculada. Porem o curto período de irradiação solar não permitiu a realização da
verificação da eficiência de carga da bateria. Para certificar que as baterias
conseguem manter o sistema em funcionamento durante o tempo em que a célula
solar deixa de fornecer corrente, necessitou-se primeiramente fazer a carga das
baterias através de um carregador convencional e posteriormente o sistema entrou
em funcionamento. O conjunto de baterias adquiridas conforme calculado,
conseguiu manter o protótipo em funcionamento.

6. CONSIDERAÇÕES FINAIS

Hoje, sabe-se
Figura 26: Montagemque
sob aobase
termômetro
de espuma EVAé(fonte:
um arquivo
instrumento
pessoal). de precisão e de grande

utilidade nas indústrias e no cotidiano da população. Antigamente, esse instrumento


mostrou-se em uma evolução bastante lenta por consequência do conhecimento
empírico em relação aos fenômenos térmicos. Com o passar do tempo, conseguiu-
se reproduzir novos termômetros mais confiáveis e, com isso, estabeleceu-se
escalas termométricas mais apropriadas e adequadas para o uso prático.

Este projeto teve por finalidade, criar um termômetro que transmita os valores
de leitura de temperatura da água de piscina, cujas leituras são enviadas via
Bluetooth para smartfones, computadores, durante o período de tempo que o
usuário necessitar.

Após todos os testes realizados, foi possível atingir todos objetivos foram
alcançados com sucesso, mesmo ocorrendo algumas variações na temperatura.
36

Com o protótipo do termômetro Bluetooth foi possível obter as leituras das


variações na temperatura realizada pelo sensor de temperatura. O Sistema garantiu
um controle automático dos equipamentos sem a intervenção humana garantindo
um processo automatizado.

O programa implementado se comportou de maneira adequada, fazendo toda


a leitura da temperatura instantaneamente através do sensor de temperatura. O
microcontrolador recebeu o sinal fornecido pelo sensor de temperatura, fez a
conversão, analisou e interpretou corretamente, possibilitando leituras exatas da
temperatura da água.

Portanto, os resultados atenderam as propostas e objetivos estipulados para


este trabalho, cujo protótipo encontra-se em funcionamento.

6. REFERÊNCIA BIBLIOGRÁFICA

DUARTE, K. P. Aplicação de um Modelo Híbrido para Predição do Tempo de


Vida de Baterias Utilizadas em Dispositivos Móveis. 2014. Unijuí - Rio Grande do
Sul, 2014. Disponível em:
<http://bibliodigital.unijui.edu.br:8080/xmlui/bitstream/handle/123456789/2246/dissert
acao.pdf?sequence=1>. Acesso em: 25 ago. 2016.

LECHETA, R. R.. Google Android: Aprenda a Criar Aplicações Para Dispositivos


Móveis Com o Android Sdk. 4. ed. São Paulo: Novatec, 2014.

Monitoramento de Sensores de Temperatura

NIYADAIRA, A. N. Microcontroladores PIC18: Aprenda e Programe em Linguagem


C. 2. ed. São Paulo: Érica, 2011.

SOUZA, D. A. R.. Utilizando Redes sem Fio – Bluetooth. IFSC 2010. disponível
em:
http://wiki.sj.ifsc.edu.br/wiki/images/0/09/ProjetoFinal_DouglasAlexandredeSouza.pdf
: 06 out. 2016.
37

VILLALVA, M. G. Energia Solar Fotovoltaica: Conceitos e Aplicação. 2. ed. São


Paulo: Érica, 2016

ANEXO A – CÓDIGO EM LINGUAGEM C

/************************************************************************

* Projeto de Conclusão de Curso IFSP 2016 *

* *

* Termômetro Bluetooth. *

* *

* Integrante: *

* *

* Marcelo dos Santos Farias *

* Donizete Ap. Contessa *

* Renato Honorato de Oliveira *

* Cledson Flavio Fernandes *


38

************************************************************************/

// Includes ///////////////////////////////////////////////////////////////////////

#include<P18F4550.h>

#include<Timers.h>

#include<adc.h>

#include <usart.h>

#include<stdio.h>

// Configurações ///////////////////////////////////////////////////////////////////////

#pragma config PLLDIV = 5 // PLL para 20MHz

#pragma config CPUDIV = OSC1_PLL2 // PLL desligado

#pragma config FOSC = HS // Fosc = 20MHz Tcy


= 200ns

#pragma config WDT = OFF // Watchdog desativado

#pragma config PBADEN = OFF // Pinos do PORTB começam


como digitais

#pragma config LVP = OFF // Desabilita gravação em baixa


tensão

#pragma config DEBUG = ON // habilita debug

// Defines ///////////////////////////////////////////////////////////////////////

#define DISPLAY1 PORTD // Segmentos do display ligados


em PORTD
39

#define DISPLAY2 PORTB // Segmentos do display ligados


em PORTD

// Variáveis globais //////////////////////////////////////////////////////////////

int valor, temperatura = 0;

char dezena, unidade,Temperatura[4];

// Função de comfiguracão da USART //////////////////////////////////////////////////////

void inicializa_RS232(long velocidade)

//por padrão é usado o modo 8 s e sem paridade, mas se necessario ajuste


aqui a configuração desejada.

//verifique datasheet para ver a porcentagem de erro e se a velocidade é


possivel para o cristal utilizado.

RCSTA = 0X90;//habilita porta serial,recepção de 8 bit em modo


continuo,assincrono.

TXSTA = 0X24;//modo assincrono,trasmissao 8 bits.

SPBRG=(int)(((20000000/velocidade)-16)/16);//calculo do valor do gerador de


baud rate

//confguracao das interrupção

RCONbits.IPEN = 1;// habilita nivel de prioridade

INTCONbits.GIEH = 1;//habilita interrupção de alta prioridade

INTCONbits.GIEL = 1;//habilita interrupção de baixa prioridade

PIE1bits.RCIE = 1;//habilita interrupção de recepção

IPR1bits.RCIP = 1;//alta prioridade


40

PIE1bits.TXIE = 0;//deixa interrupção de transmissão desligado(pois corre se


o risco de ter uma interrupção escrita e leitura ao mesmo tempo)

// Interrupção de alta prioridade //////////////////////////////////////////////////////////////

#pragma code int_alta = 0x08 //vetor de interrupção de alta prioridade

#pragma interrupt ISR_alta_prioridade /*define a função trata_interrupt como rotina


de

tratamento da interrupção*/

//Função de tratamento da interrupção///////////////////////////////////////////////////////////////////////

void ISR_alta_prioridade(void){

char caracter;

caracter = RCREG;

if(caracter){

putsUSART(itoa(temperatura, Temperatura));

PIR1bits.RCIF = 0;// limpa flag de interrupção de recepção

// Programa principal ///////////////////////////////////////////////////////////////////////


41

void main (void){

// Tabela de dígitos do display///////////////////////////////////////////////////////////

char table[] = {

0b00100000,// 0

0b01111001,// 1

0b01000100, // 2

0b01010000,// 3

0b00011001,// 4

0b00010010,// 5

0b00000010,// 6

0b01111000,// 7

0b00000000,// 8

0b00011000,// 9

};

// *** Configuração de I/O ***

DDRB = 0x00; // configura port D como saída

DDRD = 0x00; // configura port D como saída

// *** Inicialização do ADC ***

OpenADC(ADC_FOSC_32 &

ADC_RIGHT_JUST &
42

ADC_2_TAD,

ADC_CH0 &

ADC_INT_OFF &

ADC_REF_VDD_VSS,

ADC_1ANA);

inicializa_RS232(9600);/*Quando vai comunicar pelo modo "AT",

precisa de estar neste valor de comunicação*/

// *** Configuração das interrupções ***

PIR1bits.TMR2IF = 0; // zera flag da interruipção

IPR1bits.TMR2IP = 0; // baixa prioridade

PIE1bits.TMR2IE = 1; // habilita int Timer 2

for(;;){

ConvertADC(); // Start conversion

while(BusyADC()); // Wait for completion

temperatura= ReadADC(); // Read result

temperatura = (((long int)5000*ReadADC())/1023)/10;

Delay10KTCYx( 250);

Delay10KTCYx( 250);

Delay10KTCYx( 250);

Delay10KTCYx( 250);
43

Delay10KTCYx( 250);

dezena = temperatura / 10;

unidade = temperatura% 10;

DISPLAY1= table[dezena];

DISPLAY2= table[unidade];

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////

ANEXO B – CÓDIGO EM LINGUAGEM JAVA

1 MainActivity

public class MainActivity extends Activity {

protected BluetoothSocket btSocket = null;

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);
44

setContentView(R.layout.activity_main);

public void conectar(View view) {

startActivity(new Intent(this, LocalizarDispositivos.class));

public void sair(View view) {

//verifica se estar conectado

if(btSocket != null){

try {

btSocket.close();

btSocket = null;

} catch (Exception e) {

// TODO: handle exception

finish();

2 LocalizarDispositivos

public class LocalizarDispositivos extends VisualizarPareados {

private ProgressDialog dialog;

@Override
45

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// Register for broadcasts when a device is discovered

this.registerReceiver(mReceiver, new
IntentFilter(BluetoothDevice.ACTION_FOUND));

// Register for broadcasts when discovery has finished

this.registerReceiver(mReceiver, new
IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED));

buscar();

private void buscar() {

// Garante que não existe outra busca sendo realizada

if (btfAdapter.isDiscovering()) {

btfAdapter.cancelDiscovery();

// Dispara a busca

btfAdapter.startDiscovery();

dialog = ProgressDialog.show(this, "Exemplo", "Buscando


aparelhos bluetooth...", false, true);

}
46

// Receiver para receber os broadcasts do bluetooth

private final BroadcastReceiver mReceiver = new


BroadcastReceiver() {

// Quantidade de dispositivos encontrados

private int count;

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

// Se um device foi encontrado

if
(BluetoothDevice.ACTION_FOUND.equals(action)) {

// Recupera o device da intent

BluetoothDevice device =
intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

// Apenas insere na lista os devices que


ainda não estão pareados

if (device.getBondState() !=
BluetoothDevice.BOND_BONDED) {

lista.add(device);

Toast.makeText(context, "Encontrou: "


+ device.getName()+":"+device.getAddress(), Toast.LENGTH_SHORT).show();

count++;

} else if
(BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {

// Iniciou a busca

count = 0;
47

Toast.makeText(context, "Busca iniciada.",


Toast.LENGTH_SHORT).show();

} else if
(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {

// Terminou a busca

Toast.makeText(context, "Busca finalizada. "


+ count + " devices encontrados", Toast.LENGTH_LONG).show();

dialog.dismiss();

// Atualiza o listview. Agora via possuir todos


os devices pareados, mais os novos que foram encontrados.

updateLista();

};

@Override

protected void onDestroy() {

super.onDestroy();

// Garante que a busca é cancelada ao sair

if (btfAdapter != null) {

btfAdapter.cancelDiscovery();

// Cancela o registro do receiver

this.unregisterReceiver(mReceiver);

}
48

3 VerificaBluetooth

public class VerificaBluetooth extends Activity {

protected static final String TAG = "TCCpiscina";

protected BluetoothAdapter btfAdapter;

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

// Bluetooth adapter

btfAdapter = BluetoothAdapter.getDefaultAdapter();

if (btfAdapter == null) {

Toast.makeText(this, "Bluetooth não disponível


neste aparelho.", Toast.LENGTH_LONG).show();

// Vamos fechar a activity neste caso

finish();

@Override

protected void onResume() {


49

super.onResume();

// Se o bluetooth não está ligado

if (btfAdapter.isEnabled()) {

Toast.makeText(this, "Bluetooth está ligado!",


Toast.LENGTH_LONG).show();

} else {

// <uses-permission
android:name="android.permission.BLUETOOTH_ADMIN" />

Intent enableIntent = new


Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableIntent, 0);

@Override

protected void onActivityResult(int requestCode, int resultCode,


Intent data) {

super.onActivityResult(requestCode, resultCode, data);

// Aqui você pode conferir se o usuário ativou ou não o


bluetooth

if (resultCode != Activity.RESULT_OK) {

Toast.makeText(this, "O bluetooth não foi ativado.",


Toast.LENGTH_SHORT).show();

}
50

4 ConectarBluetooth

public class ConectarBluetooth extends VisualizarPareados{

Button btnSair;

// private TextView edtTemperatura;

//private ProgressDialog dialog;

private BluetoothAdapter meuBluetooth = null;

private BluetoothSocket btSocket = null;

private OutputStream out;

private InputStream in = null;

private boolean running;

final int RECIEVE_MESSAGE = 1; // Status for Handler

private static final UUID MEU_UUID = UUID

.fromString("00001101-0000-1000-8000-00805F9B34FB");

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.supervisorio);

btnSair = (Button) findViewById(R.id.btnSair);

meuBluetooth = BluetoothAdapter.getDefaultAdapter();

conectar();
51

if(out != null){

// Habilita o botão para enviar mensagens

findViewById(R.id.btnSair).setEnabled(true);

if (btSocket !=null && btfAdapter.isEnabled()) {

//Executa o programa durante aproximadamente 13h e chama a


função a cada 4 seg.

new CountDownTimer(50000000, 4000) {

public void onTick(long millisUntilFinished) {

TextView txtMsg = (TextView)


findViewById(R.id.txtTemperatura);

txtMsg.setText(" ");

new ConnectedThread().start();

running = true;

public void onFinish() {

finish();

}.start();

else {

finish();
52

btnSair.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

desconectar();

});

public void conectar() {

BluetoothDevice device = meuBluetooth.getRemoteDevice(MAC);

try {

btSocket =
device.createRfcommSocketToServiceRecord(MEU_UUID);

btSocket.connect();

out = btSocket.getOutputStream();

} catch (IOException e) {

error(e);

Log.e(TAG, "Erro ao conectar: " + e.getMessage(), e);

}
53

private void error(final IOException e) {

Log.e(TAG, "Erro no client: " + e.getMessage(), e);

runOnUiThread(new Runnable() {

@Override

public void run() {

Toast.makeText(getBaseContext(), "Erro: " +


e.getMessage() + " - " + e.getClass(), Toast.LENGTH_SHORT)

.show();

});

public void desconectar() {

if(btSocket != null){

try {

btSocket.close();

btSocket = null;

} catch (Exception e) {

// TODO: handle exception

finish();

}
54

private class ConnectedThread extends Thread {

@Override

public void run() {

try{

if (btSocket != null){

out.write('0');

in = btSocket.getInputStream();

byte[] bytes =new byte[1024];

int length; // bytes returned from read()

// Keep listening to the InputStream until an


exception occurs

while (running) {

length = in.read(bytes);

String msgRecebida = new String(bytes, 0,


length);

TextView txtMsg = (TextView)


findViewById(R.id.txtTemperatura);

//Log.d("tempblu ", msgRecebida);

/*int x;

for (x=0;x<3;x++){

Toast.makeText(getBaseContext(), "Valor: "


+ msgRecebida , Toast.LENGTH_SHORT)

.show();

}*/

final String temp = txtMsg.getText().toString()


+ msgRecebida;
55

updateViewMensagem(temp);

catch (IOException e) {

Log.d(TAG, "...Erro no servidor: " + e.getMessage(), e);

running = false;

private void updateViewMensagem(final String temp){

runOnUiThread(new Runnable() {

@Override

// Atualiza valor da temperatura no textView

public void run() {

TextView txtTemp = (TextView)


findViewById(R.id.txtTemperatura);

txtTemp.setText(temp);

});

}
56

5 VisualizarPareados

public class VisualizarPareados extends VerificaBluetooth implements


OnItemClickListener {

protected List<BluetoothDevice> lista;

static String MAC = null;

private ListView listView;

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.dispositivos);

listView = (ListView) findViewById(R.id.lvLista);

@Override

protected void onResume() {

super.onResume();

// Note que o BluetoothAdapter é iniciado na classe mãe

if (btfAdapter != null) {

// Lista de aparelhos pareados

Set<BluetoothDevice> pareados =
btfAdapter.getBondedDevices();

lista = new ArrayList<BluetoothDevice>(pareados);


57

updateLista();

protected void updateLista() {

// Cria o array com o nome de cada device

List<String> nomes = new ArrayList<String>();

for (BluetoothDevice device : lista) {

boolean pareado = device.getBondState() ==


BluetoothDevice.BOND_BONDED;

nomes.add(device.getName() + " - " + device.getAddress()


+ (pareado ? " *pareado" : ""));

// Cria o adapter para popular o ListView

int layout = android.R.layout.simple_list_item_1;

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,


layout, nomes);

listView.setAdapter(adapter);

listView.setOnItemClickListener(this);

@Override

// Implements android.widget.AdapterView.OnItemClickListener

public void onItemClick(AdapterView<?> adapterView, View view, int


idx, long id) {

// Recupera o device selecionado

BluetoothDevice device = lista.get(idx);

//String msg = device.getName() + " - " + device.getAddress();


58

MAC = device.getAddress();

// // Vai para a tela para enviar a mensagem

Intent intent = new Intent(this, ConectarBluetooth.class);

intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);

startActivity(intent);

finish();

Você também pode gostar