Funksteckdosen-Sender über AVR-NET-IO
(Schalten von 16 Funksteckdosen über Netzwerk/Internet)
(Eine Unterseite von http://www.oliver-schlenker.dyndns.org)

Beschreibung:

Mit dieser Seite soll gezeigt werden, wie man mit dem Bausatz der Fa. Pollin Elektronik (AVR-NET-IO), einer Relais-Karte (K8IO) und einem Funksender, Funksteckdosen über das interne Netzwerk oder das Internet fernschalten kann.

Meine generellen bzw. primären Programme (AVR-NET-IO.EXE=Steuerprogramm, DATALOG.EXE=Datenlogger und WATCHDOG.EXE=Wächterprogramm), die ich für das AVR-NET-IO-Board von Pollin geschrieben habe, sowie detaillierte Infos über das AVR-NET-IO (auch der generelle Anschluss von Sensoren (z. B. Temperatur- oder Lichtsensoren) an das AVR-NET-IO-Board), findet Ihr unter folgendem Link:

Allgemeine Programme von Oliver Schlenker für das AVR-NET-IO-Board

Diese Seite beschäftigt sich im Speziellen mit der Ansteuerung eines Funkhandsenders durch das AVR-NET-IO-Board. Für generelle Infos über das AVR-NET-IO- Board bitte den o. g. Link nutzen, oder auch in's Forum von SON (http://son.ffdf-clan.de), welches ich an dieser Stelle ausdrücklich empfehlen möchte, reinschauen.
In SONs Forum gibt es auch einen Thread von mir bzgl. meinen Basteleien mit dem AVR-NET-IO.
(http://son.ffdf-clan.de/?path=forumsthread&threadid=148).

Zum Schalten der Funksteckdosen benötigte Komponenten:
- AVR-NET-IO (Bausatz Pollin-Nr. 810 058; oder fertiges Modul Pollin-Nr. 81073)
- Relais-Karte (in diesem Fall die K8IO-Platine Pollin-Nr. 710 722)
- Funkhandsender (Handsender Modell 26AY 433,92 MHz Pollin-Nr. 550 693) oder ein komplettes
  Funksteckdosenset (3 Stück) mit Funkhandsender (Typ 2605 Pollin-Nr. 550 666).
- 12V Netzteil mit ca. 500-800mA
Alle Komponenten könnt Ihr bei der Fa. Pollin (http://www.pollin.de) problemlos beziehen.

(Um die Grafiken klarer und detaillierter zu sehen, solltet Ihr einen Klick mit der linken Maustaste
auf der entsprechenden Grafik ausführen!)

Hier mal ein Bild eines Handsenders
(mit geöffnetem Batteriefach und Blick auf die Codierschalter):

Hier seht Ihr den Handsender mit einer kleinen 12V-Batterie und dem DIP-Schalter zum Konfigurieren der System-Adresse. In den einzelnen Funksteckdosen wird ebenfalls diese Schalterstellung als Systemcode eingestellt und dann noch ob es sich um die Steckdose A, B, C oder D handelt.

Hier mal ein Bild des Handsenders im geöffneten Zustand
(3 Kreuzschrauben auf der Rückseite lösen):

 

Man sieht die einzelnen Schaltkontakte (4 x Ein und 4 x Aus), den 433 MHz-Resonator und den HX2262-Sendechip. Dieser Chip ist recht gängig um solche Handsender zu steuern. Im Internet gibt es auch ein entsprechendes Datenblatt über das Teil. Unten dann noch den DIP-Schalter für die Systemcodierung und ganz unten noch die Batterieklemmen.

Und hier mal die Rückseite von dem Teil:

Also hab' ich mal an die Kontakte von den Tastern durch gemessen bzw. auf welchen Pin des HX2262-Chips diese gehen und habe dabei Folgendes herausgefunden:

Die Drucktaster an der Funksteuerung bestehen aus 3 Kontaktpunkten. 2 Kontakte werden immer gegen Masse geschlossen um ein Funksignal auszulösen. Bei genauerer Untersuchung habe ich festgestellt, dass es für alle Taster einen Sendeimpuls fürs Einschalten und einen Sendeimpuls fürs Ausschalten gibt. D. h. man schließt den Kontakt des Sendeimpulses für einen Einschalt- oder Ausschaltvorgang und schaltet dann den entsprechenden Taster Nr. 1-4 einfach dazu um die entsprechende Funksteckdose ein- oder auszuschalten.

Da kam mir dann die Idee die Taster über das AVR-NET-IO-Board, welches ich schon von anderen Basteleien kenne, zu bedienen um die Taster anstatt von Hand über ein Programm automatisiert schalten zu lassen. Da ich noch eine Relais-Platine K8IO übrig hatte, habe ich mich entschlossen mit dieser Relaiskarte die Kontakte schalten zu lassen. Da ich also 8 Schaltausgänge über das AVR-NET-IO an der Relais-Karte zur Verfügung habe, habe ich mal durchgerechnet:

1 Kontakt für Einschaltsignal
1 Kontakt für Ausschaltsignal
4 Kontakte für Taster 1-4
2 Kontakte für die System-Codierung; (=4 Handsender á 4 Tastern = 16 Steckdosen)
= 8 Kontakte

Hier habe ich mal eine Detailaufnahme von der Rückseite vom Chip-Bereich
(markiert mit den von mir ermittelten Signalen):

Erklärung der Beschriftungen:
GND=Ground/Masse
T1=Tasterkontakt 1
T2=Tasterkontakt 2
T3=Tasterkontakt 3
T4=Tasterkontakt 4
SetOn=Initialisierung für Taster einschalten (+ entsprechender Taster T1-T4)
SetOff=Initialisierung für Taster ausschalten (+ entsprechender Taster T1-T4)
B5=Bit5 (für Codierung)
B4=Bit4 (für Codierung)

Hier ein Bild mit einem angelöteten Flachbandleiter und 2 Drähten zur Stromversorgung:

Also habe ich die Signalleitungen über einen Flachbandleiter nach außen geführt, um diese dann mit der Relais-Karte entsprechend zu verbinden. Auch die Spannungsversorgung habe ich mal herausgeführt, da ich das Teil ja nicht mehr im Batteriebetrieb laufen lassen möchte. Für das AVR-NET-IO und die Relais-Karte verwende ich ohnehin ein stabilisiertes 12V-Netzteil, das kann dann auch gleich noch den Sender mit versorgen. (So muss ich mir auch keine Gedanken mehr um eine eventuelle leere Batterie das Handsenders machen.). Das AVR-NET-IO und die K8IO benötigen eigentlich nur ein 9V-Netzteil. Allerdings habe ich festgestellt, dass bei "nur" 9V die Relais auf der K8IO-Platine nicht sauber durchschalten. Da beide Platinen entsprechende Spannungsregler vorgeschaltet haben gibt es keine Probleme mit 12V Spannung. Dennoch sollte man beim AVR-NET-IO, auf jeden Fall, dem 1. Regler einen Kühlkörper spendieren, da dieser (auch schon bei 9V!) sehr heiß wird. Der 2. Regler wird nicht sehr heiß und auf der K8IO ist ohnehin ein sehr großer Kühlkörper verbaut, da ja theoretisch alle 8 Relais gleichzeitig geschaltet sein können bzw. mit Strom versorgt werden müssen.

Die Pinbelegung auf dem Flachbandleiter habe ich dann wie folgt festgelegt (Pin1 ist die rote Ader) und entsprechend auf die Adapterplatine geführt:

Pin Funktion Info
1 GND geht an GND
2 SetOn Kontakt von Relais 1 gegen Pin1/GND
3 SetOff Kontakt von Relais 2 gegen Pin1/GND
4 Taster 1 Kontakt von Relais 3 gegen Pin1/GND
5 Taster 2 Kontakt von Relais 4 gegen Pin1/GND
6 Taster 3 Kontakt von Relais 5 gegen Pin1/GND
7 Taster 4 Kontakt von Relais 6 gegen Pin1/GND
8 Bit 5 Kontakt von Relais 7 gegen Pin1/GND
9 Bit 4 Kontakt von Relais 8 gegen Pin1/GND
10 - frei - - keine Funktion -

Die Stromversorgung (Plus = orangener Draht und Minus/Masse/GND = blauer Draht) wird einfach direkt an das Netzteil anklemmt um den Sender mit Strom zu versorgen.

Hier ein Bild vom modifizierten Handsender, wieder im Gehäuse eingebaut
(das Teil lässt sich nach wie vor manuell (auch mit Batterie) bedienen):

Und hier ein Bild von der Lochrasterplatine
(Zur Adaptierung zwischen dem Funksender und der Relaisplatine;
die weißen Bahnen liegen oben, die grünen Bahnen auf der Rückseite):

Und hier nun ein Bild vom kompletten Aufbau der Hardware
(auf der rechten Seite seht Ihr eine Lochrasterplatine, die die Verbindung von der Relais-Karte
zum Funksender herstellt; hätte man sicherlich auch direkt an den Klemmen verdrahten können):

Den Funksender habe ich mit Klettband auf der Holzplatte befestigt. Das Teil lässt sich, auch im laufenden Betrieb der Elektronik, nach wie vor über die manuellen Tasten bedienen. Links seht Ihr das AVR-NET-IO-Board, welches die Befehle über das Netzwerk/Internet entgegen nimmt und dann über den Sub-D-25pol-Steckverbinder an die Relaiskarte weitergibt. An den Ausgängen der Relais-Karte hängt dann die Adapterplatine, welche die Impulse der Relais auf die Kontakte des Funkhandsenders weitergibt. Das war's hardwaretechnisch dann eigentlich schon. (Mir ist durchaus klar, dass man die Sache auch schlanker/eleganter mit Optokopplern oder Schalttransistoren hätte realisieren können, aber ich hatte halt noch die Relais-Platine übrig und deshalb auch hier entsprechend eingesetzt. Abgesehen davon liebe ich das Klacken der Relais ;-))

Soweit so gut. Das ist aber erst die halbe Arbeit. Nun habe ich mir noch ein Programm geschrieben um die Relaiskontakte entsprechend korrekt anzusteuern bzw. die einzelnen Signale per Relais zu setzen und an den Funksender zu übertragen.


Erklärung zu der Funktion meines Programms zur Ansteuerung des Funksenders/der Funksteckdosen
(das Programm habe ich kpl. in Purebasic
(http://www.purebasic.de) geschrieben):

OliFUNK - Zur Steuerung von bis zu 4 Handsendern (=16 Funksteckdosen):
Das Programm hat pro Handsender 4 Schalter für das Einschalten und 4 Schalter für das Ausschalten der entsprechenden Funksteckdosen. Pro Schaltvorgang wird zuerst festgelegt welcher Handsender (Bit5 und Bit4) angesteuert wird. Anschließend wird das Signal für Einschalten (SetOn) oder Ausschalten (SetOff) gesetzt und der entsprechende Taster T1-T4 zugeschaltet. Anschließend werden alle Werte wieder auf neutral zurückgesetzt. Theoretisch könnte man über 2 Signalleitungen, 1 Tasterleitung und 5 Codierungsleitungen bis zu 32 Funksteckdosen adressieren bzw. ansteuern. Ich denke aber mal dass 16 Funksteckdosen auch mehr als ausreichend sind. Abgesehen davon war mir wichtig die ersten 3 DIP-Schalter-Bits (Systemcode) manuell setzen zu können um ev. Kollisionen mit anderen Funksteckdosensets (z. B. vom Nachbarn) zu vermeiden.
Achtung: Vom DIP-Schalter des Funksenders für den Systemcode können die Bits 1-3 frei eingestellt werden. Bit4 und Bit5 müssen auf dem DIP-Schalter des Funksenders immer auf "OFF" (unten) stehen, da diese ja durch mein Programm bei Bedarf geschaltet werden. An den entsprechenden Funksteckdosen wird Bit1-3 wie auf dem Handsender und Bit4 und Bit5 (je nach Zugehörigkeit der Dose) für Funksender 1 = OFF/OFF; Funksender 2 = OFF/ON; Funksender 3 = ON/OFF; Funksender 4 = ON/ON gesetzt.

bei OliFUNK (aktuelles Release = V1.6):

23.06.2012:
(Inital-Release V1.0). Das Programm greift per UDP-Protokoll über die IP-Adresse oder den DDNS-Namen auf das AVR-NET-IO-Board zu und schaltet so über das interne Netzwerk oder das Internet die Funksteckdosen. Durch das UDP-Protokoll können mehrere Rechner gleichzeitig auf das Board zugreifen (was in der Realität wohl eher seltener vorkommen wird.)

24.06.2012: Ab Version 1.1 gibt es nun Schalter um alle Tasten 1-4 einer einzelnen Fernbedingung 1-4 ein- oder auszuschalten, sowie eine entsprechende Tasterfunktion um alle Taster aller Fernbedienungen entsprechend ein- oder auszuschalten. Zur besseren optischen Erkennung habe ich auch eine Grafik von einem Handsender in die Bediener-Oberfläche eingebunden.

25.06.2012: Ab Version 1.2 (ab dieser Version habe ich das Programm veröffentlicht!) gibt es einen Schiebeschalter um die Länge des Funktastendrucks einzustellen. Für das interne Netzwerk reicht hier ein geringer Wert von ca. 100-200ms, für den Zugriff über Internet ist, für einen sauberen Schaltvorgang, manchmal ein längerer Funktastendruck sicherer. (Je nach Antwortzeit (Ping) einzelner Internet-Provider sind hier eventuell Werte um 1000ms sinnvoll!)

13.08.2012: Ab Version 1.3 gibt es die Möglichkeit die analogen und digitalen Eingänge des Boards abzufragen. Beim Starten des Programms und bei einem Schaltvorgang werden automatisch die aktuellen Eingangswerte abgefragt und angezeigt. Die aktuellen Eingangswerte können auch manuell per Mausklick vom AVR-NET-IO-Board ausgelesen werden. (Je nach Antwortzeit (Ping) einzelner Internet-Provider kann es zu Übermittlungsproblemen der Daten kommen. Wenn im internen Netzwerk alles sauber funktioniert und es über das Internet zu Problemen kommt, bitte mal die Antwortzeiten per Ping-Befehl zum heimischen Router durchmessen!)

22.08.2012: Ab Version 1.4 gibt es die Möglichkeit die analogen und digitalen Eingänge des Boards auch automatisiert/zyklisch abfragen zu lassen. Diese Funktion wird über eine Checkbox aktiviert/deaktiviert. Die Abfragezeitzyklen werden dann entsprechend in einem separaten Feld in Sekunden angegeben.

24.08.2012: Ab Version 1.5 habe ich noch einen "Abfragezähler" eingebaut. D. h. nach einer manuellen oder automatischen Eingangsabfrage wird der Zähler inkrementiert. (Damit sieht man, hauptsächlich bei der automatischen Eingangsabfrage, ob/dass eine Abfrage stattgefunden hat!)

08.09.2012: Ab Version 1.6 habe ich den "Abfragezähler" aus Version 1.5 durch einen "Countdownzähler" ersetzt. D. h. es werden die verbleibenden Sekunden bis zur nächsten Eingangsabfrage permanent herunter gezählt.

Ansonsten dürfte das Software-Modul selbsterklärend sein. Am Ende dieser Seite könnt Ihr Euch gerne eine Testversion herunterladen, um die Funktionen des Programms mit Eurem AVR-NET-IO-Board und einer ev. vorhandenen Relaisplatine auszuprobieren.

Falls Ihr die Vollversion oder eine speziell an Eure Anforderungen angepasste Version des Programms benötigt, könnt Ihr mir einfach eine Email schicken. Auf Anforderung überlasse ich Euch auch gerne den Quellcode der Vollversion meines Programms, welches dann mit der "PureBasic-Demo-Version x86 - 32 Bit" oder mit der PureBasic-Demo-Version x64 - 64 Bit" gut und einfach auf die eigenen Anforderungen anzupassen ist. Demoversionen von PureBasic für verschiedene Betriebssysteme könnt Ihr Euch unter http://www.purebasic.de
kostenlos herunterladen. Dort findet Ihr auch Demoversionen für die Linux-, Mac OS X- oder Amiga OS-Welt. Dadurch könnt Ihr meine Programme recht einfach von der i386-Windows-Welt auf andere Betriebssysteme portieren, falls Ihr meine Programme lieber in diesen Welten laufen lassen wollt/müsst.

Hier seht Ihr einen Snapshot meiner selbst erstellten Software "OliFUNK":

Einmal in der klassischen Windows-Ansicht:

Und auch in der Windows-XP-Luna-Ansicht:

Im Folgenden könnt Ihr eine Demo-Version des Programms downloaden und mit Eurem
AVR-NET-IO-Board entsprechend ausprobieren:

 

ACHTUNG: Für alle Demo-Programme gilt:

 
     
 


Die Programme funktionieren nur mit der original Pollin-Firmware (z. Zt. Vers. 1.03)!

Die IP-Adresse des Boards muss unbedingt auf 192.168.1.90 eingestellt sein!
DDNS-Dienste (DynDNS o. ä.) werden in den Demoversionen nicht unterstützt!

Bei der Passwortabfrage als Passwort "test" (alles Kleinbuchstaben) eingeben!

Die Demoversionen sind softwaretechnisch nicht auf dem neuesten Stand und
sollen nur generell die Funktionen der einzelnen Module erklären/vorstellen!
Bei Anforderung der Vollversionen erhaltet Ihr natürlich immer die aktuellsten
Versionen meiner Programme!
 

 
     

Download der Demoversion von OliFUNK.EXE
Von Handsender 1 und 2 (Codierung XXX00+XXX01) sind alle Tasten voll funktionsfähig.
Die restlichen Handsender/Tasten sind in dieser Demoversion ausgeschaltet bzw. ohne Funktion.
Von den Eingängen (ab Version 1.3) werden auch nur die ersten zwei digitalen und die ersten zwei
anlogen Eingänge ausgelesen bzw. angezeigt.

Allgemeines:
Ich habe die Datei absichtlich als komplette/autarke .EXE-Datei (ohne INI-Dateien o. ä.) entwickelt.
Dadurch lassen sich meine Programme sehr einfach, z. B. von einem Homepage-Server bzw.
Homepage-Account, Memory-Stick oder sonstigem Speichermedium, direkt starten.
Normalerweise ändert man ja die Einstellungen/Parameter dieses Programms
nicht sehr oft, deshalb halte ich dies so grundsätzlich für vertretbar.
Dies bedeutet aber auch, dass vor einer Verwendung des Programms entsprechende anwendungs- und benutzerspezifische Parameter im Quellcode eingestellt werden müssen und die Software anschließend als
.EXE-Datei, mit der Demo-Version von PureBasic (http://www.purebasic.de), entsprechend neu kompiliert werden muss. Diese .EXE-Datei könnt Ihr dann z. B. mit Euch führen oder auf einem Webserver ablegen.

Info: Die Snapshots können von der aktuellen (Demo)-Version abweichen, da die
Programme von mir permanent weiterentwickelt/optimiert werden.

Ich hoffe dass reicht Euch als kleine Einführung in die Ansteuerung von Funksteckdosen mit dem Pollin AVR-NET-IO-Board und der Pollin Relaisplatine K8IO.

Ansonsten würde ich mich freuen, wenn dieses kleine Projekt Euer Interesse findet und Ihr mit mir
diesbezüglich Kontakt aufnehmt. Jede EMail wird selbstverständlich schnellstens beantwortet!

Ich denke dem Einsatz dieser kleinen Bastelei und meiner Software sind nur durch Eure Phantasie Grenzen gesetzt. Man kann damit praktisch jedes elektrische oder elektronische Gerät, welches an einer (Funk)steckdose angeschlossen ist,  über ein Netzwerk oder das Internet schalten.

Bei Interesse, Fragen, Wünsche, Anregungen, Lob oder Kritik könnt Ihr mir gerne eine

eMail senden an: Oliver.Schlenker@T-Online.de