433MHz Steckdose auslesen und ansteuern

derbe

Lt. Commander
Registriert
Aug. 2013
Beiträge
1.701
Hi habe hier mit dem Code meine Steckdose also die Bedienung ausgelesen:

721043 for ON
721026 for OFF

mit diesen Code:

Code:
#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() 
{
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
}

void loop() {
  if (mySwitch.available()) // Wenn ein Code Empfangen wird...
  {
    int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
  
    if (value == 0) // Wenn die Empfangenen Daten "0" sind, wird "Unbekannter Code" angezeigt.
    {
      Serial.println("Unbekannter Code");
    } 
    
    else // Wenn der Empfangene Code brauchbar ist, wird er hier an den Serial Monitor gesendet.
    {
      Serial.print("Empfangen: ");
      Serial.println( mySwitch.getReceivedValue() );
    }

    mySwitch.resetAvailable(); // Hier wird der Empfänger "resettet"
  }
}

Und dachte ich kann sie so ansteuern:

Code:
#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  mySwitch.enableTransmit(2);  // Using Pin #10
}

void loop() {
  mySwitch.send(721043,24); // habe auch es Binär versucht aber nix klappt :(
  delay(500);  
}


Habt ihr eine Idee was ich falsch mache? Pin etc. sind alle korrekt angelegt.
 
Was für Hardware benutzt du denn um deine Steckdose aus zu lesen und an zu steuern?
Welch Mysterium mag sich hinter mySwitch.enableTransmit(); und mySwitch.send(); verbergen?

Spontan (und damit ohne jegliche Ahnung davon zu haben mit was du es hier zu tun hast) kommt es mir komisch vor, dass du myswitch.Enabletransmit eine 2 übergibst. Enable heißt für mich, da wird was aktiviert(1) oder deaktiviert(0). Es kann natürlich sein, dass hier mehrere Funktionen möglich sind, aber dafür wären wieder deine Shields (ich gehe einfach mal von der Verwendung eines Arduino aus) interessant.
 
@MrMcMathew

Zu deiner ersten Frage:
Das hier.

Welch Mysterium mag sich hinter mySwitch.enableTransmit(); und mySwitch.send(); verbergen? Du wirst es mir vielleicht verraten, hm?!


Enable heißt für mich, da wird was aktiviert(1) oder deaktiviert(0). Soweit mir bekannt ist das der Pin wo der Transmitter angeschossen ist, in meinem Fall 2. Verwendet wird dieses Board.

Du hast viel geschrieben aber ich bin 0 schlauer als vorher.
 
Ich vermute, dass sich der Fehler in beiden Codes in Zeile 2 befindet. Grundsätzlich gibt es meines Wissens keine Normung für 433mHz Signale. Demensprechend führt die Verwendung von irgendwelchen Libraries oft nicht zum Erfolg.

Vorausgesetzt das Senden der Signale funktioniert wie du es erwartet sehe ich drei Lösungsmöglichkeiten:

1. Verwende irgendeine andere Librarie und hoffe, dass es mit der Funktioniert

2. Suche im Internet nach dem genauen Steckdosenmodell und hoffe, dass sich irgendjemand schon die Mühe gemacht hat das Ding manuell anzusteuern und den Code online gestellt hat. Es wäre ohnehin hilfreich, wenn du das genaue Modell der Steckdose hier nennen würdest(?)

3. Schließe den 433mHz Empfänger an den Ground und den 3,3V des Arduino an. den Ground und den Data Pin außerdem an einen Klinken Stecker der dann in den Mikrofon Eingang deines Laptops kommt. Jetzt kannst du dir Audacity runterladen und das Signal manuell aufzeichnen. Das Signal das du empfängst dann 1 zu 1 auf den Data Pin des Senders ausgeben.
 
Zurück
Oben