Home

Sistema de Gerenciamento Remoto para Vending Machines

image

Contents

1. um tipo de comunicac o utilizada entre a VM C Controlador de Vending Machine e os perif ricos da Vending M achine Existem v rios tipos de perif ricos al m de v rios n veis de operac o de perif ricos Quando s o de n veis mais altos tem maior complexidade de resposta e operac o Maiores detalhes na Sec o Tecnologias utilizadas subsec o 3 Barramento M DB M ulti Drop Bus Tamb m conta com um display LCD onde o operador da m quina pode visualizar diversas informa es o menu principal e o retorno de algumas fun es como a visualiza o do estoque por exemplo Como o projeto de uma Vending Machine n o est presente no escopo do projeto ela simulada atrav s de sinais injetados no m dulo Assim deseja se na apresentac o ter um prot tipo funcional que possa simular uma VM e que seja capaz de demonstrar o correto funcionamento do sistema de telemetria desenvolvido Para isso usamos um emulador do barramento M DB Com este podemos ajustar cada byte que desejemos e ent o podemos envi lo central de telemetria O emulador est descrito na sec o 3 Emulador MDB e foi desenvolvido pela equipe para uso no projeto Uma vez interpretada operac o realizada no barramento ou ent o iniciada uma ac o pelo operador da central O m dulo de telemetria abre uma conex o com o servidor remoto atrav s da seguinte func o em Java static String net String parametro String ip String url throws IO
2. e printStackTrace public static void inicializar String str try str tira xml inicializar ServicosHttp net CentralTelemetria Menu nome central Menu ip inicializar System out println str LCD_Mgr pula_linha 1 if str indexof com Sucesso gt 0 LCD Mgr escreve sem pular linha Sucesso else LCD Mgr escreve sem pular linha Fail Menu inicializa true catch IOException e e printStackTrace catch GpioException e e printStackTrace 79 private static String tira xml inicializar String net 0k if net indexOf Sucesso 0 return net substring net indexOf Sucesso Mensagem 19 net indexOf Mensagem Da return net substring 0 net indexOf 0 net substring net indexOf lt ID gt 4 net indexOf ID net substring net indexOf Mensagem 10 net indexOf Mensagem public static void executa_os_corrente String nome_central String ip String osid try ServicosHttp net CentralTelemetria nome central sidO0rdemServico osid ip abastecida catch IOException e e printStackTrace public static void completar try ServicosHttp net CentralTelemetria Menu nome central Menu ip completa catch IOException e e printStackTrace System out println Maquina com reservatorios co
3. bits 7 i b amp 1 lt lt i 0 return bits public static void sensores boolean entrada String 5 for int i 0 i lt 11 i if entrada il S yw else S 0 try pula linha 1 escreve sem pular linha s catch GpioException e e printStackTrace 87 5 Arquivo produto java package 324 public class produto public int id produto cartucho estoque atua public float preco public byte MDBcode public String nome public produto int id produto int cartucho MDBcode String nome this cartucho cartucho this id_produto id_produto this preco preco this MDBcode MDBcode this nome nome 6 Arquivo ServicosGpio java package 424 oem oem oem oem motorol com motorol com motorol com motorol hapi GpioException hapi GpioInput hapi GpioInterruptConfig hapi GpioOutput import import import import com Doo O public class ServicosGpio l capacidade max float preco byte private static GpioInput private static GpioInput private static GpioInput public static GpioOutput public static GpioOutput public static GpioOutput gi4 416 read G eue i g latch input wkupo public static void inicia GpioInterruptConfig gpioInterruptConfig Coisas do Input throws GpioException Clk i new GpioOutput 2 Clock latch input g read wkupo new GpioOut
4. gt Logadouro CHAR 200 gt Cidade CHAR 20 gt Estado CHAR 2 gt CEP CHAR 8 gt ContatoNome CHAR 50 gt ContatoTelefone CHAR 20 gt ContatoEmail CHAR SO Duct ias 2 7 idProduto INT gt Nome CHAR 40 gt PrecoVenda FLOAT gt Descricao BLOB gt idFornecedor INT i iddiente INT bz 7 idVenda INT idProduto INT gt Preco FLOAT O Data DATETIME idVendingMachine INT 7 idProdutos OS INT idOrdemServico INT idProduto INT A 7 idVM Produtos INT idVendingMachine INT idProduto INT gt Cartucho INT gt Capacidade INT gt Estoque INT WS 7 idVendingMachine INT iddiente INT gt Central Telemetria CHAR 20 gt Nom e CHAR 40 gt Cartuchos INT gt Logadouro CHAR 200 Cidade CHAR 20 CEP CHAR 2 Figura 19 Diagrama Entidade Relacionamento Completo 3 Emulador MDB 7 idAuditoria INT idOrdemServico INT gt Resultado ENUM 7 idOrdemServico INT idVendingMachine INT gt Data DATETIME O Atendida DATETIME Auditoria BIT 7 idAlertas INT idVendingMachine INT gt Mensagem CHAR 200 Ld Como n o tivemos acesso a uma Vending Machine para executar nossos testes desenvolvemos um emulador do protocolo MDB A func o deste enviar atrav s de uma porta serial um byte com 9 bits tal qual o pr prio M DB 3 1
5. 4 net indexOf id 0 net substring net index0f lt mensagem gt 0 10 net indexOf mensagem 0 else n tem status 1 return net substring 0 net indexOf 0 net substring net index0f lt Mensagem gt 0 10 net indexOf Mensagem 0 public static void testa_estado_da_maquina String str try 1cd escreve tira_xml_status ServicosHttp net null ip status false str tira xml status ServicosHttp net CentralTelemetria Menu nome central Menu ip status System out println str LCD Mgr pula linha 1 if str indexOf n o Inicializada gt 0 LCD Mgr escreve sem pular linha Nao Inicializada else LCD Mgr escreve sem pular linha Inicializada catch IOException e e printStackTrace 78 catch GpioException e e printStackTrace public static void detalhes_os Vector nome_de_produto Vector quantidade_de_produto int os_indice System out println Nome do produto nome de produto elementAt os indice System out println Quantidade do produto quantidade de produto elementAt os indice try LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha String nome de produto elementA t os indice LCD Mgr pula linha 1 LCD Mgr escreve sem pular linha String quantidade de produto el ementAt os indice catch Exception e
6. Figura 29 Suporte para o G24 e Conversor MDB Monitora o barramento MDB atrav s do micro controlador PIC A placa tamb m possui um cristal para gerar o clock do PIC e um led para monitorar o nono bit M aster Slave transmitido pelo MDB Figura 30 Conversor MDB 1 1 Conectando as placas O SIM CARD conectado na placa principal Figura 31 Nesta placa tamb m v o ligados o conversor MDB Figura 32 a placa do LCD Figura 33 e a placa respons vel pelos sensores Figura 34 modem vai ligado ao suporte que por sua vez tamb m fica encaixado na placa A antena vai ao conector Figura 36 e a outra ponta do conector ao Modem G24 Figura 37 41 Figura 31 Com SIM CARD Figura 32 Conectando o m dulo conversor de MDB Figura 34 Conectando a placa dos sensores 42 Figura 36 Conectando o adaptador a antena Figura 35 Interconex o entre a placa e suporte ao M dulo G24 Figura 37 Modem conectado a antena 43 2 Sobre o Firmware Todo o firmware que roda no m dulo G24 orientado a interrupc es Isto significa que em grande parte do tempo o m dulo est desocupado Tamb m h uma rotina de inicializa o executada junto ao servidor quando a m quina conectada pela primeira vez n o necess rio em casos de falta de alimentac o da rede el trica Todas as func es s o direta ou indiretamente chamadas pela func o onInterrupt int boolean arquivo UserM IDlet java
7. break static public void botao_menu throws Exception Estados do menu 0 raiz 1 Status 11 Verifica Status m 12 inicializar 13 estoque 131 Estado especial Para baixo prod estoque Para cima prod_estoque Back estado 13 2 Ordens de Servico 21 Escolher os 211 Estado especial Menu Escolhe OS Para baixo os Para cima os Back estado 21 22 Detalhar os escolhida 221 Estado especial Menu nao faz nada Para baixo produto Para cima produto Back estado 21 23 Executar os escolhida 24 Completar 3 Sensores switch estado atual case 0 ip Auxiliares pega ip estado atual 1 System out println MENU 13 System out println gt gt gt 1 Status System out println 2 OS System out println 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Menu LCD Mgr pula linha 1 LCD Mgr escreve sem pular linha 1 Status break case 1 estado atual 11 System out println gt gt gt 11 Verificar status System out println 12 Inicializar System out printin 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular 1 11 Status break case 11 System out println Verifica status LCD Mgr LCD clear and reset LCD Mgr escreve sem pular l
8. catch Exception e e printStackTrace j return b public static byte le 1 byte da uart int i System out println Lendo try 1 if leitor available O for i 0 i Byte lido length i Byte lido i 0 Zerando os bytes lidos if leitor available 1 leitor read Byte lido 0 1 System out println Byte lido char bb return bb catch Exception e e printStackTrace return bb 96 Anexo 2 Firmware do Conversor 9bits MDB gt 8bits nclude p16F876a inc cblock 0x20 cont aux tempo tempo2 conta 2a vez endc ser de 4 x 9600 38400Hz 40Khz no m nimo Usando um clock de 4M Hz sem pr scaler temos cada incremento do timer a 4000000 4M Hz Assim o timer tem que contar at 40000 384 2104 BANKSEL PR2 movlw 104 Timer2 vai contar at este valor para interromper em 9600hz a partir do clock movwf PR2 setando interrup es movlw b 11010000 movwf INTCON Ta no mesmo banco do PR2 bcf OPTION REG INTEDG movlw b 00001111 movwf TRISB Ta no mesmo banco do PR2 clrf PORTC BANKSEL PORTB cirf PORTB clrf PORTC bsf PORTB 4 bsf PORTB 5 pisca BSF PORTB 6 call aguarda2 BCF PORTB 6 call aguarda2 decfsz cont goto pisca movlw 9 movwf cont 97 goto loop infinito interrupcao bsf PORTB 7 btfss PIR1 TM R2IF timer goto int portB era bsf 0 Timer Interrupt bcf PIR1 T
9. 21 escolher OS deve ter surgido novamente Pressione as setas de direc o at que a opc o 22 Detalhar OS seja exibida Pressione novamente o bot o ENTRAR Agora o LCD deve exibir Detalhar OS Use as setas de navegac o para exibir os produtos que comp e a Ordem de Servico escolhida Os produtos ter o seu nome exibido na linha de cima e a quantidade na linha de baixo 112 Ap s verificar se todos os produtos da Ordem de Servico conferem com os que est o no sistema pode proceder com o reabastecimento Depois pressione o bot o VOLTAR e navegue usando as setas de direc o at a opc o 23 Executar os m Pressione o bot o ENTRAR para finalizar a opera o 5 Sensores A situa o de cada sensor da vending machine pode ser exibido no LCD Para visualizar a situa o dos sensores siga os passos a seguir a No LCD pressione o bot o VOLTAR sucessivas vezes at que apare a escrita a palavra RAIZ Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informa es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a primeira op o 1 Status Usando as setas de dire o navegue at a op o 3 SENSORES Pressione o bot o ENTRAR A central ir escrever no LCD a palavra IENTRADA na primeira linha seguido da situa o de cada sensor na segunda linha Os valores exibidos est o em forma de 1 ou
10. Auxiliares pega produto anterior ID os vetor indice Auxiliares detalhes os nome de produto quantidade de produto vetor indice break 71 static public void para cima throws Exception switch estado atual case 2 System out println MENU System out println gt gt gt 1 Status System out printin 2 OS System out println 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 1 Status estado atual 1 break case 3 System out println MENU System out println 1 Status System out println gt gt gt 2 OS System out println 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 2 OS estado atual 2 break case 12 System out print l gt gt gt 11 Verificar status Ln System out println 12 Inicializar Ln System out println 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 11 estado atual 11 break case 13 System out print Verif Status 11 Verificar status In System out println gt gt gt 12 Inicializar Ln System out println 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 12 estado atual 12 Iniglalisar break case 22 System out printin gt gt gt 21 Escolher os System out println 22 Detalhar os Sys
11. O c digo java que est implementado no modem encontra se no Anexo 1 Firmware do Modem G24 JAVA 2 1 Rotina de Inicializac o Assim que se instala uma nova Vending M achine necess rio inicializ la A rotina de inicializa o tem como objetivo fornecer ao sistema de telemetria as informa es necess rias sobre a m quina que est sendo monitorada sobre em que cartucho est qual produto Ao ligar a central acessando a func o de inicializac o esta pede que se pressione os bot es dos produtos carregados na m quina Fazendo isso a rede M DB da m quina vai gerar o c digo referente entrega de cada um destes produtos A central fica monitorando o barramento MDB e armazena a informac o presente em uma estrutura de dados da mem ria interna Como a central recebe do servidor a informac o de quantos tipos diferentes de produtos esta m quina receber um loop executado para que todos os cartuchos presentes na m quina sejam armazenados O exemplo do arquivo recebido pela central de telemetria est apresentado em 1 2 Inicializar na p gina n 11 As func es respons veis pela rotina de inicializac o s o e Inicializa MDB arquivo MIDlet java e le da uart arquivo Uart java 2 2 Navegac o no Menu A navegac o no menu disparada por uma interrupc o na linha GPIO 14 Esta dispara o processo de leitura das portas de entrada atrav s dos shift registers j comentado Os valores lidos do shift re
12. lt MDB Dados Clock Output Enablg C o Shitt Register de saida pre E Teclado Sensores MiIDlel download Figura 24 Diagrama de blocos do G24 com os perif ricos usando os shift registers Podemos notar um ret ngulo abaixo do G24 e dos shift registers Este representa o gerenciador de interrup es comentado anteriormente Na figura abaixo temos o diagrama completo das conex es Alguns dos m dulos n o foram utilizados neste projeto como os de udio ou de USB por exemplo 36 02 33 4 2400 voc 4 4 12 usa DP USB VEUS 14 USB DN 16 WKUPI PCM DIN PCM Transceiver Level 2 15Vdc Digital Audio 1 Transceiver 3 S SIM CLK 10m s SIM VOC W connection a ISMPDN P ESD Impedance march 52 SIM DIO ol RM 54 INC 36 INC amp amp amp E Inteface Figura 25 Diagrama geral de conex0es Antes de ser feita a escolha deste modem para o m dulo de telemetria foi considerada a possibilidade de serem utilizados os protocolos de comunicac o sem fio Zigbee e Simplicity al m da comunicac o via Ethernet Em conversa com o professor Afonso Miguel orientador deste projeto foi descartado o uso da porta Ethernet j que algumas empresas n o permitem que terceiros se conectem sua rede local O Zigbee e o S
13. quantidade de produto new Vector 40 os new Vector new Vector data_os new Vector public static Vector produtos desta maquina public static boolean inicializa false public static Vector produtos estoque new Vector public static int prod estoque indice O static public void back throws Exception switch estado_atual 1 2 3 System out println Raiz LCD Mgr LCD clear and reset estado atual 0 break case 11 case 12 case 13 System out println MENU System out println gt gt gt 1 Status System out println 2 OS System out println 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 1 estado atual 1 break case 21 case 22 case 23 case 24 System out println MENU System out println 1 Status System out println gt gt gt 2 OS System out println 3 Sensores LCD Mgr escreve sem pular linha Raiz Status 69 LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 2 OS estado atual 2 break case 131 System out println 11 Verificar status System out println 12 Inicializar System out println gt gt gt 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 13 Estoque estado atual 13 break case 211 case 221 System o
14. wb setGprsApn zap vivo com br wb setGprsPassword vivo 89 wb setGprsUserName vivo wb setSessionName Java Session try WebSessionManager updateWebSession wb 1 catch WebSessionException el el printStackTrace catch NullPointerException el el printStackTrace catch IllegalArgumentException el el printStackTrace public static String gsmRegStateToString int gsmRegState switch gsmRegState case Network GSM STATE NOT REG NOT SEARCH return Not registered not searching case Network GSM STATE NOT REG SEARCH return Not registered searching case Network GSM STATE REG DENIED return Registration denied case Network GSM STATE REG HOME return Registered home case Network GSM STATE REG ROAM return Registered roaming case Network GSM STATE UNKNOWN return Unknown throw new IllegalArgumentException Illegal GSM registration state static String net String parametro String ip String url throws IOException String _url InputStream is null OutputStream os null StringBuffer sb new StringBuffer HttpConnection httpConn null if ip null _ url http toc gateon com br url e httpoiy ip ytoo remoto php url 90 httpConn HttpConnection Connector open url httpConn setRequestMethod HttpConnection POST httpConn setRequestPropert
15. 00011xxxB 00100xxxB 00101xxxB 00110xxxB 00111xxxB 00H 08H 10H 18H 20H 28H 30H 38H Reserved for VM C Changer Cashless Device 1 Communications Gateway Display Energy Management System Bill Validator Reserved for Future Standard Peripheral lt lt gt 2 2 2 21 48 01000xxxB 40H Universal Satellite Device 1 40H 01001xxxB 48H Universal Satellite Device 2 01010xxxB 50H Universal Satellite Device 3 01011xxxB 58H Coin Hopper or Tube Dispenser 1 01100xxxB 60H Cashless Device 2 01101xxxB 68H Coin Hopper or Tube Dispenser 2 01110xxxB 70H Reserved for Future Standard Peripherals 11011xxxB D8H Reserved for Future Standard Peripherals 11100xxxB Experimental Peripheral 1 11101xxxB EBH Experimental Peripheral 2 11110xxxB FOH Vending Machine Specific Peripheral 1 11111xxxB F8H Vending Machine Specific Peripheral 2 Al m das especificac es de endere o tamb m foram especificadas func es padr es para alguns tipos de perif ricos Procedimentos de Teste e Valida o Durante o Desenvolvimento 1 Modem GPRS Inicialmente apresentava se como o maior desafio do projeto por se tratar de uma tecnologia nova para os envolvidos Foram feitos testes de troca de mensagens b sicas Ol mundo at que alcancada a estabilidade no sistema de comunicac o Os m dulos foram capazes de enviar e receber mensagens HTTP interpretar estas
16. 2 Ordens de Servico 2 seleciona os corrente 211 Detalhes da os corrente 212 Executar a os corrente 22 Completar 3 Sensores public UserMIDlet OSC stopMIDletWatchdog System out println My First G24 MIDlet protected void destroyApp boolean unconditional throws MIDletStateChangeException 61 protected void pauseApp 1 Avantt Hypertechnologies protected void startApp throws gpioInterruptConfig new try Vart inicia_uartl LCD Mgr inicia lcd LCD Mgr escreve In MIDletStateChange Exception GpioInterruptConfig this 7 ServicosGpio inicia gpioInterruptConfig icializando ServicosHttp conectar ServicosGpio wkupo write true MasterSlave new Gp InteruptMDB new Gp InteruptMDB Menu ip Auxiliares ServicosHttp net CentralTelem ioInput 12 ioInput 15 enableInterrupt gpioInterruptConfig pega ip p eleatr LCD Mgr LCD clear an ServicosGpio le tudo catch GpioException e System out println e printStackTrace catch Exception e 1 System out println System out println e e printStackTrace System out println End St private static void showDateTim dateTime 0 1 int year if year lt 2000 year 2000 String time if dateTime 3 time 0 lt 10 time 4 time 4 dateTime 3
17. System out println Bot o back Menu back catch Exception el el printStackTrace fim da on interrupt private static void Trata Sensores try 4 ServicosGpio le tudo entrada System out println Nn SENOS eese i for int i 0 1 lt 16 i 65 System out println entrada i entrada i catch GpioException e e printStackTrace System out println String alerta lt Conteudo gt lt Alertas gt boolean alertar false for int i 0 i lt 12 i 1 if entrada i entrada old i alerta lt Alerta gt lt Mensagem gt S i entrada i lt Mensagem gt lt Sensor gt i lt Sensor gt lt Estado gt entrada i lt Estado gt lt DataHora gt 1988 06 03 24 00 00 lt DataHora gt lt Alerta gt alertar true entrada old i entrada i if alertar 1 alerta lt Alertas gt lt Conteudo gt try 1 ServicosHttp net CentralTelemetria Menu nome central amp XML alerta Menu ip alerta catch IOException e e printStackTrace private static int Inicializa MDB produto p if index 1 System out println Vamos incializar alguns registros na m quina System out println Por favor pressione o bot o referente ao produto indicado try LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Pressi
18. dotado de 11 pinos de comunicac o paralela Quando algum dado for inserido nas portas para sensores o sistema gera um pulso no pino de interrupc o do m dulo Assim esta envia para o servidor a situac o atual dos sensores Procedimento de aquisic o de dados da Vending Machine Conectar os sensores da m quina nas portas dispon veis no m dulo de telemetria Os sensores devem ter sa da digital TTL O servidor avisado quando qualquer um deles trocar de estado 5v gt 0v ou Ov gt 5 Par metros utilizados ServicosHttp net CentralTelemetria Menu nome central amp XML t alerta Menu ip alerta Neste caso o primeiro par metro carrega tamb m um XML contendo os dados sobre os sensores que foram ativados na vari vel alerta Exemplo do XML transmitido lt Conteudo gt lt Alertas gt lt Alerta gt lt Mensagem gt Teste lt Mensagem gt lt Sensor gt 1 lt Sensor gt lt Estado gt TRUE lt Estado gt lt DataHora gt 2010 11 26 01 14 40 lt DataHora gt lt Alerta gt lt Alertas gt 16 lt Conteudo gt Exemplo de retorno lt xmlversion 1 0 encoding ISO8859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Alerta gt lt gt 1 registrado com sucesso Teste lt gt lt 10 gt 97 lt 1 gt lt Alerta gt lt Sucesso gt lt Conteudo gt 1 7 Vendas O processo de venda ocorre quando um produto vendido pela Ven
19. o exibidos no LCD corretamente e Caso de fracasso Os estados dos sensores n o s o exibidos ou exibidos incorretamente 3 Procedimentos executados em conjunto VM e Servidor 1 Atendimento de Ordens de Servi o e Caso de Sucesso As ordens s o atendidas e o servidor processa os dados destas ordens e Caso de fracasso As ordens de servi o n o s o atendidas ou o servidor n o consegue processar corretamente os dados recebidos 55 An lise de Riscos 2 Vendas e Caso de Sucesso A m quina detecta uma venda no barramento M DB e envia um XML para o servidor que recebido e processado com sucesso e Caso de fracasso A m quina n o detecta a venda e Caso de fracasso O servidor n o recebe a venda e Caso de fracasso O servidor n o processa a venda 3 Gerando Alertas e Caso de Sucesso A m quina identifica uma mudan a de estado nos sensores e gera um XM L de alerta para o servidor que recebe e processa corretamente e Caso fracasso A m quina identifica uma mudan a de estado nos sensores e Caso de fracasso O servidor n o processa o alerta da m quina Osriscos no projeto foram ID Descricao Pro Imp Sev Ac o Prevenc o Conting ncia 1 Dificuldade na M dia Alto Alta Consulta a Substituic o do integrac o do documentac o e modem GPRS por m dulo GPRS com especialistas porta Ethernet o servidor e ou para comunicac o m dulo de via Internet telemetria 2 B
20. 0 Quando exibido o valor 1 o sensor encontra se ligado e quando exibido o valor 0 o sensor encontra se desligado A ordem de exibi o dos sensores no LCD vai da esquerda para direita em ordem crescente ou seja o primeiro sensor exibido o sensor um e assim por diante 6 Completando reservat rios Para facilitar o processo de utilizac o da central ela possui uma opc o que completa o reservat rio de todos os cartuchos junto ao servidor Para efetuar tal processo os seguintes passos devem ser seguidos a C d No LCD pressione o bot o VOLTAR sucessivas vezes at que apareca escrita a palavra RAIZ Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informac es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a primeira op o 1 Status Usando as setas de direc o navegue at a opc o 2 OS Aguarde um momento enquanto o sistema se conecta ao servidor carregando as informac es necess rias 113 Caso apareca no LCD N O TEM OS significa que n o existem ordens de servico cadastradas no servidor Se alguma ordem tenha sido emitida mas n o esteja aparecendo no sistema contate o Suporte T cnico Quando as ordens de servico dispon veis tiverem sido carregadas o LCD exibir 21 Escolher OS Usando as setas de direc o navegue at a opc o 24 Completar Pressione o bot o ENTRAR para iniciar a transac o com o
21. 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt 5 550 gt lt Mensagem gt Situa o do Estoque Registrado Servidor lt Mensagem gt lt Data gt 2010 11 26 12 09 31 lt gt lt nCartuchos gt 10 lt nCartuchos gt lt Cartuchos gt lt Cartucho gt lt gt 1 lt gt lt idProduto gt 1 lt idProduto gt lt Estoque gt lt Capacidade gt 50 lt Capacidade gt lt Atual gt 0 lt Atual gt lt Minimo gt 20 lt Minimo gt lt Estoque gt lt Detalhes gt lt Nome gt produtox Teste 2 lt Nome gt lt gt 14 00 lt gt lt Descricao gt Uma descric o de um produto lt Descricao gt lt Detalhes gt lt Cartucho gt lt Cartuchos gt lt Sucesso gt lt Conteudo gt Os campos deste XML s o auto explicativos e se referem ao conte do presente em cada Cartucho da Vending Machine Entende se como sendo um cartucho a estrutura interna da m quina respons vel por armazenar um conjunto de produtos do mesmo tipo A contagem de elementos do tipo Cartucho pode variar de 1 nCartuchos dependendo do n mero de cartuchos inicializados no servidor Se um cartucho estiver registrado como vazio ele n o aparece na resposta 10 Embora esteja presente o campo Detalhes gt Descricao dentro de cada estrutura do tipo Cartucho esta informac o n o utilizada pela central de telemetria Este campo foi mantido como proposta de que mais informa es poderiam ser t
22. E z BC548B z e 8 a gt e 8 10 IC1C 2 3 5 48 LM324N T 114 1 1 1 M 13 2 LM3p4N 1 x 2 el lZ 71 C2 Tiro 4094N Figura 41 Gerenciadora de Sa das Esquem tico CLK D STR 105 3 Principal Figura 42 Placa Principal Layout 106 Figura 43 Placa principal Esquem tico Figura 44 Suporte do G24 Layout J1 92949924999499949999 Figura 45 Suporte do 624 Esquem tico 107 4 Conversor MDB gt 8bits RAD ANO RA1 AN1 RA2 AN2 RA3 AN3 RA4 TOCKI RAS ANA OSC1 CLKIN OSC2ICLKOUT RCOM10SO RCA T1OSI RC2ICCP1 RC3 ele PIC16F870P Figura 47 Conversor MDB gt 8bits Esquem tico 108 Anexo 5 Manual de Instruc es Manual de instruc es da Central de Telemetria para Vending Machines A central de telemetria tem um sistema de menus simples para se interagir Ele formado por quatro bot es sendo eles Para cima Para baixo Voltar e Entrar Para navegar nos menus utilize as teclas Para Cima e Para Baixo Para aceder a uma func o ou subir um n vel no menu utilize a tecla Entrar Para retornar ao n vel anterior utilize Voltar
23. Estoque g Pressione o bot o ENTRAR O LCD deve exibir Estoque Agora a central vai transferir os dados para o computador Para verificar os dados no LCD da pr pria m quina pressione as setas de direc o para cima e para baixo Os dados dever o surgir no LCD da seguinte forma 32 p 4 EA OMAX 5 Eles est o organizados da seguinte forma e Oprimeiro n mero representa o cartucho da m quina No caso 2 e Apalavra que aparece no final o nome do produto aqui Azera p Este nome pode aparecer cortado se for muito grande e n o couber no LCD Isto normal Em nosso caso o nome completo do produto Azera preto e Osegundo n mero representa o ID do produto em nosso exemplo 4 e Nalinha de baixo o n mero que vem ap s EA o Estoque Atual da m quina No caso temos 0 unidades 111 O n mero ap s MAX indica a capacidade m xima da m quina Aqui temos 5 unidades no m ximo Ordens de Servico As Ordens de servico s o conjuntos de dados enviados pelo servidor para a Central de Telemetria contendo os dados a respeito dos produtos que dever o ser reabastecidos na Vending M achine Quando o respons vel pela execuc o da Ordem de servico estiver junto m quina este pode verificar ent o os dados atrav s do sistema para conferir com aqueles presentes na Ordem de Servico a se executada Para tanto os seguintes passos devem Ser executados a No LCD pressione o bot o VOLTA
24. GetPortNames Portas Add s return Portas public string SetPortName string defaultPortName _serialPort PortName defaultPortName return _serialPort PortName public bool SetPortParity int Pari dade if Paridade 0 _serialPort Parity Parity Space else if Paridade 1 _serialPort Parity Parity Mark else return false return true public bool EnviaByte byte teste try _serialPort Write teste 0 1 catch Exception envio System Wi ndows Forms MessageBox Show Erro no envio envio return true 102 2 Arquivo Forml Designer cs PORTA COMI v D D7 D6 D5 D4 D3 D2 D1 DO MB Decimal Ascii 0 103 Anexo 4 Layouts e Esquem ticos das placas 1 Gerenciadora de Entradas s IC1B 7 D1 3 IC1A 1N4148DO035 7 1 LM324N LM32 10 8 D2 1N4148D035 7 LM324N R1 240k R2 240k Q 220nF T 00nF IC2B 7 D 3 ICRA 1N4148DO35 7 1 LM324N LM32 1 2 8 n amp o 5 1 le 220nF 100nF D 1N4148DO35 7 LM324N Q1 BC548A R19 T 10k Figura 39 Gerenciadora de Entradas Esquema 104 2 Gerenciadora de Sa das Figura 40 Gerenciador Sa das Layout
25. O menu est estruturado conforme a rvore seguir Os comandos poss veis da Central est o descritos abaixo 3 Sensores 3 11 Verif Status 12 Inicializar 13 Estoque 1 Inicializac o da central Quando a central iniciada ela recebe do servidor todos os itens que comp e o estoque da m quina Para fazer a inicializac o alguns registros devem ser feitos na central para que ela saiba qual produto est localizado em cada cartucho da vending machine Este registro feito de forma simples e autom tica na central e necessita apenas de uma pequena intervenc o do respons vel t cnico Para executar este procedimento siga os passos adiante 109 No LCD pressione bot o VOLTAR sucessivas vezes at que escrita palavra RAIZ Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informac es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a primeira op o 1 Status Aperte novamente o bot o ENTRAR O LCD dever mostrar 11 VERIF STATUS Usando as setas de direc o navegue at a opc o 12 INICIALIZAR Aperte novamente o bot o ENTRAR O LCD mostra ent o a palavra Inicializa Aguarde um momento enquanto a central se comunica com o servidor para iniciar os procedimentos de inicializac o remota O LCD ent o deve mostrar a palavra SUCESSO na segunda linha i
26. comp em o escopo do projeto as seguintes atividades e Desenvolvimento de uma Vending M achine e Desenvolvimento de um modem GPRS e Interpreta o completa do protocolo MDB Neste projeto ser apresentado Altera es no Escopo do Projeto p 4 mostra as altera es realizadas durante desenvolvimento para que o projeto pudesse atender ao seu objetivo prim rio Detalhamento F sico e Tecnologias Utilizadas p 6 apresenta como usado cada m dulo do sistema e como eles atuam Central de Telemetria p 8 mostra quais as opera es b sicas e explica como elas ocorrem internamente ao sistema Servidor p 18 mostra as classes e diagramas de relacionamento para o modelo de banco de dados do sistema Funcionamento do Servidor p 22 informa es sobre a sequ ncia de comandos executados pelo servidor Emulador MDB p 31 mostra como funciona o emulador desenvolvido pela equipe Tecnologias utilizadas p 31 mostra os m dulos de hardware necess rios para 0 funcionamento do sistema Procedimentos de Teste e Valida o p 49 m todos aplicados para teste do sistema desenvolvido An lise de Riscos p 54 apresenta poss veis riscos previstos no desenvolvimento do projeto Viabilidade e Conclus es p 57 traz o estudo feito para levantar a viabilidade do projeto face s dificuldades e concorrentes As conclus es trar o as considera es finais sobre o projeto Cronograma p 59 detalha as d
27. de estoque das Vending 27 2 6 de Relat rios 27 2 7 Atualiza o de Informa es 29 2 8 Arquivos 29 3 31 3 1 Funcionamento do Emulador 31 3 2 Usando o Emulador 31 Tecnologias utilizadas 32 1 Transmiss o de Dados 32 2 Sobre o Hardware 33 1 1 Conectando as placas 41 Sobre o 44 2 1 Rotina de Inicializac o 44 2 2 Navega o no Menu 44 2 3 Conex o com a Internet 45 24 46 2 5 Alertas e Sensores 46 2 6 Ordens de Servi o 46 2 7 Escrita LCD 47 2 8 Conversor 9bits M DB gt 8bits 47 3 Barramento M DB M ulti Drop Bus 48 Procedimentos de Teste e Validac o Durante o Desenvolvimento 49 1 Modem 49 2 M dulo de Telemetria 50 Procedimentos de Teste e Validac o Para a Defesa do 54 1 Procedimentos Executados exclusivamente no Servidor 54 2 Procedimentos executados exclusivamente na Vending M achine 55 3 Procedimentos executados em con
28. elemento dessa OS public static int pega_proximo_produto Vector IDos int indice_atual 83 if indice atual gt IDos size 1 return indice atual N o d pra avan ar mais if IDos elementAt indice atual IDos elementAt indice atual 1 Se o pr ximo elemento for da mesma OS return indice_atual else return indice atual O pr xiimo elemento nao da mesma OS Estamos no ultimo elemento dessa OS public static void atualiza lcd com o produto atual produto el String cart f nome cart el cartucho if el cartucho 1000 cart if el cartucho 100 cart if el cartucho 10 cart id el id produto nome el nome if el nome length gt 10 id length nome nome substring 0 10 id length try 14 LCD Mgr LCD clear and reset LCD Mgr escreve cart nome id LCD Mgr pula linha 1 LCD Mgr escreve EA el estoque atual MAX el capacidade max System out println LCD Mn cart nome id System out println EA el estoque atual MAX el capacidade max catch GpioException e e printStackTrace catch Exception 1 e printStackTrace 84 4 Arquivo LCD Mgr java package 324 import com motorola oem hapi GpioException import com motorola oem hapi GpioOutput public class LCD Mor private static boo
29. erros de soldagem ou componentes queimados ou danificados o Verificar a fonte de alimenta o assegurando que o modem est corretamente alimentado o Verificar o circuito gerenciador de interrup es garantindo que est gerando as interrup es para cada altera o no barramento paralelo dos sensores 3 Um dos bot es do m dulo pressionado e seu respectivo n mero exibido no LCD do m dulo e Caso de sucesso O G24 J responde a interrup o e manda as informa es ao display e Caso de fracasso O n mero do bot o n o exibido corretamente o Verificar soldas na placa do LCD o Verificar conex es com a placa do LCD e Caso de fracasso Nada exibido no LCD o Verificar alimenta o do m dulo LCD o Verificar backlight do LCD bem como seu contraste 4 Uma das chaves representando os sensores ligada ou desligada e seu estado exibido no LCD 52 Caso de sucesso O G24 J responde a interrup o e manda as informa es ao display Caso de fracasso O n mero do sensor ou seu valo n o exibido corretamente o Verificar resistores de pull down no m dulo de entrada o Verificar conex es com a placa de entrada dos sensores Caso de fracasso Nada exibido no LCD o Verificar alimentac o do m dulo LCD o Verificar conex es com o m dulo LCD backlight e contraste o Verificar alimentac o do m dulo de entrada dos sensores 53 Procedimentos de Teste e Validac o Para a Defesa do Projeto Como est
30. mail registrado e Ur oe mp Telemetria para Vending Machines In cio Estoque VM M quinas ndo inicializadas Cadastro de Vending Machines VM1 5 cartuchos Cadastro de Produtos Produto Estoque das Vending Machines Relat rios Atualizar Dados Envio de Arquivos Figura 15 Esboco Tela de Relacionamento de Produtos 2 6 Emiss o de Relat rios Arquivo Relatorios php 1 Oferece opc es de relat rio a Ordensde Servi o i Oferece possibilidade de emitir OS com base em 1 Regras autom ticas de reabastecimento 2 Reabastecer Tudo 3 Sele o Manual de Vending Machines 4 Selec o Manual de Produtos ii Exibe ordens de servico para impress o e ou envia por email b Hist rico de Vendas i Permite ver um resumo das vendas da m quina c Hist rico de Alertas Permite visualizar os registros de alertas recebidos d Ordens de Auditoria 21 i Permite emitir ordens de auditoria para 1 Todas as m quinas 2 Percentual de m quinas 105 relat rios de OS enviados automaticamente ao e mail cadastrado quando as regras autom ticas s o atendidas 20 administrador informado automaticamente via e mail sempre que um sensor for ativado na Vending M achine Telemetria para Vending Machines In cio gt Relat rios Selecione o tipo da Ordem de Servi o Cadastro de Vending Machines Regras autom ticas de reabastecimento Cadastro de Produtos O ias uos O Sele o Manual de Vendi
31. n o gt ET fa a uso de um software de gest o comercial Figura 9 Registro de Alertas 1 6 Atualiza o de Informa es Outro conjunto de opera es permite atualizar a descri o das m quinas atualizar estoques do armaz m e inserir dados de furtos Note que n o h possibilidade de editar diretamente o estoque de uma m quina pois esta opera o exige uma ordem de servi o Deste modo editando a descri o da m quina poss vel substituir um cartucho de itens por outro de outro tipo Este tipo opera o declarado na pr xima ordem de servi o 1 7 Troca de Arquivos Toda a interface com softwares terceiros feito a partir de requisi es com dados enviados via POST O servidor gera um novo arquivo XML com a resposta desejada se necess rio 21 As opera es dispon veis assim como o processo de troca de mensagens ser o documentadas futuramente no manual de integra o 2 Funcionamento do Servidor A ferramenta de desenvolvimento utilizada para os scripts PHP ser o NetBeans 8 0 Para configura o e implementa o do servidor foi feito uso dos seguintes componentes e Computador PC com o Windows Server 2003 o WampServer Apache PHP 5 MySQL O WampServer um conjunto de aplicativos voltados a servidores WEB pr configurado facilitando a instalac o e a manutenc o dos componentes Foram utilizadas suas configurac es padr o A nica exig ncia para a hospedagem externa do servi
32. o que far amos nossas placas usando o processo fotogr fico adquirindo um kit de fabricac o de placas de circuito impresso dispon veis no mercado Tamb m havia sido proposto pintar as placas com verniz azul mas este se mostrou muito complicado de dif cil obtenc o e longa secagem Tamb m foi abandonado e em seu lugar foi usado verniz normal transparente Como j hav amos previsto no in cio do projeto e conforme foi dito anteriormente precisar amos de v rias placas para contornar erros de projeto Ent o apenas para efeito de ilustrac o somando todas as placas que usamos durante o desenvolvimento chegamos a 629 5 cm de placa o que acarretaria num custo total de R 755 40 se o servico fosse realizado por terceiros Esse valor ultrapassa todos os demais custos do projeto somados al m do orcamento que t nhamos estimado em investir Com o kit de desenvolvimento evitamos gastos adicionais de R 620 40 2 1 Fun es de cada Placa e Placa Principal Cont m as conex es para todas as outras placas do sistema embarcado Possui duas portas DB 9 uma para conex o serial com o emulador de MDB Porta 1 e a outra para auditoria por onde as informa es sobre o estoque s o enviadas 39 complementando as informac es enviadas ao LCD Porta 2 Esta tamb m a porta pela qual a programac o do m dulo G24 feita e na maior parte do tempo estar desconectada Tamb m conta com um suporte para o SIM CARD uma fonte estab
33. servidor Em caso de sucesso o LCD ir exibir a palavra COM PLETA Em caso de insucesso tentar novamente ap s alguns instantes Caso o erro persista entrar em contato com o Suporte T cnico para verificac o do problema 114 Anexo 6 Manual de Integra o Manual de Integra o Sistema de Telemetria para Vending Machine Este documento visa apresentar funcionalidades dispon veis no sistema para coleta de dados por aplicativos terceiros As informac es poder o ser posteriormente processadas e organizadas a gosto do usu rio e ou desenvolvedor de sistemas Conte do Sistema de Telemetria para Vending Machine erre e 115 Abertura de Conex o do iiinis 115 Fun es RemotaS ben tre ir gp pt Y a RE 116 Vending machine Produto Fornecedor eres 116 erret rg rr a 116 15 117 Ze dn e o eA 117 118 USUAMO 118 VendingMachine e UR UY 119 PROQULO 119 A 119 120 diia 120 D Cg 123 Abertura de Conex o ao Serv
34. usando pronta ou solda conector do equipamentos por encomenda m dulo G24 especiais para junto a soldagem de SMDs especialistas p ex t cnicos de celular Falha no projeto Baixa M dio Baixo Pesquisa de Substitui o dos pela falta dos mercado para componentes por componentes verificar onde similares necess rios no podemos adquirir mercado tais componentes Defini o dos acr nimos utilizados e Pro Probabilidade e Imp Impacto e Sev Severidade Como por exemplo mas n o limitado ao impacto da segunda fase da 1 1 Viabilidade e Conclusoes O objetivo do projeto resumiu se a produzir um m dulo de telemetria para Vending Machines Conceitualmente os conhecimentos adquiridos durante o desenvolvimento do projeto podem ser aplicados em sistemas similares para praticamente qualquer tipo de servico ou produto o que um aspecto de interesse para os membros da equipe Sob o ponto de vista comercial nota se um custo elevado no desenvolvimento de cada m dulo dado o pre o do modem G24 que chega a ser superior ao pre o de um celular b sico No entanto o custo mensal de manutenc o do sistema bastante baixo tornando a opc o uma proposta comercialmente vi vel para longo prazo O projeto foi desenvolvido para finalidades acad micas agregando conhecimentos na rea de telemetria e comunicac o por redes GPRS Acredita se que tais reas de conhecimento podem ser amplamente exploradas num futuro pr xi
35. 1 LCD Mgr escreve 4 idOS elementAt os indice catch Exception e e printStackTrace public static String tira_xml_ip String ip ok return ip substring ip indexOf lt IP gt 4 ip index0f lt IP gt static void verifica estoque i try 4 tira xml estoque ServicosHttp net CentralTelemetria 4 Menu nome central Menu ip status catch IOException e e printStackTrace private static void tira_xml_estoque String net 1 produto a null System out println net net 76 try net net substring net indexOf Cartuchos net indexOf Cartuchos 12 int inicio O fim net lastIndexOf c Menu produtos estoque removeAllElements while inicio lt fim amp amp inicio gt 0 a new produto Integer parseInt net substring net indexOf lt idProduto gt inicio 11 net index0Of lt idProduto gt inicio Integer parseInt net substring net indexOf lt Numero gt inicio 8 net indexOf lt Numero gt inicio O byte O net substring net indexOf Nome inicio 6 net indexOf Nome inicio a estoque atual Integer parseInt net substring net indexOf Atual inicio 7 net indexOf lt Atual gt inicio a capacidade_max Integer parseInt net substring net indexOf Capacidade inicio 12 net indexOf Capaci
36. 4 dispon vel on line em http www motorola com staticfiles Business Products M 2M 20Wireless 20M odul es 624 z0Lite Documents static9o20files G249620K ava New pdf localeld 33 Acess o em Maio de 2010 PCl eletr nica Website por onde se podem encomendar Placas de Circuito Impresso Dispon vel on line em www pci eletronica org faa Acesso em Julho de 2010 60 Anexos Anexo 1 Firmware do Modem G24 JAVA 1 Arquivo UserMIDlet java package 924 import import import import import import import import import import public java io IOException java util Random javax microedition midlet MIDlet javax microedition midlet MIDletStateChangeException com motorol com motorol com motorol com motorol com motorol com motorol oem hapi GpioException oem hapi GpioInput oem hapi GpioInterruptConfig oem hapi GpioInterruptListener oem osc OSC oem osc OSCException class UserMIDlet extends MIDlet implements GpioInterruptListener public static boolean entrada new boolean 16 public static boolean entrada old new boolean 16 private GpioInterruptConfig gpioInterruptConfig int cont 0 selecionado 0 indice 1 static int index 1 Random randomGenerator new Random private static GpioInput MasterSlave InteruptMDB Estados do menu 0 raiz 1 Status 11 inicializar 12 estoque
37. D 0 8 Sensores 0 11 Note se que temos espaco para 12 sensores Para a sa da dos dados o G24 J deve enviar os dados serialmente para o pino GPIO2 e gerar o clock para o shift register SIPO CD4094 em GPIO3 Quando a transmiss o termina setado o GPIO4 output enable Assim os dados ficam dispon veis nas portas do m dulo de telemetria Foi desenvolvido tamb m um identificador de mudancas no barramento Caso algum dos pinos mude de valor o circuito gera um pulso em um pino de interrup o do 624 GPIO16 para sensores ou GPIO14 para teclado informando este que uma leitura do barramento deve ser efetuada 35 A cada interrup o o G24 J entende que algo mudou no barramento de entrada Assim ele inicia uma leitura do barramento completo gerando sinais de clock na porta GPIO5 para o shift register PISO CD4021 e lendo as respostas deste em GPIO6 Para cada pulso de clock um bit consecutivo do barramento est dispon vel na porta de sa da serial do Cl Lendo estes bits e os armazenando nas posi es corretas de um vetor em mem ria do G24 pudemos processar os barramentos separadamente Por exemplo a posi o 0 do vetor indica uma tecla Na Figura 21 apresentamos o diagrama te rico de conex o com o G24 Abaixo trazemos uma representa o mais real de como as conex es foram feitas usando o modelo para expandir as portas de I O apresentado Conversor MDB TTL Barramento MDB
38. ECIDA O S NO PAINEL LCD A OMPLETA v CARTUCHOS COM PRODUTOS ALTANTES CONFER NCIA QUANTIDADE PRODUTOS EXISTENTES EM CADA CARTUCHO lt Ya 14 Figura 3 Procedimento de Recarga Par metros utilizados ServicosHttp net CentralTelemetria Menu nome central Menu ip completa A fun o utilizada no servidor completa Exemplo de retorno xmlversionz 1 0 encoding 1SO8859 1 gt lt Conteudo gt Alertas gt Sucesso lt gt M quina abastecida por completo lt Mensagem gt lt DataHora gt 2010 11 26 01 04 44 lt gt lt Sucesso gt 15 Sucesso lt Mensagem gt Situa o do Estoque Registrado no Servidor lt Mensagem gt lt Data gt 2010 11 26 01 04 44 Data lt nCartuchos gt 10 lt nCartuchos gt lt Cartuchos gt Conforme apresentado em Status lt Cartuchos gt lt Sucesso gt lt Conteudo gt 1 6 Alertas O m dulo de telemetria capaz de receber informa es de sensores espalhados pela VM a fim de comunicar ao servidor poss veis operac es ilegais Por exemplo a m quina pode contar com aceler metros que monitoram tentativas de furto O sistema pode ser dotado de bateria para comunicar ao servidor quedas de energia Se a m quina for sensoriada pode acusar falha na entrega de um item ou de que o reservat rio de dinheiro est cheio Para o sensoriamento o m dulo de telemetria
39. Exception Esta func o est na classe ServicosHttp do programa que executado no G24 firmware Como se v ela possui tr s par metros dois dos quais dificilmente se alteram nas v rias chamadas a esta func o O primeiro informa a identificac o da central e ser enviado como um POST ao servidor em algumas operac es pode conter mais informac es para que a func o solicitada seja executada Para reduzir a alterac o de c digo quando da mudanca deste par metro temos uma vari vel est tica na classe menu que cont m o nome da central Este par metro nunca se altera para uma mesma central pois referenciado pelo n mero IMEI Identificac o Internacional de Equipamento M j que este trata se de um n mero nico para cada equipamento de telefonia neste caso o modem O segundo par metro corresponde ao IP do servidor que pode sofrer altera o em fun o de possuir IP din mico Raramente se altera mas buscado novamente cada vez que o operador entra no menu da m quinaNo projeto fazemos uso do dom nio HTTP tcc gateon com br como uma ferramenta de Proxy para localiza o do IP do servidor respons vel por armazenar e processar as informa es de telemetria O ltimo par metro identifica a fun o que se deseja executar portanto modificado para praticamente cada requisi o Mais detalhes sobre esta fun o est o na se o 2 3 Conex o com a Internet na p gina 45 Em todas as descri
40. Funcionamento do Emulador O emulador deve enviar um byte comum com 8 bits seguido de um bit indicando o tipo do dispositivo que enviou este byte M estre 1 ou Escravo 0 Para isso o emulador ajusta a paridade do byte entre os dois valores poss veis MARK Marca representando o n vel l gico 1 ou SPACE Espaco com o n vel l gico zero 3 2 Usando o Emulador Na Figura 20 est uma imagem do emulador desenvolvido 3l Para enviar os dados primeiro selecione uma porta COM livre do computador e clique em Conectar Em seguida ajustar os bits que ser o enviados clicando nos bot es dos bits O bit MB pode ser ajustado quando desejado medida que os valores v o se alterando a representac o em Decimal e Ascii v o sendo atualizadas Clicando em Enviar a sequ ncia ent o enviada para a porta serial O bot o Fechar encerra o programa 22200900000 Dan Ascii Figura 20 Janela do Emulador M DB Tecnologias utilizadas 1 Transmiss o de Dados Tendo em vista que o sistema em tempo real a melhor escolha foi sem d vida de trabalhar com a Internet devido s diversas consultas por parte das centrais de telemetria e cadastramento de informa es no banco de dados 32 2 Sobre o Hardware O modem usado foi o MotorolaG24 J Este oferece suporte a comandos AT baseados em comunicac o serial exemplo hyperterminal Tamb m oferece a possibilidade de ser programado em Java o que torna o sis
41. M R2IF clrf TM R2 zera timer 2 x9 btfsc aux O pula se ainda nao passaram 9 ciclos goto ok9ciclos transf Transferir o valor btfsc PORTB 0 goto liga bcf PORTB 4 desliga goto p2 liga bsf PORTB 4 p2 x9 decfsz cont pula se chegar em 0 passaram 9 ciclos retfie bsf aux 0 passaram 9 ciclos retfie ok9ciclos Parte especial da rotina que envia o stopbit e o MS para 624 bsf PORTB 7 T2CON TM R20N desliga timer2 movlw 9 movwf cont clrf aux btfsc PORTB 0 Colocar M S na porta goto ligaM S bcf PORTB 6 goto p2M S ligaM S bsf PORTB 6 p2M S 98 bcf PORTB 7 BANKSEL PIE1 bcf PIE1 TM R2IE desabilita as interrupc es de timer BANKSEL PORTB re seta timer para pr ximo bit clrf TM R2 zera timer 2 bsf PORTB 4 Forcando o Stop Bit bcf PORTB 5 Gera interrupc o no G24 call aguarda SUBSTITUIDO POR 3 AGUARDA 2 call aguarda2 call aguarda2 call aguarda2 bsf PORTB 5 bcf PORTC O bcf INTCON INTF bsf INTCON INTE re habilita as interrupc es na portb bcf PORTB 7 call aguarda2 retfie int portB bcf INTCON INTF abaixa flag btfsc conta 2a vez 0 Se n estvier setado pule fa a a interrup o goto nao faca a int bsf conta 2a vez 0 interrup o BANKSEL PIE1 bsf PIEL R2IE liga interrup o timer 2 BANKSEL PORTB bsf T2CON TM R2ON liga timer2 bcf INTCON INTE desliga knterrupc o da portb goto transf transfere o SB nao faca a int bcf conta 2a v
42. Os arquivos MDB DTS n o ser o interpretados devido a desviar o escopo inicial tra ado Mais de uma opera o por transmiss o N o houve necessidade de condensar m ltiplas opera es em uma nica transmiss o para economia de tr fego Atualiza o de pre os na VM N o houve um entendimento gen rico do procedimento de atualiza o de pre os uma vez que n o poderia ser realizado atrav s do barramento M DB Alertas customizados N o se fez necessidade da configura o deste tipo de alerta levando em conta que nenhum exemplo deste tipo de necessidade foi encontrado Mensagens Keep Alive Tabelas de IP Foi desconsiderada a implementa o destas mensagens pois n o se observou a necessidade de que o servidor inicie comunica o com as Centrais de Telemetria uma vez que servidor nica e exclusivamente respons vel por responder as requisi es geradas Valida o de dados Os dados inseridos nos formul rios n o foram validados devido a falta de necessidade perante o foco principal do projeto e utiliza o do m dulo de telemetria Hist rico de vendas com periodicidade N o foi implementado devido a falta de necessidade para com a empresa administradora de VM s tornando se fora do escopo do projeto Entendemos que o objetivo do projeto reunir os dados e disponibiliz los para terceiros de modo que essa funcionalidade poder ser explorada pelos integradores Detalhamento F sico e Tecnologias Utiliza
43. PONTIF CIA UNIVERSIDADE CAT LICA DO PARAN CENTRODE CI NCIAS EXATAS E DE TECNOLOGIA CURSO DE ENGENHARIA DE COMPUTAC O Sistema de Gerenciamento Remoto para Vending Machines Projeto F sico Relat rio e Implementa o Final 2 bimestre Glauco Cattalini Lins Ricardo Sales da Veiga Rodrigo Gov a Baran Professor Orientador Afonso Ferreira Miguel Curitiba 2010 Conte do RESUMO kantiana e An M 3 do Te ars ER 3 Altera es no Escopo do Projeto 4 Detalhamento F sico e Tecnologias Utilizadas saiem sara saia ia 6 1 Central de Telemetria 8 9 12 _1 11 13 Estoque 12 14 Ordens de Servi o 12 1 9 nist ts 13 1 6 5 16 17 17 1 SERVIDOR caes ssa 18 1 1 Identifica o do Cliente 18 1 2 Identifica o da M quina 18 1 3 Estoque de Produtos 19 14 Estoque das M quinas 19 15 20 1 6 Atualiza o de Informa es 21 17 Troca de Arquivos 21 N Funcionamento do Servidor 22 2 1 Cadastro de Usu rios e Login 22 2 2 Menu de opera es b sicas 24 2 3 Cadastro de Vending M achines 25 2 4 Cadastro de Produtos 26 2 5 Registro
44. R sucessivas vezes at que apareca escrita a palavra RAIZ Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informac es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a primeira op o 1 Status Usando as setas de direc o navegue at a 2 05 Aperte novamente o bot o ENTRAR Aguarde um momento enquanto o sistema se conecta ao servidor carregando as informac es necess rias Caso apareca no LCD N O TEM OS significa que n o existem ordens de servico cadastradas no servidor Se alguma ordem tenha sido emitida mas n o esteja aparecendo no sistema contate o Suporte T cnico Quando as ordens de servico dispon veis tiverem sido carregadas o LCD exibir 21 Escolher OS Pressione o bot o ENTRAR para ver uma lista das Ordens de Servico dispon veis para a m quina As ordens de servico s o escolhidas pelo n mero de identificac o ID Ap s ser pressionado o bot o ENTRAR o LCD exibir a palavra Escolha e na linha abaixo aparecer um dos identificadores da Ordem de Servico Navegue usando as setas de direc o pelas OSs dispon veis at que o identificador exibido seja id ntico ao presente no documento da Ordem de Servico Quando encontrar pressione o bot o VOLTAR Obs Normalmente existe apenas um identificador pois geralmente apenas uma ordem de servico gerada para a m quina de cada vez O ENTRAR
45. ac o para o usu rio Aguarda validac o de e mail Redireciona para M enu php eN E Telemetria para Vending Machines Sistema de Telemetria para Vending Machines Um modo simples de acompanhar o funcionamento e o desempenho de suas venda Faga seu login para acessar o painel administrativo Novo Usu rio Entrar Figura 10 Esboco Tela de Login Telemetria para Vending Machines Identifica o da Empresa Identidicac o de Contato Pessoa de Contato Inscricdo Estadual Telefone Endereco Este e mail precisa ser Cidade confirmado para efetivar seu cadastro Estado Figura 11 Esboco Tela de Cadastro 23 2 2 Menu de operac es b sicas Arquivo Menu php 1 Exibesequencia de menus a Cadastro de Vending M achines i Redireciona para NovaM aquina php b Cadastro de Produtos i Redireciona para ProdutosCadastro php c Estoque das Vending Machines i Redireciona para ProdutosEstoqueVM php d Relat rios i Redireciona para Relatorios php e Atualizar Dados i Redireciona para AtualizarDados php f Envio de Arquivos i Redireciona para Arquivos php Telemetria para Vending Machines In cio gt Cadastro de Vending Machines Cadastro de Produtos Estoque das Vending Machines Relat rios Atualizar Dados Envio de Arquivos Figura 12 Esbo o Tela Inicial 24 2 3 Cadastro de Vending Machines Arquivo NovaM aquina php Oferece formul rio para cadastro de nova Vendin
46. ace di close catch Exception e System out println 1 e printStackTrace try if di null di close if os null os close catch Exception e System out println 2 e printStackTrace System out println Terminou Produtos Desta M quinaaaa 93 static void PegaProduto String aux int id produto cartucho float preco String nome produto p System out println Aux dentro de pegaproduto aux preco Float parseFloat aux substring aux indexOf lt Preco gt 7 aux indexOf lt Preco gt id_produto Integer parseInt aux substring aux indexOf lt idProduto gt 11 aux indexOf idProduto cartucho Integer parseInt aux substring aux indexOf lt Numero gt 8 aux indexOf lt Numero gt nome aux substring aux index0f lt Nome gt 6 aux indexOf lt Nome gt System out println gt Nome nome System out println gt aux substring aux index0f lt idProduto gt aux indexOf lt Detalhes gt byte b O p new produto id produto cartucho preco b nome Menu produtos desta maquina addElement p 8 Arquivo Uart java package 924 import java io IOException import java io InputStream import java io OutputStream import javax microedition io CommConnection import javax microedition io Connector public class Uart
47. administrativo o Senha Senha do usu rio o Operacao de atualiza o a ser realizada As opera es dispon veis e suas respectivas vari veis de POST est o definidas abaixo Campos entre colchetes s o de preenchimento opcional Todos os campos obrigat rios devem ser preenchidos mesmo que os dados n o sofram altera o Quando um campo descrito como Array os dados s o correspondentes entre campos do mesmo tipo Exemplo Produto 1 Capacidade 1 e Minimo 1 correspondem a informa es do mesmo item As opera es n o geram retorno em formato XML no caso de sucesso e dever o ser verificadas atrav s das fun es de consulta Quando houver retorno em formato XML decorrente de algum erro na passagem dos par metros Usuario o Usuario gt Novo nome de usu rio para acesso ao sistema o Senhal gt Nova senha o Senha2 gt Nova senha o E Mail gt Email para envio de notifica es o Empresa gt Empresa o CNPJ gt CNPJ o IE gt Inscri o Estadual o Endereco gt Endere o o Cidade gt Cidade o Estado gt Unidade Federativa o CEP gt CEP o Pessoa gt Pessoa de Contato o 112 gt Email da Pessoa de Contato DDD gt DDD 118 o Telefon gt Telefon VendingMachine o idVendinMachine ID da vending machine a ser editada o Nome gt Nome da vending machine o Logadouro gt Endere o da vending machine o Cidad
48. aixa Baixa M dio M dia Reposicionamento Reposicionamento disponibilidade de do m dulo dentro da VM sinal para rede de da VM e ou telefonia m vel colocac o de antena externa 3 Atraso na entrega Baixa Alto Alta Realinhamento de Utilizac o de dos m dulos por cronograma com vers o similar dos causa de motivos prazos previstos e m dulos de sa de recalculados 4 Atraso na entrega Baixa Alto Alta Realinhamento de Utilizac o de dos m dulos por cronograma com vers o similar dos quaisquer motivos prazos previstos e m dulos que impecam o recalculados andamento normal do cronograma 5 Impedimento na M dia Alto Alta Consulta a manuais Substitui o do programac o dos m dulos G24 G24 j por dificuldades na transmiss o do programa para o espec ficos apoios t cnicos da Motorola e especialistas modem G24 pelo modelo G24 sem suporte a Java com um microcontrolador 56 modem auxiliar PIC 8051 ou por outro modelo de comunica o Falha na M dia Alto Alta Testes da Recodifica o do comunica o via programa o do programa no WEB do modem modem atrav s de modem outras para o servidor simula es e testes medidas cab veis por quaisquer de conex o simples erros de ol mundo programa o do modem Erro durante a Alta M dio Baixa Realiza o da solda Aquisi o de placa soldagem do
49. apagar e saltar para a linha inferior ou superior e escreve sem pular linha String s arquivo LCD M gr java o Escreve no m ximo os primeiros 16 caracteres da String s e escreve String s arquivo LCD M gr java o Escreve os primeiros 16 caracteres da String s Se ela contiver mais que 16 caracteres a func o quebra a linha e continua a escrita at atingir o limite de 32 caracteres e pula linha String string arquivo LCD M gr java o Salta para alinha 1 ou 0 passada como par metro e LCD clear and reset arquivo LCD M gr java e inicia lcd arquivo LCD M gr java 2 8 Conversor 9bits MDB 8bits Esta parte do firmware roda 624 mas em um 16 876 situado na placa do conversor Ver Figura 30 O barramento monitorado em uma porta sens vel a mudan a de n vel Quando acontece tal mudanca o sistema transfere os primeiros 8 bits que correspondem ao byte de dados para a Uart1 do G24 O ltimo bit colocado em uma porta GPIO do G24 e uma interrupc o ent o gerada neste Assim o firmware do G24 l dado da Uart1 e da porta definida e pode proceder com sua O firmware do conversor est no 47 Anexo 2 Firmware do Conversor 9bits M DB gt 8bits 3 Barramento MDB Multi Drop Bus O meio de comunica o utilizado entre os perif ricos e a VM C ou entre a VMC e os perif ricos a comunicac o serial com Baud Rate de 9600 A comunicac o funciona da seguinte for
50. as Recarga Identificac o das m quinas Lista de Produtos Inserir Venda Ler Consultas Alertas Estoque das m quinas Relat rios Atualizar informac es Identificar clientes XML Figura 2 Vis o organizacional do sistema Observe que h uma entidade adicional externa capaz de realizar consultas e inser es no servidor atrav s de comandos HTTP POST Esta abordagem permite que o software rodando no servidor seja facilmente anexado a outros aplicativos de gest o comercial que existem no mercado A troca de arquivos XML ser feita via Internet permitindo que as informac es estejam dispon veis online em qualquer lugar Deste modo tamb m se permite que o sistema seja independente de interface gr fica Todas as operac es no servidor podem ser executadas a partir de scripts que interpretam os comandos enviados O tratamento das informa es coletadas ent o completamente independente do nosso servidor e fica por conta das empresas respons veis por desenvolver sistemas de gest o comercial O servidor tamb m oferece uma interface simplificada para consultas e inser es 1 Central de Telemetria O m dulo de telemetria respons vel pela comunicac o com o servidor capaz de realizar algumas operac es b sicas Registro de Vendas Envio de Alertas e Registro de Recarga dos Cartuchos descritas mais adiante Para o registro das vendas fazemos uso do protocolo M DB Defini o Protocolo M DB
51. asso Nada exibido no LCD o Verificar alimenta o do m dulo LCD o Verificar conex es com o m dulo LCD o Verificar alimenta o do m dulo de entrada dos sensores Testes em caixa branca 51 Os testes s o os mesmos mudando o procedimento de correc o nos casos de fracasso 1 Uma mensagem deve ser enviada do m dulo de telemetria indicando uma venda e o servidor deve receber esta notificac o Caso de sucesso O servidor interpreta corretamente a mensagem e Caso de fracasso O servidor n o consegue receber a mensagem o Verificar a programac o do m dulo buscando por erros na conex o com a internet ou na interpretac o do M DB o Verificar a placa do m dulo buscando erros de soldagem ou componentes queimados ou danificados o Verificar a fonte de alimentac o assegurando que o modem est corretamente alimentado e Caso de fracasso O servidor recebe mas n o consegue interpretar a mensagem o Verificar a programa o do m dulo buscando por erros na interpreta o do M DB 2 Uma mensagem deve ser enviada do m dulo de telemetria para o servidor indicando uma falha mensagem de erro ou de sensor e este deve a reconhecer e Caso de sucesso O servidor interpreta corretamente a mensagem e Caso de fracasso O servidor n o consegue receber a mensagem o Verificar a programa o do m dulo buscando por erros na conex o com a internet ou na interpreta o do M DB o Verificar a placa do m dulo buscando
52. atas previstas para a finaliza o de cada etapa do projeto Altera es no Escopo do Projeto No decorrer do desenvolvimento do prot tipo e fase final foram observadas dificuldades que exigiram altera es no Escopo do Projeto Em outros casos foram observadas que as funcionalidades propostas estariam em desacordo com a proposta de Telemetria que visa a coleta e registro de dados a serem disponibilizados para processamento Defini o Telemetria Registro de dados dist ncia obtidos atrav s de instrumentos de medida Exemplos Telemetria uma tecnologia que permite a medi o e comunica o de informa es de interesse do operador ou desenvolvedor de sistemas A palavra de origem Grega onde tele remoto e metron medida Sistemas que necessitam de instru es e dados enviados a eles para que sejam operados requerem o correspondente a telemetria o telecomando um sistema de monitoramento com diversas aplica es muito falada nas corridas como F rmula 1 Dragsters e qualquer outro tipo de esporte automobil stico tamb m muito usada em ind strias de monitoramento normalmente funciona via transmiss o sem fio sinal de r dio da o nome telemetria Em muitos lugares tem o uso em conjunto do Datalog que a fun o de gravar um per odo de tempo da leitura dos canais da telemetria O sistema tamb m utilizado para recolhimento de dados meteorol gicos FONTE Wikip dia A Enciclop dia Livre
53. break System out println n ns s H gt System out println Osid IDos elementAt 0 System out println Data dataOs elementAt 0 System out println for int fim 0 fim lt nome de produto size fim if fim gt 0 81 if IDos elementAt fim IDos elementAt fim 1 System out println NMnMn System out println Osid IDos elementAt fim System out println Data dataOs elementAt fim System out println mM System out println Nome nome de produto elementAt fim System out println Quantidade quantidade de produto elementAt fim return true else System out println Erro return false private static void pega_produtos Vector nomeDeProduto Vector quantidadeDeProduto Vector iDos Vector dataOs String substring String i String data while true if substring length lt O break nomeDeProduto addElement substring substring substring indexOf lt Nome gt 6 substring indexOf lt Nome gt quantidadeDeProduto addElement substring substring substring ind exOf Quantidade 12 substring indexOf Quantidade iDos addElement i dataOs addElement data if substring indexOf Produto 10 gt 0 substring substring substring substring indexOf Produto 10 else break public static int pega_os_anterior int os_atua
54. co e o ato de recarga tenham sido realizadas novas vendas o funcion rio respons vel por reabastecer a m quina tem a opc o de completar todas as posic es vagas dos cartuchos Tendo reabastecido 100 a m quina a opc o completar no menu de ordem de servico deve ser acionada informando ao servidor de que a VM est totalmente reabastecida O display LCD permite ao operador da m quina observar qual a ordem de servico deve ser executada al m de detalhar a quantidade de itens presente em cada cartucho naquele 13 instante Esta operac o permite ao operador ou a um auditor observar a ocorr ncia de furtos ou falhas de comunica o Par metros utilizados ServicosHttp net CentralTelemetria Menu nome central idOrdemServico Menu ip completa O primeiro par metro nesta func o n o somente o id da central mas tamb m o id da ordem de servico a ser executada Exemplo retorno xmlversionz 1 0 encoding S08859 1 gt lt Conteudo gt lt Alertas gt Sucesso lt Mensagem gt Ordem de Servico atendida com sucesso lt Mensagem gt lt DataHora gt 2010 11 26 12 59 11 lt DataHora gt lt Sucesso gt lt Conteudo gt A Figura 3 apresenta o diagrama com as poss veis ac es de recarga 14 IN CIO SERVIDOR 4 4 P ACIONAMENTO DA PARA INFORMAR o M QUINA lt Y REABAST
55. dade inicio System a cartucho out printl cartucho System out println id produto a id produto System out println capacidade a capacidade max System out println atual a estoque atual System out println m nimo net substring net indexOf Minimo inicio 8 net indexOf Minimo inicio System out println nome a nome System out println pre o net substring net indexOf Preco inicio 7 net indexOf Preco inicio System out println descrig o net substring net indexOf Descricao inicio 11 net indexOf lt Descricao gt inicio inicio net indexOf lt Cartucho gt inicio Menu produtos_estoque addElement a LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Pres p baixo ou LCD Mgr pula linha 1 LCD Mgr escreve sem pular linha p cima catch Exception 71 System out println Estoque indispon vel try LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Est nao existe catch Exception 2 private static String tira_xml_status String net ok if net indexOf lt id gt gt 0 tem status if Menu ano 2010 seta data hora net substring net indexOf Data 6 net indexOf Data return net substring 0 net indexOf 0 net substring net indexOf id 0
56. das O m dulo G24 um modem Quadriband homologado pela Anatel com conex o direta a internet via GPRS Este possui duas portas seriais e suporte a USB 2 0 possuindo uma porta do protocolo O processador G24 programado em Java e de tamanho reduzido Ele conta com 1GB de mem ria RAM e 10M B de mem ria FLASH maiores informa es sobre o modem p gina 29 deste documento O diagrama abaixo apresenta de forma resumida o aspecto organizacional do sistema implementado Temos separados como duas entidades distintas a VM e o servidor remoto com que o m dulo de telemetria se comunica O m dulo de telemetria que foi o foco deste projeto respons vel por ler as informa es da VM e fazer a comunica o via GPRS com o servidor Este ent o mant m um registro detalhado de clientes empresas que utilizam o sistema identifica o das m quinas disponibilidade de itens etc 9 X SERVIDOR 9 CLIENTE GPRS R M dulo de Telemetria1 M dulo de Telemetria2 M dulo de Telemetria N Figura 1 Vis o organizacional da comunicac o A imagem abaixo apresenta uma no o melhor das opera es que podem ser realizadas na VM Observe que o m dulo de telemetria apenas se comunica com o servidor transmitindo o resultado da operac o realizada pelo usu rio da m quina Nenhuma outra entidade al m do servidor pode se comunicar diretamente com o m dulo TS N M quina Consult
57. ding Machine Para este processo a m quina conta com uma porta do protocolo MDB que detecta quando um produto foi vendido pela m quina Na inicializac o da m quina os c digos M DB dos cartuchos j foram definidos portanto na operac o de venda o servidor s informado de qual produto foi vendido para que a baixa seja feita no estoque do servidor Para informar a venda de um produto um XML enviado contendo dados como n mero do cartucho ao qual o produto foi consumido id do produto preco e data hora da venda Atrav s deste XML o servidor diminui o produto do estoque e responde com um XML confirmando o processo de venda Exemplo de XML de uma venda lt xml version 1 0 encoding UTF 8 gt lt Vendas gt lt Produto gt lt idXML gt indice lt idXML gt lt idProduto gt p2 id produto lt idProduto gt lt Cartucho gt p2 cartucho lt Cartucho gt lt Preco gt p2 preco lt Preco gt lt DataHora gt 1988 06 03 12 00 01 lt DataHora gt lt Produto gt lt Vendas gt Exemplo de resposta do servidor lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Vendas gt 17 lt idXML gt 16 lt idXML gt lt Vendas gt lt Sucesso gt lt Conteudo gt 1 Servidor A implementa o do servidor foi feita em PHP facilitando o acesso ao banco de dados e a realiza o de opera es via browser 1 1 Identifica o do Cliente Entende se por cliente a em
58. dor o suporte a PHP 5 e MySQL O ambiente operacional n o importante Como o host contratado n o oferecia suporte ao PHP 5 3 o servidor com IP fixo atua apenas como um Proxy informando o endereco do nosso servidor de desenvolvimento Este um servidor pr prio que est sempre conectado Internet por m n o conta com IP fixo Para as mensagens recebidas do m dulo de telemetria o servidor funciona atrav s de requisic es de p ginas scripts PHP atrav s do protocolo HTTP Todos os par metros para execu o do script s o enviados via comandos GET e POST De maneira geral pode se descrever o funcionamento b sico dos scripts da seguinte forma Copiar os par metros enviados para vari veis de mem ria 2 Iniciar o processo adequado de atualiza o do banco de dados Retorna OK ou se necess rio retorna arquivo XML com as informac es requisitadas De forma sucinta a seguir s o descritas as operac es b sicas de interface com o usu rio 2 1 Cadastro de Usu rios e Login Arquivo Index php l Solicitar usu rio e senha para acesso ao menu a Seo usu rio e senha estiverem corretos redireciona para M enu php 2 Oferece possibilidade de recuperar usu rio e senha a Seo e mail existir no banco de dados envia as informa es de acesso 22 b Caso contr rio informa erro 3 Oferece cadastro de novo usu rio a Solicita dados para novo cadastro Insere usu rio no banco de dados Envia e mail de confirm
59. e gt Cidade o Estado Unidade Federativa o CEP gt CEP o Produto gt Array ID do Produto o Capacidade Array Capacidade de itens no cartucho o inimo gt Array Estoque m nimo para emiss o de OS Produto o idProduto gt ID do produto a ser editado o Nome Nome do Produto o PrecoCompra gt Pre o de compra do produto o PrecoVenda gt Pre o de venda do produto o Quantidade gt Quantidade dispon vel no armaz m o Descricao gt Descri o do produto o idFornecedor gt ID do fornecedor Status Retorna o estado da Central de Telemetria Vending M achine informada e POST o CentralTelemetria C digo da Central de Telemetria de interesse Exemplo de resposta lt xml version 1 0 encoding S08859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Mensagem gt Situa o do Estoque Registrado no Servidor lt Mensagem gt lt Data gt 2010 11 19 05 20 28 lt Data gt lt nCartuchos gt 10 lt nCartuchos gt lt Cartuchos gt lt Cartucho gt 1 nCartuchos estruturas lt Numero gt 1 lt Numero gt lt idProduto gt 1 lt idProduto gt lt Estoque gt lt Capacidade gt 50 lt Capacidade gt Atual gt 0 lt Atual gt lt Minimo gt 20 lt Minimo gt lt Estoque gt lt Detalhes gt lt Nome gt produtox Teste 2 lt Nome gt lt gt 14 00 lt gt lt gt Uma descri o de um produto lt Descricao gt 119 lt Detalhes gt lt Cartucho gt lt Ca
60. e definir um cat logo de produtos para cada VM seja ele baseado por regi o ou demanda hist rica da m quina No discorrer desse documento a controladora desenvolvida ser chamada de m dulo de telemetria Esta opera o permitir s empresas administradoras de VM s conhecer a demanda de cada m quina e ajustar seus estoques adequadamente reduzindo visitas t cnicas e permitindo o estabelecimento de rotas de reabastecimento mais eficientes uma vez que se ter o conhecimento pr vio sobre a quantidade de itens em cada m quina Com base no plano de projeto apresentado em Abril o escopo do projeto sofreu uma ligeira modifica o com rela o ao hardware que ser desenvolvido Em fun o da exist ncia de barramentos e protocolos j documentados torna se o objetivo do trabalho apresentar um m dulo de telemetria j funcional que possa ser facilmente instalada em VM s que fa am uso do barramento M DB M ulti Drop Bus Deste modo o m dulo interpreta facilmente o conjunto de comandos necess rios para seu funcionamento Est contido tamb m no escopo deste projeto o desenvolvimento de um servidor online onde as informa es poder o ser consultadas O servidor capaz de gerar respostas com formata o XML permitindo a troca de informa es possuindo apenas uma simples interface gr fica Essa abordagem permite que diferentes desenvolvedores de software integrem em seus sistemas as funcionalidades de telemetria oferecidas N o
61. eak case 21 System out println 21 Escolher os System out println gt gt gt 22 Detalhar os System out println 23 Executar os System out println 24 Completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 22 Detalhar OS estado atual 22 break case 22 System out println 21 Escolher os System out println 22 Detalhar os System out printin gt gt gt 23 Executar os System out println 24 Completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 23 Executar OS estado atual 23 break case 23 System out println 21 Escolher os System out println 22 Detalhar os System out println 23 Executar os System out printin gt gt gt 24 Completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 24 Completar estado atual 24 break case 131 prod estoque prod estoque indice gt 0 prod estoque indice Auxiliares atualiza lcd com o produto atual produto produtos estoque elementAt prod estoque indice break case 211 os os id Auxiliares pega os anterior os id ID os Auxiliares atualiza lcd com o numero da os atual os id ID os System out println OS atual ID os elementAt os id LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha OS n ID os elementAt os id break case 221 Produto vetor indice
62. edicado para uso futuro nom dulo Elaborac o do manual de comunicac o troca de arquivos XML com o servidor Atraso 30 Entrega do projeto f sico revisado Atraso 30 Atraso 21 Desenvolvimento do m dulo de telemetria Homologac o da comunicac o entre central e servidor Elaborac o do relat rio final Revis o do manual de comunicac o Elaborac o do manual do m dulo de telemetria Entrega do relat rio final e manual de implementac o e comunicac o Defesa da implementac o final Legenda Tarefa atrasada Tarefa prevista Tarefa adiada 59 Refer ncias Bibliogr ficas Para a elaborac o deste documento foram teis os seguintes documentos programas e p ginas da Web MySQL Workbench dispon vel on line em http dev mysgl com downloads workbench 5 2 html Acesso em M aio de 2010 Analizador de arquivos DTS dispon vel on line em http evadts dejongduke nl Acesso em M aio de 2010 Vending M achines dispon vel on line em http www bonusdata net vending AuditData vending htm Acesso em Maio de 2010 Hardware description do modem M otorola G24 dispon vel on line em http developer motorola com docstools developerguides 624 HardwareDescriptio n Developer Guide pdf Acesso em Maio de 2010 Motorola KJ ava M anual programa o em Java para o modem Motorola G2
63. emais conex es que foram feitas atrav s das GPIOs tem um total de 10 pinos de sa da 18 para entrada sendo estes ltimos 5 do teclado e 13 dos sensores ou seja 28 pinos das GPIOs Como este n mero de pinos n o est dispon vel foram utilizados dois modelos de shift registers um com entrada paralela e sa da serial e o outro com entrada serial e sa da paralela Com dois shift registers para entrada em cascata e com um para a sa da podemos ler 16 portas e escrever 8 portas sendo que cada chip possui 8 portas Foram aplicados os seguintes modelos de shift registers e 04094 shift register SIPO Serial Input Parallel Output e CD4021 shift register PISO Parallel Input Serial Output Abaixo apresentamos o diagrama da montagem de dos dois circuitos em cascata para que possam fornecer at 16 entradas paralelamente 34 Entrada serial 16 entradas paralelas Figura 22 Blocos internos do shift register para ampliac o das 1 05 entrada Abaixo apresentamos o diagrama da montagem do circuito de sa da que fornece at 8 sa das paralelamente 8 sa das paralelas Figura 23 Diagrama em blocos interno do shift register para amplia o das l Os sa da Sendo que dispomos de 16 portas de entrada e 8 de sa da as conex es foram feitas de acordo com a seguinte tabela Entrada Sa da Nome do pino N mero da porta Nome do pino N mero da porta Teclado 12 15 Display LC
64. es futuras dos procedimentos a serem realizados para transmiss o dos dados as opera es dever o ser realizadas pelo m dulo de telemetria do mesmo modo como apresentado acima As opera es de conex o e transmiss o das URL s solicitadas tamb m s o realizadas pelo m dulo e sempre com o mesmo servidor especificado que por sua vez responde com uma confirma o O envio de informa es ocorre atrav s da mensagem na conex o via POST e nunca na URL GET As fun es estar o exibidas aqui na mesma ordem em que aparecem no menu da central de telemetria Para maiores informa es sobre as fun es aqui listadas consulte o Anexo 1 Firmware do Modem G24 JAVA 1 1 Status Verifica o Status da m quina junto ao servidor Este status pode ser N o inicializada ou ent o informa a situac o do conte do da m quina Apenas m quinas inicializadas podem operar com o servidor gerar logs atender ordens de servico etc A inicializac o deve ser o primeiro procedimento a ser executado em uma central de telemetria O retorno ser uma mensagem tipo texto com formatac o XM L conforme exemplos apresentados abaixo Para uma central n o inicializada lt xmlversion 1 0 encoding 1S08859 1 gt lt Conteudo gt lt Alertas gt lt erro gt lt 10 gt 1 lt 1 gt lt Mensagem gt Central Inicializada lt Mensagem gt lt erro gt lt Alertas gt lt Conteudo gt Para uma central inicializada lt xmlversion 1
65. es procedimentos ser o executados durante a apresentac o a maioria das soluc es para os poss veis erros consistem em apenas a re execuc o do m todo pois n o poss vel alterar c digos do servidor durante a apresentac o por exemplo 1 Procedimentos Executados exclusivamente no Servidor 1 Oservidor deve permitir o cadastro de um novo usu rio no sistema e Caso de Sucesso Cadastro efetuado e novo usu rio funcional e Caso de fracasso Servidor n o aceita cadastro 2 Cadastro de Fornecedores e Caso de Sucesso Fornecedor registrado no sistema e Caso de fracasso Servidor n o aceita cadastro 3 Cadastro de Produtos e Caso de Sucesso Produto dispon vel no sistema e Caso de fracasso Servidor n o aceita cadastro 4 Cadastro de Vending M achines e Caso de Sucesso Vending M achine registrada no sistema dispon vel para registrar o conte do de seus cartuchos e Caso de fracasso Servidor n o aceita cadastro 5 Registro de Conte do na Vending Machine e Caso de Sucesso Produtos da Vending Machine ficam registrados no sistema A m quina pode ser inicializada atrav s de uma Ordem de Servi o e Caso de fracasso A m quina fica sem o estoque definido ou um estoque diferente do desejado fica registrado 6 Gera o de Ordens de Servi o e Caso de Sucesso Ordem de servi o registrada no sistema e dispon vel para a central de telemetria e Caso de fracasso A Ordem de Servi o n o fica cadastrada no sistema o
66. ez O retfie aguarda movlw 200 movwf tempo dec decfsz tempo F goto dec return 99 aguarda2 dec2 movlw 30 movwf tempo2 call aguarda decfsz tempo2 F goto dec2 return end 100 Anexo 3 Emulador MDB 1 Arquivo Serial cs using System using System Collections Generic using System Li nq using System Text using System 10 Ports using System Collections namespace EmuladorMDB public class Serial SerialPort serialPort public bool available public Serial _serialPort new SerialPort _serialPort ReadTimeout 500 _serialPort WriteTimeout 500 _serialPort BaudRate 9600 public string GetPortName return _serialPort PortName public bool StartConn try _serialPort Open catch Exception nc System Wi ndows Forms MessageBox Show Erro na abertura da porta serialPort PortName codes nc if _serialPort IsOpen available true return true else available false return false public bool CloseConn try _serialPort Close catch Exception nc 101 System Wi ndows Forms MessageBox Show Erro no fechamento da porta serialPort PortName codes nc if _serialPort l sOpen available true return false else available false return true public Arraylist GetPortAvailable ArrayList Portas new ArrayList foreach string s in SerialPort
67. g M achine Insere registro no banco de dados Envia confirmac o de registro para o e mail cadastrado Aguarda inicializac o da m quina Envia confirmac o de inicializac o para o e mail cadastrado IA Ur dx dm Telemetria para Vending Machines In cio Cadastro de VM Cadastro de Vending Machines ID Central de Telemetria Cadastro de Produtos Nome da M quina Estoque das Vending Machines Endereco Relat rios Capacidade de Itens Atualizar Dados Indica quantos itens Envio de Arquivos diferentes a m quina pode oferecer Cadastrar Figura 13 Esboco Tela de Cadastro de Vending M achines 25 2 4 Cadastro de Produtos Arquivo ProdutosCadastro php 1 Oferece formul rio para cadastro de um novo produto 2 Insere registro no banco de dados Telemetria para Vending Machines In cio Cadastro de Produtos Cadastro de Vending Machines Nome do Produto Cadastro de Produtos Estoque das Vending Machines Pre o Venda Relat rios Atualizar Dados Envio de Arquivos Figura 14 Esbo o Tela de Cadastro de Produtos 26 2 5 Registro de estoque das Vending Machines Arquivo ProdutosEstoqueVM php Verifica no banco de dados as Vending M achines do usu rio Verifica no banco de dados os produtos do usu rio Oferece formul rio para configurac o do estoque das m quinas Insere registro no banco de dados Emite ordem de servico para inicializar a m quina Envia ordem de servico para o e
68. g Machines Relat rios Atualizar Dados Envio de Arquivos Ver modelo de arquivo Ver modelo XML remoto Voc pode enviar um arquivo com os dados a serem cadastrados para ser processado pelo servidor Esteja certo de que o arquivo segue esse padr o Voc tamb m pode configurar a troca de arquivos XML Caminho do Arquivo 570 Cadastro de Vending Machines O Cadastro de Produtos O Estoque das Vending Machines Emitir Ordem de Servi o para abastecimento Figura 18 Esboco Tela de Envio de Arquivos Com base nos requisitos levantados e na organizac o apresentada modelou se o Banco de Dados de acordo com os relacionamentos demonstrados na figura a seguir Para que a imagem seja completamente intelig vel os campos em Azul s o estruturas de dados enquanto os campos em Vermelho s o chaves referenciadas de outras tabelas Quando o campo estiver vazado significa que o campo pode ser nulo ou seja o valor relacionamento pode existir ou n o 30 7 idFornecedor INT gt Empresa CHAR 100 CNPJ CHAR 14 InscricaoEstadual CHAR 14 gt Logadouro CHAR 200 gt Cidade CHAR 20 gt Estado CHAR 2 lt gt CEP CHAR 8 gt ContatoNome CHAR 50 gt ContatoTelefone CHAR 20 gt ContatoEmail CHAR 50 A HH iddiente INT gt Empresa CHAR 100 gt CNPJ CHAR 14 gt InscricaoEstadual CHAR 14 gt Email CHAR 50 gt Usuario CHAR 20 gt Senha CHAR 20
69. gister s o ent o armazenados em um vetor na mem ria Dependendo do bot o pressionado uma func o diferente para a navegac o disparada As func es e back arquivo Menu java 44 e para baixo arquivo Menu java e para cima arquivo M enu java e botao menu arquivo Menu java A rvore interna do menu a seguinte O raiz Status igit Verificar Status gt 12 inicializar L gt 12 estoque gt 2 Ordens de Servi o gt 21 Escolher os L gt 211 Estado especial 1 gt 22 Detalhar os escolhida t gt 221 Estado especial 2 gt 23 Executar os escolhida L gt 24 Completar L gt 3 Sensores Estado especial 1 Para baixo os Para cima os Back estado Estado especial 2 Para baixo produto Para cima produto Back estado 21 Para auxiliar a navegac o do menu outras func es foram desenvolvidas e armazenadas em outro arquivo Auxiliares java 2 3 Conex o com a Internet Todos os servicos e processos que s o executados neste sistema est o de uma forma ou de outra ligados internet Para isto uma nica func o foi desenvolvida Esta trata todas as conex es de entrada e sa da com a rede static String net String parametro String ip String url arquivo ServicosHttp java Os par metros desta func o s o a parametro Par metro transmitido no corpo da mensagem POST Normalmente car
70. http pt wikipedia org wiki Telemetria Por este motivo a fim de garantir a conclus o dentro do prazo foram eliminados do escopo os seguintes itens Controle do Prazo de Validade A implementa o de um controle de prazo de validade para os itens inseridos na m quina implicariam num poss vel atraso no desenvolvimento de outras funcionalidades Haveria uma complexidade adicional por parte do servidor na ger ncia dos estoques do dep sito e de cada m quina WebService O servidor est sendo implementado de modo a permitir o envio de consultas via POST por terceiros O objetivo reaproveitar funcionalidades desenvolvidas para o funcionamento remoto das centrais de telemetria sem haver a necessidade de implementar um servidor de servicos dedicado Instala o e Apresenta o Em fun o da dificuldade de se encontrar uma m quina onde a central de telemetria pudesse ser instalada para a apresentac o final considera se que est ser realizada de forma simulada conforme manuais descritivos do M DB atrav s de hyperteminal M quina Interativa O m dulo a ser apresentado n o ter suporte a sistema interativo com dados nutricionais e intera o avan ada com o usu rio devido a falta de tempo para o desenvolvimento de execu o de tal atividade Alertas personalizados Os alertas personalizados n o ser o implementados por n o fazerem sentido a real aplica o do projeto Interpreta o de Arquivos MDB DTS
71. id produtos desta maquina Coloca os produtos que o servidor diz que tem nesta m quina no vetor produtos String url OutputStream os null DatalnputStream di null StringBuffer sb new StringBuffer HttpConnection httpConn byte b new byte 1024 _url http Menu ip tcc remoto php astutus try 1 httpConn HttpConnection Connector open url httpConn setRequestMethod HttpConnection POST httpConn setRequestProperty Content Type application x www form urlencoded httpConn setRequestProperty User Agent Profile MIDP 2 0 Confirguration CLDC 1 1 httpConn setRequestProperty Accept Language en US os httpConn openOutputStream os write CentralTelemetria Menu nome central getBytes di httpConn openDataInputStream 92 String aux try System out println Produtos na m quina while di available 1 for int i 0 i lt 900 i if di available lt 1 break sb append char di read 900 letras lidas while sb toString index0f lt Cartucho gt gt 0 aux sb toString aux aux substring aux indexOf Cartucho 10 aux indexOf Cartucho sb sb delete 0 sb toString indexOf Cartucho 10 PegaProduto aux catch Exception sp System out println Deu erro aqui System out println Di available di available sp printStackTr
72. idor O sistema de telemetria est configurado por tr s de um Proxy que redireciona as conex es ao servidor de dados Para localizar o endereco do servidor de dados necess rio realizar uma conex o HTTP com o endere o HTTP tcc gateon com br ip O retorno ser uma string com formatac o XML conforme o exemplo abaixo lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt 115 lt Sucesso gt lt P gt 187 59 66 145 lt IP gt lt Sucesso gt lt Conteudo gt Uma vez obtido o endere o IP do servidor futuras conex es dever o ser feitas ao endere o HTTP xxx xxx xxx xxx remoto php FUNCAO onde xxx xxx xxx xxx representa o endere o IP da primeira chamada e FUNCAO o nome da fun o de interesse a ser executada Todas as fun es exigem que sejam enviados par metros via POST para que as opera es sejam corretamente executadas A biblioteca cURL http curl haxx se poder ser utilizada como aux lio na comunica o em aplica es desenvolvidas em PHP ou C por exemplo Bibliotecas similares podem estar dispon veis para outras linguagens de programa o Fun es Remotas Abaixo est o listadas as fun es remotas dispon veis para utiliza o Elas dever o ser utilizadas no lugar de FUNCAO durante a requisi o Exemplo HTTP xxx xxx xxx xxx STATUS O retorno feito em forma de uma string com formata o XML Caso haja um erro no processamento da opera o o campo Aler
73. ifica o da M quina os produtos vendidos em suas m quinas A 7 idFornecedor INT Empresa CHAR 100 gt CNPJ CHAR 14 gt InscricaoEstadual CHAR 14 gt Logadouro CHAR 200 gt Cidade CHAR 20 Estado CHAR 2 gt CEP CHAR 8 gt ContatoNome CHAR 50 gt ContatoTelefone CHAR 20 gt ContatoEmail CHAR 50 Figura 6 Estoque de Produtos 1 4 Estoque das M quinas Este conjunto de informa es relaciona os produtos do estoque com o cartucho de cada VM do cliente Atrav s desta classe de informa es poss vel identificar a capacidade de cada 19 cartucho em func o do item presente nele al m de se saber quantos itens ainda est o dispon veis no interior das m quinas Tais informac es permitem a emiss o de ordens de servico incluindo a possibilidade de renova o de estoque dos itens VM Produtos Y 7 idVendingMachine INT idProduto INT 7 idVM Produtos INT amp iddiente INT gt Nom e CHAR 40 amp idVendingMachine INT gt Central Telemetria CHAR 20 gt PrecoVenda FLOAT T idProduto INT SES gt Nom e CHAR 40 gt Descricao BLOB gt Cartucho INT gt Cartuchos INT gt idFornecedor INT gt Capacidade INT gt Logadouro CHAR 200 iddiente INT gt Estoque INT gt Cidade CHAR 20 MOS gt gt CEP CHAR 2 A Figura 7 Estoque das M quinas 1 5 Relat rios Ainda no servidor poss vel emitir um conjunto de re
74. ificar conex es no barramento M DB 2 Uma mensagem deve ser enviada do m dulo de telemetria para o servidor indicando uma falha mensagem de erro ou de sensor e este deve a reconhecer e Caso de sucesso O servidor interpreta corretamente a mensagem e Caso de fracasso O servidor n o consegue receber a mensagem Verificar a conex o com a internet Verificar a presenca do SIM Card com cr ditos para tr fego GPRS Verificar com os sensores Verificar a disponibilidade do servidor e Caso de fracasso O servidor recebe mas n o consegue interpretar a mensagem o Resetar o modem GPRS o Verificar conex es com os sensores OTO 0 3 Um dos bot es do m dulo pressionado e seu respectivo n mero exibido no LCD do m dulo e Caso de sucesso O G24 J responde a interrup o e manda as informa es ao display e Caso de fracasso O n mero do bot o n o exibido corretamente o Verificar dados exibidos o Verificar conex es com a placa do LCD e Caso de fracasso Nada exibido no LCD o Verificar alimenta o do m dulo LCD 4 Uma das chaves representando os sensores ligada ou desligada e seu estado exibido no LCD e Caso de sucesso O G24 J responde a interrup o e manda as informa es ao display e Caso de fracasso O n mero do sensor ou seu valo n o exibido corretamente o Verificar dados exibidos o Verificar conex es com a placa de entrada dos sensores e Caso de frac
75. ilizada para 5v e 3 8v um conversor TTL RS232 um bot o e dois jumpers para controle do G24 e alguns leds para indicar o estado do sistema Figura 26 Placa principal esquerda face superior e Placa gerenciadora de Entradas Monitora constantemente as entradas compostas pelos sensores e pelos bot es localizados na placa do LCD Caso algum deles mude de n vel l gico ela gera uma interrupc o para o G24 Cont m dois shift registers PISO Parallel in Serial Out e amplificadores operacionais para monitorar o estado dos pinos Figura 27 Entradas conex o com os sensores 40 e Placa gerenciadora de Sa das Um shift register SIPO Serial in Parallel Out coloca os dados vindos do G24 na entrada do LCD As interrupc es para os bot es s o geradas aqui separadamente das geradas pelos sensores H uma conex o entre as placas de entrada e sa da pois os dados qual bot o foi pressionado s o enviados pela placa de entrada A Interrup o indicando que qualquer bot o foi pressionado gerada nesta placa Figura 28 Placa de Sa das e Bot es e Suporte do G24 Apenas uma placa de expans o dos pinos do G24 Foi criada pelos motivos citados acima e basicamente s faz a conex o das portas do G24 teis ao projeto placa principal Tamb m liga alguns pinos ao n vel l gico baixo 0v para que estes n o tenham que ser conectados pela placa m e simplificando o layout de ambas
76. imeira op o 1 Status Aperte novamente o bot o ENTRAR O LCD dever mostrar 11 VERIF STATUS Aperte mais uma vez o bot o ENTRAR Aguarde um momento enquanto a central se conecta ao servidor para carregar as informac es necess rias 110 e OLCD ent o exibir a mensagem Inicializada confirmando a inicializa o da m quina Se a mensagem N o inicializada for exibida ent o a central ainda n o foi inicializada Para inicializa la siga os passos indicados na sec o 1 3 Verificac o de estoque Devido ao grande n mero de dados exibidos o estoque pode ser verificado com a ajuda de um computador com uma porta serial habilitada As configura es da porta serial s o as seguintes Baud rate 19200bps Controle de fluxo off N mero de Bits 8 Paridade Nenhum a Conecte a porta serial do computador na porta n mero 2 da placa atrav s de um cabo serial sem cross over b Abra um cliente terminal no computador Exemplo Hercules ou Hyperterminal C No LCD pressione bot o VOLTAR sucessivas vezes at que apare a escrita a palavra RAIZ d Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informac es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a primeira op o 1 Status e Pressione o bot o ENTRAR mais uma vez O LCD deve exibir 11 Verif Status f Usando as setas de direc o navegue at a opc o 13
77. implicity n o s o protocolos de longa dist ncia e exigiriam o desenvolvimento de um gateway GPRS onde pudessem se conectar para transmitir os dados ao servidor Considerando se a complexidade em lidar com um protocolo adicional foi optado por instalar um modem GPRS diretamente em cada m dulo de telemetria Deste modo elimina se a necessidade de se preocupar com a distribuic o de repetidores de sinal e aproveita se a exist ncia da rede de telefonia m vel j instalada 37 Custo o U 91Motorola G24 J o R 10Sim Card Vivo o R 13Franquia de 8MB de dados Pre o unit rio para pacote de 200 licen as O hardware proposto inicialmente n o sofreu grandes modificac es As diferen as mais not veis est o na divis o da placa inicialmente constru da em apenas um m dulo para cinco m dulos e Placa principal ver Figura 26 e Placa gerenciadora de Entradas ver Figura 27Erro Fonte de refer ncia n o encontrada e Placa gerenciadora de Sa das e Bot es de Menu Figura 28 e Suporte do G24 Figura 29 e Conversor MDB e Figura 30 Os diagramas esquem ticos est o no r j EE Emulador Baran Arvie Lins 2 m s COMI D c D7 D6 D5 D4 D3 D2 D1 DO MB 0 03 Os 0 0 0 00 ol Pese Ascii 38 Anexo 4 Layouts e Esquem ticos das placas O principal motivo para a divis o em m ltiplas placas foi permitir que caso houvesse problemas em uma parte do projeto apenas esta fos
78. inha Verif Status Auxiliares testa estado da maquina break case 12 System out println Inicializa LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Inicializa Auxiliares inicializar break case 13 System out println Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Estoque Auxiliares verifica estoque estado atual 131 break case 2 if Auxiliares pega oss os nome de produto quantidade de produto ID os data os System out println gt gt gt 21 Escolher os System out println 22 Detalhar os System out println 23 Executar os System out println 24 Completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 21 Escolher Do estado atual 21 else System out println MENU System out println 1 Status System out println gt gt gt 2 OS CS System out println 3 Sensores System out println NAO TEM OSS NAO INSISTA LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 2 OS LCD Mgr pula linha 1 74 LCD Mgr escreve sem pular linha NAO TEM OSI estado_atual 2 break case 21 os_id 0 try i LCD Mgr escreve Escolha LCD Mgr pula linha 1 LCD Mgr escreve OS id ID os elementAt os id catch GpioException e 1 e printStackTrace System out println Esc
79. junto VM e Servidor 55 An lise de Riscos sse 56 Viabilidade e Conclus es 57 Cronograma 59 Refer ncias Bibliogr ficas 60 Anexo 2 Firmware do Conversor 9bits M DB gt 8bits Anexo 3 Emulador 101 Anexo 4 Layouts e Esquem ticos das A O 104 Anexo 5 Manual de Instruc es 109 Anexo 6 Manual de Integrac o 115 Resumo Vending M achines VM s o m quinas que permitem disponibilizar produtos ou servicos em regi es de grande movimento sem necessidade de um operador no entanto isto exige visitas recorrentes para verificar o estoque dos produtos e ou funcionamento da m quina O Sistema de Gerenciamento Remoto faz uso da tecnologia GPRS para monitorar a situa o das m quinas Tal funcionalidade permite a redu o de custos com deslocamento al m de um conhecimento imediato da situac o de todas as m quinas da empresa via sistema Online que ficar dispon vel via Internet Para permitir a apresentac o do sistema de gerenciamento remoto um prot tipo de VM ser apresentado fazendo uso deste dispositivo permitindo a atualizac o instant nea das informac es cadastradas em um servidor remoto Introduc o Atrav s do software do Sistema de Gerenciamento Remoto que foi instalado em um servidor remoto s o coletadas informa es suficientemente confi veis que permitam escolher
80. l Vector IDos 82 Retorna o indice da OS anterior if IDos elementAt os atual IDos elementAt 0 A id atual a primeira N o tem como voltar mais return 0 for int fim IDos size 1 fim 0 fim if IDos elementAt fim 1 IDos elementAt os atual amp amp IDos elementAt fim IDos elementAt os atual return fim 1 return 1 Erro public static int pega_proxima_os int os_atual Vector IDos if IDos elementAt os atual IDos elementAt IDos size 1 A id atual a ltima N o tem como ir mais return os atual System out println IDos size for int fim 1 fim lt IDos size 1 fim System out println Fim 1 IDos elementAt fim 1 System out println OS atual IDos elementAt os atual System out println fim IDos elementAt fim if IDos elementAt fim 1 IDos elementAt os atual amp amp IDos elementAt fim IDos elementAt os atual System out println fim fim return fim 1 return 1 Erro public static int pega_produto_anterior Vector IDos int indice_atual if indice_atual 0 return 0 N o d pra voltar mais if IDos elementAt indice atual IDos elementAt indice atual 1 Se o elemento anterior for da mesma OS return indice atual else return indice atual O pr xiimo elemento nao da mesma OS Estamos no ultimo
81. lat rios com base nas informa es cadastradas no sistema Estes podem ser consultados remotamente via requisic o a fim de permitir a atualizac o do banco de dados da administradora conforme a integrac o realizada ao sistema de gest o comercial utilizado pela empresa Os relat rios s o Ordens de Servico para Reabastecimento Hist rico de Vendas Hist rico de Alertas Ordens de Auditoria 1 O ltimo relat rio um tipo especial de ordem de servi o permitindo que uma equipe diferente cheque as m quinas verificando poss veis furtos de itens uma vez que ele informa a quantidade de itens presente na VM 20 idProdutos OS INT idOrdemServico INT 2 idProduto INT 7 idOrdemServico INT idVendingMachine INT Data DATETIME gt Atendida DATETIME gt Auditoria BIT gt 7 idProduto INT idAuditoria INT gt Nom e CHAR 40 idOrdemServico INT gt PrecoVenda FLOAT gt Resultado ENUM gt Descricao BLOB y Mensagem BLCB gt idFornecedor INT gt gt iddiente INT gt YE Figura 8 Registro de Ordens de Servico Adicionalmente todo alerta recebido pelo servidor imediatamente enviado ao endereco de e mail do cliente registrado Esta medida visa que a administradora da VM possa iniciar uma ac o corretiva o mais 7 idAertas INT idVendingMachine INT gt Mensagem CHAR 200 gt Data DATETIME breve poss vel mesmo que empresa
82. lean saida new boolean 8 private static int charcount 0 static static static static static public public public public public GpioOutput GpioOutput GpioOutput GpioOutput GpioOutput public static Coisas do Output void inicia lcd g write gclk g strobe ge grs throws Exception Coloca os dados pra fora g clk o new GpioOutput 6 g strobe new GpioOutput 5 g write new GpioOutput 7 grs new GpioOutput 9 RS ge inicia private static void inicia ge write false new GpioOutput 10 E throws Exception grs write false 1 00111100 1 00001111 LCD 00000001 LCD 00111100 public static void LCD_clear_and_reset throws Exception grs write false comando LCD 00000001 LCD 10000000 eharcount 0 grs write true public static void pula_linha String string GpioException throws grs write false comando try LCD 1 string 000000 catch Exception e 85 e printStackTrace ServicosGpio pulse ge public static void LCD String s throws Exception if s length 8 throw new Exception Faltam parametros para a funcao ELA for int i 0 i lt 8 i saida 7 i s charAt i 1 escreve tudo ServicosGpio pulse ge public static void escreve String s th
83. ma Serial Bit Format 1 Start Bit 8 Data Bits 1 ode Bit 1 Stop Bit 211 Bits Total LSB Start 8 Data Bits Mode Stop M SB Em uma transmiss o de uma VMC para um perif rico o bit Mode diferencia se a transmiss o trata se de uma transmiss o de endere o ou de dados No caso da transmiss o tratar se de endereco o bit Mode estar em n vel l gico um e todos os perif ricos ir o ler a transmiss o Quando a transmiss o for de dados o bit Mode estar em n vel l gico zero e ser somente aceita pelo perif rico que foi enderecado na operac o anterior No caso de uma transmiss o de um perif rico para o VMC o bit Mode dever ser setado no ultimo byte de dados enviado Em uma comunicac o entre VMC e perif ricos os bits 7 3 equivalem aos bits de endereco Um bloco de dados definido pelo endereco dados opcionais e CHK checksum O limite de tamanho de 36 bytes A resposta de uma VMC a um perif rico um Acknowledgment ACK Negative Acknowledgment NAK or Retransmit RET Os c digos dos mesmos s o descritos abaixo e ACK 00H acknowledgment checksum correto e RET AAH Retransmita a informac o anterior Esta mensagem s pode ser enviada pela VM C e NAKFFH Negativo acknowledge A VMC e o perif rico classificam uma espera de 5ms ap s o inicio da comunicac o como uma mensagem NAK Existem especificac es de endere o para perif ricos que s o Address Definition 00000xxxB 00001xxxB 00010xxxB
84. memo if dateTime 4 lt 10 tria Menu nome_central Menu i d reset LCD Mgr escreve Pronto entrada Erros Erros no LCD art App really dateTime e byte 62 time O time dateTime 4 time if dateTime 5 lt 10 time O time dateTime 5 System out println Date 6 time dateTime 2 in dateTime 1 year time public void onInterrupt int gpioNum boolean val System out println GPIO gpioNum is val byte b if OSC isDateTimeAvailable System out println Date amp time is available try byte dateTime OSC getDateTime showDateTime dateTime catch OSCException osce osce printStackTrace if val amp amp gpioNum 16 Sensores Trata Sensores LA if val amp amp gpioNum 15 Interrup o MDB if Menu inicializa b Uart le da uart 0 produto Menu produtos desta maquina elementAt index MDBcode Inicializa MDB else Operac o normal try 1 System out println MasterSlave MasterSlave read 63 catch GpioException e e printStackTrace b Uart le da _ uart 0 trata MDB b if val amp amp gpioNum 14 Teclados if Menu inicializa Ignorar teclas Pedir que pressione o bot
85. mensagens e tomar as atitudes corretas dependendo do conte do da mensagem Testes em caixa preta 1 Uma mensagem deve ser enviada do m dulo para um servidor escolhido e este deve a reconhecer e Caso de sucesso O servidor interpreta corretamente a mensagem e Caso de fracasso O servidor n o consegue receber a mensagem o Como resolver o Verificar a conex o com a internet o Verificar a presenca do SIM Card com cr ditos para tr fego GPRS o Verificar a disponibilidade do servidor e Caso de fracasso O servidor recebe mas n o consegue interpretar a mensagem o Resetar o modem GPRS 49 2 Uma mensagem deve ser recebida pelo modem G24 J em resposta mensagem de teste anterior acendendo um LED indicando sucesso da recepc o e outro indicando sucesso na interpretac o a mensagem e Caso de sucesso O modemG24 recebe e interpreta corretamente mensagem e Caso de fracasso O modemG24 J n o consegue receber a mensagem o Verificar a conex o com a internet o Verificar a presenca do SIM Card com cr ditos para tr fego GPRS e Caso de fracasso O modem 0624 recebe mas n o consegue interpretar a mensagem o Resetar o modem 24 Testes em caixa branca N o existem para o modem G24 isoladamente uma vez que n o podemos acessar seu sistema embarcado 2 M dulo de Telemetria Depois de alcancado o controle sobre o recebimento de mensagens foi feita a instalac o de um modem no m dulo de telemetria Primeira
86. mente foram feitos testes sobre este m dulo atrav s de LED s permitindo identificar as operac es que estavam sendo realizadas Sinais foram injetados diretamente nos pinos de interesse Opera es incorretas s o aceitas O sistema capaz de se recuperar sozinho caso de falha de comunicac o ou ent o gerar uma mensagem de erro para o administrador do sistema e ou das VM s Quando as operac es do m dulo foram realizadas adequadamente foi introduzida a comunicac o GPRS Quando for verificado um funcionamento pleno do m dulo em parceria com o servidor foi dado in cio ao processo de desenvolvimento de um prot tipo de interface Este dispositivo teve como simples funcionalidade simular operac es de venda reabastecimento etc sem a necessidade de um software de debug ou aplica o direta de sinais sobre o m dulo Testes em caixa preta 1 Uma mensagem deve ser enviada do m dulo de telemetria indicando uma venda e o servidor deve receber esta notificac o Caso de sucesso O servidor interpreta corretamente a mensagem e Caso de fracasso O servidor n o consegue receber a mensagem o Como resolver o Verificar conex o com a internet 50 o Verificar a presenca do SIM Card com cr ditos para tr fego GPRS o Verificar as conex es no barramento M DB o Verificar a disponibilidade do servidor e Caso de fracasso O servidor recebe mas n o consegue interpretar a mensagem o Resetar o modem GPRS o Ver
87. mo dada a crescente demanda por 57 sistemas de automa o e monitoramento nas mais variadas reas de aplica o residencial comercial ind stria governo etc Consideramos que o sistema atende seus objetivos b sicos ao ser capaz de notificar um servidor remoto sobre operac es de venda e abastecimento situac es b sicas considerando se o funcionamento de uma Vending M achine Mesmo tendo havido uma reduc o no escopo do projeto acreditamos que o resultado final atendeu aos objetivos inicialmente propostos uma vez que um sistema de telemetria uma ferramenta para o aux lio de tomada de decis o Atrav s do produto final desenvolvido pudemos trabalhar com decis es aut nomas cria o de ordens servico mediante regras pr definidas envio autom tico de notifica es ao usu rio coleta e organiza o de dados permitindo posterior consulta por terceiros 58 Cronograma Tarefa Detalhamento do projeto f sico Aquisi o de modems GPRS e testes de comunicac o com PC Entrega do projeto f sico M aio Junho Julho Agosto Setembro Outubro Novembro Dezembro Defesa do projeto f sico Revis o do projeto f sico M dulo de Telemetria hardware e software Implementac o do servidor incluindo modelos de arquivos XML Testes e valida es preliminares com o servidor Testes de comunicac o do modem GPRS em circuito d
88. mpletos public static void estado_sensores boolean entrada try ServicosGpio le tudo entrada for int i 0 i lt 12 1 if entrada il System out println 1 LCD Mgr escreve 1 System out println 0 LCD Mgr escreve 0 catch GpioException e e printStackTrace 80 public static boolean pega oss String os Vector nome de produto Vector quantidade de produto Vector IDos Vector dataOs String data id try os ServicosHttp net CentralTelemetria Menu nome central Menu ip os catch IOException e e printStackTrace if os indexOf erro lt 0 os os substring os indexOf lt OrdensDeServico gt 17 os indexOf lt OrdensDe Servico nome de produto removeAllElements quantidade de produto removeAllElements IDos removeAllElements dataOs removeAllElements while true if os length lt 0 break id os substring os indexOf lt idOrdemServico gt 16 os indexOf idOrdemServico data os substring os indexOf Data 6 os indexOf lt Data gt data data replace data data trim pega_produtos nome_de_produto quantidade_de_produto IDos dataOs os substring os indexOf Produtos 10 os indexOf lt Produtos gt id data if os indexOf OS 5 gt O os os substring os indexOf lt OS gt else
89. ndicando que a central foi corretamente inicializada Caso apareca a palavra FAIL reinicie o processo a partir do in cio Ap s a terceira tentativa fracassada de inicializac o verifique as conex es el tricas da central e ou contate o suporte t cnico Pressione novamente o bot o M ENU O LCD dever exibir a mensagem PRESSIONE Na linha inferior deve aparecer um n mero correspondente ao c digo de um dos produtos que devem compor o estoque da vending machine Caso nenhum n mero apareca ou a mensagem PRESSIONE n o esteja vis vel provavelmente existem produtos cadastrados no servidor para esta vending machine Contate o Suporte T cnico Pressione ent o o bot o da vending machine referente ao produto cujo ID aparece na tela Repita os passos j e k at que todos os produtos estejam cadastrados na m quina Pronto Ao fim do processo o sistema deve voltar ao ENTRAR inicial O LCD deve exibir a mensagem 1 STATUS 2 Verificac o do Status O Status da m quina indica se ela est inicializada ou n o junto ao servidor Para verificar o status siga os pr ximos passos a C d No LCD pressione o bot o VOLTAR sucessivas vezes at que apareca escrita a palavra RAIZ Pressione o bot o ENTRAR A central far uma conex o com o servidor e carregar as informac es necess rias Dever aparecer no LCD a palavra M ENU Na linha de baixo aparecer a pr
90. ng Machines Veg Machine O Sele o Manual de Produtos Relat rios Ordens de Servi o Abrir relat rio para impress o e Validade dos Produtos Enviar relat rio para o e mail cadastrado Hist rico de Vendas e Hist rico de Alertas Ordens de Auditoria Figura 16 Esbo o Tela de Emiss o de Relat rios 28 2 7 Atualizacao de Informac es Arquivo AtualizarDados php 1 Oferece opc es para Atualizar a Dados cadastrais b Lista de produtos c Informac es e Estoque das Vending Machines As operac es fazem uso das mesmas rotinas j descritas Telemetria para Vending Machines lt J O gt X 4 mon cobradas amp In cio gt Atualizar Dados Nome da Empresa X 00 000 000 0000 00 IE 00 000 00 pai is E mail alertas M Y _____ Telefone Cadastro de Vending Machines Relat ri T oc NY Atualizar Dados v Cadastro Vending Machine er e Produtos Envio de Arquivos Figura 17 Esboco Tela de Atualizac o de Informac es 2 8 Troca de Arquivos Arquivo Arquivos php 1 Permite o envio manual de arquivos para a Registro de produtos no banco de dados b Registro de Vending Machines e configura o de conte do 2 Descreve funcionamento e protocolos para troca de arquivos XML integrac o com outros sistemas 29 Telemetria para Vending Machines In cio gt Envio de Arquivos Cadastro de Vending Machines Cadastro de Produtos Estoque das Vendin
91. nsores O sistema fica constantemente monitorando o estado das 12 entradas para sensores Quando uma delas muda de n vel l gico um alerta enviado ao servidor pela func o apresentada abaixo e Trata Sensores arquivo UserM IDlet java Respons vel por monitor los e disparar os alertas O fluxo de dados e os modelos das mensagens trocadas foram apresentados em 1 6 Alertas na p gina n 16 2 6 Ordens de Servico As ordens de servico s o solicitadas do servidor pela func o OS do menu e pega oss arquivo Auxiliares java Respons vel por solicitar ao servidor os dados das Ordens de Servi o Esta func o preenche algumas estruturas de dados com as informac es sobre as ordens de servi o dispon veis para esta m quina Elas ficam ent o dispon veis para serem visualizadas e operadas utilizando as opc es do menu poss vel selecionar uma Ordem de Servico detalhar e execut la O fluxo de dados e os modelos das mensagens trocadas foram apresentados em 1 4 Ordens de Servi o na p gina n 12 46 Para a navegac o dentre as ordens e dos produtos de cada ordem fun es de apoio foram criadas e pega os anterior arquivo Auxiliares java e pega proxima os arquivo Auxiliares java e pega produto anterior arquivo Auxiliares java e proximo produto arquivo Auxiliares java 2 7 Escrita no LCD As func es a seguir atuam sobre o LCD com capacidade de escrever Strings completas enviar comandos como
92. o produto p null for int i 0 i lt Menu produtos desta maquina size i p produto Menu produtos_desta_maquina elementAt i if p cartucho cartucho break return p lt Vendas gt lt Produto gt lt idXML gt C digo Qualquer lt idXML gt lt idProduto gt ___ lt idProduto gt lt Cartucho gt ___ lt Cartucho gt lt Preco gt ___ lt Preco gt lt DataHora gt ANO M S DIA hh mm ss lt DataHora gt lt Produto gt FL private void venda produto p2 String s lt Vendas gt lt Produto gt indice randomGenerator nextInt 100 S lt idXML gt indice lt idXML gt lt idProduto gt p2 id produto lt idProduto gt lt Cartucho gt p2 6artucho lt Cartucho gt lt Preco gt p2 preco lt Preco gt s lt DataHora gt 1988 06 03 12 00 01 lt DataHora gt s lt Produto gt lt Vendas gt try ServicosHttp net CentralTelemetria Menu nome central amp XML s Menu ip venda catch IOException e e printStackTrace 68 2 Arquivo Menu java package 424 import java util Vector import com motorola oem hapi GpioException public class Menu vetor indice 0 public static int estado atual 0 os id O static String ip static String nome central grapevine static String os public static boolean entrada new boolean 16 static Vector nome de produto new Vector
93. o na m quina para pegar via MDB o comando que indica o produto if index 1 primeira interrup o Inicializa MDB else System out println Vamos incializar alguns registros na m quina System out println Por favor pressione o bot o referente ao produto indicado else try ServicosGpio le tudo entrada if entrada 12 System out println Bot o Menu Menu botao menu if entrada 13 System out println Bot o para cima Menu para cima if entrada 14 System out println Bot o para baixo Menu para_baixo if entrada 15 System out println Bot o back Menu back 64 Rotina para Emulador tryl if gpioNum 1 Teste Auxiliares pega_ip Auxiliares inicializar ServicosHttp produtos desta maquina 4 System out println Menu produtos desta maquina elementAt 0 if gpioNum 14 produto p Simulando que chegou da Uart a venda do produto 1 Azera ServicosHttp produtos desta maquina p pega produto pelo cartucho 1 numero do cartucho venda p Testando as vendas System out println Bot o Menu Menu botao menu if gpioNum 16 if bot o para cima System out println Bot o para cima Menu para cima if gpioNum 15 if bot o para baixo System out println Bot o para baixo Menu para_baixo if gpioNum 1 if back
94. o vazio ele n o aparece na resposta O campo nCartuchos utilizado durante a inicializac o da m quina a fim de permitir a gravac o do endere o de cada cartucho conforme especificado pelo barramento M DB Desta forma a m quina inicializada uma nica vez A situac o de Estoque gt Atual sempre inicializada como zero O valor sofrera alterac o ap s a execuc o da primeira ordem de servico criada Retorno para uma central inicializada lt xmlversion 1 0 encoding 1SO8859 1 gt lt Conteudo gt lt Alertas gt lt erro gt lt 1 gt 4 lt 1 gt lt gt Central Inicializada lt Mensagem gt lt erro gt lt Alertas gt lt Sucesso gt lt Mensagem gt Situa o do Estoque Registrado no Servidor lt Mensagem gt lt Data gt 2010 11 26 12 32 41 lt Data gt lt nCartuchos gt 10 lt nCartuchos gt lt Cartuchos gt Conforme apresentado em Status lt Cartuchos gt lt Sucesso gt lt Conteudo gt 1 3 Estoque Verifica no servidor o que consta como estoque atual da m quina Pode ser utilizada quando o operador deseja comparar os dados do servidor com a quantidade de itens realmente presentes na m quina Retorna os dados de estoque em um XML conforme apresentado na operac o Status Estes dados s o exibidos no visor LCD Par metros utilizados ServicosHttp net CentralTelemetria Menu nome_central Menu ip status 1 4 Ordens de Servico Recupera as ordens de ser
95. o gt lt Mensagem gt Resumo das Vendas lt Mensagem gt lt Datalnicial gt lt DataFinal gt lt Vendas gt lt Venda gt 1 n estruturas lt idProduto gt 2 lt idProduto gt lt Nome gt Prod1 lt Nome gt lt Preco gt 6 64 lt Preco gt lt DataHora gt 2010 06 05 09 48 04 lt DataHora gt lt Venda gt lt Venda gt lt idProduto gt 2 lt idProduto gt lt Nome gt Prodl1 lt Nome gt lt Preco gt 90 38 lt Preco gt lt DataHora gt 2010 10 27 09 48 04 lt DataHora gt lt Venda gt lt Vendas gt lt Sucesso gt lt Conteudo gt Alertas Retorna o hist rico de vendas da Central de Telemetria Vending Machine dentro do per odo informado e POST o CentralTelemetria C digo da Central de Telemetria de interesse o Opcional Datalnicial AAAA MM DD o Opcional DataFinal AAAA MM DD Exemplo de resposta lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Mensagem gt Hist rico de Alertas lt Mensagem gt lt Datalnicial gt 121 lt DataFinal gt lt Alertas gt lt Alerta gt 1 n estruturas lt Mensagem gt M quina Inicializada lt Mensagem gt lt DataHora gt 2010 10 03 03 26 01 lt DataHora gt lt Alerta gt lt Alertas gt lt Sucesso gt lt Conteudo gt 122
96. olher OS Aperte para baixo ou para cima System out println OS atual ID os elementAt os id estado atual 211 break case 22 System out println Detalhar OS Aperte para baixo ou para cima para ver os produtos LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Detalhar OS estado atual 221 break case 23 Auxiliares executa os corrente nome central ip String ID os elementAt os id LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Executa break case 24 Auxiliares completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Completa break case 3 Auxiliares estado sensores entrada LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha Entrada LCD Mgr pula linha 1 ServicosGpio le tudo entrada LCD Mgr sensores entrada break fim da classe 3 Arquivo Auxiliares java package 424 75 import java io IOException import java util Vector import com motorola oem hapi GpioException public class Auxiliares public static String pega_ip String ip erro try ip ServicosHttp net CentralTelemetria Menu nome_central null ip ip tira xml ip ip catch IOException e e printStackTrace return ip public static void atualiza lcd com o numero da os atual int os indice Vector idos try LCD Mgr pula linha
97. one botao ServicosHttp produtos desta maquina index Menu produtos desta maquina size LCD Mgr pula linha 1 index System out println Index index if index O 66 false Terminou a Menu inicializa rotina de inicializa o return 0 try por produto Menu produtos desta maquina elementaAt index LCD Mgr escreve sem pular linha p id produto System out println Id p id produto catch GpioException e e printStackTrace catch Exception 1 e printStackTrace else if index O Menu inicializa false try Menu back catch Exception 1 e printStackTrace index try p produto Menu produtos_desta_maquina elementAt index LCD Mgr pula linha 1 LCD Mgr escreve sem pular linha p id produto System out println Agora pressione o bot o do produtos p ld produto catch GpioException e e printStackTrace return index private void trata_MDB byte b produto a for int i 0 i lt Menu produtos desta maquina size i para todos os produtos desta maquina 67 if b produto Menu produtos desta maquina elementAt i MDBcode a produto Menu produtos desta maquina elementAt i System out println Venda do produto a id produto venda a break private produto pega produto pelo cartucho int cartuch
98. os gt lt Produto gt 1 n estruturas lt idProduto gt 1 lt idProduto gt lt Nome gt produtox Teste 2 lt Nome gt PrecoCompra 10 00 lt gt lt PrecoVenda gt 14 00 lt PrecoVenda gt lt Quantidade gt 50 lt Quantidade gt lt Descricao gt Uma descri o de um produto interessante lt Descricao gt lt idFornecedor gt 0 lt idFornecedor gt lt Produto gt lt Produtos gt lt Sucesso gt lt Conteudo gt Fornecedor lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Mensagem gt Registros do Usu rio lt Mensagem gt lt Fornecedors gt lt Fornecedor gt 1 n estruturas lt idFornecedor gt 1 lt idFornecedor gt 117 Empresa Garauco Exporta o e Importa o Ltda lt Empresa gt CNPJ gt 07700061000100 lt gt lt InscricaoEstadual gt 9035651281 lt InscricaoEstadual gt lt Logadouro gt Rua Baltazar Carrasco dos Reis 2790 lt Logadouro gt lt Cidade gt Curitiba lt Cidade gt lt Estado gt PR lt Estado gt lt CEP gt 80250130 lt CEP gt lt ContatoNome gt Glauco Lins lt ContatoNome gt lt ContatoTelefone gt 41 3941 4526 lt ContatoTelefone gt lt ContatoEmail gt GlaucoOGarauco com br lt ContatoEmail gt lt Fornecedor gt lt Fornecedors gt lt Sucesso gt lt Conteudo gt Atualizar Permite atualizar no servidor informa es do usu rio e POST o Usuario Nome de usu rio para acesso ao painel
99. presa administradora de VM s cadastrada no sistema Uma empresa pode ter uma ou mais 5 utilizando os servicos 1 2 Identifica o da M quina Cada VM deve ser identificada pela sua localiza o endere o H a necessidade de identificar o n mero de s rie do m dulo de telemetria que est conectada a ela pois o identificador da m quina A VM obrigatoriamente deve estar relacionada a um cliente assim como informar o n mero de cartuchos dispon veis para itens diferentes H a possibilidade de incluir um nome para a m quina 18 iddiente INT gt Empresa CHAR 100 CNPJ CHAR 14 gt InscricaoEstadual CHAR 14 gt Email CHAR 50 gt Usuario CHAR 20 gt Senha CHAR 20 gt Logadouro CHAR 200 Cidade CHAR 20 Estado CHAR 2 CHAR 8 gt ContatoNome CHAR 50 gt ContatoTelefone 20 gt ContatoEmail 50 Figura 4 Identifica o do Cliente 1 3 Estoque Produtos Cada cliente deve catalogar no sistema identificac o do fornecedor opcional 7 idProduto INT gt Nom e CHAR 40 gt Descricao BLOB gt idFornecedor INT iddiente INT gt PrecoVenda FLOAT gt 7 idVendingMachine INT iddiente INT gt CentralTelemetria CHAR 20 gt Nome CHAR 40 gt Cartuchos INT gt Logadouro CHAR 200 Cidade CHAR 20 lt gt CEP CHAR 2 Figura 5 Ident
100. put 3 0 new GpioInput 4 I El new GpioOutput 11 wkupo write false Interrupc es 914 new GpioInput 14 Teclado gl6 new GpioInput 16 Sensores 88 gl4 enableInterrupt gpioInterruptConfig gl6 enableInterrupt gpioInterruptConfig public static void pulse GpioOutput g throws GpioException g write true g write false public static void le_tudo boolean entrada throws GpioException int i 0 g latch input write true pulse g clk i g latch input write false for i 0 i lt 16 i entrada i g read read pulse g_clk_i 7 Arquivo ServicosHttp java package 924 import java io DataInputStream import java io IOException import java io InputStream import java io OutputStream import javax microedition io Connector import javax microedition io HttpConnection import com motorola oem network Network import com motorola oem websession WebSession import com motorola oem websession WebSessionException import com motorola oem websession WebSessionManager public class ServicosHttp 1 static HttpConnection http static byte b new byte 32 static HttpConnection httpConn null public static int cont_conexoes 0 static void conectar System out println GSM registration state gsmRegStateToString Network getGSMRegState WebSession wb new WebSession wb setAccessType WebSession ACCESS RW
101. rega o identificador da Central de Telemetria mas em alguns casos pode conter tamb m um texto formatado em XML b ip Indica o IP do servidor Como este possui IP din mico o mesmo deve ser requisitado periodicamente No caso da presente aplicac o este requisitado cada vez que se entra no menu c url o caminho dentro do servidor que deve ser chamado para execuc o de uma determinada func o O retorno desta func o uma String contendo a resposta do servidor formatada como XM L A informac o desejada extra da por func es espec ficas dependendo da chamada que foi executada para cada func o um XM L diferente retornado S o elas 45 e tira xml ip arquivo Auxiliares java e tira xml estoque arquivo Auxiliares java e tira xml status arquivo Auxiliares java e tira xml inicializar arquivo Auxiliares java O retorno destas func es tamb m uma String mas esta cont m apenas os dados necess rios 2 4 Vendas Quando uma mensagem circula no barramento MDB o G24 l esta mensagem e a decodifica Se esta for igual a um dos enderecos de cartuchos que foram armazenadas durante a rotina de inicializac o ent o uma venda detectada O sistema avisa o servidor para que este tome as medidas necess rias A func o usada para a venda e trata MDB arquivo UserM IDlet java O fluxo de dados e os modelos das mensagens trocadas foram apresentados em 1 2 Inicializar na p 11 2 5 Alertas e Se
102. rocadas entre servidor e central a fim de permitir a criac o de Vending M achines mais interativas Par metros utilizados Aqui descreveremos os par metros para a j citada func o net ServicosHttp net CentralTelemetria Menu nome central Menu ip Btatus A func o utilizada status 12 Inicializar Inicializa a m quina junto ao servidor Ap s esta operac o a m quina estar habilitada a executar as demais func es do sistema Retorna um XM L indicando se conseguiu inicializar ou se algum erro foi encontrado Par metros utilizados ServicosHttp net CentralTelemetria Menu nome_central Menu ip inicializar Retorno para uma central n o inicializada em caso de sucesso lt xmlversion 1 0 encoding ISO8859 1 gt lt Conteudo gt lt Alertas gt lt erro gt lt 10 gt 1 lt 10 gt lt Mensagem gt Central lt gt lt gt lt Alertas gt lt Sucesso gt Mensagem Central Inicializada com Sucesso lt Mensagem gt lt DataHora gt 2010 11 26 12 31 33 lt DataHora gt lt nCartuchos gt 5 lt nCartuchos gt lt Cartuchos gt lt Cartucho gt Conforme apresentado em Status lt Cartucho gt lt Cartuchos gt lt Sucesso gt lt Conteudo gt 11 A contagem de elementos do tipo Cartucho pode variar de 1 nCartuchos dependendo do n mero de cartuchos inicializados no servidor Se um cartucho estiver registrado com
103. rows GpioException byte b s getBytes boolean bol grs write true letra for int i 0 i lt s length i para cada letra if charcount 16 pula linha 1 grs write true if s charAt i i 1 lt s length itt System out println avg charcount a if charcount 32 pula linha 0 grs write true charcount 0 if s charAt i amp amp i 1 lt s length charcount bol convert b i letra em booleanos lt j for int j 0 j 8 7 j bol j transfere pra saida saida escreve tudo ServicosGpio pulse ge public static void escreve sem pular linha String s throws GpioException byte b s getBytes 86 boolean bol int fim 16 if fim s length 1 fim s length 1 grs write true letra for inti 0 i lt fim i para cada letra bol convert b i letra em booleanos lt J for int j 0 j 8 7 j bol j transfere pra saida saida escreve tudo ServicosGpio pulse ge private static void escreve_tudo throws GpioException int i 0 for i 0 i lt 8 i g write write saida 7 i ServicosGpio pulse g clk o g strobe write true strobe write false private static boolean convert byte b boolean bits new boolean 8 for int i 0 i lt bits length i
104. rtuchos gt lt Sucesso gt lt Conteudo gt OS Retorna as ordens de servico registradas para a Central de Telemetria Vending Machine informada e POST o CentralTelemetria C digo da Central de Telemetria de interesse Exemplo de resposta lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Mensagem gt Resumo das Ordens de Servico lt Mensagem gt lt OrdensDeServico gt lt OS gt l n estruturas lt Data gt 2010 11 18 08 17 47 Data lt idOrdemServico gt 87 lt idOrdemServico gt lt Produtos gt lt Produto gt 1 n estruturas lt idProduto gt 1 lt idProduto gt lt Cartucho gt 1 lt Cartucho gt lt Nome gt produtox Teste 2 lt Nome gt lt Quantidade gt 50 lt Quantidade gt lt Produto gt lt Produto gt lt idProduto gt 1 lt idProduto gt lt Cartucho gt 3 lt Cartucho gt lt Nome gt produtox Teste 2 lt Nome gt lt Quantidade gt 15 lt Quantidade gt lt Produto gt lt Produtos gt lt OS gt lt OrdensDeServico gt lt Sucesso gt lt Conteudo gt Vendas Retorna o hist rico de vendas da Central de Telemetria Vending M achine dentro do per odo informado 120 e POST o CentralTelemetria C digo da Central de Telemetria de interesse o Opcional Datalnicial DD o Opcional DataFinal AAAA MM DD Exemplo de resposta lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucess
105. se descartada Por exemplo na placa do suporte para o G24 com o soquete de 70 pinos as trilhas s o muito finas e muito pr ximas Descobrimos que relativamente f cil que uma delas se rompa durante a fabricac o ou que entrem em curto Assim podemos descartar apenas a placa na qual aconteceu o erro como de fato aconteceu com a placa suporte para o G24 sem alterar o resto do prot tipo As placas inicialmente seriam fabricadas por uma empresa especializada n s apenas desenvolver amos o layout M as como pequenas alterac es no projeto demandam uma placa inteiramente nova achamos que n o seria interessante manter esse modelo pois o tempo que a empresa demanda para fabricar uma placa at a sua entrega nos causaria atrasos Por exemplo segundo o site www pci eletronica org fag as placas demoram at seis semanas e custam entre R 1 20 e R 1 40 No total do nosso projeto usamos 204 5 cm o que levaria a um custo de R 245 70 para fabric las Este o preco para um conjunto das 5 placas necess rias ao sistema Este custo apenas para as placas sendo que os componentes podem ser reaproveitados Comprando um kit para desenvolver as placas em casa usando o processo fotogr fico para todas elas o custo final seria ainda menor conforme apresentado R 75 00no kit mais aproximadamente R 40 00 com as placas virgens num total de R 115 00 Uma economia de R 130 em relac o compra da placa pronta Foi decidido ent
106. static CommConnection commConectionUartl static InputStream leitor static OutputStream escritor static byte Byte lido new byte 18 static byte b new byte 1000 static byte bb public static void inicia uartl1 throws IOException 94 commConectionUartl CommConnection Connector open comm COM1 baudrate 9600 autocts off au torts off Connector READ WRITE true leitor commConectionUarti openInputStream escritor commConectionUartl openOutputStream public static void megaprint String s b s getBytes try escritor write b catch IOException el el printStackTrace System out println s public static byte le da uart int i cont 0 System out println Lendo try if leitor available gt 0 for i 0 i Byte lido length i Byte lido i 0 Zerando os bytes lidos while leitor available 15 Lendo de 15 em 15 bytes leitor read Byte lido 0 15 for i 0 i lt 15 i if Byte lido i 0 b cont Byte lido i Transformando em String cont4d4 Caso os bytes do MDB n o gerem caracteres alfanum ricos s n o converter para char Trabalhamos como INT que n o tem problema leitor read Byte_lido 0 leitor available for i 0 1 lt Byte_lido length i if Byte lido i 0 b cont Byte lido i Transformando em String cont return b 95
107. ta contar com informa es sobre o erro Estas informa es dever o ser utilizadas para o aux lio durante o processo de integra o Exemplo lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt erro gt lt 10 gt 1 lt 10 gt lt Mensagem gt Operac o Inv lida lt Mensagem gt lt erro gt lt Alertas gt lt Conteudo gt Vending Machine Produto Fornecedor Retorna os registros do usu rio para cada uma das func es e POST o Usuario Nome de usu rio para acesso ao painel administrativo o Senha Senha do usu rio Exemplos de resposta Vendingmachine lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt 116 Sucesso Mensagem Registros do Usu rio lt Mensagem gt lt Vendingmachines gt lt Vendingmachine gt 1 n estruturas lt idVendingMachine gt 1 lt idVendingMachine gt lt CentralTelemetria gt assdfee2288 lt CentralTelemetria gt lt Nome gt Vending Machine n1 lt Nome gt lt Cartuchos gt 10 lt Cartuchos gt lt Logadouro gt Rua Bruno Filgueira lt Logadouro gt lt Cidade gt Curitiba lt Cidade gt lt CEP gt 80240220 lt CEP gt lt Estado gt PR lt Estado gt lt Vendingmachine gt lt Vendingmachines gt lt Sucesso gt lt Conteudo gt Produto lt xml version 1 0 encoding 1508859 1 gt lt Conteudo gt lt Alertas gt lt Sucesso gt lt Mensagem gt Registros do Usu rio lt Mensagem gt lt Produt
108. tem out println 23 Executar os System out printl LCD Mgr LCD clear and reset 3 N gt LCD Mgr escreve sem pular linha 21 Completar Escolher OS estado atual 21 break case 23 System out println 21 Escolher os System out println gt gt gt 22 Detalhar os System out println 23 Executar os System out println 24 Completar LCD Mgr LCD clear and reset estado atual 22 break case 24 System out println 21 System out println LCD Mgr escreve sem pular linha 22 Detalhar OS Escolher os gt gt gt 23 Executar os System out println 22 Detalhar os System out println 24 Completar 72 LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 23 Executar OS estado atual 23 break case 131 prod estoque f prod estoque indice lt produtos_estoque size prod_estoque_indice Auxiliares atualiza lcd com o produto atual produto produtos estoque elementAt prod estoque indice break case 211 os os id Auxiliares pega proxima os os id ID os Auxiliares atualiza lcd com o numero da os atual os id ID os System out println OS atual ID os elementAt os id break case 221 Produto vetor indice Auxiliares pega proximo produto ID os vetor indice Auxiliares detalhes os nome de produto quantidade de produto vetor indice
109. tema mais simples Ele conta com um microprocessador e mem ria embarcados que desempenham o papel do microcontrolador externo Este m dulo possui um total de 16 portas de lO sendo oito para uso geral e as outras oito multiplexadas com outras fun es do G24 A Tabela 1 mostra um resumo dos pinos dispon veis Tabela 1 Pinos de GPIO 16 1 0 Wkupi_n N mero do pino Dire o Multiplexado Reservado Interrupc o 28 1 0 Sim 30 1 0 32 1 0 34 1 0 36 0 38 0 40 1 0 ea wo 1 m 41 O Ant det 49 O GPRS 26 O Wkupo n Sim Os pinos sombreados em verde s o multiplexados com a UARTI O Pino 42 sombreado em amarelo reservado pelo m dulo G24 para comutar este entre o modo Jtool Manager O modo de ger ncia do G24 e o MIDlet Manager de ger ncia e execu o da MIDlet Este pino n o est dispon vel no projeto A MIDlet o programa em Java que roda no G24 J 33 Conversor k M DB TTL Barramento MDB SIM Card Figura 21 Diagrama em Blocos 24 De acordo com o diagrama em blocos apresentado na Figura 21 para conectar todos os perif ricos foram usados37 pinos Como o G24 J possui pinos dedicados para a conex o com o SIM Card e com a UART2 para programac o ent o restam as conex es com o barramento M DB com o teclado display LCD e sensores O barramento MDB interpretado via porta serial pela UARTI As d
110. u produtos incorretos s o cadastrados na Ordem de Servi o 7 Altera o de Estoque e Caso de Sucesso O sistema permite a altera o do estoque de uma determinada Vending Machine 54 e Caso de fracasso A altera o do estoque n o acontece ou acontece de forma diferente da esperada 8 Alterac o de Cadastro e Caso de Sucesso Os dados do cadastro do usu rio s o alterados no cadastro e Caso de fracasso A alterac o n o acontece ou dados incorretos s o armazenados 9 Altera o de Produtos e Caso de Sucesso Os dados do produto s o alterados e Caso de fracasso Os dados do produto n o s o alterados corretamente 10 Consulta do Hist rico de Vendas e Caso de Sucesso O hist rico das vendas foi mantido corretamente e exibido de acordo e Caso de fracasso N o exibida nenhuma venda ou dados incorretos s o exibidos 11 Consulta do Hist rico de Alertas e Caso de Sucesso O hist rico de alertas foi mantido corretamente e exibido de acordo e Caso de fracasso N o exibido nenhum alerta ou dados incorretos s o exibidos 2 Procedimentos executados exclusivamente na Vending Machine 1 Inicializa o da central capturando os dados do Barramento M DB e Caso de Sucesso Os dados s o corretamente armazenados na mem ria do G24 e Caso de fracasso Os dados n o s o armazenados ou s o armazenados incorretamente 2 Consulta do estado dos sensores e Caso de Sucesso Os estados dos sensores s
111. ut println gt gt gt 21 Escolher os System out printin 22 Detalhar os escolhida System out println 23 Executar os escolhida System out println 24 Completar LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 21 Escolher OS estado atual 21 break static public void para baixo throws Exception switch estado_atual 1 System out println MENU System out println 1 Status System out println gt gt gt 2 OS System out println 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 2 OS estado atual 2 break case 2 System out println MENU System out println 1 Status System out println 2 OS System out println gt gt gt 3 Sensores LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 3 Sensores estado atual 3 break case 11 System out println 11 Verificar status System out println gt gt gt 12 Inicializar System out println 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 12 Inicializar estado atual 12 break case 12 System out println 11 Verificar status 70 System out println 12 Inicializar System out println gt gt gt 13 Estoque LCD Mgr LCD clear and reset LCD Mgr escreve sem pular linha 13 Estoque estado atual 13 br
112. vico destinadas a esta central de telemetria O operador pode ent o escolher qual ordem executar bem como detalhar cada ordem verificando seus itens e quantidades 12 Retorna um XM L contendo a descric o de cada ordem de servico Par metros utilizados ServicosHttp net CentralTelemetria Menu nome central Menu ip Exemplo retorno lt xmlversion 1 0 encoding 1S08859 1 gt lt Conteudo gt lt Alertas gt lt 5 550 gt lt Mensagem gt Resumo das Ordens de Servico lt gt lt OrdensDeServico gt OS 1 n registros lt Data gt 2010 11 02 09 01 23 lt Data gt lt idOrdemServico gt 25 lt idOrdemServico gt lt Produtos gt lt Produto gt 1 n registros lt idProduto gt 1 lt idProduto gt lt Cartucho gt 1 lt Cartucho gt lt Nome gt produtox Teste 2 lt Nome gt lt Quantidade gt 10 lt Quantidade gt lt Produto gt lt Produtos gt lt OS gt lt OrdensDeServico gt lt Sucesso gt lt Conteudo gt 1 5 Recarga O processo de recarga depende de uma ordem de servico emitida pelo servidor Esta contem uma listagem de itens m nima que dever ser levada pelo funcion rio de reabastecimento a fim de completar o estoque da m quina Uma vez que todos os cartuchos de produtos tenham sido preenchidos um comando presente no menu do m dulo dispara um aviso ao servidor de que a ordem de servico foi realizada Assumindo que entre a emiss o da ordem de servi
113. y Content Type application x www form urlencoded Abrir 4 os httpConn openOutputStream System out println parametro os write parametro getBytes Tentando System out println 4 4 4 cont_conexoes is available format AAA System out println cont conexoes is httpConn openInputStream int chr try while chr is read 1 sb append char chr catch IOException sp System out println Deu erro aqui System out println Di available System out println sp sp printStackTrace Web Server just returns the birthday in mm dd yy catch Exception e System out println 1 e printStackTrace Cry if is null System out println Fechando IS is close 17 System out println IS ok if os null 4 System out println Fechando OS os close System out println OS ok 91 catch Exception e System out println 2 e printStackTrace try if httpConn null AA System out println Fechando HTTP wiy httpConn close catch IOException e System out println N o conseguiu fechar Colocando NULL System out println e httpConn null System out println sb toString return sb toString public static vo

Download Pdf Manuals

image

Related Search

Related Contents

DeWalt DW9106 Cordless Saw User Manual  www.easywaybiometrics.com  Page 1 4 200 光ー 32弾 4 ※品番によっては、 図と現品の形状がー部  Whitehaus Collection WHFLPLN2418-SBLU Installation Guide  USER`S MANUAL - s3.amazonaws.com    Sony CDX-M8800 Installation Instructions  iHome iP47 Black  Fiche produit Réussir dans ses nouvelles  2 ND 522/523 の一般的操作  

Copyright © All rights reserved.
Failed to retrieve file