mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 433Mhz Funkübertragung


Autor: chrisHome (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich möchte meine selbstgebaute Wetterstation mit Funk aufrüsten. Dazu 
verwende ich ein 433Mhz Sender + Empfänger. Die übertragenen Daten sind 
jedoch immer nicht auswertbar. Nach einer Analyse mit meinem 
PC-Osziloskop ist mir folgendes aufgefallen.
Die Daten werden korrekt übertagen, jedoch toggelt der Ausgang des 
Empfängers nach ca. 500ms auf High, wenn keine Daten mehr übertragen 
werden.
Anbei ein Bild. Gelb sind die gesendeten Daten, Blau die Empfangenen. 
Die 500ms LOW- Phase ist sehr gut zu erkennen auf dem blauen Signal.

Gesendet wird mit 1kHz.

Ist das ein normales Verhalten dieses Empfängers oder wo ist mein 
Fehler?

Die verwendeten Funkmodule
https://www.robofun.ch/de/433mhz-rf-linktransmitte...

Autor: Arduinquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chrisHome schrieb:
> Die übertragenen Daten sind jedoch immer nicht auswertbar.

Womit überträgst du denn?

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenne jetzt nicht Dein Modul. Es könnte z.B. Rauschen sein wenn nix 
gesendet wird od. ein Träger eines anderen Geräts? Mal Empfänger unter 
Abschirmung verstecken ob sich was ändert?

Autor: Joe F. (easylife)
Datum:

Bewertung
5 lesenswert
nicht lesenswert
Es gab in der vor-Arduino-und-maker-spacko-zeit mal Datenblätter zu 
Bauteilen und Module. Das war oft sehr hilfreich.

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
-5 lesenswert
nicht lesenswert
Joe F. schrieb:
> Das war oft sehr hilfreich.

Es gibt Schaltpläne zu diesen Modulen. Ganz öffentlich
ohne Geheimnisse. Der Rest ist ziemlich selbsterklärend.

Autor: Joe F. (easylife)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Arduinoquäler schrieb:
> Es gibt Schaltpläne zu diesen Modulen.

Und? Geht aus dem 'Schaltplan' hervor, ob das Signal invertiert wird, ob 
Sender oder Empfänger einen Sleepmode besitzen, wenn ja, wir verhalten 
sie sich dann? Geht der Ausgang tri-statet?
-> Datenblatt

: Bearbeitet durch User
Autor: Arduinoquäler (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Joe F. schrieb:
> Und? Geht aus dem 'Schaltplan' hervor, ob

Ja. Wenn du keine Schaltpläne lesen/interpretieren kannst
dann rede nicht so altklug daher.

Autor: Joe F. (easylife)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Welcher Stromlaufplan denn bitte?
Ich sehe ein Oszi-Screenshot und einen Einkaufs-Link.

: Bearbeitet durch User
Autor: Arduinoquäler (Gast)
Datum:

Bewertung
-5 lesenswert
nicht lesenswert
Joe F. schrieb:
> Ich sehe ein Oszi-Screenshot und einen Einkaufs-Link.

Google kaputt? Browser kaputt?

Autor: Joe F. (easylife)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
"Guten Tag Herr Doktor, ich bin krank."
"Was fehlt ihnen denn?"
"Google kaputt? Browser kaputt?"

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
-8 lesenswert
nicht lesenswert
Dass du dich so blöd anstellst konnte ich natürlich nicht ahnen.

Selbst hier im Forum gibt es jede Menge Infos darüber, also
muss wohl mehr bei dir kaputt sein.

Autor: Old Papa (old-papa)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Herr Doktor, helfen sie mir!
Aber stellen Sie sich gefälligst nicht blöde an!

Wieviel Hilfe wird er geben?

Old-Papa

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daten vor dem Sender und hinter dem Empfänger jeweils invertieren ...

Edit: Dass das empfangene Signal invertiert zum gesendeten ist, hast Du 
gesehen!?


Gruß

Jobst

: Bearbeitet durch User
Autor: Ludger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo chrisHome,

ja, damit musst Du leben. Bei diesen einfachst Empfängern kommt
das vor. Die empfangen das Signal, aber dazwischen ist der Pegel
komplett undefiniert, high ,low oder rauschen. Damit muss Dein
Programm klar kommen.....

Ludger

Autor: Info (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Module sehen so aus wie "meine": 
Beitrag "Infos zu billigen 433 MHz Funkmodulen (Empfänger)?".
Ich habe aber pro Paar "nur" etwa 2 Euro bezahlt.

Welche Entfernung erreichst du? Mit einem REV-Funksteckdosen-Sender 
komme ich trotz Lambda/4 mit 4 "radials" als groundplane nur etwa 5 m 
weit - die passenden Steckdosen haben deutlich feinere Empfänger.

Der von Arduinoquäler vorgeschlagene Filter der Versorgungsspannung 
scheint einiges gebracht zu haben. Derzeit nur sporadische Störungen.

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ludger schrieb:
> ja, damit musst Du leben.

chrisHome hat sich noch gar nicht geäussert auf meine Frage wie
er denn überhautpt überträgt.

Es gab ja schon Leute hier die meinten sie müssten das Sende-
und Empfangsmodul nur an den seriellen (Rx/Tx-) Port eines AVRs
anschliessen und schon könnten sie glücklich werden. Daher
meine Frage .....

Autor: chrisHome (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Okey.. da habe ich wohl zu wenig Informationen geliefert.

Sender:
Die Wetterstation wertet die Sensoren mittels Arduino aus. Die Daten 
werden mittels VirtualWire aufbereitet und an das Sendemodul geschickt.

Empfänger:
Das Empfangsmodul demoduliert die Daten, werden auf einem anderen 
Arduino mittels VirtualWire Bibliothek decodiert und zum PC mit RS232 
geschickt.

Wenn Wetterstation und Basistation mittels Kabel verbunden werden, 
klappt alles perfekt ( dh. Temperatur wird auf PC angezeigt).

Mein Problem ist jedoch nicht die Übertragung der Nutzdaten per Funk, 
welche in 99% der Fälle fehlerfrei ist (Distanz ca. 1m). Mein 
Hauptproblem ist warum das das Empfängermodul NACH der Datenübertagung 
sich komisch verhält. -> Siehe Bild im Anhang.

Ich habe somit 'nur' ein Hardware-Problem. Software zusammenspiel 
funktioniert grundsätzlich (Möchte keine Fremde Bibliothek 
umprogrammieren... )

VirtualWire:
https://www.pjrc.com/teensy/td_libs_VirtualWire.html

Schemas der Funkmodule: 
http://www.electrodragon.com/w/RF433_Wireless_TX_%...

Autor: chrisHome (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Info schrieb:
> Welche Entfernung erreichst du? Mit einem REV-Funksteckdosen-Sender
> komme ich trotz Lambda/4 mit 4 "radials" als groundplane nur etwa 5 m
> weit - die passenden Steckdosen haben deutlich feinere Empfänger.
>
> Der von Arduinoquäler vorgeschlagene Filter der Versorgungsspannung
> scheint einiges gebracht zu haben. Derzeit nur sporadische Störungen.

Nach manueller KO auswertung 5-10m Luftlinie, leider. Ich nutze auch je 
eine Lamda/4 Antenne aber mit Koax-Kabeln.


Arduinoquäler schrieb:
> Es gibt Schaltpläne zu diesen Modulen. Ganz öffentlich
> ohne Geheimnisse. Der Rest ist ziemlich selbsterklärend.

Das Schema würde für Lowaktiv sprechen, jedoch werden ein Hight-Bit auch 
aus High empfangen. Dann würde die lange Low-Signal das Ende der 
Übertragung signalisiern, bevor das Modul in den Sleep-Modus wechselt?
Dazu konnte ich keine Information finden.

Info schrieb:
> Der von Arduinoquäler vorgeschlagene Filter der Versorgungsspannung
> scheint einiges gebracht zu haben. Derzeit nur sporadische Störungen.

Werde ich ausprobieren.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

diese Empfänger haben keinen definierten Ruhepegel. Das ist ein 
Pendelaudion mit HF-Vorstufe und einem geschickt beschalteten 2-fach 
OPV.

Ein Pendelaudion kann sich recht gut auf den mittleren Trägerwert 
einstellen, da das aber Grenzen hat, hat man mit dem OPV noch etwas 
nachgeholfen.

Ohne Trägersignal empfnagen diese Empfänger von jeder Störung  über das 
Rauschen bis zu den Signalen der Nachbarn so ziemlich alles und liefern 
am Datenausgang die 0/1-Zustände ab.
Zur Übertragung nutzt man deshalb meist eine Manchester-Kodierung, 
sollte auch bei VirtualWire so sein. Damit ist der Ruhepegel völlig 
egal.

Gruß aus Berlin
Michael

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, auf diesem Bild sieht man, dass die Daten offensichtlich doch 
nicht invertiert sind.

Dennoch bleibe ich bei meinem Vorschlag:

Jobst M. schrieb:
> Daten vor dem Sender und hinter dem Empfänger jeweils invertieren ...

Alternativ könnte man auch alle 500ms ein Dummy senden.


Gruß

Jobst

Autor: chrisHome (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten!

Michael U. schrieb:
> Ohne Trägersignal empfnagen diese Empfänger von jeder Störung  über das
> Rauschen bis zu den Signalen der Nachbarn so ziemlich alles und liefern
> am Datenausgang die 0/1-Zustände ab.
> Zur Übertragung nutzt man deshalb meist eine Manchester-Kodierung,
> sollte auch bei VirtualWire so sein. Damit ist der Ruhepegel völlig
> egal.

Wenn das so ist, dann ist die Option von einem anderen Sender/Empfänger 
die Beste. Weil die Empfangsstärke des Signals ist auch eher knapp..

Autor: chrisHome (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich denke, diese FSK-modulierten Sender sollten das Problem lösen?

http://www.tme.eu/ch/details/hm-t433/rf-kommunikat...

http://www.tme.eu/ch/details/hm-r433/rf-kommunikat...

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chrisHome schrieb:
> Mein Hauptproblem ist warum das das Empfängermodul NACH der
> Datenübertagung sich komisch verhält. -> Siehe Bild im Anhang.

Lass das Modul doch. Eher ist es erstaunlich, dass es sich zwischen 
deinen Übertragungen so ruhig verhält und nicht irgendwelchen, für dich 
uninteressanten, Mist aus dem Äther aufschnappt. Das ist entweder der 
Unempfindlichkeit des Empfängertypes zuzuschreiben, eine Folge der 
Verstärkungsregelung (ACG) oder das Modul verwendet eine Art Squelche, 
der unterhalb eines gewissen HF-Pegels den Ausgang tot schaltet. Die 
Low-Zeit nach dem eigentlichen Datenpaket könnte dann die Zeitkonstante 
davon sein.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was ich nicht ganz verstehe. VirtualWire wird ja durchaus von einigen 
Leuten genutzt und funktioniert auch.
Ich habe da mal kurz reingeschaut und es sieht nicht verkehrt aus, was 
da gemacht wird.
Es weir eine 0-1-Folge (36Bit) geschickt um dem Empfänger Zeit zu geben, 
sich auf das Sendersignal einzustellen.
Dann folgt 0xb38 als Magic-Pattern, also die Bitfolge, die den 
Anfangkennzeichnet und damit die Byte-Syncronisation herstellt.
Dann folgt die Länge der Message (4-30 Byte) und 2 Byte Prüfsumme.

Alle Daten nach den Magic-Pattern werden 4-auf-6 Bit codiert und als 
6Bit-Nibble versendet.
Ist bei solchen Funkstrecken nötig, weil man eine Folge von 0x00 oder 
0xff-Bytes vermeiden muß, da geht schnell die Byte-Syncronisation 
verloren.

Seine Empfangsroutine habe ich mir nicht angesehen, da die mir bekannten 
Module alle am Sender H für Sender ein benutzen und die mir bekannten 
Empfänger mit H für Träger da reagieren, passt es alles so.

Das Verhalten zwischen den Datenpaketen ist sowieso egal, der Empfänger 
wartet auf eine 0-1-Folge, die in das Zeitraster passt und dann auf die 
Magic-Pattern, die den Anfang kennzeichnen.
Müll, der dazwischen empfangen wird, wird ohnehin weggeworfen.

Die Reichweite der Module mit den "üblichen" 16cm Draht als Antenne dran 
hängt sowieso vom Umfeld ab. Durch die Altbauwohnung hier komme ich da 
normalerweise immer. Das eine übliche Funksteckdos mal beim ersten 
Drücken nicht schaltet und man nochmal drücken muß, kennt wohl jeder. 
Ist eben Billig-Funk und dafür ausreichend.

Letztlich hängt es ja davon ab, was man mit einer Funkstrecke machen 
will, wie weit es reichen soll, wie sicher es sein muß usw.

Gruß aus Berlin
Michael

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chrisHome schrieb:
> Mein
> Hauptproblem ist warum das das Empfängermodul NACH der Datenübertagung
> sich komisch verhält.

Die Aussage "komisch verhalten" ist sehr unscharf und bedarf daher
einer Klärung.
Ganz einfach: geht's oder geht's nicht?

Die Reichweite von diesen Modulen muss übrigens deutlich höher
als 5 oder 10m sein. Ein Nutzer berichtete hier im Forum dass
ein (Nach-)Abstimmen des Resonanzkreises des Empfängers eine
deutliche Verbesserung brachte. Allerdings wäre das eigentlich
nur mit zusätzlichen Messmitteln gut erreichbar.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vor allem muss der Empfänger frei von Störungen sein. Es hilft, seine 
Versorgung nochmal extra zu sieben (z.B. mit einem LC Filter) und ihn 
soweit wie möglich abzusetzen von Oszillatoren,MC, usw.

Wunder darf man von Pendlern nicht erwarten, sie sind immer auf der 
Kippe. Und sie empfangen durch ihren breitbandigen Eingang eben auch 
alle anderen 433 Mhz Senderchen im Umfeld und müssen deswegen mit 
robuster Software betrieben werden.
Richtige Empfänger benutzen Superhet, wie z.B. den RX3400 oder die Hope 
Chips.

: Bearbeitet durch User
Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. schrieb:
> Durch die Altbauwohnung hier komme ich da
> normalerweise immer. Das eine übliche Funksteckdos mal beim ersten
> Drücken nicht schaltet und man nochmal drücken muß, kennt wohl jeder.

nun ja meine Intertechno Rolladenempfänger mit der größten Entfernung 
15m hörten nicht beim ersten Kommando, am besten lief es wenn ich die 
Funke mittig der 15m aufgehangen hatte, aber das sah nicht gut aus, 
jetzt hängt der Sender wieder versteckt, dafür sende ich halt 10x hoch- 
runterfahren, seitdem klappt es immer.

Vielleicht optimiere ich noch für die näheren Empfänger, die müssen ja 
nicht 10x geschaltet werden.

Autor: chrisHome (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich hatte erst jetzt Zeit die Ratschläge auszuprobieren. Das Problem 
war die Stromversorgung des Empfängers. Ein 220uF Kondensator parallel 
zu GND/VCC und ich empfange Daten quer durchs Haus!

Vielen Dank für die Unterstützung

--> closed

Autor: Martin (M.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann, viel Spaß beim Funken :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.