Ausarbeitung

 

1. Verwendete Komponenten zur Realisierung des Projekts:

Hardware:

·  Smartphone

·  Genuino101

·  MOSFET-Treiber RB-8/8x100W

·  Cocktailmaschine

Software:

·   Intel XDK (HTML, JavaScript(AngularJS), CSS, Ionic Framework)

·   Arduino IDE

 

2. Bluetooth Low Engergy:

In diesem Abschnitt werden grundlegend wichtige Begriffe erläutert, um Bluetooth Low Energy zu verstehen. Zwei Überbegriffe sind Generic Access Profile(GAP) und Generic Attribute Profile(GATT).

 

GAP:

·   Kontrolliert Verbindung

·   Macht Gerät sichtbar für die Umwelt

·   Legt fest wie zwei Geräte miteinander interagieren

 

Peripheral Device:

·   Kleine, Low Power Geräte die mit Geräten größerer Power verbinden(Central Devices)

Central Devices:

·   Mobiel Phones or Tablets

Advertising Data:

·   31 Bytes Daten

·   Verpflichtend damit Central Devices wissen das andere Geräte in Umgebung existieren

·   Zum Verbinden notwendig

Response Scan:

·   Optional

·   Erlaub zusätzliche Informationen zu übertragen wie Strings für Gerätenamen

 

Advertising Process:

Quelle: https://cdnlearn.adafruit.com/assets/assets/000/013/825/medium800/microcontrollers Advertising2.png?1390835933 (abgerufen am 7.11.2016)

Abb. Nr. 7  :    - Adverstising Process -

 

Broadcast Network Topology:

Quelle: https://www.safaribooksonline.com/library/view/getting-started-with/9781491900550/images/gsbl_0103.png (abgerufen am 7.11.2016)

Abb. Nr. 8  :    - Broadcast Network Topology -

 

--> Wenn das BLE Peripheral einmal mit Central Device verbunden ist, kommt das GATT zum Einsatz!

 

 

GATT:

·   Beschreibt den Weg wie zwei miteinander verbundene Geräte kommunizieren

·   Hin und zurück

·   Konzepte: Sevices und Characetristics

·   Generisches Datenprotokoll: Attribute Protokoll(ATT) -> Speichert Services, Characteristics und andere Daten in 16 bit IDs -> lookup table

·   Ein Peripheral kann nur mit einem Central Device zur gleichen Zeit verbunden sein -> Advertise Signal wird nicht mehr gesendet wenn verbunden (Umwelt sieht nicht mehr)

 

Connected Network Topology:

Quelle: https://www.safaribooksonline.com/library/view/getting-started-with/9781491900550/images/gsbl_0104.png (abgerufen am 7.11.2016)

Abb. Nr. 9  :    - Connected Network Topology -

 

GATT-Transaction:

Quelle: https://cdn-learn.adafruit.com/assets/assets/000/013/827/medium800/microcontrollers_GattMasterSlaveTransactions.png?1390836048 (abgerufen am 7.11.2016)

Abb. Nr. 10  :    - GATT-Transaction -

 

Services and Characteristics:

Quelle: https://cdn-learn.adafruit.com/assets/assets/000/013/828/medium800/microcontrollers_GattStructure.png?1390836057 (abgerufen am 7.11.2016)

Abb. Nr. 11  :    - Services and Characteristics -

 

Profile:

·   Vordefinierte Ansammlung von Services (z.B. vom Hersteller)

  

Services:

·   Daten in logische Einheiten einteilen

·   Kann mehrer Characeristics enthalten die wiederum bestimmte Daten enthalten

·   Unterscheiden sich durch ID (UUID) -> 16 Bit oder 128 Bit

 

Characteristics:

·   Niedrigste Level in GATT

·   Einzelne Daten z.B. xyz Daten eines Accelerometers

·   UUID wie Services

·   Vorgefertigte Characeristics können genutzt werden oder müssen selbst geschrieben werden

3. Die Entwicklungsumgebung "Intel XDK":

Intel XDK ist eine IDE von Intel die, unter Anderem, zur Entwicklung von Cross-Plattform-Apps dient. Dabei wird HTML mit CSS und JavaScript kombiniert. In diesem Abschnitt wird die grundlegendste  Ordnerstruktur erklärt, um schließlich spezifisch auf das Projekt einzugehen.

Ordnerstruktur:

·   www (äußerster Ordner) -> in ihm befinden sich auch .html Dateien

·   CSS -> in ihm befinden sich .css Dateien

·   JS -> in ihm befinden sich .js Dateien

·   Images -> in ihm befinden sich Bilder

·   Templates -> in ihm befinden sich templates (.html files) die z.B. in JavaScript files aufgerufen werden können

·   Ionic -> um das Ionic Framework zu benutzen

 Es gibt noch wesentlich mehr Ordner mit vielen einzelnen Dateien, die sich aber jeder selbst zu Gemüte führen sollte.

4. Entwicklung der MixMaster-BLE-App:

Die Cross-Plattform App wurde mit Hilfe der Intel XDK-App geschrieben. Dabei wird Apache Cordova genutzt, welches ein Framework zur Entwicklung hybrider Applikationen für mobile Endgeräte ist. Dabei werden die Sprachen JavaScript, HTML5 und CSS3 kombiniert. Somit sind es weder native Applikationen, da sie mittels Webtechnologien gebaut werden können, noch Webapplikationen, da sie in Verkaufsportalen vertrieben werden können. Außerdem kam das Ionic-Framework zum Einsatz, das unter Anderem AngularJS nutzt.

Im Rahmen der Entwicklung wurde ein modifiziertes Starter-Project mit dem Ionic Framework genutzt, da das XDK Ionic Framework etwas verbuggt ist. Mit Hilfe des Projektes wurden sich die verschiedenen Sprachen und Frameworks beigebracht, sodass die App geschrieben werden konnte. Außerdem wurde sich am XDK BLE Beispiel orientiert.

Der Quellcode ist in Google Drive und in Kürze in der WebDoku zu finden.

5. Vostellung der MixMaster-BLE-App:

In diesem Abschnitt wird nun das Ergebnis der App präsentiert.

Homescreen:

Der Homescreen dient als Willkommensbildschirm. Der Nutzer wird begrüßt und die einzelnen Buttons werden erklärt. Von dort gelangt er mittels des „?“-Buttons zur Cocktailübersicht mit der jeweiligen Zutatenliste oder mittels des Drink-Buttons zur BLE Connection sowie zur Auswahl des jeweiligen Cocktails.

Incredients-Screen:

Der Incredients-Screen, dient zur Übersicht der zur Verfügung stehenden Cocktails, sowie der jeweiligen Zutaten.

 

Connection-Screen:

Der Connection Screen besitzt ein Scan-Button. Dieser scannt die Umgebung nach aktiven BLE-Modulen (Genuino101). Ist ein solches Modul gefunden, wird durch berühren ein weiterer Screen aktiviert in dem die UUID des Peripheral Devices eingegeben werden muss. Ist dies geschehen, wird ein weiterer Screen aktiv, auf dem die verschiedenen Cocktails ausgewählt werden können. Es kann entweder der Saufbetrieb oder der Genießerbetrieb gewählt werden. Nach der Auswahl der zu mixenden Cocktails, sollte die Verbindung möglichst schnell wieder getrennt werden, damit sich die nächste Person einloggen kann. Hier ist nur ein Bild des Connections-Screens zu sehen, da die anderen nur direkt auf dem Endgerät und nicht auf der Simulationen zu sehen sind. Um die App in Aktion zu sehen, möge man sich das von uns erstellte Video anschauen.

 

6. App-Genuino Schnittstelle: 

Der Genuino101 von Intel wird durch die Smartphone-App mittels Bluetooth Low Energy angesteuert. Dabei wird jedem Cocktail eine einzigartige/einzigartiger Zahl/Buchstabe zugewiesen(Größe eines Bytes), die vom Mikrocontroller, bei Empfang eines Bytes, abgefragt wird. Je nach Cocktail werden die Ventile  verschieden schnell geöffnet oder geschlossen. Das heißt auf dem Genuino101 befindet sich die Logik, während sich auf der App das User-Interface befindet.

7. Genuino101 Funktionsweise:

Wie schon erwähnt, empfängt der Genuino101 eine 1-Byte-Große Zahl/Buchstabe über das Bluetooth Low Energy Modul. Das vereinfacht die Funktionsweise des Systems. Das der Genuino101 nur eine 1-Byte-Große Nachricht empfangen kann, wird durch die Custom-Characteristics und Custom-Services festgelegt. Es werden die Pins 2-9 angesteuert, da von Acht zu öffnenden Ventilen ausgegangen wird. Je nach empfangenen Cocktail werden die Pins für eine bestimmte Zeit auf High gesetzt. Außerdem wurde eine Warteschlange implementiert, die es erlaubt mehrere Cocktails schnell hintereinander auszuwählen. Diese werden dann nacheinander gemixed. Weiteres ist dem Quellcode zu entnehmen, der kommentiert wurde.

8. Genuino101-MosfetTreiber Schnittstelle:

Die verwendeten Pins werden mit den jeweilig dazu gehörenden Eingangspins des Mosfet-Treiber verbunden. Ob ein High-Signal ankommt und durchgeschaltet wird, kann an den Lämpchen kontrolliert werden. Der Mosfet-Treiber dient als Signalverstärker.

9. Weitere Projektunterlagen:

 

Struktogramm

 

Anschlussplan

 

Schaltplan

 

Layout

 

Quellcode

 

Bedienungsanleitung