PROTÓTIPO TIPO DE SISTEMA DE MONITORAMENTO REMOTO UTILIZANDO TCP/IP SOBRE ETHERNET (802.3)



Documentos relacionados
Programa de Computador que funciona em Rede

Java : Comunicação Cliente-Servidor.

PROCESSOS. Prof. Maicon A. Sartin

insfcanceof new public switch transient while byte continue extends for int null

Documentação SC501GER.DLL V2.2

Capítulo II Modelos de Programação Distribuída

PROTÓTIPO DE UM SISTEMA DE SEGURANÇA RESIDENCIAL COM LINUX EMBARCADO. Acadêmico: Daniel Baumann Orientador: Miguel Alexandre Wisintainer

Conexão Socket na MIDP

Sockets com Java Parte I

Threads e Sockets em Java. Threads em Java. Programas e Processos

Pilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

FERRAMENTA PARA REPLICAÇÃ ÇÃO O DE DADOS NO SGBD POSTGRESQL

Geral: Manual de Utilização do Software de Teste Gradual Windows

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Exercícios de Revisão Java Básico

Rafael Santos. Instituto Nacional de Pesquisas Espaciais rafael.santos. Rafael Santos - rafael.

Sistemas Distribuídos

FieldLogger. Apresentação

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Arduino e Processing. Professor: Paulo Marcos Trentin Escola CDI Videira

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Camada de Transporte. Bruno Silvério Costa

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Java Threads. Introdução

THREADS EM JAVA. George Gomes Cabral

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Aula 30 - Sockets em Java

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

GERTEC Manual de Operação e Instalação MTi-760 Versão 1.0

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

UFG - Instituto de Informática

Gradual Tecnologia Ltda

PROTÓTIPO DE UM COMPUTADOR DE BORDO PARA AUTOMÓVEIS BASEADO NA ARQUITETURA ARM. Rafael de Souza Prof. Miguel Wisintainer - Orientador

NETALARM GATEWAY Manual Usuário

Capítulo 15 - VendaRemota.java

ÍNDICE # $% & & & & +,) ... *,. *,... / /

Enviar imagens para um serviço da Web registrado

Trabalho de Conclusão de Curso - TCC

Estrutura Condicional em Java

4 MODELAGEM DA APLICAÇÃO J2ME

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite


Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93

Concurso Casa Conectada PROJETO: PETIOT. Desenvolvido por: João Henrique Bellincanta Gomes Empresa: CloudHome Serviços e Tecnologia

INF1013 MODELAGEM DE SOFTWARE

Instruções de controle: Parte by Pearson Education do Brasil

Exemplos práticos do uso de RMI em sistemas distribuídos

INTRODUÇÃO À LINGUAGEM C++

Profibus View - Software de Parametrização de Equipamentos Profibus PA

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.


Manual de Operação e Instalação. Microterminal TCP/IP MT740. versão 1.0

Acionamento através de senha*, cartão de proximidade e biometria. Compatível com fechaduras magnéticas, eletroímãs e cancelas.

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

CDE4000 MANUAL 1. INTRODUÇÃO 2. SOFTWARE DE CONFIGURAÇÃO 3. COMUNICAÇÃO

14.1 Vetor - Problemas

PROJETO FRAMEWORK - CELEPAR PAGINAÇÃO DE DADOS EM APLICAÇÕES JAVA PARA INTERNET

Software para Controle de Temperatura em Estufas

Gerador de código JSP baseado em projeto de banco de dados MySQL

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

PHP (PHP Hypertext Preprocessor)

Métodos Computacionais. Fila

Projetar Arquitetura

Manual. Coletor. Temperatura. Umidade

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Desenvolvimento de aplicações Web. Java Server Pages

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Fundamentos de Programaçã. ção Concorrente

Trabalho 3: Agenda de Tarefas

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

PROTÓTIPO DE UM HARDWARE PARA CONTROLE DE FREQUÊNCIA ACADÊMICA

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

GUIA PARA HABILITAÇÃO DAS BIOMETRIAS LINEAR (SÉRIE LN) NO SOFTWARE HCS 2010 V9.0 (BETA 3) 11/06/2014

Manual de Instalação e Operação RECIP

Arduino Aula 4 SHIELDS: BLUETOOTH, ETHERNET E EMG

Programação com sockets (em Java)

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

INF 1007 Programação II

Conversor IP Shellby RS-232 ( TCP-IP)

Diagrama lógico da rede da empresa Fácil Credito

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Capítulo 8. Introdução UML

Transcrição:

PROTÓTIPO TIPO DE SISTEMA DE MONITORAMENTO REMOTO UTILIZANDO TCP/IP SOBRE ETHERNET (802.3) Ariberto Montibeller Junior Orientando Prof. Miguel Alexandre Wisintainer Orientador

Roteiro Introdução e Objetivos Fundamentação Teórica Especificação Implementação Apresentação do Protótipo tipo Conclusão

Introdução e Objetivos Introdução Segurança Como se proteger? Sistemas atuais Proposta

Introdução e Objetivos Objetivos disponibilizar um hardware para captura de dados dos sensores e da câmera; estabelecer comunicação entre o hardware e o microcomputador através s da rede ethernet (802.3); disponibilizar um software no PC para recebimento e envio dos dados para o dispositivo; disponibilizar um software no PC para gerenciar o dispositivo e exibir os dados e imagens recebidas.

Rede TCP/IP Fundamentação Teórica

Imagem digital Fundamentação Teórica

Imagem digital Fundamentação Teórica

Fundamentação Teórica Sensores sensor magnético ou reed-switch switch; sensor capacitivo sensor indutivo sensor óptico sensor de pressão ou chave fim de curso encoder CCD

Kit rabbit 2000 TCP/IP Fundamentação Teórica

Kit rabbit 2000 TCP/IP Fundamentação Teórica Bibliotecas tcpip.lib math.lib rs232.lib rtclock.lib xmem.lib sysio.lib

Trabalhos correlatos Fundamentação Teórica protótipo tipo de um sistema coletor de dados microcontrolado conectado a uma rede TCP/IP (Vasques,, 2003); protótipo tipo de um hardware para controle de freqüência acadêmica (Silva, 2002); protótipo tipo de hardware e software para captura e visualização de imagens compartilhadas via interface digital serial diferencial balanceada (Santos, 2002); construção de um protótipo tipo (hardware e software) para segurança a predial através s de monitoração via câmera digital e display gráfico (Merege( Neto, 2004).

Especificação Requisitos O hardware deve: coletar e armazenar os dados captados pela câmera (RF); conectar-se à rede ethernet para comunicação com o microcomputador (RF); enviar alerta quando ocorrer um imprevisto no ambiente que está sendo monitorado (RF). O software deve: gerenciar o dispositivo (RF); receber os dados enviados pelo dispositivo através s de uma rede ethernet (RF); possibilitar a visualização das imagens captadas pelo dispositivo, assim como os dados dos demais sensores (RF); ser independente de plataforma e sistema operacional (RNF).

Especificação Especificação do hardware Memória Interface c/ Ethernet 802.3 Internet Microntrolador Sensores Interface c/ CCD CCD

Especificação do software embarcado Especificação Cliente TCP/IP Monothread Diagramas de estados e atividades (UML)

Diagrama de estados Especificação do software embarcado sm inicio Inicializando Variaveis Conectando ao servidor Comunicando com o servidor Servidor desconectou.

Especificação do software embarcado Diagrama de atividades troca de mensagens ad Inicio Inicializa tempo Verifica tempo Captura estado sensores [Tempo > 1 segundo ou houve auteração no sensores] S N Envia msg de status Aguarda Resposta Envia msg "IMG_INI" [Resposta = Capturar] N [Resposta = enviar linha] S S Captura imagem Envia linha [Existe linha] S N Envia msg "IMG_FIM"

Captura da imagem Especificação do software embarcado ad Inicio Envia Comando Zera contador de linhas Zera contador de colunas Limpa buffer Aguarda Armazena pixel no buffer Incrementa colunas N S [Contador de colunas > numero de colunas da imagem] Armazena buffer Incrementa Linhas S [Contador de lilnhas > numero de linhas da imagem] N Fim

Especificação do software para PC Especificação Orientado a objetos Duas camadas Camada da aplicação Camada servidor Classe Dispositivo

Diagrama de classe Especificação do software para PC cd Dynamic View Aplicacao Server - porta: int + run() : void Dispositivo - id: char - descricao: char - local: char - ip: char - porta: int - visualizar: boolean + set_descricao() : void + set_local() : void + set_ip() : void + set_porta() : void + set_imagem() : Imagem + setid() : void + add_sensor() : void + getid() : char + get_descricao() : char + get_local() : char + get_ip() : char + get_porta() : int + get_magem() : Imagem + is_visivel() : boolean + set_estado_sensores() : void ServerThead Imagem - linhas: array - linha: array + set_image() : void + add_linha() : void + get_imagem() : array + get_largura() : int + get_altura() : int Sensor - numero: int - estado: boolean - descrisção: char + set_estado() : void + set_numero() : void + set_descrição() : void + get_estado() : boolean + get_numero() : int + get_descrição() : char

Especificação do software para PC Digrama de atividades do server ad Inicio Cria serversocket Aguarda conexão de cliente Cria thread para gerenciar conexão Inicializa thread

Especificação do software para PC Thread tratamento conexão dos clientes ad ad Inicio Inicio Aguarda mensagem Recupera streams I/O [Mensagem valida] N Processa conexão S [Mensagem de status] S N Formula resposta Atualiza status Fecha conexão [Mensagem = "IMG_INI"] S Limpa Buffer N Atualizar imagem Fim [Mensagem = "IMG_FIM"] N S Monta imagem Armazena linha

Hardware Implementação

Definição de variáveis veis Implementação Software embarcado #define MY_IP_ADDRESS #define MY_NETMASK #define MY_GATEWAY //#define TCPCONFIG 5 #use "dcrtcp.lib #define DEST #define PORT #define CINBUFSIZE 15 #define COUTBUFSIZE 15 #ifndef _232BAUD #define _232BAUD 57600 #endif tcp_socket socket; static char Buf[244]; static unsigned long linhas[160]; "10.0.0.200" // Endereço IP do dispositivo "255.255.255.0" // Mascara de rede "10.0.0.2" // Endereço IP do Gateway // Obter IP via servidor DHCP "10.0.0.2" // Definição do IP do Servidor 5000 // Porta do servidor // Define tamanho do buffer da porta serial // Define a velocidade da comunicação serial // Variável do socket // Array do buffer de leitura temporário // Array que guarda ponteiro da linhas alocadas

Alocação de memória Implementação Software embarcado for (i = 0; i < 160; i++){ linhas[i] = xalloc(244);

Implementação Software embarcado Loop principal do software Sock_init(); if( 0L == (destip = resolve(dest)) ) { exit(2); sock_err: tcp_open(&socket,0,destip,port,null); Do { sock_wait_input(&socket, 20, NULL, &status); // define time out de recebimento de mensagem bytes_read = sock_fastread(&socket, buffer, sizeof(buffer)-1); // aguarda recebimento de alguma mensagem if(bytes_read>0) { buffer[bytes_read] = '\0'; // Insere character de fim de palavra if (buffer[0] == 'K'){ waitfor( DelayMs(500) ); // Aguarda meio segunda str_tmp = monta_str_status() /* Chama função que monta string contendo ID concatenado com o estado dos sensores*/ sock_write(&socket, str_tmp, 14); // Envia retorno da função if (buffer[0] == 'C'){ captura_imagem(); //Chama função de captura da imagem sock_write(&socket, "IMG_INI", 7); // Envia msg de inicio da imagem printf("iniciando transmição\n"); i = 0; // Inicia contador de linhas enviadas if ((buffer[0] == 'N') && (i<160 )){ xmem2root(buf, linhas[i], 244); // Recupera linha alocada dinamicamente sock_write(&socket,buf,244); // Envia linha i++; if ((buffer[0] == 'N') && (i == 160)){ sock_write(&socket,"img_fim",7); // Envia msg de fim da imagem printf("fim da Transmição\n"); i++; while(tcp_tick(&socket)); // Sai do loop se perder a conexão

Implementação Software embarcado Função de captura da imagem Void captura_imagem(){ sercputc('e'); // Envia character E via serial para interface da camera for (j=0;j<161;j++){ // percorre 161 linhas esperadas for (i=0;i<361;i++) { // percorre 361 pixels de cada linha while ((Pxl=serCgetc()) == -1); // Agurada dado valido if ( i < 244) Buf[i] = Pxl; // concatena pixel do buff if ((i == 244) && (j < 160)) root2xmem(linhas[j], Buf, 244); // aloca buffer na memoria

Implementação Software PC Imagem class Imagem extends JLabel { private BufferedImage img; public void setimagem(bufferedimage this.img = img; img){ public void paint(graphics g) { super.paint(g); g.drawimage(img,, 0, 0, 244, 160, null);

Implementação Software PC Imagem BufferedImage img = new BufferedImage( ((ArrayList)imagem.get(1)).size(), imagem.size(), BufferedImage.TYPE_INT_RGB ); Color c; int pixelint; for (int i = 0; i < imagem.size(); i++ ){ ArrayList linha = (ArrayList)imagem.get(i); for(int j = 0; j < linha.size(); j++){ try{ pixelint = Integer.parseInt( linha.get(j).tostring() ) ; c = new Color( pixelint, pixelint, pixelint); catch( Exception e ){ c = new Color( 125, 125, 125); img.setrgb(j, i, c.getrgb() );

Thread principal do sevidor Implementação Software PC public class Server implements Runnable { private static int porta = 5000; private HashMap dispositivos; Server(HashMap d){ this.dispositivos = d; Server(int porta, HashMap d){ this.dispositivos = d; this.porta = porta; public void run() { try{ ServerSocket listener = new ServerSocket(porta); Socket socket; while(true){ socket = listener.accept(); ServerThead conn = new ServerThead(socket, this.dispositivos); (new Thread(conn) ).start(); catch (IOException ioe) { System.out.println("IOException on socket listen: " + ioe);

Implementação Software PC Tratamento conexão com cliente int i = input.read(aux); msg = new String(aux, 0, i); if ( msg.length() == 14 ){ id = getid(msg); estadosensores = getestado(msg); if (!dispositivos.containskey( id ) ){ DispositivoRemoto disp = new DispositivoRemoto(connection.getInetAddress().toString(), connection.getport() ); dispositivos.put( id, disp ); if ( ( (DispositivoRemoto)dispositivos.get(id) ).isvisivel() ){ output.write( "C".getBytes() ); else{ output.write( "K".getBytes() ); ( (DispositivoRemoto)dispositivos.get(id) ).setestadosensores(estadosensores); output.flush(); if ( msg.equals("img_ini") ) { output.write( "N".getBytes() ); output.flush(); if ( msg.equals("img_fim") ) { ((DispositivoRemoto)dispositivos.get(id)).setImagem(imagem); output.write( "K".getBytes() ); output.flush(); ArrayList linha = new ArrayList(); for (int ind = 0; ind < msg.length(); ind++ ){ linha.add( new Integer( aux[ind] ) ); imagem.add( linha ); output.write( "N".getBytes() ); output.flush();

Tela principal Janela do dispositivo

Propriedades do dispositivo Operacionalidade

Dispositivo Operacionalidade

Operacionalidade Resultados e discussão Uso de interface de controle para câmera. Vantagens Desvantagens Restrição, apresentou problemas quando utilizado JVM 1.5

Conclusões Conclusões todos os objetivos propostos foram alcançados; ados; aplicações que utilizam rede TCP/IP ; as ferramentas utilizadas mostraram-se se apropriadas para o desenvolvimento do protótipo. tipo.

Extensões Extensões eliminar interface de controle da câmera, aumentando a velocidade de captura das imagens; utilizar um CCD colorido e de maior resolução; aumentando a velocidade da captura, ao invés s de exibir e gravar imagens estáticas, ticas, fotos, exibir e gravar vídeos; v utilizar servo motores para direcionar a câmera; mostras mais informações dos sensores, não somente dois estados, por exemplo, ser captada a temperatura do local e demonstrar em escala de graus Celsius; criptografar os dados que trafegam pela rede; tornar e thread do servidor um software independente para que vários programas possam exibir os dados simultâneos, uma sugestão seria utilizar Java RMI.