Smart Lock: pourquoi la paresse est un moteur de la progression de l'IoT

Lorsque vous êtes assis sur votre chaise confortable dans votre bureau moderne et cool, tout ce qui vous distrait de votre routine préférée est vraiment ennuyeux. Certains peuvent appeler cela un signe de paresse, mais en fait, cela concerne l'optimisation des flux de travail. Nos ordinateurs et smartphones nous offrent de nombreuses opportunités de faire beaucoup sans quitter notre place. Les logiciels en tant que tels se soucient de notre contrôle sur le monde physique en cliquant et en appuyant simplement. En effet, la numérisation avance: ce que les gens ont dû faire avec leurs muscles pendant des siècles dans le passé, pourrait se faire aujourd'hui avec une commande vocale ou un SMS grâce à de nombreux gadgets contrôlés à distance. Et l'IoT joue un rôle crucial dans tout cela pour une raison.

Article d'origine - Smart Lock: pourquoi la paresse est un moteur de la progression de l'IoT

Aidons les serrures de porte à évoluer


Prenez une action aussi banale que d'ouvrir une porte. Rien de radicalement nouveau n'a été inventé avec une conception de base des portes depuis des millénaires. Ni les différentes formes ni les matériaux appliqués ne peuvent altérer la fonction principale d'une porte - contrôler chaque entrée et sortie. Ce qui a vraiment changé en ce qui concerne la fonctionnalité des portes, c'est la méthode de fixation des portes ouvertes et fermées. Les gens ont inventé les serrures de porte de différents modèles, des pênes dormants primitifs aux serrures électroniques de haute technologie avec système de reconnaissance faciale. La complexité de chaque conception contemporaine d'une serrure de porte dépend d'une procédure particulière d'entrée dans une pièce: un coffre de banque doit être plus difficile d'accès qu'un campus universitaire.

Une idée assez logique pour créer une solution IoT simple pour une serrure de porte de bureau est de penser à la société de développement IoT tôt ou tard. Lorsque le nombre d'employés compte par dizaines, un lecteur de carte ordinaire dans la serrure de la porte peut jouer des tours à certains développeurs oublieux qui avaient l'habitude de laisser leurs cartes-clés à la maison de temps en temps. Étant donné que leurs collègues sont fatigués d'interrompre leur travail pour avoir simplement aidé à ouvrir une porte de bureau, la tâche de créer une solution IoT pertinente se transforme en véritable motivation. Cependant, les personnes créatives peuvent toujours exploiter n'importe quelle situation pour s'amuser et révéler leur créativité en même temps. Par conséquent, une procédure de développement assez ordinaire de création d'une application de verrouillage intelligent a été transformée par Indeema en un défi amusant à résoudre via un autre Hackathon.

Tout le monde est le bienvenu


L'un des plus grands avantages des solutions IoT, lorsqu'elles sont représentées comme des tâches pour les Hackathons, est la diversité des spécialistes qui peuvent être impliqués dans un développement collaboratif. Contrairement à de nombreux autres défis purement logiciels, l'IoT nécessite toujours des spécifications matérielles. Dans l'environnement IoT, les composants matériels peuvent souvent donner le ton à l'ensemble du projet. C'est pourquoi le Smart Lock Hackathon pourrait difficilement se passer d'ingénieurs hardware. Et les spécifications matérielles de diverses sociétés amies ont été invitées par Indeema - plus c'est mieux. Et ils sont arrivés.

Bien sûr, les API, le backend, un site Web et un logiciel spécifique pouvant servir le matériel sélectionné étaient tous en charge des programmeurs qui constituaient la majorité au Hackathon. De plus, les concepteurs ont été invités à créer une interface attrayante et conviviale. Toute solution IoT ne peut pas éviter les tests, c'est pourquoi les testeurs et les spécifications QA ont participé au processus. En outre, les autres membres de l'équipe, tels que les directeurs des ventes, les spécialistes du marketing et même les comptables, ont participé à l'événement afin de renforcer le remue-méninges, car la génération d'idées nouvelles appartient à une imagination plutôt naturelle qu'à une compétence particulière. Soit dit en passant, Hackathon est une classe spéciale de rencontres de développeurs où tout le monde peut essayer de nouvelles choses et offrir quelque chose de différent sans égard à une expertise spécifique. En d'autres termes, les Hackathons ont été inventés pour stimuler la créativité sous toutes ses formes.



Pourquoi hackathon?


La combinaison explosive de café, de bonbons, de «Red Bull» et de la véritable motivation du concours pendant toute la session non-stop de 24 heures fait de tout Hackathon un événement extraordinaire pour les développeurs dont la routine devrait être périodiquement interrompue de manière appropriée. De fortes émotions positives et une atmosphère extrêmement informelle aident les gens à résoudre de nombreux problèmes sous un angle différent. En outre, les Hackathons peuvent éliminer une distance entre les juniors et les seniors, les cadres supérieurs et le personnel de niveau inférieur, ce qui fait que toute l'équipe travaille sur une tâche commune sans subordination ordinaire. Quelque chose de semblable à distance était pratiqué dans les temps anciens lorsque les nobles organisaient des fêtes spéciales pour leurs serviteurs une fois par an. Lors de tels événements, les serviteurs sont devenus égaux à leurs maîtres en les appelant par des noms sans titre.

Inutile de dire que l'émancipation très psychologique qui a lieu aux Hackathons peut révéler certaines capacités créatives qui restent cachées lorsque les flux de travail banals s'exécutent. Si c'est le cas, certains peuvent demander, pourquoi ne pas organiser des Hackathons aussi souvent que possible? L'argument contre cela réside dans la psychologie humaine: on s'habitue à tout ce qui se pratique régulièrement. Un effet stimulant et une nouvelle expérience peuvent être rapidement compensés par la récurrence. C'est pourquoi nous profitons de vacances qui ne se produisent que quelques fois par an.

Conditions initiales et matériel


Une serrure électromagnétique ordinaire est utilisée comme solution standard dans de nombreux immeubles de bureaux. Il est normalement fermé, et pour l'ouvrir, vous devez utiliser soit une carte RFID du côté externe (la carte-clé même qui est souvent laissée par les développeurs à la maison) ou un bouton du côté interne. Un simple relais pourrait être connecté au bouton pour que la serrure soit ouverte pendant un certain temps. Le relais à son tour doit être contrôlé par un microcontrôleur (ou un micro-ordinateur) qui envoie les signaux pertinents. Raspberry Pi a été choisi comme microcontrôleur qui devrait contrôler le relais après une vérification des demandes d'une application cliente. L'entité supérieure dans un tel algorithme de travail est une application fonctionnant avec les systèmes d'exploitation iOS et Android. Par conséquent, l'ensemble du projet de verrouillage intelligent implique une solution IoT matériel-logiciel complexe qui intègre diverses technologies telles que le backend Web, les clients pour iOS et Android, une partie intégrée à Linux, ainsi que divers cadres et bibliothèques spécifiques au Raspberry Pi.

Fonctionnement de l'application




L'ensemble du système se compose de 3 applications développées sur mesure:

  • Client iOS
  • Client Android
  • Serveur

et un système d'authentification tiers - Redmine.

Afin de ne pas surcharger l'application avec des fonctions redondantes, seuls 3 écrans ont été développés pour son interface utilisateur: l'écran principal, l'écran de connexion et les paramètres. L'ouvre-porte à distance sur smartphone devrait être simple, non? L'application est une solution serveur-client qui utilise l'authentification tierce via les informations d'identification Redmine de l'entreprise, comme sécurité nous le plus important. Une fois connecté, une clé API individuelle d'un utilisateur Redmine peut être générée pour être envoyée à un serveur. Le serveur vérifie une clé API particulière pour déterminer s'il peut accéder à la société Redmine ou non, permettant ainsi d'ouvrir ou non la serrure de la porte. L'application côté client pour iOS, par exemple, est une application simple écrite en Swift où 3D Touch est impliqué pour faciliter l'accès. La fonction qui empêche l'ouverture occasionnelle d'une porte lorsqu'un utilisateur est loin du bureau fournit une table contextuelle supplémentaire où un utilisateur peut confirmer son intention d'ouvrir une porte. La version Android de l'application ne diffère pas de celle iOS en ce qui concerne une fonctionnalité générale. Par conséquent, la solution IoT finale offre aux utilisateurs la possibilité d'entrer dans un bureau avec seulement quelques pressions sur leurs smartphones.

Défis et nuances du développement


Python a été choisi comme langage de programmation d'une partie serveur de l'application. Le choix a été motivé par plusieurs considérations liées à la fois à une période de 24 heures assez serrée du Hackathon et au processeur ARM de la plate-forme cible intégrée. Ce dernier est un peu inférieur aux processeurs x86 en termes de compilation et de déploiement. C'est pourquoi Python en tant que langage de programmation de haut niveau interprété permettant d'éditer du code sur une plate-forme cible et une plate-forme hôte a été appliqué pour exécuter l'application immédiatement pour le test. Une autre raison d'utiliser Python était sa bibliothèque standard qui pouvait être facilement étendue avec des modules écrits en C pour accéder à diverses fonctionnalités du système d'exploitation ainsi qu'un service de système d'appel. En outre, une application Python s'exécute en tant que service Linux lorsque le système d'exploitation fournit diverses fonctionnalités telles que l'exécution d'une application au démarrage, le redémarrage lorsqu'une application est en panne, exécuter une application en tant que processus d'arrière-plan, etc. Ainsi, les avantages de Python ont fourni le déploiement de l'application sur une plate-forme cible sans compilation préalable d'un code source dans des instructions machine.

Voici un schéma principal pour notre projet.



En outre, le micro-framework Web Flask a été appliqué pour le déploiement de l'application Smart Lock car le framework a des dépendances minimales ainsi que des exigences minimisées des bibliothèques tierces pour exécuter les applications serveur.

En termes de certains moyens de programmation spécifiques utilisés dans le projet, la bibliothèque RPi. GPIO a été appliquée afin de fournir un contrôle sur les sorties de broches sur la carte cible Raspberry Pi 3. La bibliothèque fournit un moyen simple de manipuler les broches physiques sur la carte dans seulement quelques lignes de code.

Retour à la paresse


Malgré de nombreux biais, la paresse humaine «naturelle» n'est pas toujours toxique en matière de progrès technologique. L'application Smart Lock a-t-elle de la paresse en arrière-plan? Cela est discutable car seul le Hackathon dynamique a généré une telle solution IoT viable. Cependant, l'application Smart Lock résultant directement de cette session de développement toute la nuit peut conduire à des périodes ininterrompues plus longues où les développeurs d'Indeema n'ont plus besoin de quitter leurs chaises pour laisser entrer leurs collègues oublieux. En outre, il existe de nombreux autres types d'activité physique que d'ouvrir une porte de bureau. Une chose est sûre: l'efficacité de travail des développeurs va inévitablement croître. Par conséquent, les solutions Hackathons et Smart Lock IoT sont fortement recommandées. Et bien sûr, Indeema est toujours heureux de partager le code de l' application avec tous les professionnels de l'IoT intéressés (GitHub) .

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


All Articles