433 MHz Sniffer mit Arduino bauen

Veröffentlicht von

Beim Anbinden meiner Baumarkt-Steckdosen an meine Hausautomatisierung Homematic mit einem Arduino bin ich auf ein Problem gestossen: Meine Baumarkt-Steckdosen von Manax entsprachen nicht dem gängigen Standard. Es gibt mehrere Varianten dieser Funk-Lösungen auf dem Markt. Einmal findet die Konfiguration mit zwei Pin-Switches statt, ein anderes Mal gibt es nur die Einstellmöglichkeit „ABCDE“. Meine Baumarkt-Steckdosen konnten jedoch nur mit einem Pin-Switch auf den Kanal 1-4 eingestellt werden. Die Herausforderung war also, die übermittelten Codes herauszubekommen.

Eine Frage, die mir am Rande der Erstellung dieses Artikels in den Sinn kam: Was passiert eigentlich, wenn ich zwei dieser Sets kaufe? Habe ich dann eine doppelte Kanalbelegung oder ist der Gruppencode ein anderer? Hmm. Das muss ich noch ausprobieren 🙂

Verwendete Komponenten

Der Hardwareaufbau

Die Schaltung ist denkbar einfach gestaltet:

Schaltung
schematische Schaltung

Wir verbinden GND des Arduino mit GND des 433 MHz Receivers. Genauso verfahren wir mit der Stromversorgung des +5V Ausgangs. Die Datenübermittlung erfolgt über D2 des Arduino.

Die Software

Nach ein Wenig stöbern im Internet bin ich ziemlich schnell auf ein Code-Snippet von @justy gestossen.

#include "RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
 Serial.begin(9600);
 mySwitch.enableReceive(0);
}
void loop() {
 if (mySwitch.available()) {
 int value = mySwitch.getReceivedValue();
 if (value == 0) {
 Serial.print("Unknown encoding");
 } else {
 Serial.print("Received ");
 Serial.print( mySwitch.getReceivedValue() );
 Serial.print(" / ");
 Serial.print( mySwitch.getReceivedBitlength() );
 Serial.print("bit ");
 Serial.print("Protocol: ");
 Serial.println( mySwitch.getReceivedProtocol() );
 }
 mySwitch.resetAvailable();
 }
}

Die Software können wir so direkt verwenden. Wir müssen den Quellcode nur noch kompilieren und auf den Arduino Nano übertragen.

Schon ist die Lösung startklar. Im Debug-Fenster erkennen wir nun nach Tastendruck auf der Fernbedienung, welche Binärsignale in welcher Bitlänge übermittelt werden.

Debug-Konsole
Debug-Konsole

Damit wir nun mit den „Werten“ etwas anfangen können, müssen diese noch von Dezimal in Binär umgerechnet werden. Das ist für jeden Informatiker eine Pflichtübung in der Ausbildung oder im Studium, deswegen spare ich mir hier eine ausführliche Erklärung, wie man die Dezimalzahl im Binärraster schnell berechnet. Wer die kleine Fingerübung nicht selbst übernehmen möchte, kann natürlich auch auf eins der zahlreichen Online-Tools zurückgreifen.

Ich habe übrigens den Sniffer mal einige Tage laufen lassen. Ich finde es sehr interessant, was in diesem Funkband alles an Signalen übermittelt wird 🙂

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.