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
|