Unitec-Funksteckdose mit 433 MHz-Sender und ESP-01S schalten

Hallo,

ich versuche, Unitec-Funksteckdosen mit einem FS1000A 433 MHz-Sender zu schalten. Im Topic RCSwitch Library RAW Daten senden?? (arduino.cc) habe ich dazu eine Lösung des Users Eqqari gefunden, die super funktioniert. Allerdings nur mit dem Mega2560 und dem Nano. Ich würde aber gern den ESP-01S nutzen. Auf dem bekomme ich den Code nicht zum Laufen.

Der ESP-01S sendet ein Signal, ich kann es testweise mit einer LED sichtbar machen. Schließe ich das Signal aber an den Sender an, wird die Steckdose nicht geschaltet. Wie gesagt - derselbe Aufbau mit dem Mega2560 oder Nano funktioniert tadellos.

Kann es sein, dass das gesendete Signal des ESP-01S zu schwach ist oder ein anderes Timing aufweist als beim Mega oder Nano? Ich bin ratlos und würde mich über einen Hinweis freuen.

Hier der von mir verwendete Code. Die konkreten Schaltcodes habe ich mit einem Receiver und rcswitch.h ausgelesen.

#define RF_DATA_PIN 2

void rf_send(long code) {
int i,j,k;
  for (k=0;k<2;k++){
    for (j=0;j<4;j++){
      for(i=23;i>-1;i--) {
        if(code & (1L << i))
        {
          digitalWrite(RF_DATA_PIN, HIGH);
          delayMicroseconds(1020);
          digitalWrite(RF_DATA_PIN, LOW);
          delayMicroseconds(560);
          }
        else
        {
          digitalWrite(RF_DATA_PIN, HIGH);
          delayMicroseconds(560);
          digitalWrite(RF_DATA_PIN, LOW);
          delayMicroseconds(1020);
          }
      }
      if (k==0)
        {
        digitalWrite(RF_DATA_PIN, HIGH);
        delayMicroseconds(450);
        digitalWrite(RF_DATA_PIN, LOW);
        delayMicroseconds(2250);
        }
      else
        {
        digitalWrite(RF_DATA_PIN, HIGH);
        delayMicroseconds(3200);
        digitalWrite(RF_DATA_PIN, LOW);
        delayMicroseconds(7030);
        }
      }
   }   
}

void setup()
{
 pinMode(RF_DATA_PIN, OUTPUT);
}

void loop()
{
 rf_send(16660140);  //Kanal B Ein
 delay(2000);
 rf_send(16163772);  //Kanal B Aus
 delay(2000);
}

Der ESP8266 liefert max. 3.3V, der MEGA/Nano 5V. Was braucht der FS1000A 433 MHz-Sender?

Gruß Tommy

Das wird wie Tommy schon schreibt, vermutlich an der Spannung liegen.
Diese Sender sind mit 3,5 - 12V spezifiziert.
Da diese Dinger einer sehr großen Toleranz unterliegen, ist da sicher das Problem.

Ich glaube eigentlich, dass ich das ausschließen kann. Ich habe den Sender am Mega2560 versuchsweise an die 3,3V-Versorgung angeschlossen - funktioniert tadellos. Ich habe auch das Schaltsignal des Mega2560 mit einem dazwischengeschalteten 1K-Ohm-Widerstand kleiner gemacht - auch das funktioniert tadellos. Ich habe auch versucht, den Sender mit 5V Strom zu versorgen und nur das Signal vom ESP-01S zu nehmen. Leider funktioniert das nicht.

Ok, also kein Spannungsproblem.

Wenn du die Codes mit der RC-Switch auslesen kannst, warum verwendest du nicht auch zum Senden die RCSwitch ?

Oder am ESP8266-01 einen anderen Pin versuchen.

Edit:
Grundsätzlich funktioniert es am ESP8266 mit einem ASK-Sender und der RCSwitch, das habe ich schon getestet.
Allerdings bisher nicht am ESP8266-01.

Erstmal bin ich begeistert, wie schnell ihr mir geantwortet habt. Vielen Dank, ich fühle mich nicht mehr allein.

Das Senden mit RC-Switch und Mega2560 funktioniert bei diesen Dingern nur sehr sporadisch (manchmal erst nach 150 Versuchen), warum auch immer. Das Senden mit dem Code aus dem oben zitierten Thread funktioniert dagegen völlig fehlerfrei.

Andere Pins habe ich schon versucht, auch Tx und Rx. Jeweils kann man das Signal mit einer LED sichtbar machen, aber den Sender bringt es nicht dazu, das richtige Signal zu senden.

Kann es sein, dass die Delay-Werte im Code beim Mega2560 und beim ESP-01S zu einem geringfügig anderen Timing führen?

Gruß Frank

flohse:
Kann es sein, dass die Delay-Werte im Code beim Mega2560 und beim ESP-01S zu einem geringfügig anderen Timing führen?

Das würde ich nicht ausschließen.

Hast du denn die Möglichkeit des gesendete Signal mit einem Empfänger, Arduino und RCSwitch noch abzuhören, um zu prüfen, ob die gesendeten Werte auch noch stimmen.

Gute Idee, hatte ich noch nicht gemacht. Ergebnis: Die Werte stimmen, das Signal wird gesendet und vom Empfänger auch so interpretiert, wie es gemeint ist. Nur die Sch*** Funkdose reagiert nicht. Auch nicht, wenn ich ihr den Sender direkt daneben halte. Was ist da los?

Das ist in der Tat seltsam.

Bei dem Code mit RCSwitch kann man die Pulslänge ändern und noch einiges dadurch anpassen.
Wie das bei deinem Code funktioniert, musst du mal testen.

Problem gelöst: Ich hatte die falschen Codes im Sketch. Mit den Codes vom richtigen Kanal funktioniert es auch mit dem ESP-01S wie geschmiert. Ich Idiot. Danke für eure Zeit.

flohse:
Problem gelöst: Ich hatte die falschen Codes im Sketch. Mit den Codes vom richtigen Kanal funktioniert es auch mit dem ESP-01S wie geschmiert. Ich Idiot. Danke für eure Zeit.

Alles klar, passiert halt mal. :wink:
Danke für die Rückmeldung.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.