Hacía tiempo que no volvía a escribir sobre la cámara ip Zaapa CIPRW. Escribí dos artículos: Uno sobre la descripción de la cámara en septiembre de 2008 y otro sobre cómo programarla en .NET en Agosto de 2009.
Lo cierto es que desde entonces dejé abandonado el tema y por necesidades he tenido que retomarlo para poder interactuar con ella. Poco tiempo después de escribir el último artículo se publicó en la página de Gadget Victims información sobre un nuevo firmware para las cámaras Foscam FI908W (La de Zaapa es la FI8901W) en septiembre de 2009 donde entre otras cosas se habla de la documentación oficial de FOSCAM para sus cámaras IP. Lo mejor de esto es que en esta documentación hay dos textos que pueden servirnos a los programadores para interactuar definitivamente con la cámara Zaapa y a los usuarios para poder ver sus cámaras en navegadores como Firefox, Chrome, Safari, etc.
Se trata del IPCAM CGI SDK 2.1 y del IPCAM Protocol. El primero es un documento PDF donde se explica cómo haciendo peticiones HTTP se puede descargar la imagen de la cámara y enviar ordenes a esta. El segundo es un documento de Word donde se explica el protocolo de la cámara para comunicarse con ella mediante socket. En este artículo me centraré en el primero por su facilidad de uso.
En el primer documento se explica qué peticiones hay que hacer para interactuar con la cámara. Se trata de acceder a páginas web CGI pasándole normalmente los parámetros mediante el método GET, que es como en realidad nosotros hacemos las llamadas desde un navegador web normalmente.
Antes de empezar a probar hay que cerciorarse de que la cámara Zaapa tiene el último firmware y el último Embeded Web UI. Si en la sección Device Info del panel del administrador son distintos de 11.4.1.40 y 2.0.0.16 respectivamente, hay que actualizar. En la página del producto se pueden descargar pero hay que introducir el número de serie que aparece como código de barras en la parte inferior de la cámara. Una vez que empieza la descarga empieza lo gracioso y es que veremos algo raro en el fichero que descargamos pues no tiene extensión y que no sirve para actualizar ya que no es un .bin. Pues bien el fichero es un archivo .rar por lo que hay que renombrarlo, ponerle esa extensión y ya podemos abrirlo. Dentro de este veremos dos ficheros .bin y aquí esta lo segundo más gracioso ¡¡¡ están al revés !!! Embeded Web UI 11.4.1.40.bin tendría que ser Firmware 11.4.1.40.bin y Firmware 2.0.0.16.bin tendría que ser Embeded Web UI 2.0.0.16.bin. Una vez arreglado ese desaguisado ya podemos actualizarlo desde la sección Upgrade Device Firmware del panel de administrador y actualizar el firmware primero y el Web UI después (en ambos casos se reinicia la cámara).
Hay unos cuantos CGI y lo mejor es leerse la documentación, pero voy a explicar 3 de ellos que me parecen fundamentales:
- El primero de ellos es el snapshot.cgi. Sirve para capturar una imagen estática de la cámara. Si ponemos en un navegador web http://ip de la cámara/snapshot.cgi nos pedirá un usuario y una contraseña. Cuando la hayamos introducido veremos la imagen jpg. Podemos evitar que salga el recuadro que nos pide el usuario y la contraseña simplemente añadiendo los parámetros user y pwd a la url de la siguiente forma http://ip de la cámara/snapshot.cgi?user=usuario&pwd=contraseña para que ya directamente nos muestre la imagen. Tiene otro parámetro llamado next_url para indicar el nombre del fichero pero no lo veo útil.
- El segundo de ellos son en realidad dos: videostream.cgi y videostream.asf. Sirven para mostrar un flujo continuo de imagenes a modo de vídeo. El que tiene extensión .cgi envía imágenes jpg sucesivas (ideal para verlas con una navegador), el que tiene extensión asf envía las imágenes con el formato Advanced Streaming Format (ideal para verlas con el VLC o con el MPlayer). Si ponemos en un navegador web http://ip de la cámara/videostream.cgi?user=usuario&pwd=contraseña podemos ver el flujo continuo de lo que la cámara está enfocando en ese momento. Tiene otro parámetro llamado resolution para indicar con un 8 o un 32 si queremos que la imagen tenga de tamaño 320×240 o 640×480 respectivamente.
- El tecero de ellos es el decoder_control.cgi. Sirve para interactuar con la cámara. Si ponemos en el navegador web http://ip de la cámara/videostream.cgi?user=usuario&pwd=contraseña&command=comando donde comando sea un número que indica qué hacer a la cámara (0 = empezar a mover hacia arriba, 1 = parar de mover hacia arriba, 2 = empezar a mover hacia abajo, etc) veremos como se mueve esta.
Finalmente he creado una página HTML para probar los dos últimos CGIs que he explicado. La página muestra la sucesión de imágenes de la cámara y tiene unos botones que permiten mover la cámara. Para adecuarlo a la vuestra sólo teneis que cambiar en la sección javascript el usuario, la clave y la ruta a vuestra cámara:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
<html> <head> <style type="text/css"> .comando {background-color:#FFFF00; border-radius: 10px; font-family:Arial; font-size:10pt; font-weight:bold; width:70px; text-align:center} #imagen {visibility:hidden; width:640px; height:480px;} #marco {visibility:hidden;} </style> <script type="text/javascript"> var usuario = "usuario"; var clave = "clave"; var ruta = "http://192.168.0.12/"; function cargado() { var imagen = document.getElementById("imagen"); imagen.src = ruta + "videostream.cgi?user=" + usuario + "&pwd=" + clave + "&resolution=32"; imagen.style.visibility = "visible"; } function empieza_arriba() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=0"; } function termina_arriba() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=1"; } function empieza_abajo() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=2"; } function termina_abajo() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=3"; } function empieza_izquierda() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=4"; } function termina_izquierda() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=5"; } function empieza_derecha() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=6"; } function termina_derecha() { var marco = document.getElementById("marco"); marco.src = ruta + "decoder_control.cgi?user=" + usuario + "&pwd=" + clave + "&command=7"; } </script> </head> <body onload="cargado()"> <img id="imagen"> <table> <tr><td> </td><td class="comando" onmousedown="empieza_arriba()" onmouseup="termina_arriba()">Arriba</td><td> </td></tr> <tr><td class="comando" onmousedown="empieza_izquierda()" onmouseup="termina_izquierda()">Izquierda</td><td> </td><td class="comando" onmousedown="empieza_derecha()" onmouseup="termina_derecha()">Derecha</td></tr> <tr><td> </td><td class="comando" onmousedown="empieza_abajo()" onmouseup="termina_abajo()">Abajo</td><td> </td></tr> </table> <iframe id="marco" src=""></iframe> </body> </html> |
El funcionamiento es muy sencillo. Una etiqueta img muestra el CGI videostream.cgi. Las celdas de la tabla tienen los eventos onmousedown y onmouseup para detectar cuando se pulsan y cargar en el marco oculto el CGI decoder_control.cgi con la orden correspondiente. Así es como se ve funcionando en un MAC y Safari:
Y de paso pongo otro vídeo de cómo se puede usar esta cámara con un móvil con las múltiples aplicaciones que hay en android market y en app store simplemente eligiendo en estas como marca de cámara la FOSCAM:
Hola:
Me alegro que te animaras aunque sea por necesidad sobre este tipo de cosas.
Ya con los móviles inteligentes y Windows Phone 7.5 en adelante, se podrá hacer cositas con FrameWork .NET.
Me interesa la parte de controlar la cámara con Visual Studio .net, es de lo mejorcito que he visto por aquí.
Buen trabajo.
Hola, despues de mirar y mirar y probar no hay manera de que se vea la imagen,la camara se mueve pero nada que no se ve en firefox y chromium,haber si me puedes ayudar
Buenos días,
por casualidad no tendrás a mano el último firm (11.4.1.40.bin). Ya que no lo encuentro por ningún lado. En foscam no tienen ganas de ayudar, y la página de zaapa está offline.
Muchas gracias.
Al igual que Sera, la pagina http://www.zaapa.co.uk solo muestra una foto de inicio…
Podrias colgar el ultimo bin que te descargaste?
Muchas gracias!
Hola,
Me gustaría saber la forma de poder activar la recepción de audio añadiendo un camando al código html o algo así ya que el código html publicado aquí me resulta muy útil para así no tener que acceder a través del software de administración de la cámara.
Muchas gracias.
hola a todos, quisiera saber si las camaras ip tienes su propia aplicacion o yo creo una aplicacion?, cuando me conecto al internet pongo el ip de la camara pero es aplicacion que esta en la camara ip o yo creo esa aplicacion?
La aplicación que está en la cámara si accedes desde la web o tu aplicación móvil si usas la API de la cámara.
ok, es aplicacion de la camara, porque quiero hacer una tesis hacerca de video de vigilancia con camaras ip, y que los padres puedan acceder desde su pc al aula de sus hijos, como haria si quisiera crear la aplicacion, me podrian dar una idea? se los agradeceria.
Hola a todos. Me gustaria saber si es posible agregar mas funciones a una camara IP adicionales a las que trae por defecto, sin utilizar software de terceros. Mi objetivo es subir videos a un servidor FTP cuando la camara detecte movimiento. Por ahora el programa original de la camara solo permite subir fotogramas cada «n» segundos. Quiero prescindir de mantener un computador encendido para estar grabando toda la noche. Gracias por su ayuda. Camara IP EasyN FM 166
Hola, me llamo Erick y quiero hacer un proyecto para poder crear una interfaz usando c++ para controlar una camara ip usando el visual studio. Lo que no se es como hacer que mi camara se comunique con mi pc de manera inalambrica, es decir, se supone que debe haber una trama la cual debe seguir para la transmicion de datos entre pc y camara. No se como hacer que haya comunicacion entre la camara y la pc. Te agradeceria mucho si me ayudas con eso.
Cada cámara IP es un mundo, tienes que saber a priori qué cámara vas a usar para después usar su API propia.
Hola, buenos días. Estoy implementando un proyecto de una cámara IP de la marca FOSCAM, y me gustaría poder implementar el Snapshot. Y ya llevo mucho tiempo detenido en esto, ya que no me sale, Podrías ayudarme.
Sólo hay que acceder a la url que comento en el artículo.
Hola,
Seria posible que compartieras los dos archivos para actualizar el firmware de la cam, es que la pagina de zaapa ya no funciona y no los encuentro por ningun lado.
Gracias de antemano.
Hola
A mi también me vendrían bien esos archivos para actualizar el firmware.
He escrito a zaapa iberica pero no contestan
Gracias de antemano.
Querido admin:
Yo tambien he adquirido la camarita a alquien que se hartó de no ser capaz de instalarla.
Yo he lo he conseguido a duras penas y solo a medias con un cable rj45 directo al PC -> llego a entrar en el Internet explorer a la imagen motorizada y a todos los menus.
Lo que es una autentica tortura es cuando intento conectarla via router como manda el fabricante -> imposible.
Mi firmware debe ser el mas viejo publicado:
+ Tool version 0,0,7,2
+ Active X control version 0,0,2,1
Si hubiera forma de obtener esos 2 archivos ultimos mencionados lo agradeceria eternamente:
-> Firmware 11.4.1.40.bin
-> Firmware 2.0.0.16.bin
Un abrazo.
Hola amigos,yo tengo 5 años la camara y nunca la pude hacer funcionar, yo uso Mac y me gustaria verla en Iphone, ahora gracias a un programa de app store parece ser que se puede ver,aunque para instalarla a tu router tiene que ser con windows. Podriais ayudarme a poder instalarla, yo por desgracia se poco de informática. Gracias.
hola, que tal como podria hacer si quisiera grabar lo que esta emitiend la camara y guardarlo en mi pc, agradesco su respuesta.
Sólo se puede hacer desde el componentes activeX para internet explorer.
lamentablemente soy nuevo en el campo y no tengo mucho conocimiento, agradeceria si podria ayudarme.
hola que tal una pregunta, el codigo que escribes ahi es para mostrar video de camara ip, pero sin audio, si yo quiero transmitir audio tendria que ponerle en ves de videostream.cgi ponerle videostream.asf, pero el problema es que no carga nada, caso contrario si lo pongo en un oframe si carga audio pero no puedo moverlo, podriar ayudarme.
necesito programar una cámara ip:
2.4G Wireless USB Camcorder Kit
Model: MT-601+C100A
ID: 234.
C#, paro la compañía no me ofrece datos como su ip, como cambiar usuario, ect.
ayuda!
te dejo el link para que varifiques
no se conecta uart con mi cámara zapa. por error cuando estada itentando cargar firmware borre todo de la cámara, y ahora no me dice nada cuando conecto hiperterminal u otros. por favor ayuda para resucutar bootloader de la cam
¿Y qué tiene que ver eso con este artículo?
Muy buenas admin,
Hace poco llegó a mis manos una Zappa de este tipo y al igual que muchos de los que han comentado aquí me resulta imposible encontrar los últimos firmwares.
¿Te importaría enviármelos?
Gracias.
hola donde puedo descargar la aplicacion y archivos me sale que no estan disponibles
Hola,
Hay alguna actualización que acepte el encriptado WPA o superior?
Se sabe algo del fabricanate o de la pag. web?
Gracias
No se, hace mucho tiempo que no la utilizo.