Home > Technologie > Control CoTech Fernschalter mit Arduino (433Mhz)

Control CoTech Fernschalter mit Arduino (433Mhz)

Advertisement

Control CoTech Fernschalter mit Arduino (433Mhz)

Vor kurzem kaufte ich 3 Co / Tech 51058x10 Fernschalter und eine 50027 Fernbedienung von Clas Ohlson in Norwegen. Sie verwenden die AM 433mhz Band zu kommunizieren. Ich wollte, dass sie mit einem Arduino zu kontrollieren und nach googeln und eine lange Zeit mit dem Lesen, konnte ich nicht feststellen, dass jemand vor mir, dass bestimmte Marke zu einem Arduino angeschlossen haben.

Sie benötigen:

Co / Tech Fernschalter:

Http: //www.clasohlson.com/no/Cotech-Smart-Home..-f ...

Http: //www.clasohlson.com/uk/Remote-Switch-Set-3-P ...

433Mhz Empfänger und Sender:

Http: //www.ebay.com/itm/400492821250? _trksid = p2057 ...

Ardunino Brett (I'v verwendet das Nano)

Http: //www.ebay.com/itm/Mini-USB-Nano-V3-0-ATmega3 ...

Schritt 1: Aufbau und Verdrahtung

Control CoTech Fernschalter mit Arduino (433Mhz)

Control CoTech Fernschalter mit Arduino (433Mhz)

Control CoTech Fernschalter mit Arduino (433Mhz)

Control CoTech Fernschalter mit Arduino (433Mhz)

Der Empfänger im using hat 4 Stifte und der Übermittler hat 3. Verbinden Sie sie mit dem arduino, wie in den Abbildungen. Jeder mit 5V, Masse und einem Datenpin.

Es ist wichtig, dass die datapin des Empfängers verbunden ist, D2 bzw. D3 des Arduino festzustecken, weil es zu einem Interrupt-Pin verbunden werden muss. Der Sender kann an einen anderen digitalen Pin angeschlossen werden, wenn Sie wollen, aber Sie müssen dann den Code natürlich ändern.

Schritt 2: Forschung

Control CoTech Fernschalter mit Arduino (433Mhz)

Da keiner mit diesem Co / Tech-Modell vor mir verbunden war, wusste ich nicht, wie es kommunizierte. Durch Öffnen der Fernbedienung gab mir das Modell nr. 50027.01B FLF-130105

Eine große Hilfe: http: //forum.arduino.cc/index.php topic = 201.771,15 ... (Special zu wex_storm und windkh)

Eine gute Bibliothek erleichtert jedem Macher das Leben. Derjenige, der das am besten mit meiner Einheit arbeitete , war RCSwitch von sui77. Http: //forum.arduino.cc/index.php topic = 201.771,15 ...? (Arduino lib 433 / 315Mhz Geräte wie Steckdosen Strom betrieben werden .)

Ich habe auch einige Code von einem Beispiel in diesem lib: http: //forum.arduino.cc/index.php topic = 201.771,15 ...

Schritt 3: Die Codierung

Zur Steuerung der Schalter wir daran denken müssen, dass die Fernbedienung durch seine Fernbedienungen Codes Bewältigungs verwendet wird gerade und auf Nachfrage aus dem Arduino übertragen.

Das erste, was Sie tun, ist das Beispiel in der RCSwitch lib "ReceiveDemo_Advanced.ino" zu beginnen und es zu dem Arduino hochladen. Achten Sie auf die verwirrenden Pin-Namen, wie die Bibliothek nr für den Interrupt-Pin und nicht die digitale Pin nr verwendet.

MySwitch.enableReceive (0); // Empfänger auf "Interrupt 0" => Digital Pin 2 und "Interrupt 1" => D3.

Starten Sie nun das serielle Fenster und drücken Sie eine der Tasten auf der Co / Tech-Fernbedienung.

Sie sollten so etwas wie folgt erhalten:

Dezimal: 11001351 (24Bit) Binary: 101001111101111000000111 Tri-State: nicht anwendbar Impulslänge: 517 Mikrosekunden-Protokoll: 5

Rohdaten: 7200,1004,528,504,1048,980,336,1176,356,1176,352,1180,1108,412,356,1172,364,1168,356,1160,1176,1124,412,336,1180,1116,440,328,1188 , 340,1228,1060,416,1160,380,1160,1108,464,1068,436,328,1232,1060,412,1116,440,1088,428,3024,

Das bedeutet, dass der Arduino den Empfänger liest. Die interessante Sache ist der binäre Code. Diese Fernbedienung sendet einen 24-Bit-Code. Dies kann von den verschiedenen Einheiten abweichen.

1010 0111110111100000 0111
^ ^ ^ ^ ------------------------ ^ ^ ^ ^
Die erste 4-stellige Zahl ist der "Name" der Fernbedienung. Die letzte 4 ist der Name der Taste, die gedrückt wird. Die 16 nr dazwischen ist ein Zufallscode.

Wenn Sie die gleiche Taste erneut drücken, werden die gleichen vier nr (1010) im Start und die gleichen vier nr (0111) am Ende angezeigt. Die 16 nr i wird sich wahrscheinlich ändern. Jede Taste auf der Fernbedienung kann 4 verschiedene 24-Bit-Binärcodes senden.

So sparen Sie Zeit und erleichtern es, alle "Geheimcodes" zu sammeln. I'v verwendet den Code aus dem flamingoreader.ino Beispiel in der FlamingoSwitch lib und ändern Sie es mit RCSwitch zu arbeiten. Es macht es einfacher alot für alle binären Codes von der Fernbedienung zu scannen, und dann können Sie kopieren und in eine Textdatei zur Speicherung einfügen. (Laden Sie die RecieverDemo_Scan.ino-Datei herunter und fügen Sie sie dem RCSwitch-Beispielordner hinzu)

Laden Sie die RecieverDemo_Scan.ino-Datei auf den Ardunino und drücken Sie eine der Tasten auf der Fernbedienung, bis "Scan abgeschlossen" zu sehen ist.

Zähler: 0 Code: 11446759 Code: 0xAEA9E7 Bin: 101011101010100111100111

Zähler: 1 Code: 11001351 Code: 0xA7DE07 Bin: 101001111101111000000111

Zähler: 2 Code: 11092535 Code: 0xA94237 Bin: 101010010100001000110111

Zähler: 3 Code: 11340023 Code: 0xAD08F7 Bin: 101011010000100011110111

Scan abgeschlossen.

Wir haben nun alle Binärcodes für diese Schaltfläche. Jetzt tun Sie das gleiche für alle Schaltflächen und speichern Sie sie in einer Textdatei für später.

Schritt 4: Steuern der Steckdose mit dem Arduino

Control CoTech Fernschalter mit Arduino (433Mhz)

Um die Fernbedienung mit dem Schalter zu verbinden, drücken Sie die Taste am Schalter für 3 Sekunden und es beginnt zu blinken. Drücken Sie nun die Taste ON auf der Fernbedienung, die Sie für die Steuerung des Schalters verwenden möchten. Sie sollten jetzt gepaart werden. Sie könnten wahrscheinlich mit dem Arduino paaren, indem Sie eine Skizze, die das gleiche macht.

Jetzt finden Sie Ihren aufgezeichneten Binärcode von früher. Laden Sie den Code rfTest.ino herunter und bearbeiten Sie ihn, um ihn Ihren Bedürfnissen anzupassen. Ändern Sie die Binärdateien im Code auf Ihre spezielle Fernbedienung und auf die Schaltfläche.

Die RCSwitch sagte, dass die Fernbedienung ein "Protokoll: 5", aber beim Testen, dass fehlgeschlagen und Protokoll 4 besser funktionierte.

MySwitch.setProtocol (4);

Die Impulslänge kann geändert werden. Ich fand, dass 400 Arbeit ok, aber Sie können versuchen, tweeking es.

MySwitch.setPulseLength (400);

Der Schalter benötigt mindestens zwei der vier 24-Bit-Binärdateien von jeder Taste auf der Fernbedienung, um zu reagieren.

Serial.println ( "Einschalten mit Taste A"); // Tests zeigen, dass nicht alle Codes erforderlich sind. Aber mindestens 2 pro Taste

MySwitch.send ( "101001011011111101000111");

MySwitch.send ( "101000011111000011000111");

//mySwitch.send("101001001100011010010111 ");

//mySwitch.send("101000101001101011010111 ").

Jetzt laden Sie die Skizze und es sollte funktionieren.Der Schalter schaltet sich aus und wieder alle 5000ms.

PS: Ich hatte ein Problem mit den "OFF" -Codes bei der Stromversorgung des arduino mit dem PC zu usb. Das Anschließen des Arduino an eine externe Stromquelle löste das Problem. Möglicherweise sein das Geräusch von der usb-Verbindung, die den Übermittler blockiert. Ich weiß es jetzt nicht.

Schritt 5: Danke fürs Lesen

Hoffe, diese Anleitung hat Ihnen geholfen.

Ich bin kein Profi und wenn es Fehler gibt bitte kommentieren und mir sagen.

Beste Grüße Øyvind Haga

Related Reading