🔧 Ziel
Ein energieeffizientes, zuverlässiges System, das:
- den Raspberry Pi periodisch oder manuell startet
- bei Bedarf nach abgeschlossener Arbeit automatisch wieder abschaltet
- zwischen Dauerbetrieb, Wartungsbetrieb und Alarmbetrieb unterscheidet
- bei Einbruch oder Störung im Alarmmodus zuverlässig meldet
- mit dem Raspberry Pi über eine serielle Schnittstelle (UART) kommuniziert
- nicht einfach durch einen Schalter deaktivierbar ist
⚙️ Systemkomponenten
| Komponente | Funktion |
|---|---|
| ATtiny4313 | Steuereinheit mit Zustandsspeicher, UART-Kommunikation, Alarmlogik |
| Raspberry Pi | Hauptrechner für Netzwerk, Monitoring, Logging etc. |
| Power Switch | MOSFET oder elektronischer Schalter zur Versorgung des Pi |
| UART (TTL) | Kommunikation ATtiny ↔ Raspberry Pi (TX/RX, 5 V TTL) |
| Taster & Sensoren | Eingaben zur Modusumschaltung & Alarmüberwachung |
| 12 V → 5 V Buck | Versorgung von ATtiny & ggf. Pi via Wandler |
⚡ Spannungs- & Pegelkompatibilität
| Verbindung | Spannung | Pegelkompatibel? |
|---|---|---|
| ATtiny4313 Vcc | 5 V (vom Buck-Regler) | ✅ Ja |
| UART zu Raspberry Pi | 5 V TTL → 3.3 V Pi RX | ⚠️ Pegelwandler empfohlen |
| UART vom Pi TX → Tiny RX | 3.3 V → 5 V AVR RX | ✅ meistens stabil |
Empfehlung: Pegelwandler oder Spannungsteiler für ATtiny TX → Pi RX.
🔌 GPIO-Zuordnung am ATtiny4313
| ATtiny Pin | Funktion | Richtung | Kommentar |
|---|---|---|---|
| PD0 | UART RX | IN | Vom Pi |
| PD1 | UART TX | OUT | Zum Pi (5 V → 3.3 V Wandler nötig) |
| PD2 | Taster | IN | Zur Modusumschaltung |
| PD3 | Alarm Input (Schleife) | IN | Überwacht Fenster/Türen |
| PD4 | Pi Power Switch | OUT | Steuert MOSFET |
| PD5 | Status LED (optional) | OUT | Optional für Feedback |
| RESET | Programmierbar | – | ISP nötig |
| Vcc/GND | Stromversorgung | – | 5 V vom Buck |
🔄 Zustände & Übergänge
stateDiagram-v2
[*] --> Init
Init --> Periodic : Timerstart
Init --> Permanent : Taster (lang)
Init --> Alarm : Taster (doppelklick) oder EEPROM
Periodic --> Shutdown : Timer abgelaufen
Permanent --> Shutdown : Kommando vom Pi
Alarm --> Shutdown : Alarm quittiert & Pi gibt frei
Alarm --> AlarmTrigger : Alarmkontakt geöffnet
AlarmTrigger --> Shutdown : Meldung an Pi gesendet
Shutdown --> [*] : Power-Off Pi
📋 Zustandstabelle
| Zustand | Beschreibung | Übergänge |
|---|---|---|
| Init | Wird beim Start des ATtiny gesetzt | Übergang über Taster oder gespeicherte Info |
| Periodic | Startet Pi nach Timer-Intervall, fährt nach getaner Arbeit wieder runter | → Shutdown nach Timer oder Pi-Freigabe |
| Permanent | Pi bleibt dauerhaft an, manuelle Steuerung möglich | → Shutdown durch expliziten Befehl vom Pi |
| Alarm | Alarmaktiv: ATtiny überwacht Sensoren | → AlarmTrigger bei Öffnung |
| AlarmTrigger | Alarm ausgelöst, Pi wird hochgefahren | → Shutdown durch Pi nach Quittierung |
| Shutdown | Pi wird heruntergefahren, Strom wird getrennt | → [*] |
🔐 Sicherheit & Sabotageschutz
- Kein Kippschalter deaktiviert das System – nur Taster mit Logik
- Alarm wird nicht vom Pi allein steuerbar deaktiviert
- ATtiny „besitzt“ die Kontrolle über Power & Modus
- Zustand kann im EEPROM gespeichert werden, um Neustarts zu überleben
🔧 ISP-Anschlussbelegung (für Programmierung des ATtiny4313)
| Pin | Funktion |
|---|---|
| RESET | Reset |
| MOSI | Daten in |
| MISO | Daten out |
| SCK | Takt |
| VCC | 5 V |
| GND | Masse |
Programmierbar z. B. über USBasp oder Arduino as ISP.
📶 UART-Protokoll (minimal)
Pi → ATtiny:
STATUS=OK→ LebenszeichenSHUTDOWN→ Fahr herunterMODE?→ Fragt den aktuellen Modus ab
ATtiny → Pi:
MODE=PERIODIC|PERMANENT|ALARMALARM=TRIGGEREDSHUTDOWN→ Power-Off in x Sekunden
📦 Optionen für die Umsetzung
- Serielle Kommunikation über
/dev/serial0 - ATtiny Code via Arduino IDE oder avr-gcc
- Raspberry Pi Service überwacht UART / sendet
STATUSregelmäßig - Fehlermeldung & Shutdown bei Inaktivität oder Alarmereignis
Wenn du möchtest, kann ich dir im nächsten Schritt liefern:
- Einen vollständigen KiCad-Schaltplan
- Den Arduino-Code für den ATtiny4313
- Ein Beispiel für das Python-Monitoring am Pi
- EEPROM-gestützte Modusverwaltung
Sag mir einfach, womit du weitermachen willst.