PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA CURSO DE ENGENHARIA DE COMPUTAÇÃO CHRISTIAN ARROSI CHRISTIAN KITZMANN GOMES
|
|
- Iasmin Galvão Figueiredo
- 8 Há anos
- Visualizações:
Transcrição
1 PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA CURSO DE ENGENHARIA DE COMPUTAÇÃO CHRISTIAN ARROSI CHRISTIAN KITZMANN GOMES TITAN HIGHWAYS CURITIBA 2012
2 CHRISTIAN ARROSI CHRISTIAN KITZMANN GOMES TITAN HIGHWAYS Relatório apresentado ao curso de Engenharia de Computação, da Pontifícia Universidade Católica do Paraná, como requisito parcial de avaliação, da disciplina de Resolução de Problemas da Engenharia. Prof. Afonso Ferreira Miguel CURITIBA 2012
3 SUMÁRIO RESUMO... 5 GLOSSÁRIO DE SIGLAS... 6 GLOSSÁRIO DE PALAVRAS... 7 INDICE DE IMAGENS... 8 METODOLOGIA OBJETIVOS GERAL ESPECÍFICOS MATERIAIS UTILIZADOS EQUIPAMENTOS UTILIZADOS SOFTWARES UTILIZADOS PROBLEMA APRESENTADOS INTERFACE PROCESSADOR DE PACOTES BANCO DE DADOS CÓDIGO INICIAL CÓDIGO DE CONEXÃO DO BANCO DE DADOS CÓDIGO DA CLASSE SENSORES CÓDIGO DA CLASSE PRINCIPAL MAQUETE INTEGRAÇÃO PLACA DE CIRCUITOS CÓDIGO FINAL DO PROJETO INTEGRAÇÃO DOS CÓDIGOS jfinterface MainClass BytesArray ProcessadorPacotes Sensor Connection OpcodeHandlerlor MANUAL DO USUÁRIO... 30
4 HISTÓRICO DE DESENVOLVIMENTO... 31
5 RESUMO O desenvolvimento do mesmo visa melhorar a segurança dos usuários de autoestradas, controlando a iluminação e integrado ao mesmo, um sistema integrado de segurança inteligente. O projeto visa integrar dois módulos distintos criando algo inovador, trazendo assim mais tecnologia para a vida diária das pessoas. Separando as autoestradas em várias partes é possível monitorar a quantidade de veículos transitando em cada trecho da estrada, integrado com um sistema de iluminação que atuará nas faixas e nas placas de transito presentes na estrada. Adicionalmente os olhos-de-gato serão substituídos por pequenas lanternas. O sistema de iluminação será ativado durante a noite e quando existirem veículos transitando no trecho da estrada em questão. Um sistema de segurança utilizará as informações como quantidade de veículos em um trecho da estrada para determinar possíveis acidentes, ao suspeitar de um acidente a informação será enviada a uma central, possibilitando que ações sejam tomadas imediatamente. Palavras-chave: Desenvolvimento, Iluminação, Segurança.
6 GLOSSÁRIO DE SIGLAS HTTP Hypertext Transfer Protocol Protocolo de Transferência de Hipertexto MDF Medium Density Filterboard Placa de fibra de madeira de média densidade NC Normally Closed Normalmente fechado NO Normally Open Normalmente aberto PCI Placa de Circuito Impresso TCP Transmission Control Protocol Protocolo de controle de transmissão
7 GLOSSÁRIO DE PALAVRAS Arduíno Byte Header MySQL Set Software Table Micro controlador programável Octeto binário na computação Cabeçalho de um pacote Software utilizado para banco de dados Alterar um conteúdo para o especificado Sequência de instruções para o computador Tabela
8 INDICE DE IMAGENS Figura 1 - PCI do projeto Figura 2 - Demonstração dos trechos controlados e seus respectivos sensores.
9 Figura 3 - Demonstração da conexão dos cabos Ethernet Figura 4 - Demonstração dos cabos da maquete, estes devem ser ligados ao Arduíno
10 Figura 5 - Demonstração da ligação de todos os cabos do Arduíno, locais e suas respectivas ligações.
11 METODOLOGIA Para o desenvolvimento do projeto foi aplicada a metodologia de separar um grande problema em várias partes, para a execução desse projeto foi utilizado o seguinte modelo de separação: Software: Módulo onde a comunicação e gerenciamento de informações fora desenvolvido; Elétrica: Projeto dos circuitos e seus testes; Maquete: Simulação de uma autoestrada de duas faixas com uma curva; Integração: Instalação dos LEDs, sensores, fiação e PCI na maquete. Após a separação cada etapa foi desenvolvida separadamente. Para o desenvolvimento do software foi feita novamente uma separação, a parte de comunicação, banco de dados, comunicação com o arduíno Desenvolvemos o projeto separando por setores, iniciando-se na parte de software, onde desenvolvemos toda a lógica e executamos os testes dos sistemas. Após concluir está etapa passamos a desenvolver a parte de hardware, onde criamos um placa de circuito impresso exclusivamente para o melhor funcionamento do sistema. Após executadas estas tarefas passamos a montar a maquete e a integrar todo o setor de software com o setor de hardware. O projeto foi desenvolvido na forma de uma maquete para o melhor entendimento do funcionamento. Cada parte foi projetada, desenvolvida e testada separadamente. Terminando a integração das partes do projeto, realizamos os testes finais do funcionamento do projeto.
12 OBJETIVOS GERAL Com base nos programas de aprendizagem das disciplinas do curso de engenharia da computação, construir um sistema inteligente de iluminação e emergências para rodovias. ESPECÍFICOS Confeccionar um sistema de iluminação inovador para estradas. Integrar o sistema de iluminação com um sistema de emergência. Criar algo inovador. CD do projeto com imagens, vídeos e documentação sobre o projeto. MATERIAIS UTILIZADOS Placa fenolite Compensado MDF ; resistor de ; resistores de resistores de receptores infravermelho- ; emissores infravermelho ; LED s auto brilho ; de fiação; Cola Quente; Arduino Duemilanove c/ ATmega328; Ethernet Shield Arduino - Enc28j60; Tintas Spray Preto, Branco, Verde; Estanho com fluxo de solda; 4 Reles NC 5V; 4 Transistores NPN;
13 EQUIPAMENTOS UTILIZADOS Furadeira; Broca de ; Ferro de Solda; Pistola de cola quente; Multímetro; Computador; SOFTWARES UTILIZADOS SolidWorks 2012 Student Edition; Eagle 6.1; NetBeans IDE 7.1.1; Eclipse HELIOS; Microsoft Office Project; Microsoft Office Word; Microsoft Office Excel; Microsoft Office Visio ; MySQL Server 5.5; MySQL GUI Tools; Arduino 1.0; PROBLEMA APRESENTADOS PROBLEMAS ENCONTRADOS Interferência dos sensores infravermelho com os demais sensores. Ruído na entrada do arduino. Falta de Alimentação para o funcionamento dos sensores estabelecidos na maquete. Problema no código do banco de dados. Problemas no código do processador de pacotes. SOLUÇÕES Foi utilizado um pequeno tubo de madeira para direcionar o feixe do sensor. Foi necessário a utilização de resistores Pull-Down. Utilizou-se uma nova fonte de alimentação, utilizando um cabo USB ligado ao computador. Reestruturação do código. Reestruturação do código.
14 INTERFACE A interface assim como todo código do projeto foi criada na linguagem Java, esta possui quatro campos distintos, nos quais exibiram as informações dos sensores e de seus trechos. Os campos recebem o nome de acordo com suas funções especificas sendo de: Console: Este recebe a função de imprimir as informações de conexão, possíveis erros de sistemas e avisos do programa; Estatísticas: Este campo recebe a função de mostrar as informações de um determinado trecho, imprimindo o valor da quantidade de carros no trecho. Sensores: Este campo demostra a instalação e desinstalação dos sensores na rodovia, mostrando também a localização do sensor no trecho em que foi instalado. Emergências: Este por sua vez mostra os avisos de possíveis acidentes, utilizando as estatísticas do local, emitindo assim para o operador o alerta.
15 PROCESSADOR DE PACOTES O processador de pacotes é um módulo do projeto que foi criado para realizar determinar operações dependendo do conteúdo de um pacote recebido. Antes de o software iniciar o seu papel é inicialmente estabelecida uma conexão com o software responsável por adquirir as informações do servidor HTTP do Arduíno, uma vez conectado ele irá receber os pacotes TCP enviados a fim de interpretá-los. Para a interpretação dos pacotes o primeiro passo é verificador se o tamanho em bytes do pacote é consistente com os parâmetros esperados. Após isso é necessário ler o seu header que consiste em um único byte e verificar se o seu valor é consistente com os códigos operacionais do programa. O código operacional levará a uma das operações a seguir: Gravação de um novo sensor no banco de dados; Apagar um sensor do banco de dados; Incrementar o contador de um sensor em particular; Decrementar o contador de um sensor em particular; Set o valor de um sensor em particular. Uma vez interpretado o header do pacote a operação solicitada será executada se possível, verificando ao longo de sua execução se ocorreu algum erro, os possíveis erros tratados são: Número de bytes do pacote inconsistente com o esperado; Gravação de um sensor que já existe; Remoção de um sensor que não existe; Incrementar ou decrementar sensor que não existe; Decrementar sensores com nenhum veículo circulando; Set valor de um sensor que não existe.
16 BANCO DE DADOS O banco de dados foi projetado para receber e armazenar as informações adquiridas a partir das estatísticas de tráfeg, a escolha de utilizar o MySQL foi devido a sua facilidade na manipulação dos dados. Inicialmente seu código foi projetado de forma separada, mas tarde sendo incorporado ao código final do projeto. O código foi criado na linguagem Java, possuindo um driver para executar a conexão com o MySQL, para iniciar a conexão é necessário ser definido o local, login e senha no código fonte. O banco possui uma table com cinco colunas, cada coluna deve armazenar um determinado valor correspondente ao seu campo. Os campos foram estabelecidos de acordo com seus nomes mantendo assim a organização dos dados armazenados, os valores serão guardados e separados nestes campos sendo eles de: Identificador: Este armazena o valor de identificação dos sensores, onde cada sensor terá um numero exclusivo, facilitando assim a identificação de possíveis erros; TotalCarrosOntem: Este armazena o valor das estatísticas de veículos que circularam num determinado trecho no dia anterior, este valor para demonstração será atualizado manualmente; TotalCarrosHoje: Este armazena o valor das estatísticas de veículos que circularam num determinado trecho no dia atual; MaiorQuantidadeDeCarros: Este armazena o valor das estatísticas de veículos que circularam no trecho no determinado período, sendo atualizado constantemente; LimiteTipico: Este armazena o valor das estatísticas da média de veículos no trecho, sendo emitido o estado de alerta quando ultrapassado.
17 CÓDIGO INICIAL CÓDIGO DE CONEXÃO DO BANCO DE DADOS Este é uma das partes mais importantes para o banco de dados, já que este conecta o sistema com o MySQL, através do driver próprio para isso. Está parte do código fica responsável por pegar o usuário e a senha e testa-la para verificar se este tem autoridade para acessar o banco. Lembrando que este código é apenas demonstrativo, já que este é o código antigo do banco de dados. Este código também possui as funções de gravação dos sensores. public class ConectaBanco { private String url; private String login; private String senha; public ConectaBanco(String url, String login, String senha) { seturl(url); setlogin(login); setsenha(senha); public String getlogin() { return login; public void setlogin(string login) { this.login = login; public String getsenha() { return senha; public void setsenha(string senha) { this.senha = senha; public String geturl() { return url; public void seturl(string url) { this.url = url; public void insere(string s, String msg) { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //System.out.println("\n Salvando URL:...\n"); try { Connection conn = DriverManager.getConnection(getUrl(),getLogin(), getsenha()); try { String sql = s; Statement stm = conn.createstatement(); try { stm.executeupdate(sql); System.out.println(msg); catch (Exception ex) { System.out.println("\nErro no resultset!\n" + ex); catch (Exception ex) { System.out.println("\nErro no statement!"); catch (Exception ex) { System.out.println("\nErro no connection!"); catch (Exception ex) { System.out.println("\nDriver nao pode ser carregado!"); public ArrayList busca(string s) { ArrayList Sensores = new ArrayList(); Sensores a = new Sensores(); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //System.out.println("\n Salvando URL:...\n"); try {
18 Connection conn = DriverManager.getConnection(getUrl(),getLogin(), getsenha()); try { String sql = s; Statement stm = conn.createstatement(); try { ResultSet rs = stm.executequery(sql); while (rs.next()) { a.setcod(rs.getint(1)); a.setidentificador(rs.getstring(2)); a.settotalcarrosontem(rs.getstring(3)); a.settotalcarroshoje(rs.getstring(4)); a.setmaiorquantidadedecarros(rs.getstring(5)); a.setlimitetipico(rs.getstring(6)); Sensores.add(a); System.out.println("Sensor Encontrado com Sucesso!!!\n"); System.out.println("Identificador: "+a.getidentificador() +"\ntotalcarrosontem: " + a.gettotalcarrosontem()+ "\ntotalcarroshoje: "+ a.gettotalcarroshoje()+ "\nmaiorquantidadedecarros: "+a.getmaiorquantidadedecarros() + "\nlimitetipico: "+a.getlimitetipico() +"\n"); //System.out.println(rs.getInt(1)); catch (Exception ex) { System.out.println(ex); catch (Exception ex) { System.out.println("\nErro no statement!"); catch (Exception ex) { System.out.println("\nErro no connection! " + ex); catch (Exception ex) { System.out.println("\nDriver nao pode ser carregado!"); return Sensores;
19 CÓDIGO DA CLASSE SENSORES public class Sensores { private int cod; private String Identificador; private String TotalCarrosOntem; private String TotalCarrosHoje; private String MaiorQuantidadeDeCarros; private String LimiteTipico; public int getcod() { return cod; public void setcod(int cod) { this.cod = cod; public String getidentificador(){ return Identificador; public void setidentificador(string Identificador) { this.identificador = Identificador; public String gettotalcarrosontem() { return TotalCarrosOntem; public void settotalcarrosontem(string TotalCarrosOntem) { this.totalcarrosontem = TotalCarrosOntem; public String gettotalcarroshoje() { return TotalCarrosHoje; public void settotalcarroshoje(string TotalCarrosHoje) { this.totalcarroshoje = TotalCarrosHoje; public String getmaiorquantidadedecarros() { return MaiorQuantidadeDeCarros; public void setmaiorquantidadedecarros(string MaiorQuantidadeDeCarros) { this.maiorquantidadedecarros = MaiorQuantidadeDeCarros; public String getlimitetipico() { return LimiteTipico; public void setlimitetipico(string LimiteTipico) { this.limitetipico = LimiteTipico;
20 CÓDIGO DA CLASSE PRINCIPAL public class MainClass { private static String MaiorQuantidadeDeCarros; private static String LimiteTipico; private static String TotalCarrosHoje; private static String TotalCarrosOntem; public static void main(string[] args) { Scanner ler = new Scanner(System.in); ConectaBanco cb = new ConectaBanco("jdbc:mysql://URL", "LOGIN", "SENHA"); int x=-1; while (x!= 0) { System.out.println("Escolha uma opcao"); System.out.println("1 - Cadastrar novo Sensor"); System.out.println("2 - Buscar Sensor cadastrado"); System.out.println("3 - Sair"); x = Integer.parseInt(ler.nextLine()); switch (x) { case 1: { Sensores sensor = new Sensores(); transitando no local:"); System.out.println("Digite o Identificador do sensor:"); sensor.setidentificador(ler.nextline()); System.out.println("Digite a estatistica de carros ontem:"); sensor.settotalcarrosontem(ler.nextline()); System.out.println("Digite a estatistica de carros hoje:"); sensor.settotalcarroshoje(ler.nextline()); System.out.println("Qual foi a maior quantidade de carros:"); sensor.setmaiorquantidadedecarros(ler.nextline()); System.out.println("Qual o limite tipico de veiculos sensor.setlimitetipico(ler.nextline()); cb.insere("insert INTO estatisticas.cadastro VALUES (NULL, '" + sensor.getidentificador() + "', '" + sensor.gettotalcarrosontem() + "', '" + sensor.gettotalcarroshoje() + "', '" + sensor.getmaiorquantidadedecarros() + "', '" +sensor.getlimitetipico() + "' );", "Sensor gravado corretamente..."); break; case 2: { ArrayList a = new ArrayList(); System.out.println("Digite o Sensor para procura:"); String Identificador = ler.nextline(); a = cb.busca("select * FROM estatisticas.cadastro WHERE Identificador LIKE '" + Identificador+ "%';"); if (a.size()>0){ else{ System.out.println("nao achamos o sensor. "); break; case 3: { x=0;
21 MAQUETE A maquete foi criada a partir de MDF, possuindo as dimensões de. Foram utilizadas tintas spray para a pintura, sendo: Preto: Para o asfalto da rodovia; Branco: Para as faixas laterais de centrais da rodovia; Verde: Para pintura lateral ao acostamento, representando assim a vegetação. Os furos são passantes e possuem dimensões de para a maquete., que é o tamanho dos LEDs, INTEGRAÇÃO Para concluir o projeto foi necessário juntar os módulos que foram desenvolvidos separadamente. também utilizamos sensores infravermelho de, sendo um emissor e um receptor, possuindo uma distancia de entre eles. Foi utilizado cola quente para fixação na maquete das peças utilizadas, também foi colocado. PLACA DE CIRCUITOS Para controlar a alimentação dos LEDs em cada um dos trechos da rodovia, estão sendo utilizados relés, para isso foi necessário criar uma placa de circuito impresso (Figura 1). A PCI consiste nos seguintes materiais: transistores NPN; relés NF;
22 CÓDIGO FINAL DO PROJETO INTEGRAÇÃO DOS CÓDIGOS Aqui se concentra o código final do projeto, tendo toda sua integração concluída. jfinterface Este é o código para criação da interface, esta está dividida em quatro setores, onde estes devem corresponder a uma parte do programa, senso um para o console, estatísticas, emergências e sensores. public class jfinterface extends javax.swing.jframe { public jfinterface() { private void initcomponents() { jpanel1 = new javax.swing.jpanel(); textarea4 = new java.awt.textarea(); jpanel2 = new javax.swing.jpanel(); textarea2 = new java.awt.textarea(); jpanel3 = new javax.swing.jpanel(); textarea3 = new java.awt.textarea(); jpanel4 = new javax.swing.jpanel(); textarea1 = new java.awt.textarea(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); jpanel1.setborder(javax.swing.borderfactory.createtitledborder(null, "Console", javax.swing.border.titledborder.default_justification, javax.swing.border.titledborder.default_position, new java.awt.font("arial", 0, 18))); textarea4.setcursor(new java.awt.cursor(java.awt.cursor.default_cursor)); textarea4.seteditable(false); javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1); jpanel1.setlayout(jpanel1layout); jpanel1layout.sethorizontalgroup( jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea4, javax.swing.grouplayout.default_size, 361, Short.MAX_VALUE) ); jpanel1layout.setverticalgroup( jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea4, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE) ); jpanel2.setborder(javax.swing.borderfactory.createtitledborder(null, "Estatisticas", javax.swing.border.titledborder.default_justification, javax.swing.border.titledborder.default_position, new java.awt.font("arial", 0, 18))); textarea2.setcursor(new java.awt.cursor(java.awt.cursor.default_cursor)); textarea2.seteditable(false); javax.swing.grouplayout jpanel2layout = new javax.swing.grouplayout(jpanel2); jpanel2.setlayout(jpanel2layout); jpanel2layout.sethorizontalgroup( jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea2, javax.swing.grouplayout.default_size, 495, Short.MAX_VALUE) ); jpanel2layout.setverticalgroup( jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea2, javax.swing.grouplayout.default_size, 242, Short.MAX_VALUE) );
23 jpanel3.setborder(javax.swing.borderfactory.createtitledborder(null, "Sensores", javax.swing.border.titledborder.default_justification, javax.swing.border.titledborder.default_position, new java.awt.font("arial", 0, 18))); // NOI18N textarea3.setcursor(new java.awt.cursor(java.awt.cursor.default_cursor)); textarea3.seteditable(false); javax.swing.grouplayout jpanel3layout = new javax.swing.grouplayout(jpanel3); jpanel3.setlayout(jpanel3layout); jpanel3layout.sethorizontalgroup( jpanel3layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea3, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE) ); jpanel3layout.setverticalgroup( jpanel3layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea3, javax.swing.grouplayout.default_size, 221, Short.MAX_VALUE) ); jpanel4.setborder(javax.swing.borderfactory.createtitledborder(null, "Emergencias", javax.swing.border.titledborder.default_justification, javax.swing.border.titledborder.default_position, new java.awt.font("arial", 0, 18))); // NOI18N textarea1.setcursor(new java.awt.cursor(java.awt.cursor.default_cursor)); textarea1.seteditable(false); javax.swing.grouplayout jpanel4layout = new javax.swing.grouplayout(jpanel4); jpanel4.setlayout(jpanel4layout); jpanel4layout.sethorizontalgroup( jpanel4layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE) ); jpanel4layout.setverticalgroup( jpanel4layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addcomponent(textarea1, javax.swing.grouplayout.default_size, 239, Short.MAX_VALUE) ); javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgroup(layout.createsequentialgroup().addcontainergap().addcomponent(jpanel1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size).addgap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel2, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE).addComponent(jPanel3, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE).addComponent(jPanel4, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE)).addContainerGap()) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgroup(layout.createsequentialgroup().addcontainergap().addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgroup(layout.createsequentialgroup().addcomponent(jpanel2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size).addpreferredgap(javax.swing.layoutstyle.componentplacement.related).addcomponent(jpanel3, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size).addpreferredgap(javax.swing.layoutstyle.componentplacement.related)
24 .addcomponent(jpanel4, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE)).addComponent(jPanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, Short.MAX_VALUE)).addContainerGap()) ); pack(); public void settextemergencias (String s, boolean append) { if (append) this.textarea1.appendtext(s); else this.textarea1.settext(s); public void settextestatisticas (String s, boolean append) { if (append) this.textarea2.appendtext(s); else this.textarea2.settext(s); public void settextsensores (String s, boolean append) { if (append) this.textarea3.appendtext(s); else this.textarea3.settext(s); public void settextconsole(string s, boolean append) { if (append) this.textarea4.appendtext(s); else this.textarea4.settext(s); private javax.swing.jpanel jpanel1; private javax.swing.jpanel jpanel2; private javax.swing.jpanel jpanel3; private javax.swing.jpanel jpanel4; private java.awt.textarea textarea1; private java.awt.textarea textarea2; private java.awt.textarea textarea3; private java.awt.textarea textarea4;
25 MainClass A função deste código é executar todas as threads do programa, executando a interface, o processador de pacotes e o banco de dados. import MainCls.jFInterface; import ProcessadorDePacotes.ProcessadorPacotes; public class MainClass { public static jfinterface inter = new jfinterface(); public static void main(string args[]) { ProcessadorPacotes p = new ProcessadorPacotes(); Thread thread = new Thread (p); thread.start(); java.awt.eventqueue.invokelater(new Runnable() public void run() { inter.setvisible(true); ); BytesArray Classe usada para efetuar operações com arrays de bytes. package Bytes; public class BytesArray { Convertendo um inteiro para um array de bytes. public static byte[] inttobytearray(int value) { return new byte[] { (byte)(value >>> 24), (byte)(value >>> 16), (byte)(value >>> 8), (byte)value; Aqui faremos o inverso, convertendo um array de bytes para um inteiro. public static int bytearraytoint(byte[] b) { return bytearraytoint(b, 0); Convertendo um array de bytes para um inteiro utilizando a posição offset. public static int bytearraytoint(byte[] b, int offset) { int value = 0; for (int i = 0; i < 4; i++) { int shift = (4-1 - i) * 8; value += (b[i + offset] & 0x000000FF) << shift; return value;
26 ProcessadorPacotes O processador de pacotes é um módulo do projeto que foi criado para realizar determinar operações dependendo do conteúdo de um pacote recebido. Antes de o software iniciar o seu papel é inicialmente estabelecida uma conexão com o software responsável por adquirir as informações do servidor HTTP do Arduíno, uma vez conectado ele irá receber os pacotes TCP enviados a fim de interpretá-los. import MainCls.MainClass; import TCP.Connection; import java.io.ioexception; import java.net.serversocket; import java.net.socket; import java.util.logging.level; import java.util.logging.logger; public class ProcessadorPacotes implements Runnable { private static final int port = public void run (){ ServerSocket server = null; try { server = new ServerSocket(port); catch (IOException ex) { Logger.getLogger(ProcessadorPacotes.class.getName()).log(Level.SEVERE, null, ex); MainClass.inter.setTextConsole("Servidor online!\n", false); MainClass.inter.setTextConsole("Aguardando coneccoes na porta " + port+"\n", true); System.out.println("[Info.] Servidor online!"); System.out.println("[Info.] Aguardando conecções na porta " + port); while (true) { Socket client = null; try { client = server.accept(); catch (IOException ex) { Logger.getLogger(ProcessadorPacotes.class.getName()).log(Level.SEVERE, null, ex); Connection connection = new Connection (client); Thread thread = new Thread (connection); thread.start(); Sensor Este é responsável pelo contador, executando também as operações do banco de dados. O contador deve acrescentar ou decrementar o numero de veículos no trecho do sensor, passando essas informações para as estatísticas. package Sensor; public class Sensor { private static Sensor sensores[] = new Sensor[1]; private static int contador = 0; private int id; private int veiculos; Este é o construtor da classe, onde se cria uma nova instancia da classe, ou seja, um novo sensor, em seguida envia seu identificador a um vetor. private Sensor (int id) { this.id = id; this.veiculos = 0;
27 Método usado para criar um novo sensor dinamicamente, onde o array ajuda seu tamanho de acordo com a necessidade. public static Sensor novosensor (int id) { if (idexiste(id)) return null; Sensor s = new Sensor (id); sensores[contador++] = s; Sensor copy[] = new Sensor[contador + 1]; System.arraycopy(sensores, 0, copy, 0, sensores.length); sensores = copy; return s; Aqui incrementamos o contador de veículos que estão deste sensor até o próximo. public void incrementarcontador (int id) { this.veiculos++; Aqui decrementamos o contador de veículos que estão deste sensor até o próximo. public void decrementarcontador (int id) { this.veiculos--; if (this.veiculos < 0) veiculos = 0; Aqui verificamos se o sensor com o identificador especificado existe. public static boolean idexiste (int id) { for (int k = 0; k < (sensores.length - 1); k++) { if (sensores[k].id == id) return true; return false; Método que busca o sensor pelo identificador e retorna o mesmo, caso este seja encontrado. public static Sensor getsensor (int id) { for (int k = 0; k < (sensores.length - 1); k++) { if (sensores[k].id == id) return sensores[k]; return null; Connection Esta classe será utilizada para conversar com os clientes conectados, utilizandose threads. import MainCls.MainClass; import java.io.ioexception; import java.io.inputstream; import java.net.socket; import java.util.logging.level; import java.util.logging.logger; public class Connection implements Runnable { private Socket client; private static int contador = 0; private int identificador;
28 Construtor da classe, esse inicializa os campos do Socket do cliente conectado e incrementa o contador. public Connection (Socket client) { this.client = client; this.identificador = public void run () { MainClass.inter.setTextConsole("[Debug] -- Conexão aberta com " + this.getclient().getinetaddress()+ ":" +this.getclient().getport()+"\n", true); System.out.println("[Debug] -- Conexão aberta com " + this.getclient().getinetaddress()+ ":" + this.getclient().getport()); int size; byte[] buffer = new byte[255]; try { InputStream in = this.getclient().getinputstream(); while (true) { size = in.read(buffer); if (size == -1) continue; MainClass.inter.setTextConsole("[Debug] Recebi um pacote de " + size + " bytes de " + this.getclient().getinetaddress()+"\n", true); System.out.println("[Debug] Recebi um pacote de " + size + " bytes de " + this.getclient().getinetaddress()); MainClass.inter.setTextConsole("[Debug] Conteudo : \n", true); System.out.print("[Debug] Conteudo : "); for (int k = 0;; k++) { if ((k + 1) == size) { System.out.println(buffer[k]); break; System.out.print(buffer[k] + "-"); byte[] data = new byte[size+1]; System.arraycopy(buffer, 0, data, 0, size); if (!OpcodeHandler.handlePacket(data)) MainClass.inter.setTextConsole("[Debug] Ocorreu um erro processando um pacote enviado por " + this.getclient().getinetaddress()+"\n", true); System.out.println("[Debug] Ocorreu um erro processando um pacote enviado por " + this.getclient().getinetaddress()); catch (IOException ex) { Logger.getLogger(Connection.class.getName()).log(Level.SEVERE, null, ex); public Socket getclient() { return client; public int getidentificador() { return identificador; OpcodeHandlerlor. Classe usada para fazer a chamada de cada opcode de acordo com o seu v import Bytes.BytesArray; import MainCls.MainClass; import Sensor.Sensor; public class OpcodeHandler { Método usado para decidir se o tamanho de bytes é consistente com o esperado, caso o tamanho do resultado da operação for inconsistente será retornado falso, caso contrário retornaremos verdadeiro.
29 private static boolean verifysize (int i) { if (i == 6) return true; return false; Este método será usado para adicionar um novo sensor, e escolher um identificador para o mesmo. private static Sensor addsensor (int id) { Sensor s = Sensor.novoSensor(id); if (s!= null) { MainClass.inter.setTextSensores("[Debug] -- Sensor com o identificador " + id + " adicionado!\n", true); System.out.println ("[Debug] -- Sensor com o identificador " + id + " adicionado!"); return s; MainClass.inter.setTextSensores("[Debug] -- Sensor com o identificador " + id + " não pode ser adicionado!\n", true); System.out.println ("[Debug] -- Sensor com o identificador " + id + " não pode ser adicionado!"); return null; Método usado para se remover um novo sensor que tenha seu identificador escolhido private static boolean removesensor (int id) { MainClass.inter.setTextSensores("Operação não tratada: remover sensor\n", true); System.out.println("Operação não tratada: remover sensor"); return true; Método usado para incrementar o contador do sensor que tenha seu identificador escolhido. private static boolean incrementcounter (int id) { Sensor s = Sensor.getSensor(id); if (s == null) { MainClass.inter.setTextSensores("[Debug] -- Sensor de identificador " + id + " não existe!\n", true); System.out.println ("[Debug] -- Sensor de identificador " + id + " não existe!"); return false; s.incrementarcontador(id); MainClass.inter.setTextSensores("[Debug] -- Sensor " + id + " incrementado!\n", true); System.out.println ("[Debug] -- Sensor " + id + " incrementado!"); return true; Método usado para decrementar o contador de um sensor que tenha seu identificador escolhido. private static boolean decrementcounter (int id) { Sensor s = Sensor.getSensor(id); if (s == null) { MainClass.inter.setTextSensores("[Debug] -- Sensor de identificador " + id + " não existe!\n", true); System.out.println ("[Debug] -- Sensor de identificador " + id + " não existe!"); return false; s.decrementarcontador(id); MainClass.inter.setTextSensores("[Debug] -- Sensor " + id + " decrementado!\n", true); System.out.println ("[Debug] -- Sensor " + id + " decrementado!"); return true;
30 Método usado para interpretar os bytes recebidos pela conexão aberta. public static boolean handlepacket (byte[] packet) { int i = packet.length; // Verificando o tamanho do pacote recebido para evitar inconsistências, se o array de bytes tiver um tamanho menor que um devemos retornar falso if (!verifysize(i)) return false; // Recebe o primeiro byte do pacote, ou seja o seu código operacional byte header = packet[0]; // Os 4 bytes a partir do segundo byte são convertidos em um inteiro que é o identificador do sensor int id = BytesArray.byteArrayToInt(packet, 1); // Executando operações distintas para cada opcode switch (header) { case 0xA: // Adicionar sensor novo if (addsensor(id) == null) return false; return true; case 0xB: // Deletar sensor existente return removesensor(id); case 0xC: // Incrementar contador return incrementcounter(id); case 0xD: // Decrementar contador return decrementcounter(id); default: return false; MANUAL DO USUÁRIO A maquete é dividida em quatro sensores, onde cada um destes controla um determinado trecho, conforme mostrado na figura 2. Para a montagem de todo equipamento é necessário que primeiramente conecte os cabos ethernet no modem, demonstrado na Figura 3, após concluir esta etapa é necessário conectar um dos cabos no computador a ser utilizado e outro no Arduíno, isso é extremamente importante para o recebimento e envio de informações. Agora é necessário ligar todos os cabos da maquete (Figura 4) no Arduíno para o acionamento da PCI (embutida no interior da maquete), os fios devem ser conectados seguindo a ordenação do software do Arduíno, estes devem ser conectados conforme demonstrado na Figura 5. Após executar essas atividade, ligamos o cabo de energia da maquete em uma tomada 110V e o cabo USB, também embutido na maquete no próprio computador, este será responsável pela energia dos sensores. Após tudo estiver ligado de forma adequada, executa-se o software, onde abrirá uma interface de controle. Se tudo estiver funcional, o projeto funcionará perfeitamente.
31 HISTÓRICO DE DESENVOLVIMENTO 11/03/2012 Criação do Blog Este deve conter todas as informações do andamento do projeto. 12/03/2012 Neste dia ocorreu a apresentação da defesa do projeto, no qual este foi aprovado, e assim iniciamos as atividades oficiais. 15/03/2012 Fomos apresentados ao Arduíno, como programa-lo e suas funcionalidades de um componente importante para o desenvolvimento. 20/03/2012 Chegou o shield Ethernet, no qual foi embutido ao Arduíno para ser utilizado na comunicação TCP/IP entre a central e os sensores. 23/03/2012 O Arduíno chegou após nossa encomenda, logo após iniciamos uma fase de testes, para aprender mais sobre suas funções e suas possibilidades de funcionamento. 30/03/2012 Esta semana iniciou-se o desenvolvimento dos fluxogramas para o software de comunicação através da programação do Arduíno e o shield Ethernet, também começamos a desenvolver o desenho da maquete no SolidWorks. 04/04/2012 Concluímos o projeto da maquete no SolidWorks, também concluímos o projeto do software da central e do Arduíno. 11/04/2012 Concluímos a interface gráfica da central. 18/04/2012 Foi concluído o processador de pacotes que irá interpretar os bytes recebidos do Arduíno e irá fazer as devidas entradas no banco de dados, este também governará o que será mostrado na interface gráfica da central. 25/04/2012 Aguardamos a chegada de alguns componentes. 02/05/2012 Iniciamos a procura de possíveis bugs no software. 06/05/2012 Iniciamos a montagem da maquete e iniciamos testes com os sensores infra-vermelho. 09/05/2012 Foi concluída a maquete 18/05/2012 Concluímos a PCI e instalamos os componentes na maquete 23/05/2012 Iniciamos o relatório e terminamos de implementar os sensores na maquete. 28/05/2012 Após todas as implementações concluímos todas as atividades relacionadas a criação, manutenção ou procura de possíveis erros. 06/06/2012 Pré-apresentação do projeto e demonstração da prévia da documentação. 12/06/2012 Apresentação oficial aos professores e termino da documentação.
JULIANA CECÍLIA GIPIELA CORRÊA DIAS MARIO HENRIQUE CÉ DEMARIA COOLER AUTOMÁTICO
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA CURSO DE ENGENHARIA DE COMPUTAÇÃO JULIANA CECÍLIA GIPIELA CORRÊA DIAS MARIO HENRIQUE CÉ DEMARIA COOLER AUTOMÁTICO CURITIBA 19-06-2013 JULIANA
Leia maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets
Leia maisPrograma de Computador que funciona em Rede
Programa de Computador que funciona em Rede professor Robinson Vida Noronha 1 Paradigma Um programa rodando em rede é como uma loja. 2 Uma loja é composta por Vendedores Vendedores 3 Um loja deve servir
Leia maisPersistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Leia maisJava : Comunicação Cliente-Servidor.
Java : Comunicação Cliente-Servidor. Objetivo: Capacitar o aluno a desenvolver uma aplicação servidora para múltiplos clientes. Apresentar as classes Socket e ServerSocket, classes de fluxo de dados, a
Leia maisLeitor MaxProx-Lista-PC
Leitor MaxProx-Lista-PC O leitor de cartões de proximidade MaxProx-Lista-PC é destinado aos Integradores de Controle de Acesso. Ele foi especialmente projetado para controle de acesso, para ser usado Stand
Leia maisLinguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Leia maisProgramação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br
Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br JSP (Java Server Pages) - JavaServer Pages (JSP) - Tecnologia de programação serverside - Permite
Leia maisManual Equipamento ST10 Flasher Rev. 1
Maio de 2014 2 Sumário Introdução:... 3 Acessórios utilizados:... 4 Instalação:... 5 Abrindo e Conhecendo o Software:... 10 SET PORT... 11 RELOAD MONITOR... 13 BlankCheck... 14 ERASE FLASH... 14 DUMP...
Leia maisManipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015
Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações
Leia maisO programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.
INTRODUÇÃO O Programa pode ser instalado em qualquer equipamento que utilize o sistema operacional Windows 95 ou superior, e seu banco de dados foi desenvolvido em MySQL, sendo necessário sua pré-instalação
Leia maisManual do usuário. Mobile Auto Download
Manual do usuário Mobile Auto Download Mobile Auto Download Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. Este manual serve como referência para a sua instalação e
Leia maisProgramação Básica em Arduino Aula 2
Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas
Leia maisIW10. Rev.: 02. Especificações Técnicas
IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento
Leia maisAPLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE
1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia maisAnalisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar
Projeto Integrador Sistemas Operacionais Prof.ª Lucilia Ribeiro GTI 3 Noturno Grupo: Anderson Alves da Mota. André Luiz Silva. Misael bezerra dos santos. Sandro de almeida silva. Analisar os sistemas operacionais
Leia maisPROJETO. Ponte Digital. http://www.pontedigital.hpg.ig.com.br/ Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.
Ponte levadiça digital... Projeto semestral primeira fase de 2003 Engenharia de Computação 4 período Em breve aqui novos projetos... Página inicial Pré-projeto Projeto FOTOS e Vídeos Funcionamento Esboços
Leia maisAula 30 - Sockets em Java
Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar
Leia maisEspecialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares
Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e
Leia maisACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre
ACENDENDO AS LUZES Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre Projeto 1 LED piscante Neste capitulo, todos os projetos utilizam luzes LED s de diversas formas. Em relação ao hardware,
Leia maisCURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Leia maisECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO
Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...
Leia maisExercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Leia maisIMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET
1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com
Leia maisGuia de utilização do software. universal GPRS M-300.
Guia de utilização do software Programador do módulo universal GPRS M-300. JFL Equipamentos Eletrônicos Ind. e Com. Ltda. Rua: João Mota, 471 - Bairro: Jardim das Palmeiras Santa Rita do Sapucaí - MG CEP:
Leia maisALC. Ricardo Geraldes David João. Rodrigo Carlucci da Luz. Lucas Pinheiro Berto
Ricardo Geraldes David João Rodrigo Carlucci da Luz Lucas Pinheiro Berto ALC Projeto apresentado como requisito Parcial para avaliação do Programa de Aprendizagem em Física III e requisito para o programa
Leia maisUniversidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Leia maisUNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA
UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA Disciplina: Redes de Computadores Ano: 2007 Professor: Luiz Antonio Trabalho 1º Bimestre Cliente/Servidor
Leia maisAula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.
Aula 04 Operadores e Entrada de Dados Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Operadores: Aritméticos; Atribuição; Concatenação;
Leia maisEquipamentos de Redes. Professor Leonardo Larback
Equipamentos de Redes Professor Leonardo Larback Componentes de Expansão e Segmentação Pontos de rede localizados à distâncias maiores que o limite estabelecido pela mídia utilizada, o aumento no número
Leia maisOlho por olho, e o mundo acabará cego. Mohandas Gandhi
Sockets Olho por olho, e o mundo acabará cego. Mohandas Gandhi Conectando-se a máquinas remotas. Protocolo Da necessidade de dois computadores se comunicarem surgiram diversos protocolos que permitissem
Leia maisMANUAL DE INSTRUÇÕES. Versão 1.0. Visão Transportador
MANUAL DE INSTRUÇÕES Versão 1.0 Visão Transportador 2 Sumário Introdução... 3 Requisitos mínimos... 3 Acesso... 3 Primeiro acesso... 5 Navegando pelo sistema... 6 Menu Perfil... 7 Dados do Fornecedor...
Leia maisLeonardo Gresta Paulino Murta leomurta@gmail.com
Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no
Leia maisProgramação Orientada a Objetos II
Programação Orientada a Objetos II AULA Banco de Dados (Exemplo) Prof. Rodrigo Rocha Prof.rodrigorocha@yahoo.com (Modo Texto) Conectando ao Banco de Dados Entre no Diretório do Mysql mysql u root p criando
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisJDBC Java Database Connectivity
5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes
Leia maisinsfcanceof new public switch transient while byte continue extends for int null
Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public
Leia maisJava. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Leia maisSistemas Operacionais
Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos
Leia maisComo foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.
5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo
Leia maisAndroid e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CCET CURSO DE ENGENHARIA DE COMPUTAÇÃO Henrique Soares Hinke José Eduardo da Silva Rodrigues Matheus Augusto de Queiroz
Leia maisLINEAR EQUIPAMENTOS RUA SÃO JORGE, 269 - TELEFONE: 6823-8800 SÃO CAETANO DO SUL - SP - CEP 09530-250
LINEAR EQUIPAMENTOS RUA SÃO JORGE, 269 - TELEFONE: 6823-8800 SÃO CAETANO DO SUL - SP - CEP 09530-250 Recomendações Iniciais SOFTWARE HCS 2005 - VERSÃO 4.2 (Compatível com Guarita Vr4.03 e Vr4.04) Para
Leia maisCONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS
MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL
Leia mais02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Leia maisAP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS
AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS Manual de Instalação Tempro Software StavTISS Sumário 1. INTRODUÇÃO... 2 2. REQUISITOS DO SISTEMA... 3 3. INSTALAÇÃO... 4 4.
Leia mais1. Escritório Virtual... 5. 1.1. Atualização do sistema...5. 1.2. Instalação e ativação do sistema de Conexão...5
1 2 Índice 1. Escritório Virtual... 5 1.1. Atualização do sistema...5 1.2. Instalação e ativação do sistema de Conexão...5 1.3. Cadastro do Escritório...5 1.4. Logo Marca do Escritório...6...6 1.5. Cadastro
Leia maisAcesso a banco de dados
Acesso a banco de dados 1. Crie uma pasta chamada AcessoBD com as seguintes subpastas: Aplicativos, Drivers, AcessoMSACCESS, AcessoMySQL e AcessoSQLSERVER Exemplo 1: MS ACCESS 1. Crie um banco de dados
Leia maisSoftware de segurança em redes para monitoração de pacotes em uma conexão TCP/IP
Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furbbr Resumo. Este artigo apresenta a especificação
Leia maisArquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Leia maisJava & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia
Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)
Leia maisBH PARK Software de Estacionamento
BH PARK Software de Estacionamento WWW.ASASSOFTWARES.COM.BR Índice 1 Informações Básicas... 1 1.1 Sair da aplicação... 1 1.2 Travar aplicação... 1 1.3 Licenciando a aplicação... 1 1.4 Contrato de Manutenção...
Leia maispublic Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.
import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)
Leia maisGravação da quantidade de expostos por grupo homogêneo
Gravação da quantidade de expostos por grupo homogêneo Produto : TOTVS + PPRARobot + PMedPPRACfg + 6.3.27.14/11.7.0.5 Chamado : TDURCI Data da publicação : 13/12/12 País(es) : Brasil Banco(s) de Dados
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisAula 1 Acesso a Banco de Dados
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Leia maisAULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II)
AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II) A seguir vamos ao estudo das ferramentas e aplicativos para utilização do correio
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisatube Catcher versão 3.8 Manual de instalação do software atube Catcher
atube Catcher versão 3.8 Manual de instalação do software atube Catcher Desenvolvido por: Clarice Mello, Denis Marques Campos Dezembro de 2014 Sumario 1. Objetivo deste manual...3 2. Requisitos para instalação...3
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO
0 PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO PROJETO INTEGRADO: COBERTURA AUTOMATIZADA COM DETECTOR DE CHUVA CURITIBA 2010 1 TAISA DAIANA DA COSTA PROJETO
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisPersistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Leia maisManipulação de Banco de Dados com Java 1. Objetivos
Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisAlarme Automotivo com mensagem para móvel utilizando Arduino
Alarme Automotivo com mensagem para móvel utilizando Arduino Maycon Cirilo dos Santos¹, Wyllian Fressatti¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil mayconsi2012@gmail.com, wyllian@unipar.br
Leia maisMANUAL DO PVP SUMÁRIO
Manual PVP - Professores SUMÁRIO 1 INTRODUÇÃO... 6 2 ACESSANDO O PVP... 8 3 TELA PRINCIPAL... 10 3.1 USUÁRIO... 10 3.2 INICIAL/PARAR... 10 3.3 RELATÓRIO... 10 3.4 INSTITUIÇÕES... 11 3.5 CONFIGURAR... 11
Leia maisManual do usuário. Softcall Java. versão 1.0.5
Manual do usuário Softcall Java versão 1.0.5 Sumário Iniciando SoftCall...3 Tela Principal...3 Configurando o SoftCall...4 Agenda...5 Incluindo um contato...5 Procurando um contato...6 Apagando um contato...6
Leia maisExercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Leia maisBC0501 Linguagens de Programação
BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados
Leia maisEm 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.
VERSÃO 5 Outubro/2012 Release Notes Não deixe de atualizar o seu sistema Planejamos a entrega ao longo do exercício de 2012 com mais de 140 melhorias. Mais segurança, agilidade e facilidade de uso, atendendo
Leia maisCamadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz
Camadas de Transporte, Sessão & Apresentação Redes de Computadores Prof. Leandro C. Pykosz Função A camada de Transporte fica entre as camadas de nível de aplicação (camadas 5 a 7) e as de nível físico
Leia maisTRBOnet MDC Console. Manual de Operação
TRBOnet MDC Console Manual de Operação Versão 1.8 ÍNDICE NEOCOM Ltd 1. VISÃO GERAL DA CONSOLE...3 2. TELA DE RÁDIO...4 2.1 COMANDOS AVANÇADOS...5 2.2 BARRA DE FERRAMENTAS...5 3. TELA DE LOCALIZAÇÃO GPS...6
Leia mais1 Componentes da Rede Gestun
PROCEDIMENTO PARA DETECÇÃO DE FALHAS EM REDES DATA: 23/06/14. Controle de Alterações DATA 23/06/14 MOTIVO Versão Inicial RESPONSÁVEL Márcio Correia 1 Componentes da Rede Gestun -Módulo de comunicação:
Leia maisConsiderações a serem feitas antes da implantação.
Multi-Loja Objetivo O objetivo deste documento é demonstrar o conceito de Multi-loja utilizando o Sismoura. É uma ferramenta que permite a comunicação entre as empresas, possibilitando assim que a matriz
Leia maisO Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.
Nome do Software: Gerenciador de Projetos Versão do Software: Gerenciador de Projetos 1.0.0 1. Visão Geral Este Manual de Utilização do Programa Gerenciador de Projetos via Web, tem por finalidade facilitar
Leia maisGUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers
GUIA DE CONSULTA RÁPIDA PARA Instalação do Nokia Connectivity Cable Drivers Conteúdo 1. Introdução...1 2. Requisitos obrigatórios...1 3. Instalação do Nokia Connectivity Cable Drivers...2 3.1 Antes da
Leia maisProcedimentos para Reinstalação do Sisloc
Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...
Leia mais(Open System Interconnection)
O modelo OSI (Open System Interconnection) Modelo geral de comunicação Modelo de referência OSI Comparação entre o modelo OSI e o modelo TCP/IP Analisando a rede em camadas Origem, destino e pacotes de
Leia maisMANUAL RASTREAMENTO 2013
MANUAL RASTREAMENTO 2013 Visão Geral O menu geral é o principal módulo do sistema. Através do visão geral é possível acessar as seguintes rotinas do sistema: Sumário, localização, trajetos, últimos registros.
Leia mais2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}
2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II Exercício : Construtores são métodos especiais sem tipo de retorno (nem mesmo void) e de mesmo nome que a classe que são invocados quando da criação
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisLaboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Leia maisGuia de Conectividade Worldspan Go Res! A V A N Ç A D O
Guia de Conectividade Worldspan Go Res! A V A N Ç A D O Í n d i c e Considerações Iniciais...2 Rede TCP/IP...3 Produtos para conectividade...5 Diagnosticando problemas na Rede...8 Firewall...10 Proxy...12
Leia maisEste tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.
Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands. Antes de começamos certifique-se de estarem com o programa instalado, com sua conta e licenças ativas. Neste tutorial não irei
Leia maisAgregador de feeds RSS para dispositivos móveis
Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento
Leia maisManual do Visualizador NF e KEY BEST
Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................
Leia maisMANUAL DE UTILIZAÇÃO
MANUAL DE UTILIZAÇÃO Módulo de operação Ativo Bem vindo à Vorage CRM! Nas próximas paginas apresentaremos o funcionamento da plataforma e ensinaremos como iniciar uma operação básica através do nosso sistema,
Leia maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisDriver Mysql para Banco de Dados. Conexão com um Banco de Dados
Driver Mysql para Banco de Dados MySQL.: Driver.: com.mysql.jdbc.driver URL.: jdbc:mysql://localhost/nomedobanco Usuário.: root senha.: ****** Conexão com um Banco de Dados Colocar o driver do banco de
Leia maisMANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal
MANUAL DO ADMINISTRADOR LOCAL Entidade Municipal Abril / 2011 ÍNDICE Objetivos do Sistema de Registro de Integrado - REGIN... 3 Principais Módulos do Sistema... 4 Módulo Controle de Acesso... 5 Módulo
Leia maisBanco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010
Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Mapeamento Objeto-Relacional 2 API JDBC 3 API
Leia maisProjeto Copy Mech Security
Projeto Copy Mech Security João Gabriel Ribeiro - gabriel@ribeirorepres.com.br João Paulo Mella Bacchmi - joao_@sulbbs.com.br João Pedro Antunes Fontes - joaopedro_fontes@yahoo.com.br Mauricio Mendez Ribeiro
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisTarifação ON-LINE Sistema de Tarifação Telefônica V. 6.0 GUIA DE INSTALAÇÃO COLETOR
Tarifação ON-LINE Sistema de Tarifação Telefônica V. 6.0 GUIA DE INSTALAÇÃO COLETOR Net Manager Informática Ltda Versão 6.0 1998-2007 1) Instalação do Software Coletor Guia de Instalação Executar o programa
Leia maisINDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM...
1 de 30 INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 3.1. ONDE SE DEVE INSTALAR O SERVIDOR BAM?... 4 3.2. ONDE SE DEVE INSTALAR O PROGRAMADOR REMOTO BAM?... 4 3.3. COMO FAZER
Leia mais