Powerctrl
powerctrl Status: beta | |
---|---|
Beschreibung | Stromkasten mit REST-Api |
Autor: | schinken|rel=author |
PayPal |
Beschreibung
Das Powerctrl ist eine kleine Platine im Hutschienengehäuse, welche über RS232 230V-Relais schaltet. Mit dieser Installation können wir einzelne Leitungen komplett stromlos schalten, z.B. wenn der Letzte den Hackerspace verlässt. Ziel ist es auf Dauer hiermit Strom zu sparen.
Die Idee für unser Powerctrl kam uns bei einem Besuch in Bochum bei "Das Labor". Ihr Projekt Powercommander verwendet die gleichen Relais und das selbe Gehäuse, allerdings nutzen sie den CAN-Bus für die Kommunikation.
Hardware
Als Prozessor kommt ein Atmega8 zum Einsatz, welcher eine UART-Schnittstelle und genug Pins besitzt, um bis zu 16 Relais schalten zu können. Für den aktuellen Aufbau werden nur 8 Ports verwendet, da nicht mehr Relais benötigt werden. An den UART-Pins ist ein USB-to-RS232 Konverter angeschlossen und mit einem RaspberryPI verbunden.
Zum Schalten des 230V-Stromkreises werden die Finder 22.21.9.024.4000 Relais verwendet, welche über einen UDN2981-IC mit 24 Volt Gleichspannung angesteuert werden. Des weiteren befinden sich noch 2 Status-LEDs auf der Platine um Datenkommunikation und Schaltvorgänge zu visualisieren.
Die Platine und die Schaltausgänge des UDN2981 werden durch ein externes 24V Schaltnetzteil versorgt. Der Microcontroller selbst läuft mit 5V, welche über einen 7805-Spannungsregler von der 24V-Stromversorgung abgeleitet wird.
Das Layout der Platine wurde mit der EAGLE Free-Version erstellt und befindet sich im Github-Repository powerctrl/hardware. Um das Routing zu erleichtern wurde der UDN2981-IC auf der Unterseite der Platine platziert, da hier genügend Platz vorhanden ist. Nicht alle Leiterbahnen konnten auf dem Bottom-Layer geroutet werden, deshalb sind die für den Betrieb irrelevanten Leitungen auf dem Top-Layer gelegt und später mit Fädeldraht verbunden worden.
Alle Bauteile sind im DIL-Package damit wir die Platine mit der CNC-Fräse fräsen konnten.
Verwendete Bauteile
Bauteil | Menge |
---|---|
atmega8 | 1 |
UDN2981 | 1 |
2x Schraubklemmen | 10 |
7805 | 1 |
16Mhz Quarz | 1 |
22pF Kerko | 2 |
100nF Kerko | 2 |
100µF Elko | 2 |
Ausgänge
Die Ausgänge sind wiefolgt belegt:
Relais | Beschreibung |
---|---|
0 | relais missing |
1 | relais missing |
2 | Eingang |
3 | Leinwand |
4 | unassigned |
5 | unassigned |
6 | Küche |
7 | Podest |
Software
Atmega
Die Software für den AVR Mega 8 wurde komplett in C geschrieben und befindet sich auf Github im powerctrl/software-Repository. Um die Ausgänge zu Schalten wurde ein eigenes kleines Protokoll implementiert. Für das Protokoll wurde absichtlich ASCII gewählt, um Befehle auch per Hand (per screen) eingeben zu können. Das Parsen der Befehle wurde mit einer simplen "State-Machine" erzielt.
Befehl | Beschreibung |
---|---|
spX.Y | Setzt Port X auf Wert Y (1 oder 0) |
saX | Setzt alle Ports auf Y (1 oder 0) |
Alle Befehle werden nach dem setzen mit einem "OK" bestätigt
REST
Die REST-Api wurde auf dem RaspberryPI mit Python implementiert. Als Webframework wird python-flask verwendet. Die Schnittstelle kommuniziert über den USB zu RS232-Konverter mit dem Mikroprozessor um Ports zu setzen oder zu lesen.
Die REST-Schnittstelle ist kompatibel zur Webrelais-Schnitstelle:
HTTP-Befehl | Pfad | Beschreibung |
---|---|---|
GET | / | Webinterface |
POST | /relais/[0-7]? | Einschalten |
GET | /relais/[0-7]? | Status abfragen |
DELETE | /relais/[0-7]? | Ausschalten |
Verwendung
Die PowerCtrl wurde als Teil der Space Automation im alten Lichtschaltkasten an der Bar installiert. Von hier aus schaltet es die 230V Beleuchtung der Lounge und Küche.
Aufbau
Hardware
Für den RaspberryPi (hostname: onion) wurde ein Hutschienengehäuse besorgt, so kann auch er auch ordentlich im Schaltkasten eigebaut werden.
Spannungsversorgung
Die Spannungsversorgung des RaspberryPi und der PowerCtrl erfolgt mit zwei Hutschienen Netzteile von Meanwell der DR-15 Serie in 5V und 24V. Diese sind in erste Linie aus Platzgründen im Sicherungsschaltkasten in der Küche eingebaut. Trotz der Räumlich getrennten Kästen beträgt die Länger der Niederspannungsleitungen unter 2 Meter.