Programar la cámara IP Zaapa CIPRW (ZA-CIPRW) en .NET

Uno de los problemas que veo con la cámara IP Zaapa que me compré es que sólo se puede manejar desde un navegador Internet Explorer, y la verdad es que eso le quita mucho potencial a una cámara tan completa y barata como esta. Por eso me he puesto manos a la obra para desengranar un poco el funcionamiento y poder crear una aplicación de escritorio para poder manejarla.

Todo el trabajo de investigación ha estado centrado en ver cómo funciona el código fuente javascript de la página web que ofrece la cámara zaapa, ya que buscando por internet no he encontrado nada sobre cómo manejarla.

Lo primero que nos encontramos es que instancia un objeto llamado DVM_IPCam2.ocx. Buscando por internet he encontrado muy poca información sobre ese fichero en cuestión y mucho menos de la API OLE que encierra.

Por suerte el Visual Studio .NET puede incorporar ocx y ver de una tacada todos los métodos, propiedades y eventos que maneja el control ocx. Para ello dentro del Cuadro de herramientas, se pulsa con el botón derecho en Componentes y se selecciona Elegir Elementos… Después se pulsa sobre la pestaña Componentes COM y se selecciona DVM_IPCam2 Control.

dvmipcam2

Si no existiese es que no está registrado en Windows. Entonces habría que descargar el ocx desde la dirección http://<ip de la camara>/codebase/DVM_IPCam2.ocx, guardarlo en c:\windows\system32 y desde una consola de ms-dos ejecutar regsvr32 c:\windows\system32\DVM_IPCam2.ocx y después volver a repetir el proceso de Visual Studio.

Con esto ya tendremos el componente ocx para insertarlo en el formulario. Ahora para acceder a la cámara hay que seguir los siguientes pasos:

  • Conectar con la cámara usando el método MonitorConnect, pasándole como parámetros la dirección host o ip de la cámara, el puerto por el que escucha (normalmente el 80), el usuario y la contraseña.
  • Capturar el evento OnMonitorConnectResult y si la conexión ha sido satisfactoria pasar al siguiente punto
  • Empezar a recibir las imágenes dentro del control ocx usando el método PlayVideo.
  • Esperar a recibir las imágenes con el evento OnPlayVideoResult.
  • Hacer el resto de operaciones: mover la cámara con el método DecoderControl, hacer fotografías con el método Photo2, grabar un video con el método StartRecord2, reiniciar la cámara con el método RebootCamera, etc.
  • Cuando se termine de trabajar con la cámara llamar a los métodos StopVideo, StopRecord y MonitorDisconnect.

He desarrollado una pequeña aplicación que muestra estos conceptos. No hace comprobaciones de errores para simplificar el código:

aplicacioncamara

Podeis descargar el código fuente en c# y un ejecutable desde aquí.

El siguiente paso sería tratar de hacer que funcionase el firefox para windows y en un futuro conocer el protocolo para manejarlo desde linux, desde un iphone o desde cualquier otro entorno.

24 comentarios en “Programar la cámara IP Zaapa CIPRW (ZA-CIPRW) en .NET

  1. Berny

    Buen principio, soy usuario de apple y llevo muchisimo tiempo detrás de poder hacerla funcionar con Safari y con iphone pero nada de nada.
    Actualmente hay un plugin para firefox y poder hacerla funionar con windows. Creo que lo puedes encontrar en la pagina oficial de zaapa. Pero para apple, nada de nada…

    Saludos.

    Responder
  2. guanche

    Buen trabajo aunque me da un fallo al ejecutarlo de “Unhandeld exception..”.

    Ojala sallga algo pronto para Linux porque la tengo desde hace mas de un año bajo mínimos por no poder conectarme desde linux. 🙁

    Saludos a todos
    guanche

    Responder
  3. Meta

    Me encanta el invento. Eso que estaba haciendo mi propio proyecto usando una WebCAM fija comprando los servomortores a parte, móduolo de Wi-fi a parte que cuesta más caro y tiempo en hacer.

    guanche de las Islas Canarias: Los errores los puedes controlar con Try. Lo hizo así para que podamos entender el ejemplo que ha publicado.

    Me gusta más la cámara ya que tiene más posibilidad de movimiento en grados y 8 metros de distancia en la oscuridad por infrarojo.

    http://www.foscam.com/Products_List.asp?id=128

    Otra cosa que no veo necesario usar esto: ejecutar regsvr32 c:\windows\system32\DVM_IPCam2.ocx.

    Has hecho un buen trabajo.

    Responder
  4. Davod P

    Bueno toda parecer estar bueno por que tube problema con visual 2005 me gustario por favor que si me pueden enviar los codigos pero en Visual Basic 2008, en estos momentos estoy desarrollando una aplicacion pero me esta costando. Mi idea es del video capturado derectamente desde vb 2008, capturar una foto y compararla con la Base de conocimiento si esa persona pertenece a la empresa y enviar un sms al celular via bluetooth que dicha persona ha ingresa y si no pertenece mandar un sms que hay un introzo en area restringida. Por fovor le Quedaria enternamente agradecido si me ayudad a terminar esa aplicacion yo ya tengo la base de conocimiento en SQL 2005, Gracias

    Responder
  5. Victor

    Hola, llevo unos días buscando como controlar la cam desde iphone (via accediendo desde algun navegador) y me acabo de topar con esta web.
    Lo cual me acaba de aclarar las cosas: No voy a poder.
    No soy programador y no me puedo meter ahi en visual studio a inventar, pero se me ocurre otra via:
    Se podría sacar el video (como si de un stream se tratara) para poder acceder a través de otros programas. Se perdería el control físico de la cámara, pero… Gracias y muy buen trabajo.

    Responder
    1. admin Autor

      Quin sabe, a lo mejor alguien ya ha encontrado el protocolo que usa y se puede implementar en cualquier navegador, pero yo estuve buscando y no encontré más que eso.

      Responder
  6. erpes

    Hola, para los que quieran utilizar esta cámara con el iphone, (va por Victor), podéis usar el programa “LiveCam Pro”, (de pago, un par de eurillos…que compensan), configurándola como una Foscam, en concreto el modelo FI8908W.

    Por cierto, alguien sabe si hay actualizaciones del firmware para esta cámara. Lo estoy buscando como un loco.

    Responder
  7. elcarpanta

    Hola, he ido a actualizar el firmware y se ha quedado bloqueada, ni con el botón reset pulsado vuelve a la vida… De hecho cuando la desenchufo y la vuelvo a enchufar, no hace esos movimientos característicos… ¿qué puedo hacer? AYUDA!!!!!!

    Responder
  8. Meta

    Hola:

    He visto la cámara en mi local a 89€ aproximadamente. han rebajado pero también es vieja.

    ¿Se incluye alguna mejora o actualización más compatible a Windows 7 64-bits?

    Un cordial saludo.

    Responder
  9. Meta

    Hola de nuevo caballero:

    Quiero hacer experimentos con cámaras IP y Visual Studio .NET.

    Ya sabes, cualquier cosa nueva lo publicas campeón.

    Se agradece el tiempo que empleas con hacer experiemntos con estás cámaras. Cualquier cosa que se te ocurra, publículo.

    Sigue así.

    Responder
  10. DAVID

    Hola saludos a todos lo que tenemos estos problema jajaja no encuentro manera de hacer que esto funcione el archivo oxc no lo logro descargar cuando intento conectar la cam con la ip me pone queme hace falta un archivo pero win 7 no me lo deja descargar ya no se que hacer cao la cam esta les agradesco su ayuda de antemano mil gracias

    Responder
  11. jav

    Hola, yo tengo un problema al intentar visionar la camara con internet explorer. Se ve el cuadro donde debería aparecer en negro y abajo me pone error en la página. Pulso en el error y pone Desbordamiento monitor.htm

    Espero una respuesta. Muchisimas Gracias.

    Responder
  12. Davis Martinez

    no puedo registrar la clase, o sea la regitro y al ejecutar el proyecto me sale clase no registrada.. saber pork?, agradesco su respuesta

    Responder
  13. zepelin

    Ola tengo una camara za-ciprw y tengo un problema me graba la imagen pero sonido no no se si ay que istalar algo mas o que estoy perdido me podeis ayudar? gracias

    Responder
  14. Daniel

    Que tal es muy bueno tu articulo me ha servido de mucho… Yo lo estoy implementando con otra cámara de distinta marca y al igual que tu no he podido encontrar mucha información al respecto. Esta cámara es china pero utiliza el mismo Control ActiveX (DVM_IPCAM21). Puede moverse 360 grados y tiene control de velocidad que puedo modificar en el navegador Web. Tengo una pregunta? Hay alguna propiedad, método o evento en Visual Studio para controla la velocidad en la que se mueve la cámara IP. Si es así te agradecería si me puedes apoyar… Gracias

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *