03 Infrastuktur - Seyit24/Course-Evaluation-System GitHub Wiki
Zur Lösung der Problemstellung wurde uns folgende Hardware bereitgestellt
Raspberry Pi:
Ein Raspberry Pi ist ein kleiner Einplatinen Computer, der als Heimcomputer zum Programmieren oder auch zum Experimentieren verwendet wird. Durch seine geringen Anschaffungskosten und die geringe Stromzufuhr eignet er sich perfekt als Steuereinheit für viele experimentelle Entwicklungsansätze. So sind Programmier- und Hardwarekenntnisse schnell zu erlernen. Die entwickelte Lösung soll letztendlich über den Raspberry Pi laufen. Zur Verfügung steht uns ein Raspberry Pi in der Version 3 B+. Auf diesem wurde das häufig verwendete Betriebssystem Raspbian installiert, das auf der Linux-Distribution Debian basiert. Von besonderem Interesse sind für uns die Netzwerkschnittstellen, die der Raspberry bietet. Dies sind bei dem Modell 3 B+: Bluetooth 4.2 BLE (Low Energy) WLAN: 2,4 oder 5 GHz (Adapter von Broadcom) Ethernet
Zwar ist die Unterstützung für BLE durch den Raspberry ab Version 3 für viele Anwendungsfälle spannend, wir brauchen diese Technologie jedoch nicht für die Entwicklung unseres MVP.
Amazon Dash-Buttons:
Über die Amazon-Dash Buttons kann auf Knopfdruck ein zuvor vom Kunden definiertes Produkt erworben werden. Interessant ist die Möglichkeit ohne jegliche Benutzungsschnittstelle Produkte kaufen zu können. Das Landgericht München sieht diese Tatsache jedoch mittlerweile als gesetzeswidrig an. Durch das Drücken des Amazon-Dash-Buttons verbindet dieser sich über WLAN mit einem Router und versucht über das angemeldete Amazon-Konto die Bestellung auszulösen. Der Amazon-Dash-Button loggt sich bei diesem Prozess im Netzwerk ein und nach der Bestellung direkt wieder aus. Solange die blaue LED leuchtet, versucht der Button sich mit dem WLAN zu verbinden und das Produkt zu bestellen. Nach Abschluss der Bestellung blinkt der Button in kurzen Abständen Rot. Falls gerade keine Verbindung hergestellt werden kann, blinkt der Button wesentlich langsamer Rot.
Bei den Amazon Dash Buttons handelt es sich um ein geschlossenes System. Tiefgreifende Veränderungen sind nur mit viel Aufwand möglich. Seit dem Erscheinen des Produkts vor circa zwei Jahren haben sich viele (Hobby)-Entwickler mit der Technologie der Dash Buttons beschäftigt und versucht sie für eigene Anwendungsfälle umzubauen. Anscheinend hat dies Amazon missfallen, sodass es ab der zweiten Version des Dash Buttons nicht mehr möglich war die Firmware auszulesen oder Änderungen am Chip vorzunehmen. Besonders der geringe Preis von 4.99€ lädt zum Experimentieren ein. Tatsächlich kann man sich kaum vorstellen, dass es möglich ist, einen Dash Button für unter 5€ zu produzieren. Wie so oft bei Amazon sind die Geschäftsmodelle eher undurchsichtig. Bekannt ist, dass die Partnerunternehmen deren Produkte über Dash Buttons bestellt werden können bis zu 100.000$ bezahlen mussten, um am Beta-Programm der Dash Buttons teilnehmen zu können.
Auf die Hardware der Dash Buttons soll nicht näher eingegangen werden, allerdings auf die unterstützten Netzwerktechnologien:
WLAN: 2.4 GHz 802.11b/g/n von Broadcom
Bluetooth Low Energy (nur für Einrichtung mit Android-Smartphone)
Ultraschall (Dash Buttons verfügen über ein Mikrofon das die Einrichtung der Dash Buttons mit iOS-Geräten ermöglicht. Warum dieses Vorgehen gewählt werden musste ist unklar. Es wäre möglich, dass iOS nicht die Möglichkeit beim Eingriff in die WLAN-Einstellungen erlaubt, die Amazon für die Konfiguration benötigt. Bei der Einrichtung wird die SSID und das verschlüsselte Passwort mit 19 KHz und Amplitudenumtastung vom Apple-Smartphone an den Dash Button übertragen. Ein Hacker hat sich sogar die Mühe gemacht das Signal und die verwendete Technologie zu entschlüsseln. Für Menschen ist das übertragene Signal nicht hörbar, für Hunde dagegen wahrscheinlich schon.

Wir haben die Einrichtung der Dash-Buttons mit der Amazon Shopping App für Android durchgeführt. Was Amazon nicht beschreibt ist, dass für eine kurze Zeit ein WLAN-Hotspot erstellt wird, wenn die Android-App in den Konfigurationsmodus versetzt wird. Sobald die Verbindung mit dem Hotspot hergestellt wurde ist der Dash Button kurze Zeit via HTTP über 192.168.0.1 erreichbar.

Folgende Software wurde zum Erreichen der Lösung verwendet:
Google Spreadsheets:
Die Ergebnisse werden in einem Google Spreadsheet gespeichert. Dieses ist online mit einem Google-Konto zu verwalten und funktioniert grundsätzlich ähnlich wie eine Excel-Tabelle, mit dem Unterschied dass sämtliche Inhalte in der Cloud gespeichert werden und nicht lokal. So können in einer Matrix die Ergebnisse gespeichert werden. Zudem ist es möglich, über Makros und Code Sheets zu einer definierten Uhrzeit bestimmte Funktionen auszuführen.
IFTTT
Bei IFTTT (“If This Then That”) handelt es sich um einen Webdienst, mit dem auf einfache Weise bedingte Statements (Applets) erstellt werden können. Ein Applet besteht aus einem oder mehreren Triggern und Actions. Ein Trigger (z.B. eine Veränderung in einem Online-Dienst wie Twitter) löst eine definierte Aktion aus. IFTTT wurde 2010 gegründet und hat seit der Einführung sehr viele positive Kritiken erfahren.
Die gesamte Infrastruktur wird in der folgenden Abbildung dargestellt:
