Cuando estás sentado en tu cómoda silla en tu moderna y moderna oficina, cualquier cosa que te distraiga de tu rutina favorita es realmente molesto. Algunos pueden llamarlo un signo de pereza, pero de hecho, se relaciona con la optimización de los flujos de trabajo. Nuestras computadoras y teléfonos inteligentes nos brindan muchas oportunidades para hacer mucho sin salir de nuestro lugar. El software como tal se preocupa por nuestro control sobre el mundo físico simplemente haciendo clic y tocando. De hecho, la digitalización avanza: lo que la gente ha tenido que ver con sus músculos durante siglos en el pasado, podría hacerse con un comando de voz o un mensaje de texto hoy gracias a numerosos artilugios controlados a distancia. Y el IoT juega un papel crucial en todo esto por una razón.
Artículo original -
Smart Lock: por qué la pereza es un motor del progreso de IoTAyudemos a las cerraduras de las puertas a evolucionar
Realice una acción tan mundana como abrir una puerta. Nada radicalmente nuevo se ha inventado con un diseño básico de puertas durante milenios. Ni las formas diferentes ni los materiales aplicados pueden alterar la función principal de cualquier puerta: controlar cada entrada y salida. Lo que realmente ha cambiado con respecto a la funcionalidad de la puerta es el método para arreglar las puertas abiertas y cerradas. La gente inventó las cerraduras de las puertas de varios diseños, desde cerraduras primitivas hasta cerraduras electrónicas de alta tecnología con sistemas de reconocimiento facial. La complejidad de cada diseño contemporáneo de una cerradura de puerta depende de un procedimiento particular para ingresar a una habitación: la bóveda de un banco debe ser más difícil de acceder que un campus universitario.
Una idea bastante lógica para crear una
solución de IoT simple para una cerradura de puerta de oficina es tener en cuenta la
empresa de desarrollo de IoT tarde o temprano. Cuando el número de empleados cuenta en docenas, un lector de tarjetas ordinario en la cerradura de la puerta puede engañar a algunos desarrolladores olvidadizos que solían dejar sus tarjetas en casa de vez en cuando. Dado que sus colegas están cansados de interrumpir su trabajo solo por ayudar a abrir la puerta de una oficina, la tarea de crear una solución de IoT relevante se convierte en una verdadera motivación. Sin embargo, las personas creativas siempre pueden explotar cualquier situación para divertirse y revelar su creatividad al mismo tiempo. Por lo tanto, Indeema transformó un procedimiento de desarrollo bastante ordinario para crear una aplicación de bloqueo inteligente en un desafío divertido que se resolvería a través de otro Hackathon.
Todos son bienvenidos
Una de las mayores ventajas de las soluciones de IoT, cuando se representan como tareas para Hackathons, es la diversidad de especialistas que pueden participar en un desarrollo colaborativo. A diferencia de muchos otros desafíos puramente de software, el IoT siempre requiere especificaciones de hardware. En el entorno IoT, los componentes de hardware a menudo pueden establecer el tono para todo el proyecto. Es por eso que el Smart Lock Hackathon difícilmente podría funcionar sin ingenieros de hardware. Y las especificaciones de hardware de varias compañías amigables fueron invitadas por Indeema: cuanto más, mejor. Y ellos llegaron.
Por supuesto, las API, el backend, un sitio web y un software específico que podría servir al hardware seleccionado estaban a cargo de los programadores que constituían la mayoría en el Hackathon. Además, se invitó a los diseñadores a crear una interfaz atractiva y fácil de usar. Cualquier solución de IoT no puede evitar las pruebas, es por eso que los probadores y las especificaciones de control de calidad participaron en el proceso. Además, los otros miembros del equipo, como gerentes de ventas, vendedores e incluso contadores, participaron en el evento para reforzar la lluvia de ideas porque la generación de ideas nuevas pertenece a una imaginación más bien natural que a una competencia particular. Por cierto, Hackathon es una clase especial de reuniones de desarrolladores donde todos pueden probar cosas nuevas y ofrecer algo diferente sin tener en cuenta ninguna experiencia específica. En otras palabras, los Hackathons se inventaron para impulsar la creatividad en cualquier forma que pueda tomar.

¿Por qué hackathon?
La combinación explosiva de café, dulces, "Red Bull" y el verdadero impulso del concurso durante toda la sesión de 24 horas sin parar hacen que cualquier Hackathon sea un evento extraordinario para los desarrolladores cuya rutina debe interrumpirse periódicamente de una buena manera. Las fuertes emociones positivas junto con una atmósfera extremadamente informal ayudan a las personas a abordar muchos problemas desde un ángulo diferente. Además, los Hackathons pueden eliminar la distancia entre juniors y seniors, altos directivos y personal de nivel inferior, haciendo que todo el equipo trabaje en una tarea conjunta sin subordinación ordinaria. Algo remotamente similar se practicaba en la antigüedad cuando los nobles organizaban fiestas especiales para sus sirvientes una vez al año. En tales eventos, los sirvientes se volvieron iguales a sus amos llamándolos por nombres sin títulos.
No es necesario decir que la emancipación psicológica que tiene lugar en Hackathons puede revelar algunas capacidades creativas que permanecen ocultas cuando se ejecutan los flujos de trabajo mundanos. Si es así, algunos pueden preguntar, ¿por qué no organizar Hackathons con la mayor frecuencia posible? El argumento en contra radica en la psicología humana: nos estamos acostumbrando a todo lo que se practica regularmente. Tanto un efecto estimulante como una experiencia fresca pueden compensarse rápidamente con la recurrencia. Es por eso que disfrutamos las vacaciones que ocurren solo unas pocas veces al año.
Condiciones iniciales y hardware
Una cerradura de puerta electromagnética común se utiliza como solución estándar en muchos edificios de oficinas. Normalmente está cerrado, y para abrirlo, debe usar una tarjeta RFID desde el lado externo (la tarjeta clave que los desarrolladores dejan en casa) o un botón desde el lado interno. Se podría conectar un simple relé al botón para que la cerradura se abra por un tiempo. El relé a su vez debe ser controlado por un microcontrolador (o una micro computadora) que envía señales relevantes. Se eligió Raspberry Pi como el microcontrolador que debe controlar el relé después de una verificación de las solicitudes de una aplicación cliente. La entidad principal en dicho algoritmo de trabajo es una aplicación que funciona con los sistemas operativos iOS y Android. Por lo tanto, todo el proyecto de bloqueo inteligente implica una solución compleja de IoT de hardware y software que integra varias tecnologías como back-end web, clientes para iOS y Android, parte integrada en Linux, así como varios marcos y bibliotecas específicas de Raspberry Pi.
Como funciona la aplicación

Todo el sistema consta de 3 aplicaciones desarrolladas a medida:
- cliente iOS
- Cliente de Android
- Servidor
y un sistema de autenticación de terceros: Redmine.
Para no sobrecargar la aplicación con funciones redundantes, solo se desarrollaron 3 pantallas para su interfaz de usuario: la pantalla principal, la pantalla de inicio de sesión y la configuración. El abridor de puerta remoto basado en teléfono inteligente debería ser simple, ¿verdad? La aplicación es una solución servidor-cliente que utiliza la autenticación de terceros a través de las credenciales de Redmine de la compañía, ya que la seguridad es la más importante. Después de iniciar sesión, se puede generar una clave API individual de un usuario de Redmine para enviar a un servidor. El servidor verifica una clave API particular para determinar si puede acceder a la empresa Redmine o no, por lo tanto, permite abrir la cerradura de la puerta o no. La aplicación del lado del cliente para iOS, por ejemplo, es una aplicación simple escrita en Swift donde 3D Touch está involucrado para facilitar el acceso. La característica que evita la apertura ocasional de una puerta cuando un usuario está lejos de la oficina proporciona una mesa emergente adicional donde un usuario puede confirmar la intención de abrir una puerta. La versión de Android de la aplicación no difiere de la de iOS con respecto a una funcionalidad general. Por lo tanto, la solución final de IoT brinda a los usuarios la capacidad de ingresar a una oficina con solo un par de toques en sus teléfonos inteligentes.
Desafíos y matices del desarrollo.
Python fue elegido como lenguaje de programación de una parte del servidor de la aplicación. La elección fue motivada por varias consideraciones relacionadas tanto con un período bastante apretado de 24 horas del Hackathon como con el procesador ARM de la plataforma de destino integrada. Este último es un poco inferior a los procesadores x86 en términos de compilación y despliegue. Es por eso que Python como un lenguaje de programación de alto nivel interpretado que permite editar código tanto en una plataforma de destino como en un host, se aplicó para ejecutar la aplicación inmediatamente para la prueba. Otra razón para usar Python fue su biblioteca estándar que se podía ampliar fácilmente con módulos escritos en C para acceder a varias funciones del sistema operativo junto con un servicio de sistema de llamadas. Además, una aplicación de Python se ejecuta como un servicio de Linux cuando el sistema operativo proporciona varias funciones, como ejecutar una aplicación en el inicio, reiniciar cuando una aplicación se bloquea, ejecutar una aplicación como un proceso en segundo plano, etc. Por lo tanto, las ventajas de Python han proporcionado el despliegue de la aplicación en una plataforma de destino sin una compilación preliminar de un código fuente en las instrucciones de la máquina.
Aquí hay un esquema principal para nuestro proyecto.

Además, el micro-marco web Flask se aplicó para implementar la aplicación Smart Lock, ya que el marco tiene dependencias mínimas junto con requisitos mínimos de las bibliotecas de terceros para ejecutar aplicaciones de servidor.
En términos de algunos medios específicos de programación utilizados en el proyecto, se aplicó la biblioteca RPi. GPIO para proporcionar control sobre las salidas de pines en la placa de destino Raspberry Pi 3. La biblioteca proporciona una forma directa de manipular pines físicos en la placa en solo unas pocas líneas de código.
De vuelta a la pereza
A pesar de los numerosos prejuicios, la pereza humana "natural" no siempre es tóxica cuando se trata de un progreso tecnológico. ¿La aplicación Smart Lock tiene pereza en su fondo? Es cuestionable ya que solo el dinámico Hackathon ha generado una solución IoT tan viable. Sin embargo, la aplicación Smart Lock como resultado directo de esa sesión de desarrollo de toda la noche puede llevar a los períodos ininterrumpidos más largos cuando los desarrolladores de Indeema ya no necesitan dejar sus sillas para dejar entrar a sus olvidados colegas. Además, hay muchos otros tipos de actividad física además de abrir la puerta de una oficina. Una cosa es segura: la eficiencia de trabajo de los desarrolladores crecerá inevitablemente. Por lo tanto, tanto Hackathons como las soluciones IoT de bloqueo inteligente son muy recomendables. Y, por supuesto, Indeema siempre se complace en compartir el
código de la
aplicación con todos los profesionales de IoT interesados (GitHub) .