---
# System prepended metadata

title: Task

---

# Task 
**Embedded Devices "Sensordaten in industriellem Einsatz" - Taskdescription**
## Einführung
Single-Board-Computer und/oder Mikrocontroller werden zur Aufnahme und Verarbeitung von Sensordaten eingesetzt. Dabei sind gängige Kommunikationsschnittstellen, die auch in der Industrie eingesetzt werden zu verwenden.

## Ziele
Das Ziel ist es vorhande Implementierung anzupassen und gegebenenfalls komponentenorientiert aufzubauen. Sensordaten sollen aggregiert und zur weiteren Verarbeitung weitergeleitet werden. Es soll möglich sein, die aufgenommenen Daten zur Steuerung und Regelung einzusetzen, welche auch mit intelligenten Algorithmen versehen werden können.

## Kompetenzzuordnung
### GK SYT9 Industrielle Informationstechnik | Embedded Systems | Kommunikationsschnittstellen
* "heterogene Systeme miteinander über gängige Kommunikationsschnittstellen koppeln und dabei verschiedene Sensoren und Aktoren interagieren lassen"

### EK SYT9 Industrielle Informationstechnik | Embedded Systems | Kommunikations schnittstellen
* "intelligente Algorithmen zur automatischen Verarbeitung von Informationen einsetzen"

## Voraussetzungen
+ Verwendung von Mikrokontrollern und Single-Board-Computern (SBC)
+ Kenntnis einer hardwarenahen Programmiersprache
+ Grundverständnis von digitalen Systemen
+ Grundkenntnisse über die sichere Verwendung von Elektronikbauteilen
+ Programmierung und Konfiguration eines Single-Board-Computers
+ Aufnahme von Sensordaten
+ Einsatz von industriellen Kommunikationsschnittstellen

## Detailierte Aufgabenbeschreibung
Auf Basis einer schon implementierten Umgebung soll eine Anpassung vorgenommen werden. Es bietet sich an, die Implementierung aus dem letzten Semester "Anzeige und Analyse von Sensordaten" als Basis heran zu nehmen.

Die dort aufgenommenen und zur Anzeige gebrachten Sensordaten sollen nun auf folgende Punkte angepasst werden:

+ Entfernung und Anzahl an Sensor-Einheiten
+ Öffentliche Anzeige der Daten
+ Erweiterung der Schnittstelle

Die Daten wurden meist über einfache Kommunikationsschnittstellen aufgenommen (z.B. SPI oder I2C). Diese haben nur eingeschränkte Reichweiten als auch nur eine begrenzte Anzahl an Kommunikationspartner. Diese Einschränkungen sollen entsprechend erweitert werden. Dabei bietet sich der CAN Bus an. Welche Elemente müssten hier hinzugefügt werden, damit das bestehende System an diesem Bus partizipieren kann? Was macht dabei der Controller bzw. der Transeiver?

### Grundanforderungen
#### Datenübertragung
Verwenden Sie entweder die schon bestehende Hardware-Umgebung und erweitern Sie diese um die CAN-Elemente, oder zeigen Sie eine einfache Umsetzung von CAN-fähigen Sensor-Knoten. Der zur Verfügung stehende CAN-Controller (MCP2515) hat eine SPI-Schnittstelle, die zur Datenübertragung genutzt wird. Vergewissern Sie sich, dass die Implementierung diese auch ansprechen kann. Hier wäre eine komponentenorientierte Programmierung der funktionalen Anforderung der Datenaquirierung und Verarbeitung von Nöten.

#### Anzeige
Die aufgenommenen Sensordaten sollen, wie schon in der letzten Aufgabenstellung, über ein Webservice zur Verfügung gestellt werden. Die vorgeschlagenen Dienste (InfluxDB und Grafana) bieten hier eine schnelle und einfache Umsetzungsmöglichkeit.

### Erweiterungen
#### Deployment
Die Cloud-Dienste sollen mit einer einfachen Deployment-Konfiguration öffentlich zugänglich gemacht werden. Dabei bietet sich Heroku an, welches schon bestehende, lokale Deployment-Umgebungen (z.B. docker-compose) einfach veröffentlichen lässt. Welche Anpassungen sind dabei in der Gateway-Implementierung notwendig? Wie können diese minimiert werden?

#### Analyse und Sicherheit
Entsprechend der eigenen Spezialisierung (IT-Security oder Data-Science) sind nun folgende Aufgaben umzusetzen:

###### IT-Security
Wie könnten die einzelnen Sensoren eindeutig identifiziert werden? Welche Sicherheitsbedenken gibt es im IoT-Bereich? Wie kann man auch beim CAN-Bus sicherstellen, dass das CIA-Prinzip erfüllt wird? Welche Möglichkeiten gibt es bei der Übertragung von CAN Messages?

###### Data-Science
Sensordaten werden meist als Grundlage für etwaige Steuerungen verwendet. Wie in dem Beispiel, sollen Temperatur- bzw. Luftqualitätsdaten zur aktiven Steuerung bzw. Benachrichtigung eingesetzt werden. Wie können Daten aus Sensor Networks in Echtzeit analysiert und entsprechend weiter verwendet werden? Wie können ungewöhnliche Abweichungen bzw. Fehler bei Temperaturmessungen erkannt und entsprechend ignoriert werden? Welche Möglichkeiten der Umsetzung bieten sich hier an?

## Fragestellungen
+ Welche Übertragungsreichweiten und Geschwindigkeiten kommen beim CAN-Bus zum Einsatz?
+ Wieviele Teilnehmer können dabei miteinander kommunizieren?
+ Welche Möglichkeiten des einfachen Deployments bieten sich an, wenn verschiedene Services zur Darstellung von Sensordaten miteinander agieren sollen?
+ Wie können Grenzwerte definiert werden, die zur Steuerung bzw. Notifikation herangezogen werden?

## Abgabe
Die Fragestellungen sollen im File **research.md** abgehandelt werden. Die entsprechenden Konfigurationsdateien und Deployment-Anweisungen sind im **README.md** festzuhalten. Etwaiger Programmcode zur Sensordaten-Verarbeitung ist ebenfalls zu dokumentieren. Implementierungen müssen entsprechend beschrieben und leicht deployable sein!

### Classroom Git-Repository
Hier finden Sie das Abgabe-Repository zum Entwickeln und Commiten Ihrer Lösung. Sollte der Server durch einen unerwarteten Umstand daran gehindert worden sein, die an ihn gesendete Anfrage zu erfüllen, muss der Link zu Beginn des Labors persönlich beantragt werden!

## Bewertung
Gruppengrösse: 1 Person

### Grundanforderungen überwiegend erfüllt
[ ] Ausarbeitung der Fragestellungen
[ ] Konfiguration und Inbetriebnahme des CAN-Busses
[ ] Auslesen von extern angeschlossenen Sensordaten
### Grundanforderungen zur Gänze erfüllt
[ ] Verarbeitung von Sensordaten
[ ] Warnmeldung bei Überschreiten von vordefinierten Schwellenwerten
[ ] Weitergabe der Sensordaten an entsprechende externe Schnittstellen zur Steuerung von Aktoren
### Erweiterte Anforderungen überwiegend erfüllt
[ ] Verwendung und Veröffentlichung einer webbasierten, grafischen Anzeige der Sensordaten
### Erweiterte Anforderungen zur Gänze erfüllt
[ ] Recherche und Umsetzungsbeispiel der jeweiligen Spezialisierung

## Quellen
+ "Grundlagen zum CAN Bus" mikrocontroller.net
+ "MCP2515 CAN Bus Breakout Board With SPI Interface" copperhilltech
+ "CAN-Bus am Raspberry Pi" crycode.de
+ "Getting Started on Heroku" heroku.com
+ "Local Development with Docker Compose" heroku.com
+ "Evaluation of CAN Bus Security Challenges" mdpi
+ "Cyber-Security for the Controller Area Network Communication Protocol" berkley
+ "Time Series Data Analysis of Wireless Sensor Network Measurements of Temperature" researchgate
+ "Real-Time Data Analytics in Sensor Networks" researchgate

**Version** *20202016v1*