Control de Cámara IP con interfaz Java
Proyecto Final
Programación de Sistemas
Elo-330
Introducción:
En la actualidad se ha convertido en una necesidad poder monitorear de manera remota lugares o procesos, son muy populares para este propósito las cámaras IP. La idea de este proyecto es desarrollar una base para futuros trabajos con las imágenes obtenidas, ya sea que un operador controle el movimiento de la cámara o que esta detecte movimiento y comience a gravar.
Hardware Utilizado:
Para concretar este proyecto se utilizaron los siguientes dispositivos:
MSP 430 (Microcontrolador encargado de procesar las señales provenientes desde el modulo uLan, y generar señales on/off y PWM para LED y Servomotores conectados en sus puertos)
Modulo ethernet uLan (Dispositivo encargado de realizar la conexión entre el modulo MSP con la red local)
2 Motores servos (Elemento capaz de interpretar una señal PWM, generada en el microcontrolador, como un ángulo de giiro)
LCD Display (Dispositivo
utilizado para entregar información visual al usuario, esta controlado por
Cámara IP (Dispositivo utilizado para adquirir imágenes del lugar en que se encuentre ubicado el sistema, es conectada directamente al Router)
Router o Switch (Elemento configurado para la red local necesaria para esta aplicación)
Software Utilizado:
Se desarrollo una aplicación Java que permite visualizar los datos que entrega la cámara IP y además permite controlar la dirección en que esta está observando, también se puede encender un led, esta aplicación permite que el operario pueda detener algún proceso o activar alguna alarma.
Cuenta
además con la aplicación desarrollada para que
Desarrollo del Proyecto:
El
sistema cuenta con una aplicación Java que mediante comunicación de Socket se comunica con
Descripción de los módulos usados:
Modulo uLAN-MSP:
Utilizando el microcontrolador MSP430 y con
el stack TCP diseñado para este controlador, se logró
establecer una conexión TCP 10BaseT, entre el Router y
Modulo Cámara IP:
Mediante una Cámara IP, se puede adquirir imágenes a través de una dirección IP.
Modulo Aplicación Java:
En un Panel Java en que se mostrarán las
imágenes adquiridas por
Modulo Red:
Para unir los diferentes modulo
mencionados, es necesario asignar IPs a cada Host de
Diagrama de estados de
Como utilizar
Se debe descargar el programa Java Control_Camara.class y posteriormente ejecutarlo, cundo estas acciones se realicen aparecera un panel como el siguiente, en el cual deben ingresarse los datos que se piden y luego hacer click en el boton Conectar.
Inmediatamente
después aparecerá otra ventana con la imagen que esta capturando la cámara IP
para mover la cámara se deben presionar los botones con las direcciones, si se decea encender o apagar el led se
debe presionar el botón Led on/off.
Clases más Importantes:
Conexión
mediante Socket con
public class
crea_sock {
Integer sockete;
int sokete;
String IP;
private Socket soket;
private Socket socket;
public crea_sock() {
}
public Socket crea(String ip, String so) {
IP = ip;
sockete = Integer.parseInt( so);
try {
socket = new Socket(IP, sockete);
} catch (UnknownHostException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return (socket);
}
}
Comunicación
mediante Socket con
class AccionEnviar{
private char intruc;
private DataOutputStream salida;
private String login;
public AccionEnviar(Socket
s, char intrucs){
intruc = intrucs;
try {
salida = new DataOutputStream(s.getOutputStream());
} catch (IOException ex) {
ex.printStackTrace();
}
}
public void send() {
try {
salida.writeChar( intruc);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Obtención
mediante la clase URL de las imágenes de la cámara IP:
public class Imagenes
extends JFrame {
public BufferedImage image
= null;
public Imagenes() {
}
public void paint(Graphics
g){
Graphics2D g2 = (Graphics2D)g;
URL nUrl = null;
try {
nUrl = new URL("http://192.168.1.106/axis cgi/jpg/image.cgi?resolution=320x240");
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
//public BufferedImage image = null;
try {
image = ImageIO.read(nUrl);
} catch (IOException ex) {
ex.printStackTrace();
}
g2.drawImage(image,0,10,this);
repaint();
}
}
Códigos:
Aplicación Java para
el manejo de una cámara IP de forma remota aquí.
Programa que
permite a
_____________________________________________________________________________________________
Trabajo realizado por: Olga Godoy Funez
Rol: 2304128-6
Fecha: 12 de Diciembre de 2007
Profesor: Agustín Gonzáles
Ramo: Programación de Sistemas Elo-330