Bachelorarbeit, 2015
86 Seiten, Note: 1,0
1 Einleitung
1.1 Voraussetzungen
1.2 Motivation
1.3 Zielsetzung
2 Theoretische Grundlagen Software
2.1 Hypertext Transfer Protrocol
2.1.1 Überblick
2.1.2 HTTP-Request
2.1.3 HTTP-Response
2.1.4 Datenübertragung
2.2 Eingesetzte Programmiersprachen
2.2.1 HTML CSS JavaScript
2.2.2 C / C++
2.2.3 PHP: Hypertext Preprocessor
2.2.4 Swift
3 Theoretische Grundlagen Hardware
3.1 Physical Computing Plattform - Arduino
3.2 Einplatinencomputer - Raspberry Pi
3.3 Staubsaugroboter Roomba
3.3.1 Überblick SCI
3.3.2 SCI Konnektor
3.3.3 SCI Protokoll
4 Theoretische Grundlagen iOS Entwicklung
4.1 iOS Design Pattern
4.2 Model View Controller
4.2.1 Model
4.2.2 View
4.2.3 Controller
4.3 Target-Action
4.4 Delegation
5 Entwicklung der Einzelsysteme
5.1 Türsteuerung Arduino
5.1.1 Zielsetzung
5.1.2 Problemstellung
5.1.3 Umsetzung
5.2 Lichtsteuerung Raspberry Pi
5.2.1 Zielsetzung
5.2.2 Problemstellung
5.2.3 Umsetzung
5.3 Steuerung Staubsaugroboter Roomba
5.3.1 Problemstellung
5.3.2 Umsetzung
6 Entwicklung der App HomeControl
6.1 Navigation
6.2 Gestaltung der View Objekte mittels Interface Builder
6.3 Das Model Objekt
6.3.1 Die Klassen RaspberryPi und Light
6.3.2 Die Klasse Arduino
6.3.3 Die Klasse Roomba
6.4 Controller Objekte
6.4.1 Die Klasse RaspberryPiViewController
6.4.2 Die Klasse ArduinoViewController
6.4.3 Die Klasse RoombaViewController
7 Schlussbetrachtung
7.1 Zusammenfassung
7.2 Fazit
7.3 Ausblick
Das Hauptziel dieser Bachelorarbeit ist die Entwicklung einer zentralen iOS-Applikation namens „HomeControl“, die drei zuvor unabhängig voneinander funktionierende Hausautomationssysteme – eine Arduino-basierte Türsteuerung, eine Raspberry Pi-basierte Lichtsteuerung und einen Roomba-Staubsaugroboter – über eine einheitliche Oberfläche integriert. Die Forschungsfrage untersucht dabei, wie eine solche zentrale Steuerung unter Verwendung moderner Webprotokolle und der Programmiersprache Swift ohne Anpassungen an den Einzelsystemen realisiert werden kann.
6.2 Gestaltung der View Objekte mittels Interface Builder
Die Gestaltung der visuellen Repräsentation der Anwendung ist theoretisch mit reinem Programmcode möglich. Es gestaltet sich jedoch in der Praxis als umständlich, da zum Erhalt von visuellem Feedback jeweils das gesamte Programm kompiliert werden müsste. Innerhalb der IDE Xcode gibt es hierfür ein Unterprogramm namens Interface Builder, bei dem dies durch einfache Bedienung mittels Drag and Drop mit sofortiger Ausgabe des Ergebnisses auf einer Vielzahl an unterstützten Auflösungen möglich ist. Das damit erstellte Design wird in einer Datei namens Main.storyboard gespeichert. Abbildung 25 (s.S. 39) zeigt das Main.storyboard der Anwendung Home Control.
Mit der Veröffentlichung des ersten iPhone im Jahre 2007 befindet sich dieses bereits in der sechsten Generation. Gleichzeitig ist jede iOS Anwendung auch auf ebenfalls schon in vielen Variationen vorhanden iPads, lauffähig. Wenn der Entwickler eine große Anzahl an Gerätetypen unterstützen möchte, hat dies zur Folge, dass er sich mit den unterschiedlichen Auflösungen und Bildformaten beschäftigen muss. Interface Builder bietet hierfür ein Konzept namens Contraints. Der Trick hierbei ist, dass die Koordinaten nicht absolut, sondern in Beziehung zueinander bzw. zu den physischen Begrenzungen des Bildschirms festgelegt werden. So kann beispielsweise die Position eines Buttons durch Contraints so festgelegt werden, dass sich dieser immer im Bildschirmmittelpunkt befindet. Weiterhin werden View Objekte hierarchisch strukturiert. Hierfür dienen etwa Containerobjekte, deren einziger Zweck es ist Objekte, zu gruppieren. Die nun erzeugten View Objekte lassen sich mittels der Werkzeuge Identity Inspector, Attribute Inspector, Size Inspector und Connections Inspector weiter vorkonfigurieren. Mittels des Identity Inspector kann einem spezifischen View Objekt eine Klasse in Form einer .swift Datei zugewiesen werden. In dieser sind weitere Konfigurationen durch Programmcode möglich. Um die Gestaltung der View Objekte so einfach wie möglich zu gestalten, gibt es den Attribute Inspector, bei dem dies über eine Tabelle mit Auswahlmöglichkeiten für die unterschiedlichen Eigenschaften möglich ist.
1 Einleitung: Beschreibt die Motivation zur Entwicklung einer zentralen Haussteuerungs-App, um bestehende autonome Einzelsysteme ohne Modifikationen zu vereinen.
2 Theoretische Grundlagen Software: Erläutert die notwendigen Software-Protokolle wie HTTP sowie die Programmiersprachen HTML, CSS, JavaScript, PHP und Swift für die Kommunikation und App-Entwicklung.
3 Theoretische Grundlagen Hardware: Stellt die eingesetzten Hardwarekomponenten vor, insbesondere Arduino als Physical Computing Plattform, den Raspberry Pi und den Roomba-Staubsaugroboter mit seinem SCI-Protokoll.
4 Theoretische Grundlagen iOS Entwicklung: Vermittelt die iOS-Design-Grundlagen wie MVC (Model-View-Controller), Target-Action und Delegation als Basis für die App-Struktur.
5 Entwicklung der Einzelsysteme: Beschreibt die Zielsetzung, Problemstellung und Umsetzung der drei Einzelsysteme (Türsteuerung, Lichtsteuerung, Saugroboter) vor deren Integration.
6 Entwicklung der App HomeControl: Detailliert die konkrete Implementierung der App inklusive Navigation, Gestaltung über Interface Builder und die Logik der Modell- und Controller-Klassen.
7 Schlussbetrachtung: Fasst die Ergebnisse zusammen, diskutiert kritisch die Sicherheitsaspekte der Systeme und gibt einen Ausblick auf zukünftige Entwicklungen wie Apple HomeKit.
Hausautomation, iOS, App-Entwicklung, Swift, HomeControl, Arduino, Raspberry Pi, Roomba, HTTP, MVC, Interface Builder, Physical Computing, Internet of Things, Mobile Steuerung, Webserver
Die Arbeit befasst sich mit der Entwicklung einer zentralen iOS-App namens „HomeControl“, die verschiedene bereits vorhandene, autonom arbeitende Hausautomationssysteme über eine gemeinsame Oberfläche steuerbar macht.
Die zentralen Themen umfassen die hardwarenahe Programmierung (Arduino, Raspberry Pi), die Implementierung von Netzwerkprotokollen (HTTP), das Design von iOS-Applikationen unter Nutzung von Apple-Frameworks sowie Sicherheitsüberlegungen im Bereich Smart Home.
Das primäre Ziel ist es aufzuzeigen, wie unterschiedliche IoT-Systeme durch eine zentrale, intuitiv bedienbare App gesteuert werden können, ohne die bestehenden Einzelsysteme hardwareseitig anpassen zu müssen.
Es wird ein systematischer Entwicklungsansatz gewählt, der auf der Analyse der bestehenden Einzelsystem-Schnittstellen basiert und diese durch eine Implementierung nach dem MVC-Entwurfsmuster (Model-View-Controller) in eine iOS-Umgebung überführt.
Der Hauptteil gliedert sich in die detaillierte Beschreibung der Hardware-Einzelsysteme, die Konzeption der App-Architektur mittels MVC sowie die schrittweise Programmierung der Modell- und Controller-Objekte in der Sprache Swift.
Zu den prägenden Schlüsselwörtern gehören Hausautomation, iOS, Swift, HomeControl, Arduino, Raspberry Pi, Roomba, HTTP sowie das MVC-Design-Pattern.
HTTP dient als universelles, standardisiertes Kommunikationsprotokoll, das es ermöglicht, die unterschiedlichen Systeme (Arduino, Raspberry Pi, Roomba) über einfache Webanfragen im Netzwerk anzusteuern, was die Integration in eine App erheblich vereinfacht.
Die Arbeit reflektiert kritisch, dass die Sicherheit bei den gewählten Implementierungen eine untergeordnete Rolle spielt. Es wird aufgezeigt, dass offene Schnittstellen und unverschlüsselte Datenübertragung Angriffsflächen für Hacker bieten und für kommerzielle Anwendungen durch Verfahren wie HTTPS ergänzt werden müssten.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

