433 MHz Empfänger Probleme beim auslesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich habe einen 433 MHz Emfänger an meinen Raspberry angeschlossen, sowie man es es bei vielen Schaltungen findet. Die Daten sollen über den GPIO Pin 2 eingelesen werden.

    Wenn ich jetzt aber den Emfänger auslese erhalte ich immer wieder die eingänge
    1
    0
    1
    0
    1
    0
    ....
    Das in einem Sehr schnellen intervall. Wenn ich ein Signal sende, z.B. per Fernbedienung ändert sich nichts.

    Ziehe ich den Empfänger ab hört das ganze Spielchen auf. Verbinde ich den Pin dann mit dem 3 Volt Pin bekomme ich einmalig eine 1.

    Also scheine ich auf den richtigen Pin zu lauschen. Wie werte ich nun aber die ausgaben von dem Empfänger aus?

    Ich arbeite mit einer JAVA Anwendung und der dazugehörigen GPIO Sammlung von pi4j.

    Neme ich ein Python Skript bekomme ich entsprechende Werte dargestellt. Also kann der Empfänger nicht defekt oder falsch angeschlossen sein.

    Ich würde mich über Antworten freuen.

    hibbert

  • Da fehlen imho noch einige Angaben:
    Was empfängst du denn da?
    Was sendest Du und wie?
    Was erwartest Du als Daten?
    In welchem Zusammenhang funkst Du da?
    Was ist " die dazugehörigen GPIO Sammlung" ?
    Was meinst Du mit "... ein Python Skript bekomme ich entsprechende Werte ..."?


    cheers,
    -ds-

  • Hallo,
    ok, dann werden noch ein paar weitere Infos nötig sein, ich dahcte es ist ein Standgard Problem und es wäre auch so zu erklären gewesen.

    Ich habe ein paar Funksteckdosen die ich einmal mit der dazugehörigen Fernbedienung sowie mit einem am Pi angebrachten Sender ansteuern kann.
    Das ansteuern funktioniert über beide wege. Gesendet werden die für Funksteckdosen üblichen Daten. Der Bereich, die Steckdose und der Status.

    Derzeit kann ich per SSH eine Steckdose folgendermaßen einschalten:

    Code
    ./send 10011 1 1


    Gesendet wird in diesem Fall mit rcswitch-pi (https://projects.drogon.net/raspberry-pi/wiringpi)

    Die Daten die ich sende erwarte ich natürlich auch.

    Die GPIO Sammlung ist wie erwähnt die pi4j-core.jar von pi4j.

    Es handelt sich hier um das Beispiel welches von pi4j kommt:

    Als Ausgabe bekomme ich folgedes:

    hibbert


  • Das ist so eine Sache das gab im Forum ständig probleme. Der Raspberry Pi ist halt kein uController und Arbeitet nicht in Echtzeit das Script ab.

    Naja wie gesasgt, wenn ich den GPIO Pin 2 Mit dem 3 oder 5 V Pin verbinde, dann passt das alles so wie es soll, nur eben bei dem Empfänger nicht.

    Vlt hat da ja noch wer einen hilfreichen tipp.

  • Aha, wobei ich dazu sagen muss, dass ich mit Funksteckdosen nicht so doll was zu tun hab'.
    Ich glaube aber, Du solltest nicht dem Trugschluss verfallen, dass wenn Du


    ...

    Code
    ./send 10011 1 1


    ...

    abschickst, auf der anderen Seite "10011 1 1" ankommt ...
    Die Daten kommen seriell (weil Du nur einen Empfangspin hast) und sind Bitmuster (0 und 1), die einen definierten Anfang haben müssen, weil sie sonst nicht auszuwerten sind.
    Was also da auf binärer Basis versendet und empfangen wird, ist was anderes als Du da eintippst.
    Wie das kodieren/dekodieren funktioniert erschliesst sich Dir m.E. nur dann, wenn Du mal den Source-Code einer Sende- bzw. Empfangsroutine zerpflückst.

    cheers,
    -ds-


  • Was also da auf binärer Basis versendet und empfangen wird, ist was anderes als Du da eintippst.
    Wie das kodieren/dekodieren funktioniert erschliesst sich Dir m.E. nur dann, wenn Du mal den Source-Code einer Sende- bzw. Empfangsroutine zerpflückst.

    Ja dass dieses Muster nicht direkt versendet bzw empfangen wird ist mir schon klar, es isnd ja auch nur Parameter die an das Sendeskript übergeben werden.

    Jedoch ist mein Problem ja das ständige empfangen von LOW und HIGH obwohl nichts gesendet wird, und wird etwas gesendet, dann ändert sich nichts an dieser Reihenfolge.

    Vlt hat hier ja wer eine Lösung für.

    hibbert

  • Verdrahtet habe ich es über diese Testplatine. Die GPIO Pins mit dem Flachbandkabel zur Platine verlängert und da mit dem entsprechenden Adapter draufgesteckt.

    Von dort dann mit einezlenen Steckdrähten weiterverkabelt.

    Ich habe den Init Befehl des GPIO Pins angepasst:

    Code
    GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02,"",PinPullResistance.PULL_DOWN);

    Leider ist das Resultat noch immer das selbe.

  • Hi,

    ich glaub, da hatte ich gerade eine Halluzination ... sorry. Am Eingang hängt ja der Empfängerpin.
    Das mit dem Widerstand war wohl ein Aussetzer meinerseits ... sorry :blush:

    Aber warum stört Dich das denn? Du hast doch anscheinend einen korrekten Datenempfang, wenn Du die entsprechenden Python Funktionen verwendest.
    Das was da high/low kommt - funkt da evtl. was in Deiner Umgebung? Das 433 MHz Band ist ziemlich voll ...

    cu,
    -ds-


  • Aber warum stört Dich das denn? Du hast doch anscheinend einen korrekten Datenempfang, wenn Du die entsprechenden Python Funktionen verwendest.
    Das was da high/low kommt - funkt da evtl. was in Deiner Umgebung? Das 433 MHz Band ist ziemlich voll ...

    Der Sender ist direkt gegenüber vom Emfänger und wenn ich etwas sende ändert sich nichts beim Empfänger, auch nicht nach einiger Zeit.

  • Das hat nicht unbedingt was zu sagen. Möglicherweise werden Daten erst dann auch wirklich empfangen, wenn z.B. der Handshake oder was auch immer stimmt.
    Wieviel Intelligenz da in dem Funkmodul steckt, vermag ich nicht zu sagen.
    Wie gesagt ... ich glaube, da auf dem GPIO für Empfangsdaten rumzulungern und auf Daten zu warten, wird imho nicht viel bringen.
    Zudem bringt Dich das im Moment wohl auch nicht weiter. Was würde sich ändern, wenn jetzt der GPIO nicht mehr hin und her schaltet sondern permanent high ist? Nix ...

    Ich würde mir mal den Quellcode einer Empfangsroutine vornehmen und versuchen sie nachzubauen ...

    cu,
    -ds-

  • Hi,
    na wenn sich etwas ändern würde dann könnte ich zuminderst sagen, dass ich beim Programm an der richtigen Stelle bin und dann ab der Veränderung etwas machen kann, z.B. den "Stream" anfangen auszulesen etc. Aber das passiert ja leider nicht.

    Ich habe mir jetzt auch mal den Quelltext des Skriptes angeschaut, etwas verwirrend was da alles so passiert, aber ich werde mal versuchen mich da durchzukämpfen.

    Aber es hätte ja auch sein können, dass wer anderes schon einmal dieses Problem hatte und es gelöst hat und mir den ein oder anderen Tipp gegeben hätte ;)

    hibbert

  • Ich drück Dir mal die Daumen, dass sich jemand findet, der Dir die gewünschten Infos zukommen lässt.
    Bis dahin ... das bekommst Du schon hin ...

    btw: im ellenlangen 433 MHz Thread ist nichts brauchbares? Probier vielleicht mal die erweiterte Forensuche ... da kannst Du prima filtern.

    cheers,
    -ds-


  • btw: im ellenlangen 433 MHz Thread ist nichts brauchbares? Probier vielleicht mal die erweiterte Forensuche ... da kannst Du prima filtern.

    Ist eine gute Idee, werde ich morgen mal gleich versuchen. Danke.

    Vlt hat ja wer anderes noch eine Idee.

    Danke.

    hibbert

  • Ist eine gute Idee, werde ich morgen mal gleich versuchen. Danke.

    Vlt hat ja wer anderes noch eine Idee.

    Danke.

    hibbert

    Hi hibbert,

    ich habe zur Zeit exakt dasselbe Problem, wie du hier beschrieben hast.
    Habe auch mit 433Utils die gesendeten Codes emfangen können, bekomme aber über pi4j nur eine HIGH - LOW Schleife.

    Ich habe jetzt schon viel umher gegoogelt, habe aber noch keine brauchbaren Hinweise für eine Java Implementierung gefunden und hoffe nun, dass du vielleicht in der Zwischenzeit etwas weiter gekommen bist. Falls ja, würde ich mich sehr über eine Antwort freuen und bedanke mich im voraus.

    PS. Ich weiß, der thread ist jetzt schon etwas älter. Sorry, falls der bump als negativ angesehen wird :daumendreh2:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!