Netz-Schalter

Bis zu sechs Verbraucher schaltet der c't-Netz-Schalter einzeln an oder aus, bei zweien überwacht er sogar Strom und Spannung. Seine Dienste bietet er im Netzwerk an und hört auf die Befehle, die der Administrator per Webbrowser übermittelt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 18 Min.
Von
  • Benjamin Benz
  • Thorsten Thiele
Inhaltsverzeichnis

Ein ganz normaler Tag im Büro. Nur mal eben schnell ein paar Dokumente von der heimischen Festplatte ziehen. Aber läuft der Rechner zu Hause noch? Mist, heute Nacht habe ich ihn dann doch entnervt abgeschaltet. Also muss ich in den sauren Apfel beißen, meinen Chef vertrösten und die Nachtschicht als vergebens abschreiben ... Aber nein, der c't-Netz-Schalter rettet die Situation. Ein paar Mausklicks später bekommt der heimische PC wieder Saft und bootet. Nach wenigen Minuten präsentiere ich dem Chef stolz die Datei, und der Heimrechner legt sich wieder schlafen. Wenn der c't-Netz-Schalter das feststellt, fährt er ihn herunter und trennt ihn völlig vom Stromnetz.

Aber der Reihe nach: Den c't-Netz-Schalter gibt es nur als Selbstbauprojekt. Wer den Lötkolben am richtigen Ende anfasst und etwas Zeit investiert, erhält sechs 230-Volt-Steckdosen (Kaltgerätebuchsen) - jede einzeln über ein Relais geschaltet. Zusätzlich betätigt ein Niedervoltrelais beispielsweise den ON-Taster eines PC. Eine Messschaltung überwacht auf zwei Kanälen den Stromfluss und die Versorgungsspannung.

Alle dazu nötigen Befehle nimmt das Gerät über das Netzwerk (TCP/IP) entgegen. Verantwortlich zeichnet dafür ein Baustein names XPort. Er transportiert die Daten aus dem LAN über eine serielle (TTL-)Verbindung an einen Mikrocontroller (ATmega8535). Damit man aber nicht kryptische Byte-Folgen per Telnet oder Netcat absetzen muss, stellt der integrierte Webserver des XPort eine Bedienoberfläche zur Verfügung. Ein gewöhnlicher Webbrowser mit Java-Unterstützung reicht daher aus, um den c't-Netz-Schalter auch vom Internetcafé aus zu steuern. Damit Unbefugten dies nicht gelingt, kann das Gerät die Verbindung mit einem Passwort schützen. Reicht das noch nicht aus, gibt es auch eine XPort-Variante (SE), die SSL-Verbindungen beherrscht.

Wer möchte, kann dem integrierten Mikrocontroller auch noch eigene Kunststückchen beibringen: Dämmerungsschalter, Zeitschaltuhren, Master-Slave-Schaltungen („Wenn der PC läuft, dann schalte auch den Monitor an“), aber auch ein einfaches Lauflicht sind denkbar. Gerade in der Erweiterbarkeit und der vollen Kontrolle über den Controller liegt die Stärke des Projekts - alle Quelltexte des Projekts stehen unter der Open-Source-Lizenz GPL und sind frei zugänglich.

Der Preis von rund 205 Euro für den kompletten Bausatz (Platinen und Teilesatz) wirkt zwar auf den ersten Blick abschreckend, liegt aber unter dem fertiger Geräte mit ähnlichem Funktionsumfang. Im Unterschied zu anderen Selbstbauprojekten enthält der Teilesatz ein komplettes Gehäuse mit Front- und Rückplatten sowie ein integriertes Netzteil. Es fehlen lediglich Kaltgerätekabel und ein Programmieradapter für den Mikrocontroller.

Wer die c't-Projekte COM-auf-LAN [1] und Mikrocontroller-im-LAN [2] verfolgt hat, dem werden weite Teile der zweistöckigen Schaltung bekannt vorkommen. Die untere Etage bewohnt auch diesmal wieder ein XPort-Baustein der Firma Lantronix, der die Netzwerkanbindung übernimmt. Er leitet die Daten, die er auf einem TCP-Port (10001) empfängt, an eine serielle Schnittstelle weiter und umgekehrt. Außerdem finden auf seinem integrierten Webserver bis zu 384 KByte Webseiten oder Java-Applets Platz. Weitere Details zur Programmierung des XPort finden sich in [1].

Der XPort teilt sich die untere Platine mit dem 230-Volt-Kreis, bestehend aus Relais, Stromfühlern, Buchsen und einem Trafo für die Versorgung der Schaltung. Vor eventuell lebensgefährlichen Fehlgriffen bei Arbeiten am offenen Gerät schützt eine nicht leitfähige Isolierstoffplatte, die alle netzspannungsführenden Teile abdeckt.

Huckepack auf der unteren Platine sitzt das altbekannte B-Modul aus [2], nach ein paar minimalen Modifikationen übernimmt es die Steuerung der Relais. Sein Mikrocontroller (ATmega8535) hängt an der seriellen Schnittstelle des XPort und lässt sich somit direkt über TCP/IP ansprechen. Nebenbei kann auch der c't-Netz-Schalter wie das ursprüngliche A-Modul [1] alte serielle Geräte ins Netz bringen - wer das will, muss nur die benötigten Pegelwandler und die RS-232-Buchse bestücken sowie den Mikrocontroller-Code anpassen [2].

Da insgesamt sieben Relais zu schalten sind, bekommen einige Pins des Mikrocontrollers (ATmega8535) gegenüber dem ursprünglichen Projekt neue Aufgaben. Die Zuordnung der Pins erfolgt über ein Jumper-Feld, dazu aber später mehr. Das B-Modul verfügt über zwei analoge Eingangskanäle mit Verstärkerschaltungen. Diese kümmern sich nun nicht mehr um Temperaturfühler, sondern messen den Strom, der in die Geräte an Buchse 1 und 2 fließt. Die Genauigkeit (10 Bit) reicht zwar nicht an die eines professionellen Leistungsmessgerätes heran, genügt aber für eine Überwachung der Funktion angeschlossener Geräte und eine grobe Abschätzung der elektrischen Leistung.

Wer mit weniger Ports und einem eingeschränkten Funktionsumfang auskommt, verzichtet auf das B-Modul. Dann schalten die drei I/O-Pins des XPort je ein Relais. Die zwei Stromfühler und die restlichen vier Relais muss man dann ebenfalls nicht bestücken. Insgesamt spart das rund 60 Euro. Lässt man statt des B-Moduls den XPort weg, spart man ähnlich viel. So behält man alle sieben Relais und kann das Gerät immer noch über die serielle RS-232-Schnittstelle ansprechen.

Bevor man den Lötkolben zur Hand nimmt und mit der Bestückung der Basisplatte beginnt, lohnt ein Blick auf deren Stromkreise. Im Primärkreis mit 230 Volt Wechselspannung hängen die Relais (RE1 bis RE6), die Buchsen (BU1 bis BU6, ST1), der Stecker (ST1), der Trafo (TR1) und die Sicherung (SI1) sowie einige Widerstände (R1, R2, R4, R5, R7 bis R14) und Kondensatoren (C1 bis C12). Das Berühren des offenen und angeschlossenen Gerätes kann zu schmerzhaften Folgen oder gar zum Tod führen. Trennen Sie vor dem Anfassen der Grundplatte immer die Netzspannung ab! Besonders auf der Unterseite der Platine führen viele Kupferflächen 230 Volt. Für den gefahrlosen Betrieb und auch das Programmieren des Mikrocontrollers muss der c't-Netz-Schalter in der Unterschale des Gehäuses sitzen und damit verschraubt sein. Da die isolierende Zwischenplatte aus FR4 alle Teile abdeckt, die Netzspannung führen, ist die Oberschale nicht zwingend erforderlich.

Aufgrund der RC-Entstörglieder liegen selbst bei abgefallenen Relais an den Ausgangsbuchsen noch 230 Volt an. Die Verbindung ist jedoch so hochohmig, dass die Verbraucher keinen nennenswerten Strom ziehen können - für die Glimmlampe eines Phasenprüfers reicht es dennoch. Lässt man die RC-Glieder weg, verschwindet die Phantomspannung, aber die Relaiskontakte verschleißen etwas schneller.

Den Niederspannungsteil mit der restlichen Elektronik speisen die beiden Sekundärwicklungen des Trafos mit jeweils 6 Volt. Der eine Kreis treibt lediglich die Spulen der Relais, der andere liefert zusammen mit den Spannungswandlern (IC3, IC4) stabilisierte Spannungen (VCC und V33) für die Elektronik. Durch diese Trennung beeinflussen Schaltspitzen von den Spulen der Relais die restliche Schaltung kaum.

Die beiden Stromwandler L1 und L2 liefern eine Spannung, die proportional zu dem Strom ist, der die Verbraucher an Buchse BU1 beziehungsweise BU2 durchfließt. Die Wandler trennen den Mess- und den Primärkreis galvanisch voneinander und erfassen den Strom induktiv. Dazu dient das kurze Drahtstück im Nullleiter zwischen Buchse und Relais (siehe Foto auf S. 192). Um auch die elektrische Leistung zu bestimmen, benötigt man neben der Stromstärke auch die Spannung und besonders deren Phasenlage. Über einen Spannungsteiler (R19 und R20) hängt die Sekundärwicklung des Trafos an einem Analogeingang des B-Moduls. Die Phasenverschiebung innerhalb des Trafos kann man im Rahmen der Messungenauigkeit vernachlässigen; es ist auch nicht damit zu rechnen, dass Verbraucher so viel Strom ziehen, dass die 230 Volt Netzspannung einbricht. Eine Spannungsmessung an der Sekundärseite sollte daher für eine grobe Leistungsmessung ausreichen.

Verbindet man Pin 2 und Pin 3 der Strommessschaltung mit Pin 2 und Pin 3 der analogen Eingänge, so berücksichtigt die Schaltung nur die positiven Halbwellen des Stromes. Die negativen kann bei symmetrischen Verläufen die Software rekonstruieren. Bei dieser Variante ist von Vorteil, dass die Verstärkung und damit der Messbereich variabel sind - man verschenkt also keine Auflösung. Interessieren auch die negativen Anteile, verdrahtet man statt Pin 2 einfach Pin 1, muss dann aber mit einem festen Messbereich auskommen.

Der Aufbau erfordert keine besonderen Lötkünste. Allerdings sollte der Lötkolben mindestens 50 W haben, um die großen Metallflächen der Relais und Buchsen zu erwärmen. Verschraubt man diese vor dem Einlöten, bleiben die Lötstellen frei von mechanischer Spannung. Die Bestückung des B-Moduls entspricht weitestgehend der bereits in [2] beschriebenen. Daher drucken wir auch den Schaltplan nicht nochmals ab, sondern veröffentlichen ihn lediglich in der Projekte-Rubrik auf www.ctmagazin.de. Um dem B-Modul nichts von seiner Flexibilität zu nehmen, wählt ein Jumper-Feld auf der Grundplatte aus, welche I/O-Pins sich um die Steuerung der Relais kümmern.

Wir schlagen vor, auf der Grundplatte alle Jumper des Feldes J4 zu setzen. Damit stehen die Leitungen IO11 bis IO17 und IO9 des B-Moduls nicht mehr für eigene Erweiterungen zur Verfügung. Dies betrifft keine der von uns in [2] oder [3] vorgestellten Bastelvorschläge, sondern hauptsächlich optionale serielle Handshake-Leitungen. Wer bereits eigene Ideen umgesetzt hat und diese Leitungen anderweitig nutzt, kann auch andere Verbindungen zwischen J4 und J5 ziehen. Das erfordert dann Anpassungen der Mikrocontroller-Software. Das Display und den Drehgeber aus den bisherigen Artikeln kann man natürlich weiterverwenden, auch wenn unsere Demo-Firmware sie kaum beachtet - die zugehörigen C-Bibliotheken sind weiterhin im Quell-Code enthalten.

Folgende Änderungen verwandeln einen Mikrocontroller-im-LAN (B-Modul) in die Steuereinheit des c't-Netz-Schalters: Anstelle der Stiftleiste P8 auf der Oberseite lötet man eine Buchsenleiste auf der Unterseite ein. Die Stecker P6 und P7 entfallen. Je nachdem, mit welchen I/O-Ports des B-Moduls man die Relais schalten möchte, müssen einige Widerstände weichen. In der von uns vorgeschlagenen Variante sind das R25, R26 und R35 bis R37. Da die Stromfühler keinen Gleichspannungs-Offset liefern, braucht die Verstärkerschaltung diesen auch nicht zu kompensieren (IC4C und IC5C). R3 und R11 werden zu Drahtbrücken (0 Ω). Zwei kurze zweiadrige Kabel verbinden die analogen Eingänge (Pin 2 und 3 von P6 und P7) mit den Stromfühlern der Grundplatte (Pin 2 und 3 von P1 und P2). Die Konstantstromquelle (Pin 1) bleibt dabei vorerst unbenutzt.

Vor der Inbetriebnahme des c't-Netz-Schalters muss man ihn in ein Gehäuse einbauen und die Basisplatine mit dem Gehäuse verschrauben. Am einfachsten funktioniert dies mit den Abstandsbolzen, die später die Mikrocontroller-Platine tragen. Dazu bohrt man Löcher in den Gehäuseboden, steckt von unten Schrauben durch und sichert sie mit je einer Mutter. Liegt die Platine im Gehäuse, kann man die Abstandsbolzen aufschrauben. Die Bolzen, die später die Isolierplatte tragen, sind etwas kürzer als die anderen. Ihre Verlängerungen sichern die Isolierplatte - dann sind alle Bolzen wieder auf einer Höhe und man kann das B-Modul einsetzen.

Vorsichtige Naturen nehmen nun zuerst den digitalen Teil der Schaltung in Betrieb und versorgen die Grundplatine über P3 mit 6 Volt Gleichspannung. Die Relais schalten so zwar noch nicht, aber sowohl der XPort als auch das B-Modul nehmen ihren Dienst auf.

Der Flash-Speicher des Mikrocontrollers enthält bei der Auslieferung noch kein Programm. Um ihn zu befüllen, benötigt man einen Programmieradapter. Im Rahmen des BlueMP3-Projektes [7] haben wir bereits ein preiswertes Modell zum Selberbasteln für die parallele Schnittstelle vorgestellt. Das kostenlose Programm PonyProg2000 (siehe Soft-Link) überträgt dann die Firmware in den Controller. Dabei muss man auf die korrekte Einstellung der Fuse-Bits achten, sonst verweigert der Controller nachhaltig den Dienst (siehe Screenshot). Für erste Gehversuche haben wir eine Image-Datei (mcu.hex) vorbereitet. Mit diesem Testprogram lassen sich alle Relais steuern: Zwei Taster (grün und gelb) wählen das Relais aus, der neben der roten LED schaltet den gewählten Kanal an oder aus. Die drei LEDs Grün (Bit0), Gelb (Bit1) und Orange (Bit2) zeigen binär die Nummer des gewählten Kanals an, die rote dessen Zustand.

Um den c't-Netz-Schalter aus der Ferne zu bedienen, muss nun noch das Demo-Java-Applet in den XPort - alle benötigten Dateien warten vorkompiliert auf unserem FTP-Server (Soft-Link). Den Transfer übernimmt der Device-Installer, den Lantronix anbietet. Er liefert einem auch die IP-Adresse, die der XPort zugewiesen bekommen hat (DHCP) oder teilt ihm eine feste IP zu. Ruft man dann in einem Webbrowser mit installiertem Java Runtime Environment die URL http://IP-DES-XPORT/start.html auf, so startet das Applet. Nachdem es Verbindung mit dem XPort aufgenommen hat, liefert der Knopf Read Relais den Status aller Kanäle zurück. Dann sind die sieben Schaltflächen für die Relais freigegeben und schalten die Relais 1 bis 6. Bevor man jedoch Verbraucher anschließt, sollte man noch einen Blick auf den Kasten „Messer, Schere, Licht ...“ werfen.

Vor dem Einlöten der Kaltgerätebuchsen sollte man diese festschrauben. So bleiben die Lötstellen frei von mechanischer Spannung.

Mit den von uns mitgelieferten Beispielprogrammen lassen sich zwar alle Grundfunktionen des c't-Netz-Schalters nutzen, aber wir reizen dessen Möglichkeiten längst nicht aus. So misst der Mikrocontroller zwar den Strom der ersten beiden Verbraucher, wertet ihn aber nicht aus. Ist nicht nur der Strom, sondern die Leistung von Interesse, muss man die Spannung ebenfalls betrachten. Eine geeignete Messschaltung ist zwar vorhanden, liegt aber derzeit noch brach. Denkbar wäre eine Betriebsart, um Rechner nach dem Herunterfahren völlig abzuschalten. So könnte man die rund 6 bis 15 Watt Stand-by-Leistung moderner ATX-Netzteile sparen. Auch Master-Slave-Schaltungen sind denkbar, die beispielsweise den Monitor erst dann einschalten, wenn der PC mehr als 50 Watt aufnimmt.

Alle Teile, die mit dem Primär-kreis (230 Volt Netzspannung) Kontakt haben, darf man unter keinen Umständen berühren.

Eine andere reizvolle Idee ist sicherlich, im Mikrocontroller eine Zeitschaltuhr zu implementieren, die sich dann über das Applet komfortabel programmieren lässt. Zwar besitzt das B-Modul keine Echtzeituhr, aber im Internet bieten genügend Timeserver die exakte Zeit feil. Man könnte den XPort sicherlich zu einer Kontaktaufnahme mit einem solchen Server überreden, müsste dann nur dem ATmega8535 das Zeitprotokoll NTP beibringen oder die Zeit aus der HTTP-Antwort eines anderen Webservers extrahieren. Statt Java-Applets könnte man auch dem Mikrocontroller ein paar HTTP-Befehle beibringen und ihn darüber steuern.

Wer jetzt Lust auf eigene Experimente bekommen hat, kann unseren Beispiel-Code als Einstiegspunkt für eigene Entwicklungen nutzen. Die Software-Entwicklung für den c't-Netz-Schalter wird aber auch Thema weiterer c't-Artikel sein. Bis dahin seien ungeduldige Naturen damit getröstet, dass die grundlegende Kommunikation mit dem Mikrocontroller sowie die Ansteuerung der Relais, Stromfühler, Taster und LEDs nicht anders funktioniert, als bereits in den vorigen Artikeln [2, 3] beschrieben. Des Weiteren listet der Soft-Link auch Entwicklungsumgebungen für Atmel-Prozessoren sowie das Eclipse-Framework auf, mit dem wir das Demo-Applet erstellt haben. Für Programme von Lesern findet sich auf unserer Projektseite [5] immer ein Plätzchen. Dort liegen übrigens auch der Schaltplan des B-Moduls sowie vollständige Stücklisten. Für Diskussionen gibt es außerdem ein Leserforum auf heise-online.

[1] Benjamin Benz, Brücken bauen, Umsetzer von Ethernet nach RS-232 im Eigenbau

[2] Benjamin Benz, Fernkontrolle, Mikrocontroller zum Messen und Steuern über das LAN

[3] Benjamin Benz, Sensibelchen, Mikrocontroller-Programmierung: Timer, Sensoren und Drehgeber

[4] Benjamin Benz, Funkbrücke, Umsetzer von WLAN nach RS-232 im Eigenbau

[5] Webseite zum Projekt

[6] Leserforum zum Projekt

[7] Dr. Till Harbaum, Blue Connection, Stereoton drahtlos per Bluetooth übertragen, Teil 2, c't 9/04, S. 208

http://ct.de/0520190

Bei allen Schaltungen, die mit 230 V Wechselspannung in Kontakt kommen, gilt es einiges zu beachten, damit der Bastelspaß nicht tödlich endet. Unter keinen Umständen darf man Phase oder Nullleiter berühren. Für unser Projekt gibt es daher einen kompletten Teilesatz inklusive passendem Gehäuse. Solange die Grundplatte mit dessen Unterschale verschraubt und die Zwischenplatte montiert ist, darf man es mit etwas Vorsicht auch geöffnet in Betrieb nehmen. Ansonsten gilt: Vor dem Basteln Netzstecker ziehen!

Da alle sechs Kanäle des c't-Netz-Schalters über dasselbe Eingangskabel ihren Strom beziehen, darf der Gesamtstrom aller Verbraucher 8 A (1840 VA) nicht übersteigen. Ein höherer Strom würde die Leiterbahnen zu stark aufheizen, obwohl sie aus 70 µm dickem Material gefertigt sind. Wer die Platine selbst herstellt und dabei das Standardbasismaterial mit 35 µm Kupferschicht verwendet, darf nur 4 A Strom fließen lassen und muss eine passende Feinsicherung einsetzen.

Die Kaltgerätebuchsen BU1 bis BU6 eignen sich hervorragend, um direkt einen PC anzuschließen. Geeignete Kabel gibt es im Fachhandel, wenn man sie nicht in der Grabbelkiste findet - übrig geblieben von alten Monitoren. Zum Anschließen anderer Geräte muss man entweder selbst Adapter von Kaltgerätesteckern auf Schuko-Buchsen basteln oder diese bei Segor Electronics mitbestellen. Im Handel tauchen diese Kabel anderswo leider nicht mehr auf. Bei der Auswahl der Kabel, Stecker und vor allem deren Konfektionierung muss man selbst auf geeignetes Material (zugelassen für mindestens 8 A!) und sichere Verarbeitung (Aderendhülsen!) achten.

Stückliste Grundplatte
Bauteil Bezeichnung
BU1- BU6 Kaltgeräte-Buchse (KG9)
BU7 Buchse 4pol.
BU9 Sub-D-Buchse 9 pol.
C1-C12 100nF/275V
C13,14 1000µF
C15 100µF
C16 470nF
C17-C20 100nF/275V
C21 470µF
D1,D2 B80C1500R
D3 1N4148
Drahtbrücken für ASM-010
IC1 ULN2803A
IC2 74HCT244N
IC3 L4940V5 (Low Drop)
IC4 LM3940IT-3,3
IC5 X-Port XE oder SE
IC6 ST232CN, DIL16
J1,J2 Stiftleiste, 1x2
J3 Stiftleiste, 1x3
J4 Stiftleiste, 2x9
J5 Stiftleiste, 1x10
L1,L2 Stromfühler (ASM-010)
P1,P2 Stiftleiste, 1x3
P3 Stiftleiste, 1x2
P4 Stiftleiste, 1x14
P5 Stiftleiste, 1x20
R1,R2,R4,R5, R7-R14 68 Ω
R15,R16 3,3 k[OMEGA]
R17,R18 100 Ω[OMEGA]
R19 15 k
R20 6,8 k
R3,R6 51 Ω[OMEGA]
RN1 7x 4,7k[OMEGA]
RE1,6 Relais RT424-06
RE7 Relais G5V1-5VDC
SI1 Feinsicherung 8 A, träge + Halterung (5x20)
SI2,3 Feinsicherung 0,5 A träge
ST1 Kaltgeräte Stecker
TR1 Trafo 2x6V/500mA
Anschlüsse c't-Netz-Schalter
Verbinder Bedeutung
ST1 Eingang 230 V
BU1-BU6 230-V-Ausgang 1-6
BU7 potentialfreier Ausgang
BU8 serieller Port
J1,J2,J3 Jumper Pinzuweisung X-Port
J4 Jumper für Pinzuweisung zum B-Modul
J5 Reserve
P1,P2 Stromfühler
P3 Niederspannungseingang (6 V DC)
P4 serielle Daten B-Modul
P5 I/O-Pins B-Modul, Konfiguration über J4,J5
Bezugsquelle
Quelle Bauteil
www.emedia.de Platine
www.segor.de Bauteilsätze

(bbe)