Wenn Sie in Ihrem bequemen Stuhl in Ihrem coolen, modernen Büro sitzen, ist alles, was Sie von Ihrer Lieblingsroutine ablenkt, wirklich ärgerlich. Einige mögen es als Zeichen von Trägheit bezeichnen, aber tatsächlich bezieht es sich auf die Optimierung von Arbeitsabläufen. Unsere Computer und Smartphones bieten uns viele Möglichkeiten, viel zu tun, ohne unseren Platz zu verlassen. Software als solche kümmert sich um unsere Kontrolle über die physische Welt, indem sie nur klickt und tippt. In der Tat schreitet die Digitalisierung voran: Was Menschen in der Vergangenheit jahrhundertelang mit ihren Muskeln zu tun hatten, konnte heute dank zahlreicher ferngesteuerter Gizmos entweder mit einem Sprachbefehl oder einer Textnachricht erreicht werden. Und das IoT spielt dabei aus einem bestimmten Grund eine entscheidende Rolle.
Originalartikel -
Smart Lock: Warum Faultier ein Treiber des IoT-Fortschritts istLassen Sie uns helfen, Türschlösser zu entwickeln
Ergreifen Sie eine so banale Aktion wie das Öffnen einer Tür. Über Jahrtausende hinweg wurde nichts radikal Neues mit einem grundlegenden Design von Türen erfunden. Weder unterschiedliche Formen noch angewandte Materialien können die Hauptfunktion einer Tür verändern - die Kontrolle jedes Ein- und Ausgangs. Was sich in Bezug auf die Türfunktionalität wirklich geändert hat, ist die Methode zum Befestigen geöffneter und geschlossener Türen. Die Menschen erfanden die Türschlösser in verschiedenen Designs, angefangen von primitiven Riegeln bis hin zu elektronischen High-Tech-Schlössern mit Gesichtserkennungssystemen. Die Komplexität jedes zeitgenössischen Designs eines Türschlosses hängt von einem bestimmten Verfahren zum Betreten eines Raums ab: Ein Banktresor muss schwieriger zugänglich sein als ein College-Campus.
Eine logische Idee, eine einfache IoT-
Lösung für ein Bürotürschloss zu erstellen, ist es, früher oder später an das IoT-Entwicklungsunternehmen zu denken. Wenn die Anzahl der Mitarbeiter in Dutzenden zählt, kann ein gewöhnlicher Kartenleser im Türschloss einigen vergesslichen Entwicklern einen Streich spielen, die ihre Schlüsselkarten von Zeit zu Zeit zu Hause gelassen haben. Da ihre Kollegen es leid sind, ihre Arbeit zu unterbrechen, um nur beim Öffnen einer Bürotür zu helfen, wird die Aufgabe, eine relevante IoT-Lösung zu erstellen, zu einer echten Motivation. Die kreativen Menschen können jedoch jederzeit jede Situation ausnutzen, um Spaß zu haben und gleichzeitig ihre Kreativität zu zeigen. Daher verwandelte Indeema ein ganz normales Entwicklungsverfahren zum Erstellen einer Smart-Lock-Anwendung in eine lustige Herausforderung, die durch einen weiteren Hackathon gelöst werden musste.
Jeder ist willkommen
Einer der größten Vorteile der IoT-Lösungen, wenn sie als Aufgaben für Hackathons dargestellt werden, ist die Vielfalt der Spezialisten, die an einer gemeinsamen Entwicklung beteiligt sein können. Im Gegensatz zu vielen anderen rein Software-Herausforderungen erfordert das IoT immer Hardwarespezifikationen. In der IoT-Umgebung können die Hardwarekomponenten häufig den Ton für das gesamte Projekt angeben. Deshalb könnte der Smart Lock Hackathon ohne Hardware-Ingenieure kaum auskommen. Und die Hardware-Spezifikationen verschiedener freundlicher Unternehmen wurden von Indeema eingeladen - je mehr desto besser. Und sie kamen an.
Natürlich waren APIs, Backend, eine Website und eine spezielle Software, die die ausgewählte Hardware bedienen konnte, für die Programmierer verantwortlich, die beim Hackathon die Mehrheit bildeten. Darüber hinaus wurden die Designer eingeladen, eine attraktive und benutzerfreundliche Oberfläche zu erstellen. Jede IoT-Lösung kann das Testen nicht vermeiden. Deshalb haben Tester und QS-Spezifikationen an dem Prozess teilgenommen. Außerdem nahmen die anderen verschiedenen Teammitglieder wie Vertriebsleiter, Vermarkter und sogar Buchhalter an der Veranstaltung teil, um das Brainstorming zu verstärken, da die Generierung neuer Ideen eher einer natürlichen Vorstellungskraft als einer bestimmten Kompetenz gehört. Hackathon ist übrigens eine besondere Klasse der Entwicklertreffen, bei denen jeder neue Dinge ausprobieren und etwas anderes anbieten kann, ohne Rücksicht auf ein bestimmtes Fachwissen. Mit anderen Worten, Hackathons wurden erfunden, um die Kreativität in jeder Form zu fördern.

Warum Hackathon?
Die explosive Kombination aus Kaffee, Süßigkeiten, „Red Bull“ und dem wahren Antrieb des Wettbewerbs während der gesamten 24-Stunden-Nonstop-Sitzung macht jeden Hackathon zu einem außergewöhnlichen Ereignis für die Entwickler, deren Routine regelmäßig auf gute Weise unterbrochen werden sollte. Starke positive Emotionen und eine äußerst informelle Atmosphäre helfen den Menschen, viele Probleme aus einem anderen Blickwinkel anzugehen. Darüber hinaus können Hackathons die Distanz zwischen Junioren und Senioren, Top-Managern und Mitarbeitern auf niedrigerer Ebene beseitigen, sodass das gesamte Team ohne gewöhnliche Unterordnung an einer gemeinsamen Aufgabe arbeitet. Ähnliches wurde in der Antike praktiziert, als die Adligen einmal im Jahr besondere Feste für ihre Diener veranstalteten. Bei solchen Ereignissen wurden die Diener ihren Herren gleichgestellt, die sie bei Namen ohne Titel nannten.
Unnötig zu erwähnen, dass die sehr psychologische Emanzipation bei Hackathons einige kreative Fähigkeiten aufdecken kann, die verborgen bleiben, wenn die alltäglichen Workflows ausgeführt werden. Wenn ja, fragen sich manche, warum nicht so oft wie möglich Hackathons veranstalten? Das Argument dagegen liegt in der menschlichen Psychologie: Wir gewöhnen uns an alles, was regelmäßig praktiziert wird. Sowohl eine stimulierende Wirkung als auch eine frische Erfahrung können durch das Wiederauftreten schnell ausgeglichen werden. Deshalb genießen wir Ferien, die nur wenige Male im Jahr stattfinden.
Ausgangsbedingungen und Hardware
Ein gewöhnliches elektromagnetisches Türschloss wird in vielen Bürogebäuden als Standardlösung verwendet. Es ist normalerweise geschlossen, und um es zu öffnen, sollten Sie entweder eine RFID-Karte von außen (die Schlüsselkarte, die von den Entwicklern häufig zu Hause gelassen wird) oder einen Knopf von innen verwenden. Ein einfaches Relais könnte an den Knopf angeschlossen werden, damit das Schloss für eine Weile geöffnet wird. Das Relais sollte seinerseits von einem Mikrocontroller (oder einem Mikrocomputer) gesteuert werden, der relevante Signale sendet. Raspberry Pi wurde als Mikrocontroller ausgewählt, der das Relais nach Überprüfung der Anforderungen einer Clientanwendung steuern soll. Die oberste Entität in einem solchen Arbeitsalgorithmus ist eine Anwendung, die sowohl mit iOS- als auch mit Android-Betriebssystemen arbeitet. Daher impliziert das gesamte Smart Lock-Projekt eine komplexe Hardware-Software-IoT-Lösung, die verschiedene Technologien wie Web-Backend, Clients für iOS und Android, eingebettete Teile in Linux sowie verschiedene Frameworks und Raspberry Pi-spezifische Bibliotheken integriert.
Wie die Anwendung funktioniert

Das gesamte System besteht aus 3 kundenspezifisch entwickelten Anwendungen:
- iOS-Client
- Android-Client
- Server
und ein Authentifizierungssystem eines Drittanbieters - Redmine.
Um die Anwendung nicht mit redundanten Funktionen zu überlasten, wurden nur drei Bildschirme für die Benutzeroberfläche entwickelt: der Hauptbildschirm, der Anmeldebildschirm und die Einstellungen. Der Smartphone-basierte Türöffner sollte einfach sein, oder? Die Anwendung ist eine Server-Client-Lösung, die die Authentifizierung von Drittanbietern über die Redmine-Anmeldeinformationen des Unternehmens verwendet, um die Sicherheit zu gewährleisten. Nach dem Anmelden kann ein einzelner API-Schlüssel eines Redmine-Benutzers zum Senden an einen Server generiert werden. Der Server überprüft einen bestimmten API-Schlüssel, um herauszufinden, ob er auf die Firma Redmine zugreifen kann oder nicht, und lässt daher das Türschloss öffnen oder nicht. Die clientseitige Anwendung für iOS ist beispielsweise eine einfache, in Swift geschriebene App, bei der 3D Touch verwendet wird, um den Zugriff zu erleichtern. Die Funktion, die ein gelegentliches Öffnen der Tür verhindert, wenn sich ein Benutzer weit vom Büro entfernt befindet, bietet eine zusätzliche Popup-Tabelle, in der ein Benutzer die Absicht bestätigen kann, eine Tür zu öffnen. Die Android-Version der Anwendung unterscheidet sich hinsichtlich einer allgemeinen Funktionalität nicht von der iOS-Version. Daher bietet die endgültige IoT-Lösung Benutzern die Möglichkeit, ein Büro mit nur wenigen Fingertipps auf ihrem Smartphone zu betreten.
Herausforderungen und Nuancen der Entwicklung
Python wurde als Programmiersprache eines Serverteils der Anwendung ausgewählt. Die Wahl wurde durch mehrere Überlegungen motiviert, die sich sowohl auf einen recht engen 24-Stunden-Zeitraum des Hackathons als auch auf den ARM-Prozessor der eingebetteten Zielplattform bezogen. Letzteres ist x86-Prozessoren in Bezug auf Kompilierung und Bereitstellung etwas unterlegen. Aus diesem Grund wurde Python als interpretierte Programmiersprache auf hoher Ebene angewendet, mit der Code sowohl auf einer Zielplattform als auch auf einer Hostplattform bearbeitet werden kann, um die Anwendung sofort zum Testen auszuführen. Ein weiterer Grund für die Verwendung von Python war die Standardbibliothek, die leicht mit in C geschriebenen Modulen erweitert werden konnte, um auf verschiedene Betriebssystemfunktionen zusammen mit einem Aufrufsystemdienst zuzugreifen. Außerdem wird eine Python-App als Linux-Dienst ausgeführt, wenn das Betriebssystem verschiedene Funktionen bereitstellt, z. B. Ausführen einer App beim Start, Neustart beim Absturz einer App, Ausführen einer App als Hintergrundprozess usw. Die Vorteile von Python haben es daher ermöglicht, die App auf einer Zielplattform bereitzustellen, ohne dass zuvor ein Quellcode in Maschinenanweisungen kompiliert werden musste.
Hier ist ein Hauptschema für unser Projekt.

Darüber hinaus wurde das Flask-Webmikro-Framework für die Bereitstellung der Smart Lock-Anwendung angewendet, da das Framework minimale Abhängigkeiten sowie minimierte Anforderungen der Bibliotheken von Drittanbietern zum Ausführen von Server-Apps aufweist.
In Bezug auf einige im Programm verwendete spezifische Programmiermittel wurde die RPi.GPIO-Bibliothek angewendet, um die Steuerung der Pin-Ausgänge auf der Zielplatine Raspberry Pi 3 zu ermöglichen. Die Bibliothek bietet eine einfache Möglichkeit, physische Pins auf der Platine in zu manipulieren nur ein paar Codezeilen.
Zurück zum Faultier
Trotz zahlreicher Vorurteile ist das „natürliche“ menschliche Faultier nicht immer giftig, wenn es um technologischen Fortschritt geht. Hat die Smart Lock-Anwendung Faultier im Hintergrund? Es ist fraglich, da gerade der dynamische Hackathon eine so tragfähige IoT-Lösung hervorgebracht hat. Die Smart Lock-Anwendung als direktes Ergebnis dieser nächtlichen Entwicklungssitzung kann jedoch zu den längsten ununterbrochenen Perioden führen, in denen Indeema-Entwickler ihre Stühle nicht mehr verlassen müssen, um ihre vergesslichen Kollegen hereinzulassen. Außerdem gibt es viele andere Arten von körperlicher Aktivität als das Öffnen einer Bürotür. Eines ist sicher: Die Arbeitseffizienz der Entwickler wird unweigerlich steigen. Daher werden sowohl Hackathons als auch Smart Lock IoT-Lösungen dringend empfohlen. Und natürlich ist Indeema immer froh, den
Code der
App mit jedem interessierten IoT- Experten
(GitHub) zu teilen.