Forum: Mikrocontroller und Digitale Elektronik 433 MHz Handsender mit Empfängermodul und PIC (evtl. auch was anderes) auswerten.


von aeson (Gast)


Lesenswert?

Hallo, ich habe die üblichen billigen 433MHz-Module bei amazon gekauft:
http://www.amazon.de/Empf%C3%A4nger-Superregenerat...

Ich habe außerdem mehrere Handsender.
http://www.amazon.de/Universal-Fernbedienung-Garag...


Zusammen mit meinem Raspberry Pi konnte ich die Handsender problemlos
auf meinen Code programmieren. Mit dem Pi kann ich außerdem problemlos
den Code wieder auslesen.
Diese Anleitung habe ich dafür genutzt und etwas abgeändert:
http://www.tutorials-raspberrypi.de/gpio/raspberry...

Nun möchte ich aber das Empfängermodul mit einem Mikrocontroller (ich
habe noch ein paar PIC 18F2520 herumliegen) verbinden und die Daten für
meine Lichtsteuerung nutzen.
Ich habe schon versucht, den Quellcode der Raspberry Pi Software
nachzuvollziehen. Allerdings nutzt der zum Auslesen "wiringPi".
Mit Tante Google und verschiedenen Foren habe ich mich auch schon
beschäftigt. Leider ohne Erfolg.

Kennt jemand ein Projekt, wo so etwas schon versucht (und dokumentiert)
wurde? Ich drehe mich momentan bei diesem Problem nur im Kreis.

Vielen Dank
aeson

von W.A. (Gast)


Lesenswert?

aeson schrieb:
> Ich habe schon versucht, den Quellcode der Raspberry Pi Software
> nachzuvollziehen. Allerdings nutzt der zum Auslesen "wiringPi".

Sobald irgendetwas nicht wie gewohnt funktioniert, steht man mit 
Copy&Paste eben dumm da.

aeson schrieb:
> Nun möchte ich aber das Empfängermodul mit einem Mikrocontroller (ich
> habe noch ein paar PIC 18F2520 herumliegen) verbinden und die Daten für
> meine Lichtsteuerung nutzen.

Falls einer der weit verbreiteten Encoder-Chips und keine rolling Codes 
verwendet werden, sollte ein Empfänger wohl hinzukriegen sein. Erzähl 
doch einfach mal, welchen hochgeheimen Code dein Handsender von sich 
gibt. Mit dieser Info wäre es etwas einfacher, nach einer passenden 
Software für die Auswertung zu gucken.

Dein angegebene Link zum Sender ist leider arg verstümmelt.

von Stefan (Gast)


Lesenswert?

Wie willst du die denn verbinden? Der link zu den Empfängermodulen 
funktioniert leider nicht. Können die UART oder I2C?

von aeson (Gast)


Lesenswert?

Hallo, sorry, dass ich mich erst heute melde. Ging leider nicht früher.

Hier noch die Links:

http://www.amazon.de/Universal-Fernbedienung-Garagentor%C3%B6ffner-Tor%C3%B6ffner-safe2buy2000/dp/B00I2043GW/ref=pd_sim_60_8?ie=UTF8&refRID=10ADWRJW5451T9C074BB#productDetails

http://www.amazon.de/Empf%C3%A4nger-Superregeneration-Raspberry-Wireless-Transmitter-433-MHz-Funk-Sende-Modul-f%C3%BCr-Arduino/dp/B00M0XTP4W

http://www.tutorials-raspberrypi.de/gpio/raspberry-pis-ueber-433mhz-funk-kommunizieren-lassen/


@W.A.: Ich möchte eigentlich gar nicht per Copy&Paste programmieren. 
Ehrlich gesagt, wäre es mir am liebsten, zu verstehen, was diese 
Handsender da tatsächlich aussenden. Das könnte ich dann 
nachprogrammieren. Leider habe ich derzeit noch kein Oszi bei mir 
rumstehen.
Die Fernbedienungen haben keinen Rolling-Code. Man kann sie anlernen. 
Für sicherheitsunkritische Applikationen werden die überall eingesetzt.


@Stefan: Das Signal kommt über einen Pin am Modul. Es geht in die 
Richtung UART. Also, auf jeden Fall asynchron. Wenn ich einfach nur zwei 
Module (wie in Link 2 und 3) miteinander "kommunizieren" lasse, kann ich 
in das eine Sende-Modul einen UART reinschicken, welcher fast 1:1 beim 
Empfänger wieder heraus kommt. Das Sendemodul möchte ich nun gegen die 
Handsender tauschen. Ich weiß aber leider nicht, was die Handsender 
schicken.
Hier würde mich ein Link interessieren, wo das beschrieben ist und wo 
eventuell auch Informationen zu finden sind, wie man dieses Signal mit 
einem Mikrocontroller auswerten kann.

Vielen Dank noch mal
aeson

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

aeson schrieb:
> Ich weiß aber leider nicht, was die Handsender
> schicken.

Die o.a. Handsender schicken erst mal gar nichts, solange sie nicht 
angelernt sind. Hast du das gemacht? Im ersten Posting steht, das du sie 
mit dem RPi programmiert hast, also den Simpelsender von Amazon an den 
RPi, Code aussenden, Handsender in den Lernmodus bringen und Code 
lernen?
Hat der Handsender das bestätigt?
Die Handsender können den Code nur lernen, wenn er mit einer Pause 
gesendet wird und sich ein paar mal wiederholt. Der Handsender bestätigt 
das dann, wie in der Anleitung beschrieben. UART Code können sie nicht 
lernen, es braucht eine Manchester-artige Codierung.

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

aeson schrieb:
> in das eine Sende-Modul einen UART reinschicken

Ob die Fernbedienung die UART-Muster incl. Start/Stopp und ggf. Pausen 
zwischen drin lernen kann, wird Dir vermutlich keiner sagen können. 
Versuch macht Kluch.

Versuche verschiedene Längen und Baud-raten und achte auf Bit-Wechsel 
(z.B. immer Folgen aus 001 / 011). Falls Du das Start-Bit als erste "0" 
mitnimmst, kommst Du auf 9 Bit und bekommst somit drei solche Bit-Muster 
in ein UART-Byte.

aeson schrieb:
> wo das beschrieben ist und wo
> eventuell auch Informationen zu finden sind, wie man dieses Signal mit
> einem Mikrocontroller auswerten kann.

Wenn Du 'in das eine Sende-Modul einen UART reinschickst, welcher fast 
1:1 beim Empfänger wieder heraus kommt'^^, müsste der Mikrocontroller ja 
nur das Enpfangsregister des UARTs auslesen.

Ansonsten: Timer und Capture Compare oder noch einfacher: Timer laufen 
lassen, in einer While-Schleife den Zähler abfragen und einen GPIO 
entsprechend setzen oder auslesen.

Letzteres gibt hier bestimmt Mecker, weil man das so nicht machen 
sollte. Das wäre halt eine simplere Anfänger-Lösung.

PS: Schau Dir die Codierungen und Timings der üblichen Verdächtigen an: 
SC2262, SC2260, FP527, SMC918, PT2240, EV1527, AX9314, 5326, …

Einige davon kann man bestimmt per UART nachbilden.

aeson schrieb:
> Ehrlich gesagt, wäre es mir am liebsten, zu verstehen, was diese
> Handsender da tatsächlich aussenden. …
> Ich weiß aber leider nicht, was die Handsender
> schicken.

PPS: oh, da war mschoeldgen schneller: Die senden genau das aus, was Du 
denen rein programmierst. Amazon schreibt:
> Drücken Sie gleichzeitig eine Taste auf der Originalfernbedienung und
> eine der Tasten auf der Fernbedienung und halten Sie sie, bis die LED
> auf dem Remote-Klon ständig blinkt. (Die blaue LED blinkt die ersten
> 3 mal schnell, dann hält sie für eine Sekunde, dann blinkt ständig
> für erfolgreiche Klonen).

: Bearbeitet durch User
von aeson (Gast)


Lesenswert?

Die Handsender habe ich wie in dem Raspberry Pi Beispiel programmiert.
Ich habe, wie gesagt, ein Sendemodul, ein Empfängermodul und einen 
Handsender.
Über das Sendemodul habe ich eine 8stellige Zahlenfolge mehrfach 
herausgeschickt. Dafür habe ich das Pi Beispiel mit dem wiringPi-Code 
genutzt. Alle vier Tasten des Handsenders habe ich so mit 
unterschiedlichen Zahlenfolgen programmiert.
Wenn ich die Tasten des Handsenders drücke und den Sniffer am Pi laufen 
lasse, werden diese Zahlenfolgen auch wieder richtig ausgegeben.

Jetzt habe ich endlich selbst mal das Problem verstanden. Meine Frage 
sollte also nicht sein, was die Handsender aussenden, sondern was der Pi 
aussendet.
Das ist dann vermutlich diese Manchaster-Codierung, von der überall 
geschrieben wird.
Ich kann mir nicht vorstellen, dass ich der erste bin, der so etwas 
machen will.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

aeson schrieb:
> Das ist dann vermutlich diese Manchaster-Codierung, von der überall
> geschrieben wird.

Die UART-Variante fand ich irgendwie eleganter. * grins *
Aber es ist wohl am einfachsten so, wenn der gekaufte Sender die 
Raspberry-Pi-Manchaster-Codierung schon erkennt.

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.