Hallo
Hier möchte ich zeigen wie man einen Conrad RSL Switch mit dem Particle Photon steuert.
Ein Conrad RSL Switch ist ein per Funk gesteuerter 230V Schalter (siehe www.conrad.de)
Was mir an der Conrad RSL Serie gefällt, ist die Vielfältigkeit.
- Es gibt den Handsender aber auch einen Sender der an die Wand geschraubt werden kann.
- Es gibt die 230V Steckdose aber auch einen funkgesteuerten Schalter für die Unterputz-Montage.
Der gesteuerte Schalter kann von mehr als einer Fernsteuerung gesteuert werden.
Getestet habe ich folgende RSL typen
- Ein Handsender mit 3 gesteuerten Steckdosen : Bestell Nummer : 526917 - 62
- Die sehr kleinen 2-Phasen Schalter : Bestell Nummer : 640553 - 62
Voraussetzungen
Dieser Artikel setzt voraus, dass Du folgendes beherrscht:
PARTICLE APP auf Deinem Smartphone installieren. Mit TINKER die blaue LED and D7 ein- und ausschalten
BLYNK APP auf Deinem Smartphone installieren. Mit der PARTICLE WEB IDE und der BLYNK Library die blaue LED and D7 ein- und ausschalten.
PARTICLE WEB IDE
In der IDE die Library RSL_SWITCH suchen.
Dann USE THIS EXAMPLE auswählen
Ergebnis : Ein neue APP mit dem Namen conrad-rsl-example.ino wird erstellt.
In der IDE die Library BLYNK suchen.
Dann INCLUDE IN APP auswählen
Ergebnis:
Hardware Option 1
Folgende Verbindungen zwischen dem Particle Photon und dem AM Transmitter herstellen
- ATAD and Photon pin D1
- GND an Photon pin GND
- VCC an Photon pin VIN
Hardware Option 2 Ein besserer AM 433 MHz Transmitter
Ich habe den AM Transmitter der Firma Aurel , Modell TX-SAW MID/5 V AM Sendemodule 433,92 MHz Baustein getestet.
Der Grund : Dieses Sendemodul besitzt eine EC Konformitätserklärung. Das bedeutet, dass der Hersteller einige Tests durchführen lies und dies auch nachweisen kann.
Es gibt ihn als 3V oder 5V Variante. Die 3V Variante kann auch direkt mit einem Raspberry PI verbunden werden. Der Sender wurde zusammen mit der EC Konformitätserklärung und dem Datenblatt angeliefert.
Das Datenblatt findet man, wenn man nach AUREL TX-SAW MID sucht.
Als Antenne verwende ich einen 16cm langen Draht in senkrechter Position. Ich konnte eine RSL Funkdose in 15 Meter Entfernung durch 3 Wände schalten.
Conrad Bestell Nummer : 191525 - 62
CODE review
Ich stelle hier nur die Funktionen vor, die Du kennen musst. Der ganze Code ist bewusst einfach gehalten und in der Programmiersprache C implementiert.
Der pin ATAD wird in rsl_switch.cpp bestimmt.
// mit diesem Pin wird der sender gesteuert.
// this pin is used to control the RF transmitter
int dpin = D1;
Beim starten des Programms muss conrad_rsl_init() aufgerufen werden:
void conrad_rsl_init()
{
pinMode(dpin,OUTPUT);
digitalWrite(dpin,LOW);
delay(500);
}
Der CODE zum steuern einer Funk Dose, hier ein Beispiel:
"00001110011001001011010000000000" ist ein Code den eine RSL Fernsteuerung sendet. Die Anführungsstriche bedeuten, dass es sich um eine Zeichenfolge handelt und nicht um ein Zahl.
Der CODE wird in der Funktion conrad_rsl_switch() verwendet.
void conrad_rsl_switch ( int which, int state )
{
char es[34]; // code als Zeichenfolge
memset(es,0,34);
switch (which) {
case 1: // schalter nummer 1
if (state==EIN) strncpy(es,"00001110011001001011010000000000",32);
if (state==AUS) strncpy(es,"00000001011001001011010000000000",32);
break;
--- snip ---
case 5: // schalter nummer 2
if (state==EIN) strncpy(es,"00000101000001001100000011010111",32);
if (state==AUS) strncpy(es,"00001101000001001100000011010111",32);
break;
default:
Serial.print(" Fehler : konnte Code nicht finden ");
break;
}
Serial.print("Sende Code : ");
Serial.println(es);
conrad_rsl_send(es,430,1150);
}
Alternativ kann der Code auch als Dezimal-Zahl angegeben werden:
void conrad_rsl_switch_code ( int which, int state )
{
unsigned long code = 0;
switch (which) {
case 1: // schalter 1
if (state==EIN) code = 241480704;
if (state==AUS) code = 23376896;
break;
case 2: // schalter 2
if (state==EIN) code = 322066944;
if (state==AUS) code = 778351616;
break;
--- snip ---
default:
Serial.print(" Fehler : konnte Code nicht finden ");
break;
}
if (code != 0)
{
Serial.print("Sende Code : ");
Serial.println(code);
conrad_rsl_send(code,430,1150);
}
else
{
Serial.print(" Fehler : konnte Code nicht finden ");
}
}
Ein Beispiel für die Funktion wenn Button 1 gedrückt wurde:
// Verbinde auf der BLYNC APP den Button mit Virtual pin 1
BLYNK_WRITE(V1)
{
if (param.asInt() == 1) // Schalter nieder gedrückt ?
{
println(" rsl dose 1 ein ");
conrad_rsl_switch(DOSE1,1);
Blynk.virtualWrite(V11,255); // V11 ist eine BLYNC APP LED
}
}
BLYNC APP auf dem Smartphone
Buttons hinzufügen und mit den virtuellen Pins verbinden.
LEDs hinzufügen und mit den virtuellen Pins verbinden.
Codes aufzeichnen
Im Auslieferungszustand besitzen die Funk Dosen noch keine Code Sequenz, mit denen sie geschaltet werden. Sie lernen den Code indem man sie mit der Fernsteuerung anlernt. Nachdem die Funk Dose die Code Sequenz der Fernsteuerung gelernt hat, müssen wir die Code Sequenz in der Datei rsl_switch.cpp eintragen.
Die Code Sequenz erhalten wir, wenn wir die Fernsteuerung mit dem AM 433 MHz Empfänger abhören.
Software
In der Particle IDE die Library RCSWITCH suchen.
Die Datei RECEIVEDEMO_ADVANCED.INO auswählen
USE THIS EXAMPLE anklicken
Ergebnis : Eine APP mit dem Namen RECEIVEDDEMO_ADVANCED wird erstellt.
Hardware
Folgende Verbindungen zwischen dem AM433MHz Empfänger und dem Particle Photon herstellen:
- DATA an Photon pin D3
- GND an Photon pin GND
- VCC and Photon pin VIN
- USB des Photons mit einem USB Anschluss am Computer verbinden. Dadurch erhält man Zugang zur seriellen Schnittstelle des Photons.
Codes aufzeichnen
Das Programm auf den Photon flashen.
Ein Terminal Program mit der seriellen Schnittstelle des Photon verbinden.
Auf der Fernbedienung einen Taster drücken. Auf der Terminal wird der Code angezeigt.
Diesen Code in die Datei rsl_switch.cpp übertragen.
Weiterführende Literatur
Nun hast DU eine Art Funkanlage selber gebaut.
- Darfst Du (die Person) diese Funkanlage betreiben: Hast Du eine Lizenz?
- Darf die Funkanlage (das Gerät) betrieben werden : Hat das Gerät eine Zulassung?
So manch ein Motorradfahrer scheitert ja kläglich, wenn es an sein Eisenpferd ein Auspuff ohne ABE montiert, nicht wahr ?
Daher mal als Einführung: SRD Funkanalagen
Soweit ich das verstehe :
- Der Einsatz einer Richtantenne ist nicht erlaubt. Das würde dazu führen, das ERP überschritten wird.
- Eine andauernde Sendung durch die SW ist nicht erwünscht, weil es alle anderen Geräte - auch die der lieben Nachbarn - stören kann. Die Geräte benutzen ja alle die gleiche Frequenz.
Moment mal !
Ganz oben schrieb ich : Der gesteuerte Schalter kann von mehr als einer Fernsteuerung gesteuert werden.
Wenn Du bereits gültige Codes besitzt, kannst Du die gesteuerten Schalter anlernen,
Dann kannst Du auf den Abschnitt "Codes aufzeichnen" auch verzichten.
Paare deine Schalter mit Deinem Handsender und paare sie mit den Codes des Programms.