Files
gitea-pages/docs/IF_Projekte/Testlandschaft/Projektmanagement/Planen/Hardware.md

2.6 KiB

Hardware

Created: 2025-11-14 17:52:25 +0100

Modified: 2025-11-20 15:31:56 +0100


Raspberry Pi Microcomputer
Timer / Datengenerierung Zusätzliche Sensoren oder Input
Lokale Speicherung (JSON/CSV) Evtl. Datenvorverarbeiten (Messwerte filtern)
Erste Validierung Kommunikation mit dem Raspberry Pi
  1. Jeder Microcomputer arbeitet für sich.

    a. Erzeugt eigene Daten

    b. Speichert und sendet es selbst

  2. Kommunikation passiert nur über definierte Übergabe

Es gibt nur zwei Arten zur Kommunikation:

  • Datei --> Ordner(lokal)
  • Nachricht --> Netzwerk (HTTP, MQTT, UDP, ...
  1. Ein gerät spielt "Erzeuger" Rolle (z.B Pi)

    a. Timer

    b. Daten erzeugen

    c. Speichern oder senden

  2. Ein gerät spielt "Beobachter/Validator" Rolle: (z.B ESP32 or Arduino)

    a. Warten

    b. Nimmt Daten an (Datei oder Nachricht)

    c. Prüft sie

    d. Meldet Fehler/Status

Ablauf:

Gerät A (Raspberry Pi) --> Erzeugt Daten --> übergibt --> Gerät B (Esp32 prüft) --> Resultat --> zurück an Raspberry PI

Kommunikation

Weg A: Seriell / UART (direkte Verbindung)

  • Via TX/RX (Transmit and Receive)
Pro: sehr einfach, wenig Protokoll-Overhead, Echtzeitnah
Contra: Gerät muss nah beieinander liegen, Verbindungslänge begrenzt

What is UART? | How to wire UART? | RX TX{width="5.0in" height="2.8125in"}

Weg B : Netzwerk-Kommunikation (z.B über HTTP, MQTT)

  • Pi sendet Daten über Netzwerke an Microcomputer oder Server oder umgekehrt.
Pro: Geräte können räumlich getrennt sein, Kommunikation klar definiert, einfach erweiterbar auf mehre Geräte.
Conta: Etwas komplexer aufsetzten (Netzwerk, Protokoll, Fehlerbehandlung).

Introduction to MQTT - MATLAB & Simulink{width="5.0in" height="3.8229166666666665in"}

// Auf Pi

TIMER => erzeugt Daten (JSON/CSV)

lokaler Ordner => Datei speichern

VALIDIERUNGSPROZESS {

Ordner überwachen

Datei auslesen

validieren()

if Fehler {

error.log

console("Fehler erkannt")

} else {

log

}

}

// Optional: Netzwerk

API-Request senden an ValidatorServer {

Datei im Body

Header: Content-Type, Timestamp, Auth

}

ValidatorServer {

empfangen(Request)

validieren(Status)

Response => Erfolg / Fehler

Loggen

}