Forum: Mikrocontroller und Digitale Elektronik Bewegungsmelder decodieren mit SDR# und Audacity


von sunshineh (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe einen 433MHz Bewegungsmelder, dessen Signal ich gerne 
dekodieren möchte. Wenn ich dieses mit SDR# ansehe, sieht es wie folgt 
aus.

Wenn ich das Signal nun mit Audacity ansehe, dann sehe ich dieses Signal 
mit 0.25MSPS

von Stefan F. (Gast)


Lesenswert?

Wie lautet deine Frage?

Ist Dir bewusst, dass man vernünftige Logik Analysatoren schon für unter 
20 Euro kaufen kann?

von sunshineh (Gast)


Lesenswert?

Nein, könntest du mir einen nennen?

von axelro (Gast)


Lesenswert?

Womöglich siehst Du das in diesem Artikel unten erläuterte Signal, ohne 
das jetzt näher überprüft zu haben...

https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor?view=all

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

sunshineh schrieb:
> Hallo,
> ich habe einen 433MHz Bewegungsmelder, dessen Signal ich gerne
> dekodieren möchte. Wenn ich dieses mit SDR# ansehe, sieht es wie folgt
> aus.
>
> Wenn ich das Signal nun mit Audacity ansehe, dann sehe ich dieses Signal
> mit 0.25MSPS

Wenn ich ein Signal mit Audacity ansehe, dann sieht es wie ein Signal 
aus.

von Stefan F. (Gast)


Lesenswert?

Ich kann Dir diesen Logik Analysator empfehlen, der hat bei mit mit der 
Software von Saleae auf Anhib funktioniert: 
https://www.amazon.de/AZDelivery-Logic-Analyzer-kompatibel-Version/dp/B01MUFRHQ2

Mit Audio-Schnittstellen kann man digitale Signale nur sehr bedingt 
aufzeichnen, weil dafür nicht vorgesehen sind. Hier wäre es interessant, 
deinen Schaltplan zu zeigen. Denn wenn das Signal passend aufbereitet 
ist und man die Eigenschaften der Schaltung kennt, dann kann man damit 
schon was anfangen.

Aber so ganz ohne weitere technische Details kann ich mit deinen Bildern 
nichts anfangen.

Deb begriff SDR# solltest du vielleicht auch mal erklären. Ich kenne ihn 
nicht. Steht das für Software Defined Radio? Wenn ja, welches Gerät und 
was genau zeigen dann die Bilder?

Wenn die Punkte im mittleren Bild die Samples andeuten sollen, dann kann 
ich Dir schon einmal versichern, dass die Samplerate für dieses Signal 
viel zu gering war. Man braucht etwa 10 Samples pro Schwingung, um diese 
halbwegs brauchbar darzustellen. Wenn man zu wenig Samples hat, kann die 
Software nur raten, welce Form das Signal ursprünglich hatte und dann 
neigt sie dazu, einen Sinus darzustellen, denn das ist die natürliche 
Grundform von Audio Signalen.

Und nun das Wichtigste nochmal: Wie lautet deine Frage?

von hacknack (Gast)


Lesenswert?


von Peter G. (peter_geher)


Lesenswert?

Wenn du einen Arduino rumliegen hast, wäre das vielleicht was für dich;
https://github.com/gillham/logic_analyzer

Ich hatte damit ein wenig am nano herumgespielt und es sah halbwegs 
brauchbar aus.

von H. C. (sunshine)


Angehängte Dateien:

Lesenswert?

Hallo,

danke für eure Beiträge. Also grundsätzlich geht es mir darum einen 
Bewegungsmelder der auf einer Frequenz von 433MHz sendet.

Ich habe mehrere dieser Bewegungsmelder und einen Raspberry Pi mit einem 
DVB-T Stick bzw. einer 433MHz Antenne.

Nun möchte ich erkennen, dann er Bewegungsmelder per Funk ein Signal 
sendet bzw. welcher Bewegungsmelder es gerade ist.

Mit der Software SDR# und Audacity kann ich nun das Funksignal schon wie 
im Bild dargestellt erkennen. Somit könnte ich das Signal schon 
auszählen?!

So wie ich es sehe, wäre die Software "Universal Radio Hacker" hier am 
sinnvollsten für meine Anwendung?!

Ich hab leider sowas noch nie gemacht und versuche nun dem Problem auf 
die Schliche zu kommen. Ist es überhaupt realistisch, dass der DVB-Stick 
an meinem Raspberry die ganze Zeit auf der Frequenz 433NMHz lauscht und 
sofort reagiert, wenn ein Signal reinkommt?

von Stefan F. (Gast)


Lesenswert?

Mir ist jetzt nicht klar, was dein DVB-T Stick mit 433MHz zu tun hat. 
Ich empfange 433MHz Signale mit einem 433MHz Empfänger, der das HF 
Signal in ein NF Signal decodiert. Das kann man dann mit einem 
Logik-Analysator wesentlich komfortabler untersuchen.

Das Audacity Bild das du von dem Signal zeigst sieht gut aus, damit kann 
man was anfangen. Aber ohne zu wissen, welches Protokoll die Sender 
benutzen und wie viele Bits das Signal hat, könnte es sehr mühsam 
werden.

Manche senden sogar mit variabler Länge! Irgendwie ist der gesendete 
Code in der Regel auch gesichert, zum beispiel mit einer wie auch immer 
berechneten Prüfsumme. Auch das müsstest du herausfinden, oder diese 
einfach ignorieren und dann hinnehmen, dass dein Empfänger gelegentlich 
auf Störungen/Rauschen reagiert.

von Martin H. (horo)


Lesenswert?

Stefan U. schrieb:
> Mir ist jetzt nicht klar, was dein DVB-T Stick mit 433MHz zu tun hat.

https://www.heise.de/make/meldung/DVB-T-Stick-als-SDR-Empfaenger-1475228.html

von Harald (Gast)


Lesenswert?

@ H. C. (sunshine)

Das sieht mir nach OOK aus.

https://de.wikipedia.org/wiki/On-Off_Keying

Sollte nicht allzu schwierig sein.

Du kannst so vorgehen:

Zeichne jeweils das komplette Telegramme deiner Melder auf und dekodiere 
sie per Hand nach diesem Schema:

Träger EIN lang, Träger AUS kurz -> 1
Träger EIN kurz, Träger AUS lang -> 0

Anhand der Ergebnisse (hier posten) kann man sehr oft den Inhalt des 
Telegramms entschlüsseln.

von Stefan F. (Gast)


Lesenswert?

> dekodiere sie per Hand

Dafür wäre ich zu faul, wozu haben wir das Programmieren gelernt?

von Harald (Gast)


Lesenswert?

Stefan U. schrieb:
>> dekodiere sie per Hand
>
> Dafür wäre ich zu faul, wozu haben wir das Programmieren gelernt?

Bevor du ein Programm geschrieben hat, kenne ich bereits den Code :)

von Stefan F. (Gast)


Lesenswert?

> Bevor du ein Programm geschrieben hat, kenne ich bereits den Code

Das ist der Vorteil von Erfahrung. Was man nicht im Kopf hat, hat man in 
den Fingern oder Beinen.

von sunshineh (Gast)


Lesenswert?

Danke, zum Glück gibt's ja fertige Software, die diesen Job übernimmt!
Das hat wunderbar geklappt mit Universal Radio Hacker!! Super 
empfehlenswert!

Das ist nun der Code, der gesendet wird:
111011101000111010001000100011101000100010001110111011101110111011101110 
1000111011101110111010001
bzw. als HEX
ee8e888e888eeeeeee8eeee88

Ich habe nun einen 433MHz Empfänger (die günstigen, dies bei Ebay gibt) 
und möchte damit an meinem Raspberry die Bewegungsmelder empfangen.
Ich dachte hier an dieses Tutorial:
https://tutorials-raspberrypi.de/raspberry-pis-ueber-433mhz-funk-kommunizieren-lassen/

Oder kennt ihr was besseres?

von Stefan F. (Gast)


Lesenswert?

Mit den üblichen Linux Systemen ist der Raspberry aber nicht 
Echtzeitfähig. Decodiere das Singal besser mit einem kleinen 
Mikrocontroller und sende  das dann seriell an den Computer.

von sunshineh (Gast)


Lesenswert?

Meinst du, es ist zuviel Arbeit für den Raspberry oder warum soll ich es 
gesondert machen? Ich habe auch noch einen Arudino Nano, aber dann 
müsste ich halt 2 Boards versorgen...

von Martin H. (horo)


Lesenswert?

Harald schrieb:
> Träger EIN lang, Träger AUS kurz -> 1
> Träger EIN kurz, Träger AUS lang -> 0

sunshineh schrieb:
> Das ist nun der Code, der gesendet wird:
> 111011101000111010001000100011101000100010001110111011101110111011101110
> 1000111011101110111010001
> bzw. als HEX
> ee8e888e888eeeeeee8eeee88

Vorschlag:
1110 (0xe) -> 1
1000 (0x8) -> 0

von Stefan F. (Gast)


Lesenswert?

Dein Programm auf dem Raspberry wird durch Interrupts und andere Threads 
unterbrochen. Es wird signifikante Zeitabschnitte geben die das Programm 
nicht mit bekommt da es dann nicht ausgeführt wird. Dadurch wird es 
Teile des Signals verpassen und somit nicht zuverlässig funktionieren.

von Stefan F. (Gast)


Lesenswert?

Aus dem selben Grund hat auch jedes Eingabegerät einen eigenen 
Mikrocontroller: Maus, Tastaur, Gamepad, usw.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.