Ya sabes que un Technology Exploiter básicamente se dedica a aprovechar al máximo la tecnología disponible en un entorno para resolver una necesidad concreta pero, a veces, un cliente muy optimista o una situación complicada te hacen pasar a un nivel superior donde ya no se trata de “aprovechar” sino de “exprimir hasta la última gota” la tecnología disponible. Me refiero a pasar al nivel MacGyver.
No hay problema. Me gusta. Me sirve para hacer nuevos posts 😉
No hace demasiado tiempo se me planteó un caso de estos y lo pude resolver usando el USB OTG (USB On-The-Go).
USB ¿qué?
En las conexiones USB de dos dispositivos siempre hay un protocolo de comunicación maestro-esclavo (un dispositivo “manda” y el otro “obedece”) como por ejemplo, cuando conectas la impresora al ordenador. Más o menos, lo que haces es “mandarle” a la impresora desde tu ordenador y no a la inversa.
Bien, pues el USB OTG es básicamente un sistema por el que el rol de algunos dispositivos con puerto USB se invierte y un dispositivo que normalmente “obedece”, ahora “manda”.
Te avanzo que lo que voy a hacer es contarte una historia sobre cómo apliqué este sistema para resolver la necesidad concreta de un cliente y quizá eso te sirva para pensar nuevas aplicaciones que le podrías dar a este sistema tan sencillo y útil. Si tienes prisa, puedes bajar al final del post donde te he dejado un vídeo para que veas como funciona. Mejor si te lees la historia pero, tú mandas…
La historia
Una empresa de transporte debía recoger a domicilio en un almacén cierto número de paquetes diarios, cada uno etiquetado con un código de barras de uso interno, generado con code39 (como puedes hacer tú mismo si lees este post sobre los códigos de barras).
Los paquetes debían ser verificados uno a uno mediante el código de barras. Para hacerlo, la empresa cliente enviaba a las oficinas centrales del transportista un listado en Excel de los paquetes y sus códigos de barras dentro de una plantilla que había que conservar con la misma estructura para enviarla de vuelta una vez terminado todo el proceso (o sea, que era como hacer un pequeño inventario diario).
Una vez verificados todos los paquetes, se procedía a la carga y al transporte a una plataforma logística cercana.
Al llegar a la plataforma, cada paquete se debía asignar a un pallet específico también codificado mediante barras. Esta asignación solía incluir un par de pallets para poder alojar todos los paquetes, por lo que había que dejar bien claro en qué código de pallet se dejaba cada paquete (o sea, como un pequeño inventario diario pero con asignación de ubicaciones).
Acabada la asignación y con todos los datos perfectamente verificados, éstos se hacían llegar a las oficinas centrales, donde había que procesarlos y transmitirlos a un servidor.
¿A que no adivinas cómo se hacía todo este proceso?
Sí.
A mano.
Con papel y boli (como algunos inventarios).
Estás llorando pensando en ese transportista ¿verdad? En el pobre señor que tiene que verificar todo con un papel en la mano y un boli en la oreja… Yo también lloré…
Vale, el caso es que me pongo manos a la obra y, tras el análisis, planteo algunas soluciones para optimizar todo este cacao maravillao.
Antes de que me digas que hay muchas soluciones mejores, te avanzo un par de detalles:
Ya sé que lo ideal en este caso hubiera sido comprar un terminal inalámbrico profesional de esos que suelen llevar los transportistas, desarrollar un software específico para el trabajo con este cliente y listo. El inconveniente es que lo necesitaban rápido (diseñado, implantado y probado en 9 días) y barato.
Cuando te he dicho eso de “desarrollar un software específico” realmente era una forma elegante de decir “paga algunos miles de euros, espérate sentado medio año y reza lo que sepas para que todo salga bien”.
Así que esa solución no valía.
Bueno, sigo:
La solución
Te explico un poco por encima el sistema que decidimos aplicar aunque no es lo más importante, porque al fin y al cabo, cada situación tiene sus peculiaridades y requiere una solución personalizada.
- Desde la oficina central y trabajando sobre una plantilla, se prepara un documento de trabajo y se almacena en la Nube. Los datos proceden, sin modificar, del documento diario que facilita el cliente en formato Excel.
- El transportista accede al documento y mediante escáner de código de barras verifica los bultos y los carga para el transporte. El documento se guarda y se actualiza vía 3G (no disponíamos de WiFi en el entorno de carga).
- Los bultos se descargan en una plataforma en la que se les asigna un pallet específico, también con lectura con escáner de código de barras.
- El operario finaliza el documento, se asegura de la correcta sincronización e informa a la oficina central del cierre del documento.
- Desde la oficina central, una vez verificada la fecha y hora de guardado del documento, se accede a los datos para el siguiente proceso
Poca cosa más. El transportista podría escanear cada bulto con el lector de código de barras; en la pantallita del dispositivo le aparecería “OK” o “ERROR” y si le han dicho que se lleve 80 bultos, pues cuando el contador que ve en la pantalla ponga “80”, hemos acabado. Mucho mejor que antes.
Ya está. Solucionado. Café y copita de whisky por favor. Fin del post.
No, en serio: necesitaba esta introducción tan larga para que veas la aplicación que le pudimos dar al USB OTG antes de que veas el propio sistema en si mismo porque el funcionamiento del USB OTG se explica en un par de líneas y adquirirlo me costó menos de 5 euros así que no hay mucho para escribir… además, así te voy poniendo ejemplos de technology exploiting, que si no parece que sólo hablo de Excel.
La que verás ahora es sólo una aplicación del USB OTG pero estoy segurísimo de que se te van a ocurrir aplicaciones de todo tipo según vayas leyendo.
Retomo la historia: teniendo en cuenta todas las características del caso, le propuse al cliente usar el terminal móvil Motorola TC55, que serviría como teléfono móvil, GPS, lector de código de barras y conector 3G además de estar ruggerizado (protegido para su uso en ambiente industrial, con polvo y humedad). Lo que es un todo-en-uno de toda la vida.
Este dispositivo no baja de 900€ así que mi cliente decidió no adquirirlo. Uno de los requisitos principales era que se tratase de una solución barata (y al parecer no me quedó claro la primera vez…). Cuando me decían barata, se referían a BA-RA-TA.
Había que ajustarse. Mucho. Punto.
Vale, aquí es cuando te quitas la chaqueta normal y te pones la chupa marrón de MacGyver.
Replanteando la solución
Yo había decidido que el Motorola TC55 era el dispositivo adecuado porque era:
- Móvil
- Con GPS
- Con 3G
- Con acceso a la Nube
- Con posibilidad de usar Excel
- Con lector de código de barras incorporado
- Ruggerizado
Y lo único a lo que, a priori, parece que puedas renunciar para reducir costes es a que el dispositivo no esté ruggerizado. Le di vueltas pero no había manera: el hecho de que el dispositivo tenga “protecciones de goma” no afecta de forma sustancial al precio, así que eliminando este punto no reducíamos el coste de forma significativa. El punto que realmente marcaba la diferencia en cuanto a coste era el del lector de código de barras incorporado.
Es posible que estés pensando que la mayoría de móviles pueden escanear códigos de barras con la cámara de fotos. Eso es para un uso puntual, no en un trabajo diario. Resumiendo mucho: es lento y va mal (Si quieres, prueba a escanear 50 códigos de barras seguidos y verás de lo que te hablo. Luego imagínate que tienes que escanear 500 al día mientras trabajas).
Pero más tarde caí en la cuenta de que gracias al USB OTG podía renunciar al lector de código de barras incorporado…
…y…
…reemplazarlo por un lector de código de barras USB… ¡Ahorro a la vista!
Como te decía al principio, el USB OTG es un sistema que permite que un dispositivo con conexión USB se comporte como esclavo o como maestro dependiendo del cable que se conecte. Bien, pues lo que ocurre es que un dispositivo compatible con USB OTG se comporta habitualmente como esclavo pero si le conectas un cable concreto (que se llama cable adaptador USB OTG) pasa a comportarse como maestro.
Guapo, ¿no?
De repente puedes enchufar al móvil un teclado o un ratón y funciona.
Sí.
Va bien.
Sólo necesitas un móvil compatible con USB OTG. Te tengo que decir que, ni mucho menos, todos los móviles lo son y es realmente difícil saber si un dispositivo lo es o no si no lo pruebas. Por algún motivo, este sistema no es demasiado popular y no hay mucha información al respecto, aunque también es cierto que cada vez está más extendido y más modelos de teléfono lo soportan.
Por supuesto, también le podrás enchufar a tu móvil un lector láser USB de código de barras.
No hace falta que te explique más ¿verdad?
Nota: Inicialmente no pensaba ponerte un vídeo, sólo la explicación, pero ayer se me ocurrió que un vídeo sería bastante más claro y pensé en hacerte uno. Estuve toda la tarde atendiendo a un cliente en sus instalaciones así que no tenía disponible prácticamente nada pero:
- Mi amiga Gemma me dejó su móvil Sony (Sony y Samsung son los que tienen más modelos de móviles compatibles con USB OTG)
- Llevaba un pequeño mouse USB de repuesto
- En un bazar, a 50 metros escasos, vendían cables USB OTG (Yo te dejo un enlace debajo del vídeo por si quieres comprar un cablecito de estos en Amazon)
- Mi iPhone NO compatible con USB OTG serviría para grabar el vídeo
Así que se alinearon los planetas y te hice un vídeo rápido e improvisado para que veas un ejemplo simple de cómo funciona esto del USB OTG.
Bueno, al final, con poco más de 100 euritos lo tuvimos resuelto (Móvil «malo»+lector de código de barras USB+adaptador USB OTG)
A ver, te dejo un enlace por si quieres comprar un cable como este por 4 euros y pico en Amazon. Es un enlace de afiliado, lo que quiere decir que si acabas haciendo una compra en Amazon (en menos de 24 horas) y has entrado desde este enlace, un pequeño porcentaje de lo que pagas a Amazon, éste me lo abona a mi en concepto de comisión. Al parecer, este tema de los enlaces de afiliados es algo sensible y no está de más explicarlo claramente. Pues ya de paso te digo que no, que esa comisión no me va a servir para cubrir costes del blog ni nada de eso; el blog sigue y con sus costes estarán cubiertos mientras yo tenga tiempo de escribir y me lo pase bien haciéndolo, porque lo que cubre los costes del hosting y todo eso son los mails tan chulos que me enviáis prácticamente a diario (increíble, no me lo esperaba…); sin embargo, si resulta que finalmente me llega algún dinerillo porque alguno de vosotros usa este enlace para comprar, oye, pues me da una alegría muy grande, no te voy a engañar.
Bueno, el enlace en cuestión, que con tanto rollo se me va a olvidar: Gembird A-OTG-AFBM-00 – Adaptador cable USB, 15 cm, color negro
Ale, a compartirlo en redes sociales con la gente que conocéis, que vean que pueden enchufarle cacharros a su móvil… ¡Gracias gente ;)!
Transcripción del vídeo:
Aquí tengo un móvil Sony y una alfombrilla de ratón que me va a ayudar a que la demo se vea mejor. Básicamente necesitas el adaptador de micro-USB a USB OTG; lo enchufas en el puerto micro USB de tu móvil (aquí ves que es un modelo de primera marca).
Voy a utilizar un pequeño mouse que tengo de emergencia para cuando se acaban las pilas del otro y conectamos al puerto USB. Como puedes ver con la luz del sensor óptico del mouse, ya está percibiendo energía por parte del teléfono, ya lo puedes utilizar.
Hacemos scroll y algunos clics y ya ves que se puede utilizar perfectamente el ratón como un periférico más del teléfono móvil. De la misma forma, igual que estamos utilizando el ratón, esto puede tener un montón de aplicaciones como conectar una memoria externa, un disco duro externo, un teclado o un lector de código de barras que es justamente lo que te cuento en el blog.
Bueno, ya tienes una idea clara de cómo se hace y qué puedes hacer tú ¿verdad?
¡Adiós! Te veo en el blog
3 respuestas a «Haciendo el MacGyver con USB OTG»
Información Bitacoras.com
Valora en Bitacoras.com: Ya sabes que un Technology Exploiter básicamente se dedica a aprovechar al máximo la tecnología disponible en un entorno para resolver una necesidad concreta pero, a veces, un cliente muy optimista o una situación complic…
[…] ya te lo expliqué en el post sobre el USB OTG. Si quieres conectar un lector de código de barras a tu teléfono móvil o similar, vuelve a leer […]
Como meto información a un código de barras, ejem. precio del producto? Cómo leerlo con mi iPhone? Quiero tener toda la información del producto en el código de barras para después leerlo con un IPhone y mandarlo imprimir para hacer la nota de venta, puedo hacerlo así??