Smart Lock: por qué la pereza es un motor del progreso de IoT

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 IoT

Ayudemos 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) .

Source: https://habr.com/ru/post/441294/


All Articles