Ein interessantes Thema ist das Steuern von Geräten über das Internet. Auf den ersten Blick sieht das Ganze komplizierter aus als es in Wirklichkeit ist. Das Einsatzgebiet ist vielfältig. Es reicht vom einfachen Ein- und Ausschalten einer Lichtquelle bis zur Steuerung eines Roboterstatives.
Der Hardware-Teil besteht aus einer Relaiskarte, die über die parallele Schnittstelle an einen Rechner angeschlossen ist. Je nachdem ob ein Low- oder High-Pegeln an den 8 Datenausgängen anliegt, werden die Kontakte der Relais geöffnet oder geschlossen.
Fertig zusammengestellte Relaiskarten-Bausätze für die parallele Schnittstelle erhalten Sie unter anderem bei Pollin Electronic und Conrad Electronic.
Pollin Electronic
Bausatz PC-Relaiskarte K8 (Bestellnummer 710722)
EUR 9,95
Conrad Electronic
8-Kanal-Relaiskarte - Bausatz (Bestellnummer 130217)
EUR 39,95
DER NACHBAU DIESER RELAISKARTE ERFOLGT AUF EIGENE GEFAHR UND FORDERT EIN GEWISSES MASS AN SACHVERSTÄNDNIS. JEGLICHE HAFTUNG FÜR DIREKTE UND INDIREKTE SCHÄDEN WIRD HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN.
In speziellen Fällen wird es sich vielleicht lohnen, die Relaiskarte selbst aufzubauen. Einen Bauplan für eine einfache und kostengünstige Relaiskarte liefert der Artikel Einfach-Relaiskarte selbstgebaut von Frank Steinberg.
Alternativ kann folgender Schaltplan verwendet werden. Dies geschieht jedoch auf eigene Gefahr. Ich habe die Schaltung zwar seit geraumer Zeit im Einsatz, kann aber trotzdem nicht für die Korrektheit garantieren. Im Gegensatz zur Einfach-Relaiskarte sind hier alle 8 Kanäle ausgebaut.
Zur Visualisierung der Schaltzustände kann zusätzlich eine Leuchtdiode mit 150 Ohm Vorwiderstand parallel zum Relais geschaltet werden. Die Spannungsversorgung erfolgt über ein stabilisiertes Netzteil mit 5 V und mindestens 750 mA. Vor dem Anschließen an den Rechner sollte die Schaltung nochmals genau kontrolliert werden.
Zum Testen der Funktion bietet sich das kostenlose Windows-Programm Z-ParSwitch an.
Die Abbildung zeigt die 25-pol. Sub-D-Buchse der parallelen Schnittstelle direkt am Rechner. Pin 1 ist rechts oben, Pin 13 links oben. Die zweite Reihe beginnt rechts mit Pin 14 und endet links mit Pin 25. Die Pins sind meist an der Buchse und am Stecker markiert.
Für die Relaiskarte sind die 8 Datenausgänge von Pin 2 bis Pin 9 relevant. Die Masse wird am Pin 19 abgenommen. Die Datenausgänge dürfen auf keinen Fall direkt mit der Masse verbunden werden, da sonst die Schnittstelle zerstört wird.
Eine parallele Schnittstelle besitzt nicht nur Ausgänge, sondern bietet auch fünf digitale Eingänge an den Pins 10, 11, 12, 13 und 15. Die Eingänge können mit einem Schließkontakt direkt gegen Masse (Pin 18-25) kurzgeschlossen werden. Ein zusätzlicher Widerstand mit 1 kOhm bietet jedoch Sicherheit bei einer Verwechslung der Pins.
Je nach Stellung des Schließkontakts liegt ein Low- oder High-Pegel am Eingang, der per Software abgefragt werden kann. Die Einsatzmöglichkeiten sind auch hier recht vielfältig. So können beispielsweise Flüssigkeitstände kontrolliert, Schließkontakte überwacht oder der Status von Alarmanlagen abgefragt werden.
Zusätzlich zum Perlscript, das die Relaiskarte ansteuert, ist noch weitere Software notwendig. Alle hier angeführten Programme laufen unter dem Betriebssystem Windows und sind kostenlos erhältlich.
ActivePerl downloaden und installieren. Während der Installation wird abgefragt ob ActivePerl in den Pfad aufgenommen und die Erweiterung .pl mit ActivePerl verknüpft werden sollen. Beide Optionen markieren bzw. mit ja beantworten. Nach der Installation Windows neu starten.
Das Modul Win32::API wird mit dem Programmer's Package Manager (PPM) direkt vom Activestate-Server installiert. Die Eingabeaufforderung öffnen und mit ppm den Package Manager startet. Nun install Win32-API eingeben und warten bis das Modul installiert ist. Danach quit eingeben.
Bei Verwendung eines Proxys oder Firewall, kann es zu Problemen mit PPM kommen. PPM, Proxies and Firewalls beschreibt die Lösung.
Die Datei inpout32_source_and_bins.zip downloaden und entpacken. Im Verzeichnis inpout32_source_and_bins/binaries/Dll befindet sich die Datei inpout32.dll. Diese Datei ins Systemverzeichnis von Windows kopieren.
Damit das Perlscript zum Ansteuern der Relaiskarte aus dem Internet aufrufbar ist, muss ein HTTP-Server installiert sein. Ich bevorzuge den Janaserver mit deutschsprachiger Oberfläche. Der Janaserver ist eine Multifunktionsserver. Für unsere Zwecke wird jedoch nur der HTTP-Server benötigt. Eine umfangreiche Installationsanleitung erspare ich mir, da der Janaserver sehr gut dokumentiert ist.
In den Grundeinstellungen unter IP-Adressen muss der HTTP-Server an die IP-Adresse 0.0.0.0 gebunden sein, damit er über das Internet erreichbar ist. Der Standardport für HTTP-Server ist 80 und sollte nicht ohne Grund geändert werden. Unter Servertypen werden die Einstellungen für den HTTP-Server vorgenommen. Bei Ausführbare Script-Dateien muss die Dateiendung .pl mit perl.exe verknüpft sein.
Wer über eine dynamische IP mit dem Internet verbunden ist, benötigt einen statischen Hostnamen. Näheres dazu ist auf der Seite Dynamic DNS zu finden.
DIE FEHLERFREIHEIT DIESER SOFTWARE KANN NICHT GARANTIERT WERDEN. JEGLICHE HAFTUNG FÜR DIREKTE UND INDIREKTE SCHÄDEN WIRD HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN. DIE VERWENDUNG ERFOLGT AUF EIGENE GEFAHR.
Die Datei relay.zip downloaden und ins CGI-Verzeichnis (cgi-bin) des vorher installierten Webservers entpacken. Das Perlscript relais.pl zum Ansteuern der Relaiskarte läuft nur auf Rechnern mit dem Betriebssystem Windows und muss vor dem ersten Einsatz konfiguriert werden.
Das Perlscript kann im Schalter- oder im Tastenmodus betrieben werden. Im Schaltermodus zeigen LEDs den Status der Relais an. Im Tastenmodus wird der Kontakt des Relais für eine bestimmte Anzahl von Sekunden anschlossen und danach wieder gelöst. Er ist speziell für die Verwendung mit Funkschaltern gedacht. Im Tastenmodus sind keine Status-LEDs sichtbar, da die Relais im Ruhezustand immer gelöst sind.
Im Statusfeld für die Eingänge können angeschlossene Schließkontakte überwacht werden. Die Aktualisierung der Seite sollte mit der dafür vorgesehenen Schaltfläche erfolgen.
Vor dem ersten Einsatz sind einige Einstellungen in der Datei relais.pl vorzunehmen. Dazu wird das Perlscript mit einem Texteditor geöffnet und laut nachfolgende Anleitung konfiguriert.
$script_url | Diese Variable enthält die URL des Perlscripts. |
$noncgi_dir | Für den Janaserver muss hier nichts verändert werden. Bei manchen Webservern ist es nicht möglich Bilder und Stylesheets im CGI-Verzeichnis aufzurufen. Über diese Variable kann für die Bild- und CSS-Dateien ein Verzeichnis ausserhalb definiert werden (ohne Schrägstrich am Ende). |
$port | Diese Variable enthält die Adresse der parallelen Schnittstelle in hexadezimaler Schreibweise. Die Adresse ist im Gerätemanager unter Anschlüsse ersichtlich. Im Falle nachfolgender Abbildung wäre die Adresse 0x378 einzutragen. |
$mode | Hier wird der Modus des Scripts eingestellt. Eine 0 schaltet in den Schaltermodus, eine 1 oder höher in den Tastenmodus. Beispiel: Eine 3 schaltet in den Tastenmodus und simuliert einen Tastendruck von 3 Sekunden. |
$refresh | Hier kann die automatische Aktualisierung der Seite eingestellt werden. Eine 0 schaltet die Aktualisierung aus, eine 1 oder höher gibt den Intervall der Aktualisierung in Sekunden an. |
$page_name | Hier kann ein eigener Name für die Seite vergeben werden. |
$status_name | Hier kann ein eigener Name für das Statusfeld der Relais vergeben werden. |
$status_view | Eine 0 blendet das Statusfeld der Relais aus, eine 1 zeigt es an. |
@switch_name | Hier können eigene Namen für die Schalter vergeben werden. |
@switch_view | Hier können nicht benötigte Schalter verborgen werden. Eine 0 blendet den jeweiligen Schalter aus, eine 1 zeigt ihn an. |
$all_name | Hier kann ein eigener Name für das Feld zum Schalten aller Relais vergeben werden. |
$all_view | Eine 0 blendet das Feld zum Schalten aller Relais aus, eine 1 zeigt es an. |
$input_name | Hier kann ein eigener Name für das Statusfeld der Eingänge vergeben werden. |
$input_view | Eine 0 blendet das Statusfeld der Eingänge aus, eine 1 zeigt es an. |
@led_name | Hier können eigene Namen für die LEDs vergeben werden. |
@led_view | Hier können nicht benötigte LEDs verborgen werden. Eine 0 blendet die jeweilige LED aus, eine 1 zeigt sie an. |
Nach Abschluss der Konfiguration kann das Script über den Webserver gestartet werden. Die Ausgabe im Browser sollte ungefähr obiger Abbildung entsprechen.
Will man nach dem Start von Windows einen definierten Ausgangszustand herstellen, kann im Autostart-Ordner ein Perlscript gestartet werden, dass die Relais wunschgemäß ein- oder ausschaltet. Im Verzeichnis Console von relais.zip befindet sich die Datei init.pl. Vor dem ersten Start sind der Port und der gewünschte Status der Kanäle einzustellen. Abschließend muss nur noch die Datei init.pl in den Autostart-Ordner von Windows kopiert werden. Ab nun wird nach jedem Start die Grundeinstellung hergestellt.
Version 1.01
Version 1.00
Version 0.91
Version 0.90