Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:steckdosen

Dies ist eine alte Version des Dokuments!


Funksteckdosen über Parallelport schalten

—- datatemplateentry project —- template : templates:project name : Funksteckdosen shortdesc : Funksteckdosen per PC schalten imgname_img90 : :steckdosen:imag0613.jpg persons : christoph, ullrich start_dt : 2013-02-14 end_dt : 2013-05-02 status_ : 1.Vers. fertig


Inhalt

Sinn und Zweck

Jeder kennt Sie, die Funksteckdosen aus dem Baumarkt. Klingt verlockend, für ein paar Euro bis zu 16 Steckdosen zu schalten. Die Stehlampe hinter der Couch - Drück und zack, Der Fernseher aus, komplett aus - Drück und zack.

Aber geht das nicht besser? Komfortabler, „von ganz alleine“, mit dem Computer.

Doch, geht! Wie einfach das unter Linux geht, können Sie in diesem Tutorial nachlesen.

Am Ende können wir mit einem Computer oder sogar einem Kleinstcomputer (z.b. dem RaspberryPi) bis zu 16 Steckdosen schalten. Alles was wir dazu brauchen ist ein Computer etwas älterer Bauart mit paralleler Schnittstelle. Desweiteren ein Set Funksteckdosen, ganz gleich welche Marke oder Hersteller - denn: es steckt in der Regel die selbe Technik in den kleinen Dingern. Diese muss aber noch an unsere Bedürfnisse angepasst werden.

Was brauchen wir dazu?

  • alten Computer mit paralleler Schnittstelle
  • Relaiskarte oder Solid-State Relaiseinheit mit 8 Relais
  • etwas Kabel (Flachbandkabel z.b.)
  • 1 SUB-D Stecker 25pol männlich
  • Funksteckdosenset inkl. Fernbedienung

Wie funktioniert es?

Jede Steckdose ist codiert. An der Rückseite der Steckdose ist ein Codierschalter mit der sich der Systemcode einstellen bist. Dieser ist ein 10er DIP-Schalter (besser bekannt als Mäuseklavier). Dort lässt sich der Systemcode mit 5 Bits einstellen und festlegen, um welche Steckdose (also A,B,C,D oder sogar E) es sich handelt.

Über die Schnittstelle können wir dem Sender in der Fernbedienung sagen, welche Steckdose wir schalten wollen. Wir können immer nur eine Steckdose zur gleichen Zeit schalten. Aber durch kurze Abstände zwischen zwei Schaltvorgängen kommt es so vor, als wäre es gleichzeitig.

Das Programm (vielen Dank an Ulrich) gibt die Möglichkeit über Tastatureingaben die 16 Steckdosen an- bzw. auszuschalten oder auch alle in schneller Folge auszuschalten. Wenn Sie z.b. das Haus verlassen und sicher sein wollen, dass auch alles aus ist.

Im Detail ist in der Fernbedienung ein Sender und ein kleiner Chip eingebaut, der je nach Tastendruck auf der Fernbedienung der Funkfrequenz von 433Mhz ein entsprechendes Signal aufmoduliert, welches nur die betreffende Steckdose „versteht“. Mittels der GPIO Anschlüsse des RasperryPi ist es möglich, direkt einen Sender so zu „verändern“, dass nur die gewünschte Steckdose das Signal empfängt. Man spart sich den IC, die Fernbedienung und die Bastelei mit der parallelen Schnittstelle. Es ist allerdings komplizierter, weil der Sender natürlich eine Frequenz benötigt, welche über einen Software-Quartz oder in Hardware erzeugt werden muss.

Der hier gezeigte Weg ist um einiges einfacher.

Alles was wir tun, ist nun dem Chip über ein paar Leitungen über die Druckerschnittstelle den entsprechenden Tastendruck vorzugaukeln. Wir benutzen jeweils 4 Steckdosen, Steckdose A,B,C und D. Das ganze insgesamt vier mal. Rein theoretisch sind noch viel mehr möglich, aber das sprengt hier den Rahmen und macht die Ansteuerung komplizierter. Der Verdrahtungsaufwand beläuft sich auf 8 Drähte, geschaltet mit Transistor oder Relais, weil der IC und der Sender mit 12V betrieben werden, die Schnittstelle jedoch nur max. 5V ausgibt (je nach Rechnertyp, z.b. Laptop, noch weniger…).

Wie spreche ich eine Steckdose an ? An der Fernbedienung werden die ersten 3 Systemcode-Bits fest auf EINS gesetzt, ebenso bei den Steckdosen. Die Steckdosen werden abwechselnd mit dem 4. und dem 5. Bit codiert. Das sieht dann ungefähr so aus:

BIT 01234
Status 111xy

Wobei die Bits 3 und 4 entsprechend des gewünschten Bereiches geschaltet werden.

Also die Kombination 1 1 1 0 0 spricht die ersten vier Steckdosen ABCD an, die Kombination 1 1 1 1 0 das Zweite Quartet, 1 1 1 0 1 das Dritte. Um das letzte Quartettt anzusprechen ist die Kombination 1 1 1 1 1 nötig. Das ergibt 4 mal 4 Steckdosen ABCD, macht also insgesamt 16 Stück. Theoretisch sind noch mehr möglich, in dem man alle Bits des Systemcodes nutzt. Dann sind bis zu 32 Adressbereiche möglich (2^5), in jedem Adressbereich sind im Maximalausbau die Steckdosen A,B,C,D,E vorhanden. Damit ergibt sich die unglaubliche Anzahl von 32×5 = 160 Steckdosen. Bei entsprechender Reichweite im ganzen Haus und der Einbau der Steckdosen in Unterputzdosen lässt sich somit eine recht ordentliche Haussteuerung aufziehen. Wozu brauchen wir denn schon KNX?

Somit sind schonmal 2 Drähte für die Ansteuerung benutzt.

Als nächstes benötigen wir die Steuerzustände, also AN oder AUS. Das sind dann nochmal 2 Drähte.

Die restlichen 4 Leitungen sind die 4 Steckdosen jedes Adressbereiches.

Wir vereinbaren also:

Pin Nr.Beschreibung Verwendungszweck
2D0 Ausschalten
3D1 Einschalten
4D2 Steckdose D
5D3 Steckdose C
6D4 Steckdose B
7D5 Steckdose A
8D6 Systemcode 5
9D7 Systemcode 4

Um die Steckdose A mit der Adresse 1 1 1 1 1 einzuschalten, ist folgendes Muster nötig:

LTP1 (Druckerschnittstelle): Datenregister

BIT 01234567
Status 01000111
Wertigkeit1248163264128

Der entsprechende Binärwert wäre dann: 226

Ok, soviel zur Theorie. Wie baue ich die Hardware auf?

Hardware

Man nehme sich die Fernbedienung und stellt zuerst den Systemcode ein, wie oben bereits erwähnt, werden die ersten 3 Bits fest auf „1“ gesetzt, die beiden anderen stellen wir auf „0“. An Systemcode 4 und 5 kommen die beiden Drähte der Auswahl.

Schema HX2262
Pin-NrBeschreibungPin-NrBeschreibung
1 A0 = Systemcode 1 10A8/D3 = Steckdose D wählen
2 A1 = Systemcode 2 11A9/D2 = Steckdose E wählen
3 A2 = Systemcode 3 12A10/D1 = gew. Steck AUS
4 A3 = Systemcode 4 13A11/D0 = gew. Steckd. EIN
5 A4 = Systemcode 5 14/TE = Transmission-Enable (n.nötig
6 A5 = Steckdose A wählen 15 OSC1=Frequenz verändern, n. nötig)
7 A6/D5 = Steckdose B wählen 16OSC2=Frequenz verändern, n. nötig)
8 A7/D4 = Steckdose C wählen 17DOUT=Anschluss Antenne, n.nötig
9 VSS = Versorgungsspg GND 18VCC = Versorgungsspg.+12V

Wenn man die Adern dann an die Fernbedienung anbringt, sieht das so aus:

An die andere Seite der Adern kommt dann ein SUB-D Stecker für an den Adapter. Dieser dient zur galvanischen Trennung zwischen PC und Fernbedienung.

Ist alles fertig, kann die Fernbedienung wieder zusammengebaut werden. Um die Kabel herauszuführen, ist eine Aussparung im Gehäuse notwendig. Hierzu eignet sich ein Cuttermesser am besten. Damit einfach Stück Seitenteil heraustrennen, durch das die Adern duchgeführt werden. Wer möchte, kann die Adern auf der Platine noch mit etwas Heißkleber fixieren (aber erst nachdem alles getestet wurde!!)

Beim Zusammenbau der Fernbedienung achtet darauf, dass sich die DIP-Schalter nicht verstellen!

Dann kann der erste Test beginnen. Die andere Seite des Adapters gehört in die parallele Schnittstelle des PCs (LPT1, die alte Drucker-Schnittstelle). Dann startet man das Programm mit Rootrechten mit dem Befehl

./steckdosen


Der Startbildschirm sollte dann so aussehen:


Steckt die erste Steckdose in eine Steckdose und probiert es aus. Wenn ihr nicht mehr wisst, welche Steckdose die erste ist, probiert es mit allen. Schreibt euch dann am besten auf die Steckdose die Nummer und die Einstellung der DIP-Schalter.

Bei gutem Empfang und wenig Störsendern sind dann mit dem Funkmodul für den RaspberryPi Reichweiten durch das ganze Haus möglich.

Um der irgendwann leeren Batterie vorzubeugen, ist es ratsam, sich +12V und Masse vom Netzteil des Computers zu nehmen und diese an die Fernbedienung anzulegen. Denn: mit sinkender Ladung der Batterie nimmt auch die Reichweite ab.

Ein letzter Hinweis zu dem Programm:
In dem Arbeitsordner mit dem Namen Steckdosen des Programmprojektes befindet sich ein Makefile, dadurch kann der Compilervorgang durch die Eingabe von make in dem Arbeitsverzeichnis Steckdosen gestartet werden. Das Ausführbare Programm hat den Namen Steckdosen und kann als Root mit dem Befehl ./steckdosen gestartet werden. Da das Programm direkt auf die Hardware des Computers zugreift (Druckerschnittstelle), sind Rootrechte notwendig.

<code - secmod.db.zip>

projekte/steckdosen.1368122499.txt.gz · Zuletzt geändert: 2021/01/17 01:07 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki