Powerctrl: Unterschied zwischen den Versionen
(4 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 26: | Zeile 26: | ||
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. | 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 [http://www.reichelt.de/itm/?ARTICLE=26592 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. | + | Zum Schalten des 230V-Stromkreises werden die [http://partners.webmasterplan.com/click.asp?ref=717796&site=8948&type=text&tnb=26&utm_source=Affiliate&utm_medium=CPC&utm_campaign=Affilinet&diurl=http://www.reichelt.de/itm/?ARTICLE=26592 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 [http://www.reichelt.de/itm/?ARTICLE=22008 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. | + | Die Platine und die Schaltausgänge des [http://partners.webmasterplan.com/click.asp?ref=717796&site=8948&type=text&tnb=26&utm_source=Affiliate&utm_medium=CPC&utm_campaign=Affilinet&diurl=http://www.reichelt.de/itm/?ARTICLE=22008 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 [http://www.cadsoftusa.com EAGLE] Free-Version erstellt und befindet sich im Github-Repository [https://github.com/schinken/powerctrl/tree/master/hardware 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. | Das Layout der Platine wurde mit der [http://www.cadsoftusa.com EAGLE] Free-Version erstellt und befindet sich im Github-Repository [https://github.com/schinken/powerctrl/tree/master/hardware 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. | ||
Zeile 70: | Zeile 70: | ||
Die erste Variante unserer PowerCtrl Hardware verabschiedete sich aus bisher ungeklärten Ursachen nach wenigen Tagen von uns. Als schnellen Ersatz bauten wir uns daher mit hilfe eines Arduino UNO eine neue Schaltplatine auf einer Lochrasterplatine auf. | Die erste Variante unserer PowerCtrl Hardware verabschiedete sich aus bisher ungeklärten Ursachen nach wenigen Tagen von uns. Als schnellen Ersatz bauten wir uns daher mit hilfe eines Arduino UNO eine neue Schaltplatine auf einer Lochrasterplatine auf. | ||
− | Zusätzlich zu den 8 Relais-Ausgängen, welche über den UDN2981-IC angeschlossen sind, existieren jetzt auch noch 8 digitale Ausgänge. Diese sind über einen | + | Zusätzlich zu den 8 Relais-Ausgängen, welche über den UDN2981-IC angeschlossen sind, existieren jetzt auch noch 8 digitale Ausgänge. Diese sind über einen ULN2803A angeschlossen. Der 8 Digital-Ausgang ist fest mit einer Status-LED verdrahtet und wird benutzt um den Betriebszustand anzuzeigen. |
Trotz der eingebauten Dioden im UDN2981 haben wir zusätzlich extern weitere Dioden zum Schutz angebracht, da unsere erste Schaltung vermutlich aus diesem Grund verabschiedet hatte. | Trotz der eingebauten Dioden im UDN2981 haben wir zusätzlich extern weitere Dioden zum Schutz angebracht, da unsere erste Schaltung vermutlich aus diesem Grund verabschiedet hatte. | ||
+ | |||
+ | === Version 3 === | ||
+ | |||
+ | Nachdem wieder eine UDN2981 gestorben ist und uns einen weiteren Arduino Nano vernichtet hat, haben wir nun die Schaltung der Relais auch auf einen ULN2803A umgebaut. Dies beseitigt die Gefahr, das 24V an den GPIOs des Arduinos anliegen können, da nun nur noch Masseseitig geschalten wird. | ||
+ | Ein Umbau war zum Glück ohne großen Aufwand möglich, da unsere Finder Relais beidseitig Schalten können. | ||
== Ausgänge == | == Ausgänge == | ||
Zeile 89: | Zeile 94: | ||
|- | |- | ||
|2 | |2 | ||
− | |Bar | + | |Bar |
|- | |- | ||
|3 | |3 | ||
− | | | + | |Küchenlager Licht |
|- | |- | ||
|4 | |4 | ||
Zeile 101: | Zeile 106: | ||
|- | |- | ||
|6 | |6 | ||
− | |Küche Steckdosen | + | |Küche Steckdosen |
|- | |- | ||
|7 | |7 | ||
Zeile 163: | Zeile 168: | ||
==== Küchenlichttaster ==== | ==== Küchenlichttaster ==== | ||
− | Um | + | Um die Küchenlichter unkompliziert und ohne Tablet schalten zu können wurden zwei Tastschalter installiert. |
+ | Diese schalten mit 24V über ein DIL Relais die GPIOs 17 und 27 RaspberryPis und werden mit hilfe von WiringPi ausgelesen. | ||
Das bash Script das dies tut fragt direkt die RestAPI des PowerCtrls nach den aktuellen Zustand des Relais ab und toggelt entsprechent den Schaltausgang. | Das bash Script das dies tut fragt direkt die RestAPI des PowerCtrls nach den aktuellen Zustand des Relais ab und toggelt entsprechent den Schaltausgang. | ||
− | |||
==== Spannungsversorgung ==== | ==== 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. | 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. |
Aktuelle Version vom 15. Januar 2015, 10:15 Uhr
powerctrl Status: beta | |
---|---|
Beschreibung | Stromkasten mit REST-Api |
Autor: | schinken, xoquox |
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
Version 1
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 |
Version 2
Die erste Variante unserer PowerCtrl Hardware verabschiedete sich aus bisher ungeklärten Ursachen nach wenigen Tagen von uns. Als schnellen Ersatz bauten wir uns daher mit hilfe eines Arduino UNO eine neue Schaltplatine auf einer Lochrasterplatine auf.
Zusätzlich zu den 8 Relais-Ausgängen, welche über den UDN2981-IC angeschlossen sind, existieren jetzt auch noch 8 digitale Ausgänge. Diese sind über einen ULN2803A angeschlossen. Der 8 Digital-Ausgang ist fest mit einer Status-LED verdrahtet und wird benutzt um den Betriebszustand anzuzeigen.
Trotz der eingebauten Dioden im UDN2981 haben wir zusätzlich extern weitere Dioden zum Schutz angebracht, da unsere erste Schaltung vermutlich aus diesem Grund verabschiedet hatte.
Version 3
Nachdem wieder eine UDN2981 gestorben ist und uns einen weiteren Arduino Nano vernichtet hat, haben wir nun die Schaltung der Relais auch auf einen ULN2803A umgebaut. Dies beseitigt die Gefahr, das 24V an den GPIOs des Arduinos anliegen können, da nun nur noch Masseseitig geschalten wird. Ein Umbau war zum Glück ohne großen Aufwand möglich, da unsere Finder Relais beidseitig Schalten können.
Ausgänge
Die Ausgänge sind wiefolgt belegt:
Relais | Beschreibung |
---|---|
0 | Podest |
1 | Küchen Licht |
2 | Bar |
3 | Küchenlager Licht |
4 | Leinwand |
5 | Eingang |
6 | Küche Steckdosen |
7 | Küche E-Herd (upcoming feature) |
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) |
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 | /device/<key> | Einschalten |
GET | /device/<key> | Status abfragen |
DELETE | /device/<key> | 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.
Küchenlichttaster
Um die Küchenlichter unkompliziert und ohne Tablet schalten zu können wurden zwei Tastschalter installiert. Diese schalten mit 24V über ein DIL Relais die GPIOs 17 und 27 RaspberryPis und werden mit hilfe von WiringPi ausgelesen. Das bash Script das dies tut fragt direkt die RestAPI des PowerCtrls nach den aktuellen Zustand des Relais ab und toggelt entsprechent den Schaltausgang.
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.