MOBKOM_4G/MOBKOM_Daten_mit_4G.typ

338 lines
10 KiB
Typst

#set text(font: "Libertinus Serif", size: 12pt, lang: "de", hyphenate: true) // Silbentrennung
#set par(justify: true) // Blocksatz
#import "@preview/touying:0.6.1": *
#import themes.metropolis: *
#import "@preview/cetz:0.4.1"
#show: metropolis-theme.with(
aspect-ratio: "16-9",
config-info(
title: [Getränkeautomat mit dem Raspberry Pi],
// title: [Daten mit 4G],
subtitle: [Mobile Kommunikationsnetze],
author: [NOAH BALSIGER, THOMAS ZWICKER],
date: datetime.today(),
),
)
#title-slide()
#components.adaptive-columns(outline())
== Was ist M2M?
#cetz.canvas({
import cetz.draw: *
content((9, 4.5), [Automatische Bestellung])
content((0, 0), image("img/m2m_selecta.jpg"))
content((15, 0), image("img/m2m_logistik.jpg", width: 12cm))
content((8, -5), image("img/m2m_lkw.png", width: 5cm))
line((4, 3), (10, 3), mark: (end: ">"), fill: blue, stroke: orange + 10pt)
line((10, -3), (4, -3), mark: (end: ">"), fill: blue, stroke: orange + 10pt)
})
// == 4G / 5G
== Wie funktioniert ein Mobilfunknetz?
#slide[
#grid(columns: (1fr, 1fr), gutter: 18pt,
[
*Grundidee: Funkzelle statt Kabel*
- Das Endgerät sendet per Funk zur nächsten Basisstation
- Die Basisstation versorgt eine bestimmte Funkzelle
- Mehrere Funkzellen zusammen ergeben die Netzabdeckung
- Beim Bewegen wechselt das Gerät automatisch die Zelle: *Handover*
],
[
*Datenweg im Normalfall*
#v(0.4em)
#align(center)[
`UE <-> Basisstation <-> Kernnetz <-> Internet`
]
#v(0.6em)
- *UE* = Endgerät, zum Beispiel Smartphone oder Raspberry Pi mit LTE-Modul
- *Kernnetz* = zentraler Netzteil des Providers
- SIM-Karte dient zur Anmeldung und Authentifizierung
],
)
#v(0.8em)
#box(stroke: orange, inset: 6pt, radius: 2pt)[
#text(size: 10pt)[
*Wichtig:* 4G und 5G unterscheiden sich nicht nur bei der Funkverbindung,
sondern auch beim Kernnetz dahinter. Dieses Kernnetz entscheidet mit, welche
Funktionen wirklich verfügbar sind.
]
]
]
== 4G vs. 5G: technische Unterschiede
#slide[
#text(size: 16pt)[
#table(
columns: (0.85fr, 1.25fr, 1.65fr),
[*Eigenschaft*], [*4G / LTE*], [*5G NR*],
[Funkstandard], [LTE = Long Term Evolution], [NR = New Radio, neuer 5G-Funkstandard],
[Basisstation], [eNodeB = 4G-Antenne], [gNodeB = 5G-Antenne],
[Kernnetz], [EPC = 4G-Kernnetz], [5GC = 5G-Kernnetz oder weiterhin EPC],
[Latenz], [typisch 20--50 ms], [tiefer möglich, besonders mit 5G SA],
[Bandbreite], [bis ca. 20 MHz pro Träger], [bis 100 MHz unter 6 GHz, mehr bei mmWave],
[Antennen], [MIMO = mehrere Antennen], [massive MIMO und Beamforming],
[Ziel], [mobiles Breitband], [schnelles Internet, tiefe Latenz, viele IoT-Geräte],
)
]
#v(0.55em)
*Merksatz:* 5G ist nicht nur „schnelleres 4G“. 5G bringt einen neuen Funkstandard,
mehr nutzbare Bandbreite, bessere Antennentechnik und optional ein neues Kernnetz.
#v(0.45em)
#text(size: 9.8pt)[
*Einfach erklärt:* Latenz = Reaktionszeit, Bandbreite = Datenmenge pro Zeit,
mmWave = sehr hohe Frequenzen, IoT = vernetzte Geräte, Beamforming = gezieltes
Senden in Richtung des Geräts.
]
]
== Was bringt 5G praktisch?
#slide[
#grid(columns: (1fr, 1fr, 1fr), gutter: 12pt,
[
*eMBB* \
Enhanced Mobile Broadband
- sehr hohe Datenraten
- Streaming, Downloads, Hotspots
- wichtigste Funktion für normale Smartphones
],
[
*URLLC* \
Ultra-Reliable Low-Latency Communication
- sehr kurze Reaktionszeit
- hohe Zuverlässigkeit
- Industrie, Robotik, Fahrzeuge
],
[
*mMTC* \
Massive Machine-Type Communication
- sehr viele kleine Geräte
- Sensoren und IoT
- wenig Daten pro Gerät, aber sehr viele Teilnehmer
],
)
#v(0.8em)
#box(stroke: orange, inset: 6pt, radius: 2pt)[
#text(size: 10pt)[
*Wichtig für die Praxis:* Nicht jedes 5G-Netz bietet automatisch alle Vorteile.
Geschwindigkeit und Latenz hängen von Frequenzbereich, Empfang, Auslastung,
Endgerät und davon ab, ob NSA oder SA verwendet wird.
]
]
]
== 5G NSA vs. SA
#slide[
#grid(columns: (1fr, 1fr), gutter: 18pt,
[
*NSA = Non-Standalone (mit 4G)* \
// #text(size:24pt, weight:"bold")[5G mit 4G-Unterstützung]
- 5G NR wird zusätzlich zu LTE verwendet
- Steuerung läuft meist über LTE
- Kernnetz bleibt oft das 4G-Kernnetz: *EPC*
- schneller Ausbau, aber nicht alle 5G-Funktionen
#align(center)[
`UE -> LTE eNodeB + 5G gNodeB -> EPC`
]
],
[
*SA = Standalone (eigenständig)* \
// #text(size:24pt, weight:"bold")[eigenständiges 5G]
- 5G NR arbeitet direkt mit dem 5G-Kernnetz
- Kernnetz ist das *5GC*
- niedrigere Latenz und Network Slicing möglich
- keine LTE-Ankerverbindung nötig
#align(center)[
`UE -> 5G gNodeB -> 5GC`
]
],
)
#v(0.7em)
#box(stroke: orange, inset: 6pt, radius: 2pt)[
#text(size: 10pt)[
*Abkürzungen:* UE = Endgerät, eNodeB = 4G-Basisstation,
gNodeB = 5G-Basisstation, EPC = 4G-Kernnetz, 5GC = 5G-Kernnetz.
Network Slicing = ein physisches Netz wird logisch in mehrere virtuelle Netze aufgeteilt.
]
]
]
== Bedeutung für unser Projekt
#slide[
#grid(columns: (1fr, 1fr), gutter: 18pt,
[
*Was Mobilfunk dem Raspberry Pi gibt:*
- Internetzugang über 4G
- Verbindung läuft über das Netz des Providers
- gut für mobile Geräte und Standorte ohne WLAN
- IP-Adresse kann wechseln
],
[
*Was Mobilfunk nicht automatisch gibt:*
- keine direkt erreichbare öffentliche IPv4-Adresse
- eingehende Verbindungen sind oft blockiert
- Zugriff von aussen ist dadurch schwieriger
- deshalb braucht es andere Lösungen
],
)
#v(0.8em)
*Folge für den weiteren Aufbau:* Externer MQTT-Broker, VPN/WireGuard/Tailscale
und eventuell DDNS werden wichtig, weil der Pi nicht einfach direkt aus dem Internet
erreichbar ist.
#v(0.6em)
#text(size: 10pt)[
*Hinweis:* Normales öffentliches 5G ist kein Mesh-Netz. Smartphones leiten
normalerweise keine Daten anderer Smartphones zur Antenne weiter.
]
]
== Öffentliche IP & Carrier-Grade NAT (CGNAT)
#grid(columns: (1fr,)*1, gutter: 10pt,
[#align(center)[#image("img/cgnat.png", width: 80%)]],
)
== VPN Wireguard / Tailscale
#grid(columns: (1fr, 1fr), gutter: 10pt,
[
*Herausforderung:*
- Pi hat keine öffentliche IPv4-Adresse (CGNAT)
// - Eingehende Verbindungen werden vom Provider blockiert
*Lösung: Wireguard*
- *Peer-to-Peer:* Pi baut Verbindung aktiv nach aussen auf
- *UDP-basiert:* Effizient und schnell auf mobilen Verbindungen
- *Roaming:* Verbindung bleibt stabil, auch wenn die Funkzelle wechselt
],
[#align(center)[#image("img/vpn.png", width: 100%)]],
)
== Dynamic DNS
#grid(columns: (1.5fr, 1fr), gutter: 10pt,
[
- Mobilfunk-IPs sind meist dynamisch und wechseln oft
- *Dynamic DNS (DDNS):* Verknüpft wechselnde IP mit festem Hostnamen
- *Vorteil:* Einfacher Zugriff über `mobkom.xxx.de` statt Kryptischer IP-Adressen
],
[#align(center)[#image("img/dns.png", width: 100%)]],
)
== MQTT Sicherheit & Externer Broker
#slide[
// = Mehrstufiges Sicherheitskonzept
#grid(columns: (1fr, 1fr), gutter: 15pt,
[
*Transport-Ebene (TLS/SSL)*
- Verschlüsselung des gesamten Kanals
- Schützt auch Metadaten (Topics)
- Zertifikatsmanagement erforderlich
- Sicher gegen Man-in-the-Middle
],
[
*Daten-Ebene (Payload)*
- Verschlüsselung direkt in Python (AES)
- Schutz vor kompromittierten Brokern
- "Zero Trust": Broker sieht nur Chiffre
- Sehr geringer Overhead
]
)
#v(1em)
*Sicherung des externen Brokers:*
- *Authentifizierung:* Kein Zugriff ohne gültige Credentials
- *ACLs (Access Control Lists):* Pi darf nur auf `/getraenke/status` schreiben
- *Vorteil Extern:* Erreichbarkeit ohne Port-Forwarding/VPN-Zwang für Clients
]
== GPS
#slide[
#grid(columns: (1fr, 1fr), gutter: 15pt,
[
*Ortung via LTE-Modul*
- Integriertes GNSS-Modul auf dem Waveshare HAT
// - *Datenformat:* NMEA-0183 (Standard-Textprotokoll)
- *Anwendungsfall:* Tracking des Automaten oder Diebstahlschutz
- *Herausforderung:* GPS-Antenne benötigt meist Sichtkontakt zum Himmel
],
[#align(center)[#image("img/csm_1_Laufzeitmessung_4b22a687fd.png", width: 80%)]],
)
]
// == Aufbau
// 3. Wichtiger technischer Unterschied: USB vs. UART
// Hier kommt ein entscheidender Punkt für deine Performance:
// - Über GPIO (UART): Wenn du den HAT nur oben aufsteckst, ist die Geschwindigkeit auf die serielle Rate begrenzt (meistens max. 115.200 bis 4.000.000 bps). Das ist für Sensordaten okay, aber für "echtes" Surfen sehr langsam.
// - Über USB-Kabel: Wenn du das mitgelieferte USB-Kabel zusätzlich zwischen HAT und Pi einsteckst, wird das Modul als echtes Netzwerkgerät erkannt (WWAN). Damit erreichst du die volle 4G-Geschwindigkeit (bis zu 150 Mbit/s).
== Hardware & Aufbau
#slide[
*Die technischen Tücken*
#table(
columns: (1fr, 1fr),
[*Anbindung via GPIO (UART)*], [*Anbindung via USB*],
[Einfaches Aufstecken], [Zusätzliches Kabel nötig],
[Max. 115'200 Baud (0.1 Mbit/s)], [WWAN-Interface (bis 150 Mbit/s)],
[GPS/LTE teilen sich serielle Ressource], [Parallele Datenströme möglich],
[Nur für kleine Sensordaten (MQTT)], [Massentauglich (Streaming/Updates)],
)
*Wichtig:* Ohne USB-Kabel können GPS und LTE nicht simultan mit voller Performance genutzt werden.
]
== Probleme
#grid(columns: (1fr, 1fr), gutter: 10pt,
[*MQTT* \ `/etc/mosquitto/conf.d/websockets.conf`
```conf
listener 9001 0.0.0.0
protocol websockets
allow_anonymous true
```
Ohne `0.0.0.0` nur local ab ver. 2.0.
],
[*IMU*
- Sehr Träge
- Eigene berechnung über x, y, z
],
// [#align(center)[#image("img/seitenansicht.png", width: 100%)]],
)
== Demo
#grid(columns: (1fr,)*1, gutter: 10pt,
[#align(center)[#image("img/demo_aufbau.svg", width: 100%)]],
// [#align(center)[#image("img/seitenansicht.png", width: 100%)]],
)
#slide(title: none, config: (handout: false))[
#text(size: 32pt)[Danke fürs Zuhören] \
Fragen?
]