293 lines
11 KiB
Markdown
293 lines
11 KiB
Markdown
# MYP – Manage Your Printer
|
||
|
||
## Vernetzte 3D-Druck-Reservierungsplattform mit IoT-Anbindung und zentraler Verwaltungsoberfläche
|
||
|
||
**Dokumentation der betrieblichen Projektarbeit**
|
||
**Fachinformatiker für digitale Vernetzung**
|
||
|
||
---
|
||
|
||
**Prüfungsbewerber:** Till Tomczak
|
||
**Ausbildungsbetrieb:** Mercedes-Benz AG
|
||
**Prüfungstermin:** Sommer 2025
|
||
**Bearbeitungszeitraum:** 15. April – 20. Mai 2025
|
||
**Projektumfang:** 35 Stunden
|
||
|
||
---
|
||
|
||
## 1. Einleitung
|
||
|
||
### 1.1 Ausgangssituation und Problemstellung
|
||
|
||
Die Technische Berufsausbildungsstätte (TBA) der Mercedes-Benz AG verfügt über sechs 3D-Drucker verschiedener Hersteller, die eine wichtige Ressource für die praktische Ausbildung darstellen. Diese Geräte weisen jedoch technische Limitierungen auf: Sie verfügen weder über Netzwerkschnittstellen noch über einheitliche Steuerungsmöglichkeiten.
|
||
|
||
Das bestehende Reservierungssystem basierte auf einem analogen Whiteboard, was zu systematischen Problemen führte:
|
||
|
||
- **Doppelbuchungen** durch unkoordinierte Reservierungen
|
||
- **Ineffiziente Energienutzung** durch vergessene manuelle Aktivierung/Deaktivierung
|
||
- **Fehlende Dokumentation** der Nutzungszeiten und Verantwortlichkeiten
|
||
- **Keine zentrale Übersicht** über Verfügbarkeiten und Auslastung
|
||
|
||
### 1.2 Projektziele entsprechend dem genehmigten Antrag
|
||
|
||
Das Projekt "MYP – Manage Your Printer" zielt auf die **vollständige Digitalisierung des 3D-Drucker-Reservierungsprozesses** durch die Etablierung cyberphysischer Kommunikation mit den Hardwarekomponenten ab.
|
||
|
||
**Definierte Projektziele:**
|
||
|
||
1. **Webportal-Entwicklung** mit Frontend und Backend
|
||
2. **WLAN-Integration** der Raspberry Pi-Plattform
|
||
3. **Datenbankaufbau** für Reservierungsverwaltung
|
||
4. **Authentifizierung und Autorisierung** implementieren
|
||
5. **Test der Schnittstellen** und Netzwerkverbindungen
|
||
6. **Automatische Hardware-Steuerung** via IoT-Integration
|
||
|
||
### 1.3 Projektabgrenzung
|
||
|
||
**Im Projektumfang enthalten:**
|
||
|
||
- Entwicklung einer webbasierten Reservierungsplattform
|
||
- Integration automatischer Hardware-Steuerung über Smart-Plugs
|
||
- Implementierung einer zentralen Verwaltungsoberfläche
|
||
- Etablierung robuster Authentifizierung und Rechteverwaltung
|
||
|
||
**Ausgeschlossen aus dem Projektumfang:**
|
||
|
||
- Direkte Kommunikation mit 3D-Druckern (fehlende Schnittstellen)
|
||
- Integration in das unternehmensweite Intranet (Zeitrestriktionen)
|
||
- Übertragung von Druckdaten oder erweiterte Druckerüberwachung
|
||
|
||
---
|
||
|
||
## 2. Projektplanung
|
||
|
||
### 2.1 Zeitplanung entsprechend Projektantrag
|
||
|
||
Die Projektplanung folgte der im Antrag definierten Struktur mit 35 Stunden Gesamtaufwand:
|
||
|
||
| Phase | Zeitaufwand | Zeitraum | Tätigkeiten |
|
||
| ------------------------------------------ | ----------- | ------------------ | ------------------------------------------- |
|
||
| **Projektplanung und Analyse** | 6 Std. | 15.-16. April | Anforderungsanalyse, Systemanalyse |
|
||
| **Bewertung Netzwerkarchitektur** | 6 Std. | 17.-18. April | Sicherheitsanforderungen, Systemarchitektur |
|
||
| **Systemarchitektur/Schnittstellen** | 6 Std. | 19.-22. April | Konzeption, Interface-Design |
|
||
| **Umsetzung** | 14 Std. | 23. April - 8. Mai | Implementation, Integration |
|
||
| **Test und Optimierung** | 6 Std. | 9.-15. Mai | Systemtests, Performance-Optimierung |
|
||
| **Dokumentation** | 4 Std. | 16.-20. Mai | Projektdokumentation, Übergabe |
|
||
|
||
### 2.2 Ressourcenplanung
|
||
|
||
**Hardware-Komponenten:**
|
||
|
||
- Raspberry Pi 5 (8GB RAM) als zentrale Serverplattform
|
||
- 6× TP-Link Tapo P110 Smart-Plugs für IoT-Integration
|
||
- Netzwerk-Infrastruktur und 19-Zoll-Serverschrank
|
||
|
||
**Software-Stack:**
|
||
|
||
- **Backend:** Python 3.11, Flask 2.3, SQLAlchemy 2.0
|
||
- **Frontend:** Aufbau auf vorhandenem Next.js-Prototyp
|
||
- **IoT-Integration:** PyP100-Bibliothek für Smart-Plug-Kommunikation
|
||
- **System:** Raspbian OS, systemd-Services
|
||
|
||
**Kostenrahmen:** Unter 600 Euro Gesamtinvestition
|
||
|
||
---
|
||
|
||
## 3. Analyse und Bewertung der vorhandenen Systemarchitektur
|
||
|
||
### 3.1 Ist-Zustand-Analyse
|
||
|
||
**Vorgefundene Systemlandschaft:**
|
||
|
||
- Frontend-Prototyp (Next.js) ohne Backend-Funktionalität
|
||
- Isolierte 3D-Drucker ohne Netzwerkfähigkeit
|
||
- Raspberry Pi 4 als ungenutzter Server
|
||
- Analoge Reservierungsverwaltung über Whiteboard
|
||
|
||
**Identifizierte Defizite:**
|
||
|
||
- Fehlende cyberphysische Integration der Hardware
|
||
- Keine zentrale Datenhaltung für Reservierungen
|
||
- Ineffiziente manuelle Prozesse mit Fehlerpotenzialen
|
||
- Sicherheitslücken durch analoge Verwaltung
|
||
|
||
### 3.2 Bewertung der heterogenen IT-Landschaft
|
||
|
||
Die IT-Infrastruktur der TBA präsentierte sich als segmentierte Umgebung mit verschiedenen VLANs und Sicherheitszonen. Die 3D-Drucker verschiedener Hersteller erforderten eine **herstellerunabhängige Abstraktionsebene**.
|
||
|
||
**Gewählter Lösungsansatz:** IoT-Integration über Smart-Plugs ermöglicht universelle Steuerung unabhängig vom Druckermodell durch Abstraktion auf die Stromversorgungsebene.
|
||
|
||
### 3.3 Sicherheitsanforderungen
|
||
|
||
**Analysierte Vorgaben:**
|
||
|
||
- Keine permanente Internetverbindung zulässig
|
||
- Isoliertes Netzwerksegment für IoT-Komponenten erforderlich
|
||
- Selbstsignierte SSL-Zertifikate (kein Let's Encrypt verfügbar)
|
||
- Compliance mit Mercedes-Benz IT-Sicherheitsrichtlinien
|
||
|
||
**Abgeleitete Sicherheitsmaßnahmen:**
|
||
|
||
- bcrypt-Passwort-Hashing mit Cost-Faktor 12
|
||
- CSRF-Schutz und Session-Management über Flask-Login
|
||
- Rate-Limiting gegen Brute-Force-Angriffe
|
||
- Restriktive Firewall-Regeln mit Port-Beschränkung
|
||
|
||
---
|
||
|
||
## 4. Entwicklung der Systemarchitektur und Schnittstellenkonzeption
|
||
|
||
### 4.1 Gesamtsystemarchitektur
|
||
|
||
```
|
||
┌─────────────────┐ HTTPS ┌─────────────────┐ WLAN ┌─────────────────┐
|
||
│ Web-Client │◄────────────►│ Raspberry Pi │◄───────────►│ Smart-Plugs │
|
||
│ (Browser) │ │ MYP-Server │ │ (IoT-Layer) │
|
||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||
│ │
|
||
┌────▼────┐ ┌────▼────┐
|
||
│ SQLite │ │3D-Drucker│
|
||
│Database │ │(6 Geräte)│
|
||
└─────────┘ └─────────┘
|
||
```
|
||
|
||
### 4.2 Schnittstellenkonzeption
|
||
|
||
**REST-API-Design (100+ Endpunkte):**
|
||
|
||
- `/api/auth/` - Authentifizierung und Session-Management
|
||
- `/api/users/` - Benutzerverwaltung und Rechteverwaltung
|
||
- `/api/printers/` - Druckerverwaltung und Statusinformationen
|
||
- `/api/jobs/` - Reservierungsmanagement und Scheduling
|
||
- `/api/monitoring/` - Energieverbrauch und Systemstatistiken
|
||
|
||
**IoT-Schnittstelle zu Smart-Plugs:**
|
||
|
||
- Protokoll: HTTP/TCP über WLAN-Verbindung
|
||
- Authentifizierung: Session-basiert mit dynamischen Tokens
|
||
- Operationen: Power On/Off, Status-Abfrage, Energiemessung
|
||
|
||
---
|
||
|
||
## 5. Umsetzung (Implementation)
|
||
|
||
### 5.1 Backend-Entwicklung
|
||
|
||
**Flask-Anwendungsstruktur:**
|
||
|
||
- Modulare Blueprint-Architektur für Skalierbarkeit
|
||
- SQLAlchemy ORM für Datenbankabstraktion
|
||
- Thread-sichere Scheduler-Implementation
|
||
- Robuste Fehlerbehandlung mit Retry-Mechanismen
|
||
|
||
**Zentrale Implementierungsherausforderung:**
|
||
Die TP-Link Tapo P110 Smart-Plugs verfügten über keine dokumentierte API. Nach erfolglosen Versuchen mit verschiedenen Python-Bibliotheken erwies sich **PyP100** als einzige funktionsfähige Lösung für die lokale Kommunikation ohne Cloud-Abhängigkeit.
|
||
|
||
### 5.2 Smart-Plug-Integration
|
||
|
||
**Technische Umsetzung:**
|
||
|
||
```python
|
||
class SmartPlugManager:
|
||
def __init__(self, plug_configs):
|
||
self.plugs = {id: Tapo(ip, user, pass) for id, ip in plug_configs.items()}
|
||
|
||
async def control_printer(self, printer_id, action):
|
||
plug = self.plugs[printer_id]
|
||
return await plug.on() if action == 'start' else await plug.off()
|
||
```
|
||
|
||
**Konfiguration:**
|
||
|
||
- Statische IP-Adressen: 192.168.0.100-105 für zuverlässige Kommunikation
|
||
- Lokale Authentifizierung ohne Cloud-Service-Abhängigkeit
|
||
- Integriertes Energiemonitoring für Verbrauchsoptimierung
|
||
|
||
### 5.3 Systemintegration
|
||
|
||
**Deployment-Konfiguration:**
|
||
|
||
- systemd-Services für automatischen Start und Überwachung
|
||
- SSL-Zertifikat-Management für HTTPS-Betrieb
|
||
- Firewall-Konfiguration mit restriktiven Regeln
|
||
- Logging und Monitoring für Systemstabilität
|
||
|
||
---
|
||
|
||
## 6. Test und Optimierung der Datenverarbeitung und Darstellung
|
||
|
||
### 6.1 Testdurchführung
|
||
|
||
**Systematische Testphase:**
|
||
|
||
- **Unit-Tests:** 85% Code-Coverage für kritische Komponenten
|
||
- **Integrationstests:** Frontend-Backend-Kommunikation und IoT-Integration
|
||
- **Systemtests:** End-to-End-Reservierungsszenarien
|
||
- **Sicherheitstests:** Penetrationstests gegen OWASP Top 10
|
||
|
||
**Performance-Optimierungen:**
|
||
|
||
- Hardware-Upgrade von Raspberry Pi 4 auf Pi 5 aufgrund Performance-Anforderungen
|
||
- Datenbankindizierung für häufige Abfragen
|
||
- Caching-Strategien für Smart-Plug-Status
|
||
|
||
### 6.2 Qualitätssicherung
|
||
|
||
**Implementierte Maßnahmen:**
|
||
|
||
- VirtualBox-basierte Testumgebung für entwicklungsnahe Tests
|
||
- Mock-Objekte für Hardware-unabhängige Unit-Tests
|
||
- Strukturiertes Logging für Debugging und Monitoring
|
||
- Automatisierte Backup-Strategien für kritische Konfigurationen
|
||
|
||
---
|
||
|
||
## 7. Projektabschluss
|
||
|
||
### 7.1 Soll-Ist-Vergleich
|
||
|
||
**Vollständig erreichte Projektziele:**
|
||
✅ Webportal-Entwicklung (Frontend und Backend)
|
||
✅ WLAN-Integration der Raspberry Pi-Plattform
|
||
✅ Datenbankaufbau für Reservierungsverwaltung
|
||
✅ Authentifizierung und Autorisierung
|
||
✅ Test der Schnittstellen und Netzwerkverbindungen
|
||
✅ Automatische Hardware-Steuerung via IoT-Integration
|
||
|
||
**Zusätzlich realisierte Features:**
|
||
|
||
- Energiemonitoring und Verbrauchsstatistiken
|
||
- Kiosk-Modus für Werkstatt-Terminals
|
||
- Erweiterte Sicherheitsfeatures (Rate-Limiting, CSRF-Schutz)
|
||
|
||
### 7.2 Wirtschaftlichkeitsbetrachtung
|
||
|
||
**Projektkosten:** Unter 600 Euro Gesamtinvestition
|
||
**Amortisation:** Weniger als 6 Monate durch Energieeinsparungen
|
||
**Nutzen:** Eliminierung von Reservierungskonflikten und automatisierte Betriebsoptimierung
|
||
|
||
### 7.3 Fazit
|
||
|
||
Das MYP-System transformiert erfolgreich die analoge 3D-Drucker-Verwaltung in ein modernes cyberphysisches System. Die Lösung demonstriert, wie durch innovative IoT-Integration auch Legacy-Hardware in moderne Systemlandschaften integriert werden kann.
|
||
|
||
**Zentrale Erfolgsfaktoren:**
|
||
|
||
- Pragmatische Abstraktion komplexer Hardware-Probleme über Smart-Plug-Integration
|
||
- Robuste Softwarearchitektur mit umfassender Fehlerbehandlung
|
||
- Konsequente Berücksichtigung von Sicherheitsanforderungen
|
||
|
||
### 7.4 Projektabnahme
|
||
|
||
**Abnahmedatum:** 2. Juni 2025
|
||
**Status:** Erfolgreich abgenommen und in Produktivbetrieb überführt
|
||
**Bewertung:** Innovative Lösungsansätze mit hoher technischer Qualität und bestätigter Praxistauglichkeit
|
||
|
||
---
|
||
|
||
## Anlagen
|
||
|
||
- A1: Systemdokumentation und Netzwerkdiagramme
|
||
- A2: API-Dokumentation und Schnittstellenspezifikation
|
||
- A3: Testprotokolle und Sicherheitsnachweise
|
||
- A4: Benutzeroberfläche und Bedienungsanleitung
|
||
- A5: Deployment-Skripte und Konfigurationsdateien
|