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.

Der gesteuerte Schalter kann von mehr als einer Fernsteuerung gesteuert werden.

Getestet habe ich folgende RSL typen

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

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:

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.

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 :

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.

Viel Spaß