Post on 26-Jan-2019
UNVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA DA COMPUTAÇÃO
Luiz Henrique Sehnem
Orientador: Maurício Perretto
SISTEMA INTELIGENTE DE
ENTREGA DE GÁS DE COZINHA
Curitiba, 2015
RESUMO
Devido ao crescimento da ideia e aplicações da internet das coisas, uma revolução
tecnológica que tem como objetivo conectar os objetos usados diariamente na rede mundial de
computadores, cada vez mais surgem dispositivos do dia a dia como: eletrodomésticos, meios
de transporte, tênis, roupas e maçanetas conectadas à Internet e a outros dispositivos, como
computadores e Smartphones.
A ideia é que o mundo físico e o digital interajam de uma forma transparente, através de
dispositivos que se comuniquem com os outros e os data centers e suas nuvens. Aparelhos
vestíveis, como o Google Glass e o Smartwatch 2, da Sony, transformam a mobilidade e a
presença da Internet em diversos objetos em uma realidade cada vez mais próxima.
Este trabalho, consiste no desenvolvimento de um sistema para monitorar e realizar
pedidos de botijões dos modelos p5, p8, p13 e p45, nos quais a medição da quantidade de gás
dentro do botijão é obtida com base no peso total do mesmo e temperatura ambiente.
O sistema utiliza a nuvem para a comunicação entre os dispositivos, com um servidor
que armazena informações de cadastros de clientes e fornecedores. Pela medição da quantidade
de gás contida no botijão e feita uma previsão de quando o mesmo acabará.
O usuário pode realizar um pedido a qualquer distribuidora mais próxima. As
distribuidoras físicas cadastradas possuem uma aplicação web para acessar e gerenciar suas
entregas e os distribuidores móveis possui um aplicativo Android instalado em Smartphone
para logística.
ABSTRACT
Due to the growth of the idea and application of Internet of things, a technological
revolution that aims to connect the objects used daily in the world wide web increasingly arise
devices of everyday life such as home appliances, transportation, shoes, clothes and handles
connected to the Internet and to other devices such as computers and Smartphones.
The idea is that the physical world and the digital interact in a transparent manner,
through devices that communicate with each other and their data centers and clouds. Wearable
devices, such as Google Glass and the SmartWatch 2, Sony, transform mobility and Internet
presence in several objects into a reality ever closer.
This work is to develop a system to monitor and perform cylinders applications models
p5, p8, p13 and p45, in which the measurement of the amount of gas within the cylinder is
obtained based on the total weight of it and room temperature.
The system uses the cloud for communication between devices with a server that stores
information of customers and suppliers entries. By measuring the amount of gas contained in the
cylinder and made a prediction of when it will end.
The user can place an order at any nearest distributor. The registered physical distributors
have a web application to access and manage their deliveries and mobile distributors have an
Android application installed on Smartphone for logistics.
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................................ 5
1.1 OBJETIVO GERAL ................................................................................................................... 5
1.2 OBJETIVOS ESPECÍFICOS ..................................................................................................... 5
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................................... 7
2.1 APLICAÇÕES COMERCIAIS DE MEDIDORES DE GÁS DE COZINHA .................................. 9
2.2 GPS ............................................................................................................................................. 10
2.3 CRIPTOGRAFIAS ..................................................................................................................... 11
2.4 PROJETO SIMILAR DE TCC ................................................................................................... 12
3 ESPECIFICAÇÃO TÉCNICA ........................................................................................................... 14
3.1 ANÁLISE DE REQUISITOS ..................................................................................................... 15
3.2 RESTRIÇÕES ............................................................................................................................. 16
3.3 DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE SISTEMAS
.................................................................................................................................................................................................... 16
3.3.1 DESCRIÇÃO HARDWARE EMBARCADO COM ANDROID ........................................... 21
3.3.2 DESCRIÇÃO SERVIDOR WEB .......................................................................................... 21
4 DESENVOLVIMENTO .................................................................................................................... 23
4.1 HARDWARE .............................................................................................................................. 23
4.2 SOFTWARE ............................................................................................................................... 26
5 TESTES E RESULTADOS .............................................................................................................. 38
6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS .............................................................. 42
7 BIBLIOGRAFIA .................................................. ............................................................................ 43
5
1 INTRODUÇÃO
Com o aumento do uso de dispositivos interligados à rede mundial de computadores tem
incentivado soluções cada vez mais próximas das necessidades das pessoas nos mais variados
ambientes. Em residências, um sistema para monitorar a quantidade de gás de cozinha
eletronicamente, com indicador da quantidade e proximidade do final do gás para botijões tipo
p5, p8, p13 e p45, trazendo conforto aos moradores. Ainda mais, se este sistema realizar o
pedido de forma inteligente, procurando obter o melhor desempenho na entrega para o cliente,
encontrando a distribuidora com a menor distância da residência.
1.1 OBJETIVO GERAL
Este projeto é um sistema de monitoramento de gás GLP - Gás Liquefeito de Petróleo, e
previsão para realizar a troca do botijão, utilizando como grandezas o peso do botijão e a
temperatura ambiente para realizar o cálculo da quantidade de GLP existente no botijão. O
sistema possui um aplicativo Android para realizar pedidos e monitorar o gás, um sistema Web
para distribuidora realizar a logística da entrega e um aplicativo Android para enviar informações
do GPS - Global Positioning System a um servidor Web, para distribuidoras móveis.
1.2 OBJETIVOS ESPECÍFICOS
1. Estudar sistemas de monitoração de botijões de gás de cozinha dos modelos p5, p8, p13 e
p45 e medição indireta utilizando as grandezas de peso do botijão e temperatura ambiente;
2. Desenvolvimento de um sistema embarcado para monitorar volume do botijão de gás;
3. Desenvolvimento de um sistema de gerenciamento de dispositivos (servidor web) e
monitoramento de pedidos e gestão de entregas (Celular ou Tablet);
7
2 FUNDAMENTAÇÃO TEÓRICA
O GLP é formado por uma mistura gasosa de hidrocarboneto, obtido pelo gás natural das
reservas do subsolo, ou do processo de refino do petróleo cru nas refinarias sendo armazenado
dentro de cilindros em estado líquido e gasosa. Os cilindros quando se encontram com o máximo
de GLP em seu interior possui 85% em estado líquido e 15% em estado gasoso. Em seu estado
líquido começa a se transformar em gasoso conforme o cilindro é utilizado. (COPAGAZ, 2015).
Devido o gás de cozinha não possuir cor nem cheiro próprio, por motivo de segurança
uma substância é adicionada ainda no processo das refinarias para pode produzir um cheiro
característico quando há um vazamento de gás. O gás de cozinha não é uma substância tóxica,
porém se inalado em grande quantidade, produz efeito anestésico. (COPAGAZ, 2015).
Para obter a grandeza do volume do gás de cozinha existem vários tipos de aplicações,
uma seria colocar um medidor de gás digital na saída do botijão, ou conforme foi abordado no
projeto pela grandeza de peso e temperatura.
Para obter a quantidade de gás do botijão é necessário saber o volume de cada tara, para
descobrir basta saber que o GLP varia entre 2,1 – 2,5 kg/m³ (LIQUIGAS GLP, 2015), portanto,
aplicando a equação v=pm*1/2,45, onde 2,45 é o valor do gás em kg/m³ com a temperatura de
15,6ºC e o pm é peso da tara cheia, exemplo o p13 a 15,6ºC tem o valor de 13kg de gás com seu
cilindro cheio, logo na tabela 1 possui todos os valores calculados com esta formula para cada
tipo de botijão.
Tara Volume(m³)
P5 2,04
P8 3,26
P13 5,3
P45 18,36 Tabela 1 – Relação entre botijão e volume.
Após saber o volume do botijão é necessário saber o peso do gás por metro cubico dentro
do botijão em relação à temperatura ambiente atual que vamos nomear como constante Q, onde
os valores plotados em kg/m³ por temperatura ambiente se encontra amostrados na tabela 2.
8
Temperatura (Q)
kg/m³
Temperatura (Q)
kg/m³
Temperatura (Q)
kg/m³
0 2,495
21 2,432
42 2,369
1 2,492
22 2,429
43 2,366
2 2,489
23 2,426
44 2,363
3 2,486
24 2,423
45 2,36
4 2,483
25 2,42
46 2,357
5 2,48
26 2,417
47 2,354
6 2,477
27 2,414
48 2,351
7 2,474
28 2,411
49 2,348
8 2,471
29 2,408
50 2,345
9 2,468
30 2,405
51 2,342
10 2,465
31 2,402
52 2,339
11 2,462
32 2,399
53 2,336
12 2,459
33 2,396
54 2,333
13 2,456
34 2,393
55 2,33
14 2,453
35 2,39
56 2,327
15 2,45
36 2,387
57 2,324
16 2,447
37 2,384
58 2,321
17 2,444
38 2,381
59 2,318
18 2,441
39 2,378
60 2,315
19 2,438
40 2,375
61 2,312
20 2,435
41 2,372
62 2,309 Tabela 2 – Relação temperatura e kg/m³.
Também é necessário saber o peso da tara do botijão que se encontra disponível na
etiqueta conforme exigência do INMETRO, com os valores mostrados na tabela 3.
Tara Peso(kg)
P5 7
P8 12
P13 15
P45 64 Tabela 3 – Relação de peso da tara dos botijões.
Com o valor do volume da tara a qual está sendo analisado mais a constante do peso do
gás em kg/m³ pode descobrir o peso máximo que o botijão com gás de cozinha possui com a
formula pm = Q*Vt onde Q em a constante kg/m³ que varia conforme a temperatura e Vt o
volume da tara, portanto, ao descobrir o peso máximo, basta aplicar uma ultima equação para
9
saber a quantidade que possui de gás no cilindro, com a seguinte formula Qg = (pa-pt)*100/pm,
onde Qg é a quantidade de gás em porcentagem, pa peso atual do cilindro, pt peso da tara, pm
peso do gás com o cilindro cheio na temperatura ambiente.
2.1 APLICAÇÕES COMERCIAIS DE MEDIDORES DE GÁS DE COZINHA
As aplicações comerciais utilizam medidores de gás para obter a quantidade de gás,
porém, este equipamento é necessário conter a NBR 8613 do Inmetro.
A Figura 1 ilustra um medidor de gás da LAO Indústria.
Figura 1 – Medidos de gás da LAO.
Fonte: LAOINDUSTRIA (2015)
A Figura 2 ilustra um regulador de gás da IMAR que mede a quantidade de gás contida
no botijão de forma analógica com indicador mecânico.
10
Figura 2 – Regulador de Gás com manômetro da IMAR
Fonte: IMAR (2015).
2.2 GPS
Para saber a localização de objetos ou pessoas é comum utilizar o GPS que se encontra
em quase todos os equipamentos moveis, no qual utilizado neste projeto para sincronizar a
localização das operadoras moveis, portanto, o GPS é um sistema de navegação por satélite com
um aparelho móvel que envia informações sobre a posição em qualquer horário, lugar e condição
climática.
Criado em 1973 para facilitar os sistemas de navegação. Atualmente, existem dois tipos
de sistemas de navegação por satélite: o GPS americano, que antigamente era utilizado por
militares, e atualmente seu uso é geral, e o GLONASS que é um sistema russo.
O GPS é utilizado na aviação, navegação marítima e diversas pessoas, para saber sua
posição cidade, e principalmente para viajar. Utilizando O GPS consegue criar sistemas que
localizam e encontram caminhos para um determinado local, saber a velocidade e direção do seu
deslocamento. No qual atualmente o sistema está sendo utilizado em automóveis, com um
sistema de mapas que facilita o deslocamento do usuário pelas cidades. (Significados, 2015).
11
2.3 CRIPTOGRAFIAS
Devido o acesso a internet ser globalizado e comum para todos, e o grande avanço no
desempenho de equipamentos eletrônicos conectados a rede mundial de computadores, é
necessário nos projetos que utilizam a rede ser capacitado de garantir segurança ao seu sistema, e
usuários que utilizam o mesmo, portanto, no projeto foi utilizado criptogragias RSA, AES e de
Cesar para garantir a segurança do sistema.
O RSA é um algoritmo de criptografia de dados considerado um dos mais seguros de
encriptação atuais. Nasceu dos estudos de Ronald Rivest, Adi Shamir e Leonard Adleman, onde a
partir destes nomes foi dado o nome de RSA, no qual constituiu-se por um trio de matemáticos
que revolucionaram a historia da criptografia. O fundamento envolve um par de chaves, na qual
uma chave pública que pode ser conhecida por todos para realizar a criptografia e uma chave
privada que deve ser mantida em sigilo utilizando números primos. Lembrando que, uma chave
na criptografia controla todo o processo de operação dos algoritmos transformando um texto puro
em criptografado. (BURNETT, S, PAINE, S; 2002).
O AES (Advanced Encryption Standard), também conhecido como algoritimo de
Rinjndael, desenvolvido por dois pesquisadores belgas em outubro de 2000, é uma cifra de bloco
adotada como padrão de criptografia pelo governo dos Estados Unidos, que é utilizado em todo o
mundo e analisado extensivamente, como o caso do seu predecessor, o Data Encryption Standard
(DES). (BURNETT, S, PAINE, S; 2002).
Cifra de César, que seu nome e dado em homenagem a Júlio César, no qual utilizou este
tipo de cifra para comunicar com seus generais, sendo, uma das mais simples e conhecidas
técnicas de criptografia. É um tipo de cifra de substituição na qual cada letra do texto é
substituída por outra conforme na figura 5 onde se observa que os valores foram aumentados em
1. (CRIPTOGRAFIA, 2015).
12
Figura 5 – Exemplo de cifra de César.
2.4 PROJETO SIMILAR DE TCC
Em trabalhos similares de TCC, que tem como objetivo controlar e monitoram
dispositivos remotamente, conforme na figura 3, trata-se de projeto para controle de residência
remotamente feito por um aplicativo de celular conectado a um servidor que está conectado a
vários clientes (Computadores) que consultam os dados no servidor e realiza a operação
solicitada pelo celular. Também, este projeto controla equipamentos e consulta informações de
uma forma remota, facilitando o dia a dia do usuário.
Figura 3 – Diagrama de um sistemas que controla residência remotamente.
Fonte: MAURÍCIO,SOUZA,DECLERQUE (2014)
13
Na figura 4 demonstra o hardware que executa as ações passando pelo cliente conectado
ao servidor via xbee.
Figura 4 – Equipamento que controla acionamentos em residência.
Fonte: MAURÍCIO,SOUZA,DECLERQUE (2014).
14
3 ESPECIFICAÇÃO TÉCNICA
O objetivo principal deste projeto é o desenvolvimento de um sistema de monitoramento de
gás de cozinha dos botijões dos modelos p5, p8, p13 e p45 e a logística e otimização da entrega
dos pedidos, procurando a distribuidora mais próxima da localidade da entrega.
Conforme figura 6, todos os periféricos são conectados em um servidor Web pela internet
via TCP/IP criptografados, para garantia da integridade dos dados. O servidor web trata e informa
os dados obtidos entre os periféricos do sistema e também realiza cadastros de novos clientes e
distribuidoras.
O Sistema embarcado é responsável para medir a quantidade de gás do tipo de botijão
informado pelo usuário via interface HTTP em uma página HTML ou via teclado e display.
Utiliza sensores (peso e temperatura) para capturar as grandezas que o ajudarão a definir o
volume do gás presente na tara do botijão. Quando ocorre uma troca do botijão, é necessário que
o usuário informe ao sistema, ele se comunica com o servidor usando criptografia de César.
O aplicativo Android possui dois modos de operações, o primeiro modo para realizar
pedidos à distribuidora mais próxima para entrega e o segundo para verificar a quantidade de gás
em seu botijão ele se comunica com o servidor usando criptografias de RAS e AES.
O hardware de distribuidora móvel pode ser um celular ou tablet com Android é responsável
para informar sua localização usando uma interface de GPS para o servidor a fim de mantê-lo
sempre atualizado. Ele sempre irá consultar o servidor para verificar se possui entregas a serem
realizadas. Comunica-se com o servidor usando criptografias de RAS e AES.
15
.
Figura 6 – Diagrama da interação dos sistemas.
3.1 ANÁLISE DE REQUISITOS
Para garantir que os cálculos estejam corretos é necessário calibrar a balança e o medidor
de temperatura para que os valores estejam o mais próximo do correto. Para realizar tal
calibragem o sistema embarcado contém uma página Web que ao se conectar com usuário root
poderá realizar tal operação.
Para garantir que o sistema possua o cálculo correto entre a previsão em que o volume de
gás esteja no fim é necessário que o servidor e o sistema embarcado estejam sincronizados. Desta
forma foi desenvolvido em ambos um sincronismo com um servidor NTP (Network Time
Protocol).
É necessário informar via Web no sistema embarcado os valores das taras conforme o
modelo, porque as mesmas variam entre fabricantes.
Para acessar informações atualizadas é obrigatoriamente necessário que o sistema
embarcado esteja conectado à internet. O mesmo se aplica para a distribuidora móvel que precisa
estar enviando a coordenadas para o servidor.
16
3.2 RESTRIÇÕES
A balança não consegue trabalhar com o botijão P90 devido seu tamanho e peso onde
ultrapassa a relação calibrada de 130kg.
O sistema embarcado possui uma plataforma aonde se deve posicionar o botijão de forma
centralizada para garantir melhor a medição do equipamento e um case com teclado e display que
deve estar em um lugar seco aonde se recomenda utiliza-lo em um lugar afastado do gás para
respeita a NBR 8613, exigindo passar um cabo usb blindado para conectar na balança.
Necessária conexão com a internet conectando via wifi ou cabo de rede.
Atende somente botijões com valores de taras da distribuidora Liquigás.
3.3 DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO
ENTRE SISTEMAS
O Sistema Embarcado responsável por monitorar e enviar as informações para o
servidor, utiliza uma placa NXP LPC 1769, ver figura 7, para imprimir no display 16x4 onde
recebe as informações da placa PCDuino v2, ver figura 8 pela UART.
17
Figura 7 – Foto da placa LPC1769.
Figura 8 – Foto da placa PCDuino V2.
Na figura 9, representa esquemático elétrico do sistema de embarcado que monitora o
botijão de gás de cozinha, que possui um display conectado na LPC 1769 onde utiliza os pinos:
J6 [38, 39, 40, 41, 42, 43, 44] como saídas digitais para realizar a impressão no display lcd de 4
linhas e 16 colunas nos pinos D7, D6, D5, D4, E, RW, RS. O potenciômetro (PON 2) de 0,01 –
10k conectado ao display possui a função de regular o contraste do display.
18
Ainda na LPC existe um pino PAD16 configurado como RX para comunicar-se via serial,
com a PCDuino que possui um pino em J8(1) como TX para transmissão de pacotes de dados
para a LPC 1769 realizar a impressão no display. Na PCDuino possui um teclado matricial onde
os pinos J8 (3, 4, 5, 6) estão como saídas digitais e J8 (7, 8) e J11 (1, 2) como entradas digitais,
para descobrir qual tecla é pressionada no teclado e ser tratado pelo software.
Os pinos J12(5) e configurado como ADC para ler um sinal analógico, realizado pelas
células de carga que varia a resistência do material, conforme o peso aplicado nele, na qual
ligadas em forma de ponte de Wheatstone para melhorar a sensibilidade e medir o peso do
botijão, onde utiliza-se um INA 128 com ganho de 50, por ultimo, o pino J12(5) também
configurado como ADC para leitura de sinal analógico do lm35, que transforma temperatura
ambiente em sinal elétrico.
20
Na figura 10 representa o conector USB que interliga o modulo da PCDuino e o modulo
que obtém as grandezas do peso e temperatura ambiente, onde o D+ é ligado no adc 5 e sensor do
peso e o D- adc 4 e sensor da temperatura .
Figura 10 – Conector USB.
A figura 11 demonstra onde é conectado na balança que contem o sensor de peso e
temperatura ambiente.
Figura 11 – Imagem da balança com conector USB.
21
3.3.1 DESCRIÇÃO HARDWARE EMBARCADO COM ANDROID
O hardware de distribuidora e o aplicativo Android para pedidos e consultas online que
compartilham o mesmo software, onde as telas exibidas mudam conforme o tipo de usuário
autenticado. Com um aplicativo para as distribuidoras que enviam informações de sua localização
para o servidor e gerencia a logística da entrega, que armazena no banco de dados do servidor,
por conexão via 2G ou 3G, conectados a internet, e possui um banco de dados que armazena
informações básicas como usuário, senha, endereço do servidor e porta.
Quando conectado com usuário comum serve como consulta de informações do sistema
embarcado e realiza os pedidos, entretanto não utiliza o GPS para sua localização, somente o
endereço que foi cadastrado pelo usuário. Diagrama conforme figura 12.
Figura 12 – Diagrama simples aplicativo Android.
3.3.2 DESCRIÇÃO SERVIDOR WEB
Na figura 13, representa o diagrama simples do Servidor Web, que contem três
servidores habilitados, sendo um para atender a parte web do protocolo HTTP, outro para
comunicação entre o aplicativo Android utilizando trocas de chaves RSA e AES, e por ultimo,
22
o servidor responsável para se comunicar com o embarcado que monitor o gás utilizado a
criptografia de Cesar. O banco de dados é compartilhado entre todos os servidores.
Figura 13 – Diagrama simples Servidor Web.
23
4 DESENVOLVIMENTO
O projeto consiste em três sistemas, onde um sistema embarcado com três módulos de
hardware, possui um modulo com um sensor responsável em converter peso em sinal elétrico e
um sensor que converte temperatura ambiente em sinal elétrico, para ser amostrado no modulo
principal (PCDuino), que com um software gerencia o envio e recebimento de informações com
o servidor e monitora o botijão com ajuda dos modulo citado acima, pelo seus pinos analógicos.
Este sistema possui um hardware (LPC 1769), que comunica com a serial da PCDuino
para realizar a impressão no display. Possuindo um sistema com aplicativo Android para
consultas e gerenciar a logística. E um sistema para armazenar e controlar as informações de
todos os outros sistemas através de um banco de dados.
4.1 HARDWARE
São utilizados dois tipos de sensores no projeto, o de peso que utiliza 4 células de carga na
ligação em ponte de Wheatstone conectadas a um INA 128 com ganho de 50 para melhorar a
sensibilidade do sensor e da temperatura utilizando um sensor LM 35, conforme figura 14.
24
Figura 14 – Esquemático elétrico circuito que coleta grandezas de peso e temperatura.
Este hardware utiliza um cabo USB blindado para conectar com o módulo da PCDuino,
que serve para alimentar e passar as informações dos ADCs.
25
Para imprimir o display foi utilizado um modulo com a placa LPC 1769. Conforme a
figura 15.
Figura 15 – Esquemático elétrico das conexões entre a lpc 1769 e o display 16x4.
A figura acima possui uma UART RX que é ligada a PCDuino para gerar
comunicação, logo receber os pacotes de dados para imprimir no display.
O firmware colocado neste equipamento utiliza a IDE LPCXPRESSO, que em que
sua logica fica esperando os dados que vem da PCDuino para realizar a impressão no
display conforme o pacote de dados na tabela 4.
0 1 2 ao 18 19 20 ao 35 36 37 ao 52 53 54 ao 69 70
Byte Inicio Byte L1 Array L1 Byte L2 Array L2
Byte L3 Array L3
Byte L4 Array L4 Byte Fim
Tabela 4 – Pacote de comunicação serial.
26
Conforme a tabela 4, o byte na posição 0 do pacote é representado por um byte de
inicio de pacote, o da posição 1 por um byte que seta a linha 1, a posição 2 à 18 armazena a
linha 1 , 19 seta a linha 2, 20 à 35 armazena linha 2, 36 seta linha 3, 37 à 52 armazena linha
3, 53 seta linha 4, 54 à 69 armazena linha 4 e a posição 70 finaliza o pacote e imprime no
display as linhas recebidas pela serial, caso os bytes significativos que são da posições 0, 1,
19, 36, 53 e 70 não forem os corretos o sistema descarta o pacote.
Na PCDuino para entrada de dados, utiliza-se um teclado matricial para economizar
pinos de GPIOs utilizados em hardware, para realizar tal tarefa, observe na figura 16 que
possui linhas e colunas onde as linhas são colocadas para nível logico 1 uma de cada vez,
portanto a cada 50ms uma das linhas recebe o valor 1 e as outras 0, e com isso caso aperte
um botão a coluna correspondente passara de nível logico 0 para 1.
Figura 16 – Teclado matricial.
4.2 SOFTWARE
O mesmo aplicativo Android possui o funcionamento para as duas aplicações, verifica
qual telas usar conforme o login e senha. Conforme pode ser visto na figura 17.
27
Figura 17 – Fluxo do login do aplicativo andorid.
Para realizar todas as comunicações entre o aplicativo e o servidor web foi
implementado um protocolo que utiliza criptografias RAS e AES passando como pacotes
arquivos XML, figura 18.
Figura 18 – Fluxo de rede entre aplicativo Android e Servidor WEB.
1 - Aplicativo envia pedido de conexão.
2 - Servidor gera chave RSA pública e privada e envia a pública.
28
3 - Aplicativo gera chave AES criptografa chave com RSA e envia.
4 - Servidor decifra e armazena chave AES e retorna ACK.
5 - Cliente envia pacote XML criptografado com AES.
6 - Servidor envia resposta via XML criptografado com AES.
Para manter a distribuidora embarcada sempre com sua posição atualizada, o sistema
fica enviando a cada segundo a posição do aplicativo, confirme figura 19.
Figura 19 – Fluxograma do envio do gps no aplicativo da distribuidora móvel.
O aplicativo do usuário possui janelas de compra, confirmação de compra,
Informações do embarcado, e status de entrega realizada e finalizada, para o da
distribuidora móvel a tela inicial que mostra a posição e tela de pedidos a realizar e
finalizados, figura 20.
29
Figura 20 – Aplicativo Android para monitoramento e pedidos de gás.
O sistema embarcado foi implementado em linguagem C utilizado uma compilação
remota por makefile para ser alocado em uma pasta no sistema para reproduzir ao iniciar o
linux. Devido a demora na inicialização dos drivers do equipamento o sistema fica
aguardado a subida destes drivers, depois inicia e verifica o banco de dados. Caso não
possua o banco ele cria um default. Inicia a configuração dos pinos do sistema embarcado e
o servidore HTTP e NTP para manter os relógios sincronizados.
30
Figura 21 – Diagrama das Threads do Software Embarcado.
Conforme figura 21, este sistema possui 7 threads para gerenciar simultaneamente ou
quase todas as operações que o equipamento realiza.
Thread 1 (Servidor HTTP) inicia o servidor http que foi implementado no embarcado
em C atendendo posts e gets, para criar janelas html para ser acessado em um navegador,
ver figura 22.
32
Thread 2 (WIFI Config) é a que configura o WIFI do equipamento. O driver
utilizado tem a limitação de ao configurar uma rede WIFI, é necessário reiniciar o
equipamento. Também armazena no banco de dados o IP da rede WIFI e Cabeada, para
exibição no menu IP do display e na página WEB de configuração.
Thread 3 (IO Controller) é a que verifica as teclas pressionadas no teclado
traduzindo e gerando a ação necessária.
Thread 4 (Controller Serial) é responsável para enviar as informações para LPC 1769
para impressão do display com as instruções da Thread 3, conforme as figuras 23 e 24.
Figura 23 – Imagem do display do embarcado pedindo senha.
33
Figura 24 – Imagem da LPC 1769 conectada ao display.
Thread 5 (ADC Read e Media Móvel) é responsável pela execução do filtro de FIR
de média móvel de 1.000.000 de posições para converter o valor do ADC em peso e
temperatura onde ocorre uma convolução entre dois vetores, na figura 25 pode observar-se
que possui um vetor de 4 posições onde o primeiro multiplica com o primeiro o segundo
com o segundo e assim sucessivamente, e depois ocorre uma soma de todas as
multiplicações obtendo um resultado médio, o primeiro vetor é preenchido a cada leitura do
ADC que ocorre a cada 1ms e o segundo e preenchido no inicio do projeto realizando o
seguinte calculo Valor=1/tamanhoVetor. Também calcula a quantidade do gás e a previsão
de quantos dias faltam para acabar que é calculado com base no dia que foi trocado o
botijão menos o dia atual e com isso verifica quantos dias se passarão e faz uma media com
os dias que falta com a quantidade gasta desde a troca do botijão com isso obtém-se os dias
que falta para acabar o gás.
34
Figura 25 – Vetores de um filtro de FIR de media movel.
Thread 6 (Cliente) envia os dados de quantidade e dias faltantes do gás para o
servidor em forma de XML com criptografia de Cesar somando 10 nos bytes. Conforme
exemplo na figura 26.
Figura 26 – Exemplo de uso da cifra de César.
O protocolo de envio de pacotes de dados é conforme a figura 27.
35
Figura 27 – Diagrama de rede do Embarcado com o Servidor WEB.
` 1 – Inicia a conexão com o servidor, pega o arquivo XML e aplica criptografia de
César e envia para o servidor
2 – Servidor decifra pacote XML e responde se autenticação esta ok via XML
criptografando com César.
Thread 7 (CNTP) responsável em manter o embarcado com o relógio sincronizado
com o servidor WEB usando protocolo NTP. .
O servidor WEB foi implementado em java onde todo protocolo HTTP e leitor XML
foi feito não utilizando nenhuma biblioteca pronta. Todas as páginas estão em código Java e
são convertidas em execução para HTML, atende gets, posts, cookies. Por ser em HTTP não
é criptografado.
O servidor possui páginas WEB para cadastros de usuários de distribuidoras e
gerenciamento de logística de distribuidoras não móveis (figuras 28 e 29).
37
Figura 29 – Tela de Pedidos da distribuidora no Servidor HTTP.
O servidor tem 3 entradas de comunicação TCP/IP uma para HTTP, outra para os
embarcados e para aplicativo WEB. Lembrando que para aplicativos Android usa RSA/AES
e embarcados usa a cifra de Cesar.
Para realizar o cálculo para saber qual distribuidora está com a menor distância é
utilizada a lib Geocoder do Google Maps.
38
5 TESTES E RESULTADOS
Para verificar o ganho do sensor de peso e calibrar o sistema, foram plotados alguns
valores do ADC utilizando pesos aferidos pelo IPEM-PR (Figura 30) - Instituto de Pesos e
Medidas do Paraná, conforme tabela 5 sendo desta forma possível calibrar o desvio da balança
em relação aos pesos oficiais.
Figura 30 – Calibragem da balança com pesos de 20kg oficiais do IPEM-PR.
39
Peso (mg) Valor ADC
1000 227
2000 243
3000 259
4000 277
5000 292
6000 311
7000 329
8000 348
9000 365
10000 385
20000 570
30000 759
40000 955
50000 1148
60000 1341
70000 1530
80000 1727
90000 1917
100000 2116
Tabela 5 – Valores dos pesos em relação com o adc.
No caso da temperatura, para comparação utilizado um equipamento do IPEM-PR (figura
31), porém, como LM 35 é linear não foram plotados os dados para correção somente foi feita
uma regra de três com os valores medidos. O valor calculado foi 323 para 20°C .
41
Para realizar testes de múltiplas conexões foi criado um script de teste em linux para
inicializar vários pedidos no sistema embarcado verificando a integridade do sistema. Foram
gerados 65000 pedidos por segundo, sem nenhuma falha nas entregas de dados. Também foi
avaliado durante 1h com o Wireshark, um sistema de log de rede, sendo que no caso do Android
através de um script Java e não houve problemas de conexão. Para o protocolo HTTP foi
realizado o mesmo testes mais o script em Python.
Por ultimo foi realizado um teste com todos os scripts e não houve nenhuma perda de
informação.
Para garantir que o software embarcado consiga rodar sem ocorrer travamento por algum
motivo de acesso indevido de memoria, ou por alocar sem deslocar após terminar de utilizar o
ponto de memoria, foi rodado testes com o Valgrind que é um software de teste que avalia seu
executável em execução analisando o uso de memoria conforme vai progredindo nas execuções.
Para evitar erros em que o software embarcado por algum motivo seja interrompido por
alguma entrada indevida em uma função do projeto, criou-se testes unitário de funções para que,
toda alteração fosse rodada a cada entrega de projeto para garantir que a nova implementação não
venham danificar as anteriores. Na figura 32 contem os logs dos testes unitários.
Figura 32 – Log de testes unitários do software embarcado.
42
6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS
O projeto propôs um sistema de monitoramento e logística de gás GLP para prever o fim
do gás e fazer novos pedidos de uma forma prática e rápida usando sempre a distribuidora mais
próxima da residência do cliente. Conforme os testes realizados, o sistema teve um bom
comportamento de informação e resposta entre as aplicações e interfaces de monitoramento.
Observou-se que o sistema não possui uma boa precisão isso devido ao sensor de peso que no seu
datasheet possui um erro de 100 gramas e temperatura que possuem um erro de 0,5 graus.
Entretanto esse problema poderá ser resolvido usando uma válvula de gás digital para informar a
pressão do gás, mas lembrando que em caso comercial se o produto for invasivo é necessário
homologar no IPEM atendendo os seus requisitos.
O banco de dados por utilizar SQLite pode ter sobrecargas com o passar do tempo,
portanto, se faz necessário alterar para um banco de dados com maior robustez, entretanto, possui
uma facilidade de alterar o mesmo, visto que, a classe do banco de dados é uma interface onde
sua alteração não danifica nenhuma logica do sistema.
O Servidor Web, para ter uma utilidade mais comercial teria que ter um sistema melhor de
logística, como um estoque para não ocorrer compras sem a distribuidora possuir um produto e o
consumo do gás utilizar o banco de dados do servidor para melhorar a precisão e uma forma de
pagamento online.
Para desenvolvimento desse sistema embarcado foi utilizado recurso de aproximadamente
de R$ 1.000,00, porém, para que este produto possa ser produzido em escala comercial, há
necessidade de reduzir os custos.
43
7 BIBLIOGRAFIA
BURNETT, S, PAINE, S. Criptografia e Segurança: o Guia Oficial RSA, Editora Campus, RSA
Press, 2002.
COPAGAZ GLP. Disponível em:
<http://www.copagaz.com.br/representantes/o_que_e_glp.asp>.Acesso em: 10 out. 2015.
SIGNIFICADOS de GPS. Disponível em: <http://www.significados.com.br/gps/>.Acesso em: 1
nov. 2015.
CRIPTOGRAFIA Uma aplicação da matemática discreta através da implementação da cifra de
César em visualg. Disponível em:
<http://www.fatectq.edu.br/interfacetecnologica/arquivos/volume10/artigo02.pdf>.Acesso em: 4
dez. 2015.
IMAR Regulador de Gás com manômetro. Disponível em: < LAOINDUSTRIA Medidor de Gás.
Disponível em:
<http://www.laoindustria.com.br/images/uploads/Catalogo_%20G_0.6_2013.pdf>.Acesso em: 1
nov. 2015.
LAOINDUSTRIA Medidor de Gás. Disponível em:
<http://www.laoindustria.com.br/images/uploads/Catalogo_%20G_0.6_2013.pdf>.Acesso em: 1
nov. 2015.
LIQUGAS GLP. Disponível em:
<www.liquigas.com.br/wps/portal/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0os3hvPwMjIw9
3IwN_Cy9TAyM_L6_AAPNAI39zE_2CbEdFAPmfWrg!/.>. Acesso em: 1 nov. 2015.
MAURÍCIO,SOUZA,DECLERQUE. Automação e monitoramento remoto residencial, TCC,
Universidade Federal de Santa Maria, 2014.