PowerCommander
PowerCommander Release status: stable [box doku] | |
---|---|
Description | |
Author(s) | Pl4nkton, Mati, asklepios, tixiv |
Last Version | 0.98 |
Platform | AVR (ATmega168/32) |
License | Source: GPL / unbekannt |
Download | c Code, trac |
Einleitung
Der Powercommander schaltet Relais im Sicherungskasten und kann somit (fast) das gesamte Labor an und ausschalten - natürlich abgesehen von Kühlschrank und Server. Ferner kann er die Lampen einzeln im Vortragsraum, Küche und Lounge dimmen. Das ganze ist bequem per Webinterface erreichbar für jeden der sich im Labor befindet. Das Gerät nimmt Steuerbefehle via Canbus entgegen.
Taster im Labor die aus der Gebäudeinstallation stammen sind mit dem Powercommander verbunden und schalten nicht direkt das Licht über einen Stromstoßschalter, sondern dient viel mehr als Eingabetaster für den Powercommander. So ist es möglich, mit den vorhandenen Schaltern das Licht zu dimmen.
Das Gehäuse beinhaltet ein Schaltnetzteil, sowie zwei Mikrocontroller: Einen Atmega168 und einen Atmega32. Der Atmega168 ist hauptsächlich als IO Expander tätig und schaltet die Relais und Analogausgänge, während der Mega32 die CAN-Steuerung sowie Eingänge übernimmt und eine RGB LED zur Statusanzeige ansteuert. So ist es möglich die Firmware des Mega32 zu ändern ohne das sich die Zustände der Ausgänge verändern - also das Licht oder der Strom ausfällt.
Technische Dokumentation
CAN Adresse 0x02
Belegung der Schraubklemmen am Gehäuse
Klemme | Belegung | Anmerkung |
---|---|---|
1 | GND 24V | |
2 | ||
3 | ||
4 | 24V Eingang | RCD Server |
5 | 24 V Eingang + Power Good Erkennung | Power vom Netzteil im Sicherungskasten |
6 | 24V Eingang | Hauptschalter |
7 | 24V Eingang | RCD Haupt |
8 | 24V Eingang | RCD Licht |
9 | ||
10 | 24V Ausgang | Frei |
11 | 24V Ausgang | Relais Hauptschütz (nicht Dauerstromsteckdosen + Licht Keller + Licht Bastelraum) |
12 | 24V Ausgang | Relais Klo Strom Licht + Steckdose |
13 | 24V Ausgang | Relais Tischsteckdose Lounge |
14 | 24V Ausgang | Relais Lounge Licht |
24V Ausgang | Relais Vortragsraum Licht | |
16 | 24V Ausgang | Relais Beamer |
17 | 24V Ausgang | Relais Küchenlicht |
18 | 0-10V EVG Dimmer | Flipper |
19 | 0-10V EVG Dimmer | Schrank |
20 | 0-10V EVG Dimmer | Küche |
21 | 0-10V EVG Dimmer | |
22 | 0-10V EVG Dimmer | Beamer |
23 | 0-10V EVG Dimmer | Tafel |
24 | GND | Licht-Steuerkreise + Hauptschalter |
25 | 5V Ausgang | Optotriak Vortragsraum bei der Tafel |
26 | 5V Ausgang | Optotriak Vortragsraum bei dem Beamer |
27 | 5V Ausgang | Optotriak Vortragsraum bei dem Schrank |
28 | 5V Ausgang | Optotriak Vortragsraum bei dem Flipper |
29 | ||
30 | 230V Neutralleiter Lichtkreis | |
31 | 230V Phase Lichtkreis | Taster Vortragsraum |
32 | 230V Phase Lichtkreis | Taster Lounge |
33 | ||
34 | ||
35 |
Übersicht
Oberere Buchse an der linken Seite: CAN Untere Buchse an der linken Seite: Belegung: 1 GND ,2 GND ,3 EIA-232_RX ,4 EIA-232_TX ,5 GND ,6 GND ,7 ,8 ,9 24 V ,10 - Eingänge:
Ausgänge:
|
Spannungen:
|
Mikrocontroller I/O
µC Ausführung - Mega168
|
µC Interface - ATMega32
|
Steckverbinder
10 Pin Stecker zur Verbindung der unteren mit der oberen Platine rechts
links:
|
Software
TODO: Version 1.0
- Atmega32 "interface"
- CAN packete senden/empfangen
- Bei jeder Änderungen: CAN-Packet senden
- nicht jede Funktion kann per CAN ausgelöst werden
- Schalter abfragen
- Lampen steuern (direkt / CAN Packet an Labnode lounge)
- Hauptschalter abfragen
- Relais schalten, zeitverzögert beim Ausschalten
- Helligkeitswerte für Lampen auf 70% setzen (Ausschalten)
- RCD abfragen
- LED Status setzen
- Relais steuern
- Relais werden automatisch gesteuert, nicht mehr manuell über CAN
- (Küche und Lounge)
- Optotriacs steuern
- Lampe PWM steuern
- CAN packete senden/empfangen
- Atmega168 "controll"
- wird von interface über I2C gesteuert
Lampensteuerung
Vorschlag:
ZielAdresse | ZielPort | Data[0] Befehl | Data[1] Lampennummer | Data[2] Argument | Data[3] Argument | Befehl |
x | 2 | 0 | y | 0: Aus, >0: An | Lampe schalten | |
x | 2 | 1 | y | {0 .. 255} | Helligkeit setzen | |
x | 2 | 2 | Lampenstatus abfragen, Antwort mit Data[0] = 255 | |||
x | 2 | 3 | 0 | 0: Aus, >0: An | Alle Lampen schalten | |
x | 2 | 4 | 0 | {0 .. 255} | Helligkeit aller Lampen setzen | |
Absender | 2 | 255 | Lampenstatus, bit 1==AN/0==Aus | PWM-Wert1 | PWM-Wert2 ... | Antwort auf Anfrage |
- Setzen:
- ist die Lampennummer nicht verfügbar, wird das Paket verworfen
- Abfragen: Statuspaket anfordern
- Lampe geschaltet ?:
- Lampe aus: 0
- Lampe an: 1
- nicht verfügbar: 2
- Lampe Helligkeit ?:
- dimmbare Lampe: <Wert>
- sonst, nicht verfügbar: 255
- Lampe geschaltet ?:
Statusupdate
Vorschlag:
ZielAdresse | ZielPort | Data[0] Befehl | Data[1] Argument | Befehl |
0 | 1 | 0 | {0 .. 255} | Status update aller Eingänge |
0 | 1 | 1 | {0 .. 255} | Status update aller Relais |
TODO
- Schaltpläne E/A ins Wiki
Erweiterung
Webinterface
Kommandozeile
Das Tool labcontrol biete die Möglichkeit den Powercommander anzusteuern. Folgende Befehle sind möglich:
Klasse | Objekt | Funktion | Value |
SW (0) | LAMP_TAFEL (8) | OFF (0) | 0x00 |
ON (1) | 0x00 | ||
LAMP_BEAMER (9) | OFF | 0x00 | |
ON | 0x00 | ||
LAMP_SCHRANK (10) | OFF | 0x00 | |
ON | 0x00 | ||
LAMP_FLIPPER (11) | OFF | 0x00 | |
ON | 0x00 | ||
LAMP_LOUNGE (3) | OFF | 0x00 | |
ON | 0x00 | ||
LAMP_VORTRAG (2) | OFF | 0x00 | |
ON | 0x00 | ||
KUECHE (0) | OFF | 0x00 | |
ON | 0x00 | ||
BEAMER (1) | OFF | 0x00 | |
ON | 0x00 | ||
PWM (1) | TAFEL (0) | SET (0) | 0x00 - 0xFF |
GET | 0x00 | ||
BEAMER (1) | SET (0) | 0x00 - 0xFF | |
GET | 0x00 | ||
SCHRANK (2) | SET (0) | 0x00 - 0xFF | |
GET | 0x00 | ||
FLIPPER (3) | SET (0) | 0x00 - 0xFF | |
GET | 0x00 | ||
KUECHE (5) | SET (0) | 0x00 - 0xFF | |
GET | 0x00 | ||
VIRT (2) | VORTRAG_LICHT (1) | ON (1) | 0x00 |
OFF (0) | 0x00 | ||
VORTRAG_PWM (2) | SET (0) | 0x00 - 0xFF |