Como conectar una cámara externa en Android


En efecto, es posible usar casi cualquier dispositivo que tenga una cámara digital con conexión USB (pensadas para su uso exclusivo en ordenadores), usarlas también con nuestro smartphone o tableta a modo de pantalla portátil. Es importante destacar, que cuando hablamos de cámaras digitales, no solo nos referimos a las clásicas web-cam que usamos para videoconferencias (que también podria ser útil) , también hablamos de cámaras especificas para determinadas labores como pueden ser microscopios digitales, endoscopios, cámaras para telescopio, scanner de negativos, etc.

Por ejemplo, las cámaras microscopio pueden ser útiles en nuestras labores de soldadura o reparación (sobre todo, ahora que casi todos los componentes son SMD) o cualquier labor de precisión, como relojería por ejemplo, usando este tipo de cámaras con microscopio digital, en vez de conectadas a un ordenador por USB, usarlas con nuestro smartphone o incluso aun mejor, con nuestra Tableta.

microscopio-usb

Una de las apps para este cometido, se llama usb camera y funciona con Android 7. Ciertamente en el trailer de la tienda, esta app la promocionan para usar con capturadoras de audio/ video (tipo Easy Cap), ya que esta app no solo procesa el video sino también el audio.

Lo destacable es,que para otros tipos de dispositivos, como hemos comentado anteriormente, es que este software también puede ser muy útil como pantalla de visualización (es decir también para microscopios digitales, endoscopios, cámaras para telescopio, scanner de negativos, cámaras de automoción, etc.) , pudiendo también funcionar perfectamente, independientemente de que existan otras aplicaciones que puedan servir para el cometido.

sw-microscopio-usb

Para usar nuestro smartphone o tableta para visualizar la salida de video digital de cualquiera de los dispositivos comentados, estos dispositivos no es lo único que necesitaremos, pues también debemos tener a la mano estos elementos adicionales:

  • Necesitaremos especialmente un cable USB OTG que dependiendo del telefono o tableta será distinto ( usb tipo c, micro-usb o incluso mini-usb para tabletas muy antiguas). Dependiendo de cada caso, podríamos requerir adaptadores adicionales si no contamos con el cable especifico ( por ejemplo, puede que necesitamos incluso un cable adoptador USB-micro USB, o también, podríamos requerir de un pequeño adaptador mini USB-micro USB).
  • Lógicamente, necesitamos la herramienta instalada USB Camera en el dispositivo móvil Android.
  • Podemos probar con cualquier cámara web del mercado (previamente, averiguar compatibilidad con el vendedor por ejemplo con las herramientas web que comentamos al final de ese post).

Fundamentalmente respecto al cable OTG, si vamos a alimentar también nuestro dispositivo ( lo cual encarecerá el cable), esta es la opción mas recomendada, por el alto consumo extra del dispositivo que conéctenos, pues este se alimentaría a través de la bateria del smartphone o tableta)

Así nos podemos decidir fundamentalmente por dos tipos de adaptadores:

  • Adaptadores USB C a USB con carga USB C ,es decir divisores USB C OTG de carga rápida PD de 60 W compatibles con Galaxy S22, Switch, Google Chromecast con Google TV, Pi-KVM, impresora 3D, Octo4a, Pixel 4XL y ene general cualquier smartphone «moderno » con conexión USB-Cc ( por ejemplo este)
adaptador usb para-microscopio
  • Adaptadores Cable OTG Micro USB, es decir cabes multifuncionales normalmente diseñados para Smart TV ( por ejemplo para conectar a un Amazon Fire Stick). Estos cable OTG tienen 2 puertos y 1 enchufe, Puerto Micro Hembra, Puerto USB Hembra y Enchufe Micro Macho ( por ejemplo este).
adaptador usb para-microscopio

Cabe mencionar ligeramente, que nuestro gadget Android es uno de los más incompatibles que podrían existir para realizar este tipo de tareas. Aún teniendo en cuenta las limitaciones citadas por ciertas incompatibilidades con dispositivos ambiguos, pero desde diferentes pruebas que se han realizado a la hora de escribir este post, hemos logrado notar, que “USB Camera” funciona perfectamente bien con la mayoría de cámaras web que existen en el mercado.

USB Camera: Las mejores ventajas de trabajo en una herramienta

Una de las principales ventajas es que “USB Camera” no necesariamente debería ser usado para un smartphone Android sino más bien, para aquellos dispositivos móviles en donde no existe una cámara. Hablamos específicamente de nuestros Mini PC Android o de las cajas TV-BOX que actualmente están disponibles en diferentes tiendas online. Ninguno de estos dispositivos móviles cuentan con la presencia de una cámara integrada y por tanto, fácilmente podríamos comprar cualquier webcam del mercado (que sea USB) para conectarla al respectivo puerto utilizando la herramienta que hemos recomendado en este post.

Por si esto fuera poco, la herramienta (USB Camera) también nos ofrece determinadas funciones adicionales de trabajo. Por ejemplo, tendremos la posibilidad de tomar fotografías o grabar vídeo; los archivos pueden ser guardados en la SD interna o en una microSD externa, algo que se puede configurar fácilmente desde sus ajustes.

De hecho las versiones ultimas cuentas con capacidades adicionales :

  • Puede enviar los medios de comunicación a varios servidores de medios de comunicación al mismo tiempo.
  • Puede enviar el vídeo en directo al servidor de medios en directo a través del protocolo SRT.
  • Live Push soporta codificador HEVC vía protocolo SRT.
  • Puede utilizar Live Push sin encender el servidor de la cámara IP.
  • Añadir un indicador de audio.

Pasos a seguir para conectar un dispositivo con salida USB por OTG

Para empezar pues, lo esencial es buscar el cable adaptador OTG adecuado a la cámara y al smartphone o tableta que queremos conectar.

Es importe destacar que, dado el consumo de energia de la cámara ( especialmente de los microscopios que van iluminados), se recomienda que el OTG tenga entrada y salida para poder alimentar externamente ambos dispositivos: el terminal y la cámara.

adaptador-microusb para-microscopio

Con el cable adecuado conectaremos a la fuente, a la cámara y al smartphone y tableta .

montaje-microscopio-a-telefono

Ahora iniciaremos la aplicación USB Camera, que si es la primera vez. nos dará una notificación para acceder a la cámara.

aplicacion-usb-camera

Esta aplicación también pide permisos para procesar audio ( en nuestro caso sin valor, ya que los microscopios no tiene sentido que usen audio).

pantalla-2-aplicacion-usb-camera

Finalmente, debería verse en pantalla de nuestro smartphone o tableta el video capturado por el dispositivo que hayamos conectado.

ejemplo-visualizacion-microscopio-usb-en-telefono

Esta aplicación sirve para muchos mas dispositivos, como por ejemplo cualquier web-cam convencional de ordenador, lo cual quizás sea útil para hacer grabaciones mas elaboradas como cámaras mas avanzadas.

detalle-conexion-microscopio-a-telefono

En este caso ,quizá el único problema se encuentre en el micrófono. Si cuenta con una webcam que tenga un micrófono básico entonces no debería esperar un sonido excepcional si estas grabando un vídeo en donde usted sea el interlocutor. De todas formas, este experimento podría ser mejorado en futuras versiones de esta u otras herramientas, lo cual dependerá de la acogida que tenga la herramienta por parte de sus usuarios.

Pruebas con ordenador

Aunque no tengamos la aplicación especifica para abrir el dispositivo en nuestro ordenador , podemos probar este tipo de dispositivos en nuestro pc sin instalar nada, todo desde el propio navegador .

La verdad es que hay muchísimas ejemplos de url que nos permiten probar nuestros dispositivos ( simplemente basta buscar en su buscador favorito «webcamtest«)-

Unos ejemplos: https://www.onlinemictest.com/es/prueba-de-camara-web/ o https://webcammictest.com/es/

visualizacion-web-cam-en-navegador

Hay una utilidad especialmente interesante por la gran información que aporta respecto al hardware conectado a nuestro ordenador (webcamtests.com) .Lo malo de este sitio es que debido al numero de usuarios no siempre esta activo.

visualizacion-microscopio-en-ordenador

Cree su propio dispositivo IoT muy barato


Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  que pueden ademas  pueden   involucrar el IoT. Esta placa  destaca  porque integra capacidades de comunicación via WiFi , conteniendo en su interior  un microprocesador que puede ser programado fácilmente usando el  conocido lenguaje de programación Lua o bien vía Arduino IDE.

Obviamente ante todo no podemos perder de vista su bajisimo precio comparados con otras opciones mucho mas potentes como el ESP32 ( que es su sucesor y mejora en todo excepto en el precio a esta), pero en todo caso para muchos proyectos de IOT es mas qeu suficinete, pues no debemos olvidar  que incluye  el modulo wifi integrado  y un bus GPIO para conectar dispositivos de E/S. Ademas se puede programar con el sistema Arduino lo cual nos aporta un fantástico IDE y un sinfin de manuales y ejemplos de desarrollo.

esp8266

Este modulo es Ideal como una solución independiente en lugar de Arduino además de Wi-Fi  integrado siendo fácil de programar a través del IDE de Arduino (como vamos a ver ) , al igual que un Arduino.
Todos los periféricos con bus I2C puede unirse,por ejemplo Pantallas OLED, pantallas LCD, temperatura, presión, sensores de humedad pueden ser conectados en paralelo. También se puede conectar múltiples DS18B20

Sin embargo, sólo hay una entrada analógica y salida y por ejemplo algunas pantallas táctiles no se pueden conectar con ella.

¿Se pregunta cómo empezar a  desarrollar código  con  su económico ESP8266 ?

Los pasos  a seguir   para conectar un ESP8266     son los siguientes:

  •  Instalación del IDE de Arduino.Si aun no lo tiene instalado ,se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino
libreria-arduino-esp8266
  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.

  • Conecte  un cable usb  de datos al ESP8266
  • Seleccione   Herramientas –>ESP8266   y ahi la placa que haya comprado. En caso de  haberla comprado en Amazon aqui seleccione  NodeMCU 1.0 (ESP-12EModule).
configuracion-arduino-ide-con-esp8266

  • En el IDE de Arduino, vaya al menú de herramientas, seleccionada su placa y elija el  puerto al que está conectado su ESP8266.En el ejemplo  es el COM11
configuracuion-puerto-esp8266
  • Ahora  copie el siguiente código  para probar que puede subir y ejecutar código código  en la placa :

/*
 ESP8266 Led Parapadeante
*/

void setup(){

 pinMode(LED_BUILTIN, OUTPUT);// Initializa el  pin de  LED_BUILTIN como salida 

}

void loop() {       // la función de bucle se repite una y otra vez para siempre

digitalWrite(LED_BUILTIN, LOW);// encienda el LED  

delay(1000); //Espera de 1 segundo

digitalWrite(LED_BUILTIN, HIGH);//  Apague el LED haciendo que el voltaje sea ALTO 

delay(2000); // Espere dos segundos  para dejar apagado  LED 

}

El LED azul en el módulo ESP – 01 está conectado a GPIO 1, (que también es el pin TXD, por lo que no podemos usar Serial.print () al mismo tiempo)

Tenga en cuenta que el nivel de voltaje es BAJO  pero en realidad el LED está encendido, porque es bajo en el ESP – 01

En este código se usa  LED_BUILTIN para encontrar el pin con el LED interno  de modo

Como puede apreciar , el código ejecuta un bucle infinito en el que pone el estado bajo  un segundo (encendiendo el led)    para posteriormente forzar a nivel alto  dos segundos(apagando el led  )  y así   indefinidamente gracias al bucle  que se repite indefinidamente

 

Envio de datos a la nube de Cayenne

  • Agregue la biblioteca de Cayenne MQTT a Arduino IDE  desde aqui como un fuchero zip
  • Instale la biblioteca zip descargada en el paso anterior desde Programa -> Incluir biblioteca -> Añadir libreria ZIP. y seleccionar ahora el fichero descargado con anterioridad  Cayenne-MQTT-ESP-master.zip
  • Ya puede crear una cuenta Starter en cayenne ( si aun no la tiene  ya creada)
  • Una vez ya validado vaya a la esquina  superior  izquierda  y pulse sobre el botón verde  add new
interfaz-cayenne
  • Ahora seleccione Generic ESP8266  como la placa y  tome nota  ahora  de los siguintes paraetros ofrecidos por la  pagina:
    •  MQTT USERNAME:
    • MQTT PASSWORD:
    • CLIENT ID:
    • MQTT SERVER:
    • MQTT PORT:
    • NAME YOUR DEVICE (optional):
       
  • Abra el boceto de ejemplo incluido desde Archivo -> Ejemplos -> Cayenne-MQTT-ESP. Modifique el boceto incluido con su información de red y la información de autenticación de Cayenne que recibió al agregar su dispositivo.

Ejemplo de envio temperatura  TMP102

Normalmente se adquiere un placa auxiliar  para el pequeño sensor de temperatura digital TMP102. El TMP102 es un sensor digital (también conocido como I2C TWI), tiene una resolución de 0,0625 ° C, y tiene una precisión de hasta 0,5 ° C, lo cual lo convierte  es un sensor muy práctico pues requiere una muy baja corriente.

La comunicación con el TMP102 se logra a través de una interfaz serie de dos hilos. No existe regulador de tensión de a bordo, por lo que el voltaje suministrado debe estar entre 1,4 a 3.6VDC.

En estas placas los condensadores de filtrado y resistencias de pull-up se incluyen.

tmp102

En el código  siguiente o  muestra cómo enviar datos de temperatura a un sensor TMP102 en Cayenne Dashboard.Obviamente se requiere la Biblioteca de Cayenne para ejecutar este programa (si aún no lo ha hecho, puede instalarlo desde Arduino IDE Library Manager).

conexiones-tmp102-esp8266

Las conexiones como vemos en la iamgen  del  TMP102  al  ESP8266 on la siguintes:

            TMP102         ESP8266

  • [VCC] ————- [3V3]
  • [GND] ————- [GND]
  • [ADD0] ———– [GND]
  • [SDA] ————- [Pin analógico 4] (El SDA puede ser diferente en algunos dispositivos, por ejemplo, para Arduino Mega, el pin SDA es Pin digital 20)
  • [SCL] ———— [Pin analógico 5] (El SCL puede ser diferente en algunos dispositivos, por ejemplo, para Arduino Mega, el pin SCL es Pin digital 21)

Y este esl codigo que subiremos a nuestro ESP8266:

#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space
#include <CayenneTMP102.h>
#include <CayenneEthernet.h>  // Change this to use a different communication device. See Communications examples.

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = "AuthenticationToken";

// Virtual Pin of the TMP102 widget.
#define VIRTUAL_PIN V1

// Address used to read from the TMP102. This is determined by the ADD0 pin on the TMP102.
// Connecting it to ground means the sensor will use 0x48 for the address. See the TMP102 datasheet for more info.

const int tmp102Address = 0x48;

TMP102 tmpSensor(tmp102Address);

void setup()
{
Serial.begin(9600);
Wire.begin();
Cayenne.begin(token);
}

void loop()
{
Cayenne.run();
}

// This function is called when the Cayenne widget requests data for the Virtual Pin.
CAYENNE_OUT(VIRTUAL_PIN)
{
// This command writes the temperature in Celsius to the Virtual Pin.
Cayenne.celsiusWrite(VIRTUAL_PIN, tmpSensor.getCelsius());
// To send the temperature in Fahrenheit or Kelvin use the corresponding code below.
//Cayenne.fahrenheitWrite(VIRTUAL_PIN, tmpSensor.getFahrenheit());
//Cayenne.kelvinWrite(VIRTUAL_PIN, tmpSensor.getKelvin());
}

Estos son los pasos resumidos que haremos en el interfaz de Cayenne:


1. En Cayenne Dashboard, agregue un nuevo widget TMP102.
2. Configure el widget en Visualización de valor.
3. Seleccione Virtual Pins y un número de pin virtual.
4. Establezca VIRTUAL_PIN en el número de pin que seleccionó.
5. Adjunte un TMP102 a su  ESP8266.

  1. Establezca la variable tmp102Address para que coincida con ADD0. ADD0 conectado a GND corresponde a una dirección de 0x48.
  2. Establezca la variable del token para que coincida con el token de Arduino desde el Tablero.
  3. Compile y cargue este boceto.
  4. Una vez que el Arduino se conecta al Tablero, debe actualizar automáticamente el widget TMP102 con datos.