Forum: Mikrocontroller und Digitale Elektronik RFM12-433 gegen 868 tauschen


von P. F. (pfuhsy)


Lesenswert?

Hallo zusammen,

ich habe eine Alarmanlage gebaut die Teilweise mit RFM12-433-Sensoren 
funktiioniert. Momentan läuft das Ganzen recht zufriedenstellend, doch 
nach ein paar Tests ist mir aufgefallen, dass das Datenpaket teilweise 
mehrmals gesendet werden muss, damit das beim Empfänger richtig ankommt. 
Auch wenn bei Versuchen Sender und Empfäger direkt nebeneinander liegen 
(beide mit 17cm Wurfantenne) gibt es immer wieder ein paar Aussetzter. 
Jetzt war die Überlegung das RFM12-Modul gegen ein RFM12-868 
auszutauschen.

Würde das so ohne weiteres mit derselben Software funktionieren ? 
Pinkompatibel sind die Module anscheinend, und ich arbeitet schon mit 
3,3V was für den RFM12-868 benötigt wird.

Ich vermute dass mit der anderen Trägerfrequenz weniger "Störer" 
unterwegs sind. Die Sendedauer des Moduls beträgt ca. 100ms in 3s, d.h. 
die müsste ich noch auf 1% max. Sendedauer (30ms) reduzieren.

Vielleicht hat noch jemand eine andere Idee, was man noch besser machen 
könnte. Momentan gibt es die Bildung einer Checksumme die erkennt ob 
alles korrekt angekommen ist, ist das nicht der Fall wird nochmal 
gesendet.

Gruss

von Michael U. (amiga)


Lesenswert?

Hallo,

die Module kannst Du direkt tauschen, Ändern mußt Du die Bandeinstellung 
und evtl. die Frequenz, damit Du im zugelassenen Bereich bleibst.
Mit der Originalsoftware der 433er arbeiten auch die 868er auf 433MHz, 
nur mit geringerer abgestrahlter Leistung bzw. Empfindlichkeit.
Die Module sind komplett identisch, nur Eingangsfilter und 
Senderanpassung sind auf das jeweilige Band abgestimmt.

Ich habe hier 433 RFM seit ein paar Jahren laufen, Altbau, 1.Stock.
Ich sende nur ca. alle Minute Sensordaten, Pakete mit 32 Byte ohne jede 
Quittung. Wenn mehr als 5 Minuten beim Empänger nichts ankommt gibt es 
eine Störungsmeldung. Passiert sehr selten, einzelne Pakete gehen 
natürlich verloren, die Sender laufen mit dem Sleeptimer der RFM, der 
ist (hier zum Glück) recht ungenau, so daß 2 Module höchstens einmal 
zeitgleich senden und sich stören.

Entfernung ist zwischen 3m durch eine Wand, durch 2 Decken nach unten 
aus dem Keller und durch 2 Wände aus dem Gefriefach des Kühlschranks.
Antennen sind knapp 17cm Draht, teilweise recht ungünstig gefaltet in 
die Gehäuse.

Auf 868MHz empfange ich mit einem RFM die Signale der E3000 
Energiesensoren aus der ganzen Wohnung ohne Probleme, diese senden ca. 
alle ca. alle 3s ein Paket. Das Protokoll der Dinger hat jemand mal 
analysiert, ist sehr komplex mit CRC und speziellen Paddingbits.
Bei denen ist mir beim Test so gut wie nie aufgefallen, daß ein Paket 
nicht ankam. Auch hier wird ein Paket ja ohne jede Quittung und nur 
einmal gesendet.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

Hallo Peter,

Funk bleibt halt Funk - wenns drauf ankommt musst du das Paket immer 
mehrmals senden.
Klar senden auf 868 weniger Geräte, obwohl es auch dort immer mehr 
werden, aber in unmittelbarer Nähe sollte es eigenlich klappen. 
Allerdings sollte man da nicht unbedingt mit voller Sendeleistung 
arbeiten. Wie viele Bytes sendest du? Eine kürzere Nachricht und eine 
niedrigere Baudrate verringert die Warscheinlichkeit von Fehlern.

Sascha

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


Lesenswert?

Sascha W. schrieb:
> Eine kürzere Nachricht und eine
> niedrigere Baudrate verringert die Warscheinlichkeit von Fehlern.

Einher mit der niedrigeren Baudrate kann dann auch eine kleinere 
Bandbreite gehen, die die Reichweite deutlich vergrössert. Mit dem 
RFM01/02 Pärchen und 4800 Baud habe ich so schon 300m ohne 
Übertragungsfehler erreicht.

von P. F. (pfuhsy)


Lesenswert?

Sascha W. schrieb:
> Wie viele Bytes sendest du? Eine kürzere Nachricht und eine
> niedrigere Baudrate verringert die Warscheinlichkeit von Fehlern.

Ich sende 10 Bytes inkl. Checksumme mit den empfohlenen Einstellungen 
für max. Reichweite:
https://www.mikrocontroller.net/articles/RFM12#Einstellungen_f.C3.BCr_maximale_Reichweite

Bei jedem Senden blinkt ganz kurz eine LED als Bestätigung. Wenn ich das 
beobachte, blinkt diese machnmal bis zu 5x hintereinander, d.h. das 
Paket wurde 5x gesendet.

Die Basis befindet sich im Erdgeschoss in einen Stromverteilterkasten 
aus Blech. In den Kasten hab ich ein kleines Loch gebohrt und eine ca. 
1m lange Antenne auch dünnen Draht rausgeführt. Der Sensor ist eine 
Etage höher und dazwischen ist ein offenes Treppenhaus. Die Wände 
dazwischen sind aus Gips oder so.

Normalerweise wäre es kein Problem, wenn ein Paket mal nicht ankommen 
würde. Aber die Software ist schon auf etwas "Sicherheit" programmiert. 
D.h. das grundsätzlich ein Alarm ansteht, es sei den der Sensor setzt 
diesen mit seinen Paket zurück. Sinn der Sache ist, Alarm auszulösen 
wenn ein Störsender verwendet wird.

von P. F. (pfuhsy)


Lesenswert?

Matthias S. schrieb:
> Einher mit der niedrigeren Baudrate kann dann auch eine kleinere
> Bandbreite gehen, die die Reichweite deutlich vergrössert. Mit dem
> RFM01/02 Pärchen und 4800 Baud habe ich so schon 300m ohne
> Übertragungsfehler erreicht.

Ich verwende 4.8kbps und 134kHz Bandbreite.

von P. F. (pfuhsy)


Lesenswert?

Der Sensor sendet ein Paket an die Basis und erwartet ein "OK, hab ich 
verstanden" als Antwort. Empfängt er diese fehlerhaft (Checksumme nicht 
ok) oder bekommt innerhalb 1s keine Antwort sendet er das selbe Paket 
nochmal. Durch Messungen hab ich herausgefunden, dass es nach dem Senden 
vom Sensor 230ms dauert bis ein Antwortpaket empfangen wird. D.h. die 
Basis hat ca. 1,7s Puffer bis der Sensor nochmal sendet. Das wird ja 
wohl reichen.

Anders könnte man vermuten, dass die Basis wahrscheinlich kein Paket 
empfängt auf welches sie antworten soll. Das glaube ich nicht, da der 
Empfänger der Basis, außer beim Senden, immer eingeschaltet ist und 
einen Interrupt auslöst. Ausserdem hab ich versuche gestartet die mir 
per UART-Protokoll zeigen, dass das Paket fast immer an der Basis 
ankommt aber keine Antwort am Sensor sichtbar ist.

von Michael U. (amiga)


Lesenswert?

Hallo,

Peter F. schrieb:
> Die Basis befindet sich im Erdgeschoss in einen Stromverteilterkasten
> aus Blech. In den Kasten hab ich ein kleines Loch gebohrt und eine ca.
> 1m lange Antenne auch dünnen Draht rausgeführt. Der Sensor ist eine
> Etage höher und dazwischen ist ein offenes Treppenhaus. Die Wände
> dazwischen sind aus Gips oder so.

Deine Antennenkostruktion kann ich mir im Moment nicht so gut 
vorstellen.
Wie lang ist der Weg im Blechkasten zwischen RFM und Durchführung?
Ich würde eine geeignete Buchse oben in den Kasten schrauben und mit 50 
Ohm Kabel zum RFM gehen. Als Antenne dann draußen einen lambda/4 Stab 
(also Draht mit ca. 16,5cm Länge oder fertige 433MHz Antenne zum 
Aufschrauben).

Die Anpassung an den Sender ist dann zwar auch nicht 100%, die 
Groundplan (Draht mit Blech des Kastens als Gegengewicht) aber recht 
brauchbar abgestimmt.

1m Draht ergibt wenig Sinn bei 433MHz. Den Empfänger stört das weniger, 
ob der Sender dann aber gut abstrahlt und wohin ist zumienst 
zweifelhaft.
Es nutzt ja nichts, wenn der ds in den Blechkasten statt nach draußen 
strahlt.

Eine Etage mit Gipswänden ist für die RFM kein wirkliches Problem, ich 
empfange den Sensor aus dem Keller auch mit einem auf 433MHz 
programmierten RFM12-868 und zu kurzer Antenne noch sicher.
Der Sensor aus dem Gefrierfach (2 Rabitz-Wände und ca. 3m Entfernung 
dagegen kaum noch.
Dessen Antenne sind allerdings 17cm Draht mher oder weniger als Spule 
gewickelt und in eine kleines Plastegehäse geknauscht.
Die Abstrahlung ist da also definitv miserabel.

Ungewollt getestet bei meinen Umbauten und dem falschen Modul.

Paketlänge ist 38 Byte, Baudrate 19200, Bandbreite usw. müßte ich den 
alten Sourcen nachschauen.

Gruß aus Berlin
Michael

von P. F. (pfuhsy)


Angehängte Dateien:

Lesenswert?

Michael U. schrieb:
> Deine Antennenkostruktion kann ich mir im Moment nicht so gut
> vorstellen.
Ich hab mal eine Skizze angehangen.

Michael U. schrieb:
> 1m Draht ergibt wenig Sinn bei 433MHz.

Ja das stimmt. Das hängt damit zusammen, dass eine 16cm Antenne zu kurz 
wäre um bis nach aussen an den Kasten zu reichen. Ich weiß nciht mehr 
die genaue länge, könnten auch genau 69cm sein, aber definitiv länger 
als lamba/4. Ich hatte mich am Anfgang gewundert das nur was an der 
Basis angekommen ist, als ich zufällig die Tür des Verteiler offen 
gelassen habe. Dann dachte ich an das Blech und musste somit die Antenne 
"verlängern".

von P. F. (pfuhsy)


Lesenswert?

Michael U. schrieb:
> Wie lang ist der Weg im Blechkasten zwischen RFM und Durchführung?
> Ich würde eine geeignete Buchse oben in den Kasten schrauben und mit 50
> Ohm Kabel zum RFM gehen. Als Antenne dann draußen einen lambda/4 Stab
> (also Draht mit ca. 16,5cm Länge oder fertige 433MHz Antenne zum
> Aufschrauben).

Sagen wir es mal so, meine Kompetenz bezüglich Funkverbindung und 
vorallem Antennen ist noch sehr ausbaufähig.
Prinzip hab ich verstanden, nur wielange darf den die Verbindung von der 
Buchse zum Modul sein ? Muss ich nicht dann das Blechgehäuse, was dann 
den Gegenpol darstellt, mit den Ground des Moduls verbinden ?

von Michael U. (amiga)


Lesenswert?

Hallo,

Peter F. schrieb:
> Michael U. schrieb:
>> Deine Antennenkostruktion kann ich mir im Moment nicht so gut
>> vorstellen.
> Ich hab mal eine Skizze angehangen.

hast Du ein Stück geeignetes Koax-Kabel da? Prinzipiell geht auch 
Antennen- oder Satkabel, ist vermutlich nur etwas dick für Deinen Platz.
RG59 oder RG174 wäre da wohl passender, das hast Du aber vermutlich 
nicht zur Hand. Kabel irgendwelcher WLAN-Antennen wäre auch gut.

Schirm an GND direkt auf dem Modul und Innenleiter an Antenne am Modul.
Dann nach draußen verlegen und an der Treppe 16cm den Außenmaltel 
abisolieren und den Schirm über den Außenmantel nach hinten legen. Die 
Isolierung am Innenleiter kannst Du auch dranlassen.

Gibt dann eine Art Dipol, ist auch fehlangepasst, spielt aber definitiv 
besser als so wie jetzt.
Wenn es keinen Platzgrund gibt, bastel keine "Wendelantenne" am Sensor, 
sondern laß den Draht gerade nach oben stehen.
Wenn zur Seite, dann auch das Antennestück der Sendeantenne waagerecht.
Senkrecht bei beiden ist aber günstiger.

Gruß aus Berlin
Michael

von P. F. (pfuhsy)


Lesenswert?

Danke für den Tipp. Ich bereite mal was vor und schick mal ein Foto ob 
du das so meinst.

von P. F. (pfuhsy)


Angehängte Dateien:

Lesenswert?

Also ich jetzt mal ein paar Fotos gemacht.
Einmal ist die Basis mit der schwarzen Wurfantenne zusehen und einmal 
der Sensor mit der Antenne in Spuelen Form.

Michael U. schrieb:
> Schirm an GND direkt auf dem Modul und Innenleiter an Antenne am Modul.
> Dann nach draußen verlegen und an der Treppe 16cm den Außenmaltel
> abisolieren und den Schirm über den Außenmantel nach hinten legen. Die
> Isolierung am Innenleiter kannst Du auch dranlassen.

Wenn ich das richtig verstanden habe, sieht das so aus wie auf dem Bild 
"Var1". Wichtig ist doch nur, dass der Anschkuss am Modul knapp hinter 
den Schirm liegt und das abisolierte Stück almbda / 4 ergibt, sehe ich 
das richtig ? Könnte man das auch um 90° knicken, Var2 ???

Michael U. schrieb:
> Dessen Antenne sind allerdings 17cm Draht mher oder weniger als Spule
> gewickelt und in eine kleines Plastegehäse geknauscht.

Hättest du dafür auch einen Tipp ? Bis jetzt hab ich meine Antenne 
genauso gewickelt wie du. Allerdings soll das in naher Zukfunt ebenfalls 
in ein Gehäuse rein.

von Michael U. (amiga)


Lesenswert?

Hallo,

zeih mal den Schirm auf der Antennenseite etwas auseinander, so daß er 
einige zentimeter lämgs des Kabels liegt. Mach Klebeband rum, wenne s 
nciht freiwille hält. Eine richtige Groundplane oder eine 
Sperrtopf-Antenne wird es ohnehin nicht, muß es auch nicht.
http://www.dl2bcm.de/down/Koaxant.pdf

Den Schirm innen möglichst kurz an ein GND des RFM.

Ich habe bei meinen Sensoren die Antennen meist an der Innenkante des 
Gehäuses entlang gebogen, ist auch alles andere als ideal, geht aber 
verblüffend gut.
Bei Deinem Sensor würde ich sie wohl vom Modul nach links, rechtwinklicg 
nach oben, oben lang und rechts wieder nach unten biegen, aber da 
entscheidet wohl der Versuch. Auch nicht an der Leiterplatte entlang 
sondern so, daß sie später oben im Gehäusedeckel anliegt.
Wenn das Ende der Batterie zu nahe kommt, kann das auch dämpfen.

Ich vermute aber im Moment, die Seite in der Verteilung bringt mehr.

Gruß aus Berlin
Michael

von P. F. (pfuhsy)


Lesenswert?

Super danke für die Tipps. Wie sieht das denn mit der 90° Variante aus ?

von Sascha W. (sascha-w)


Lesenswert?

Peter F. schrieb:
> Super danke für die Tipps. Wie sieht das denn mit der 90° Variante aus ?
Geht genau so und ist von der Abstrahlung auch besser. Die Antenne 
beginnt ab dem abgesetzten Stück, wie lang das Kabel davor ist, ist vom 
Prinzip her egal wenn da nicht die Dämpfung des Kabels währe - also 
nicht unnötig lang.

Sascha

von Micha D. (fuchks)


Lesenswert?

Wenns mit der gezeigten Antenne immer noch Empfangsprobleme gibt, dann 
könnte das an einer Frequenzabweichung der beiden Module liegen.
Nach meinen Untersuchungen kann ich nur raten, die AFC im Empfänger 
abzuschalten - siehe auch 
Beitrag "RFM12 - AFC mit VDI ohne Funktion?".

Eine Freuquenzkorrektur kann man auch manuell vornehmen, indem die 
Frequenz am Empfänger nach oben und unten jeweils so weit geändert wird, 
bis gerade kein Empfang mehr da ist. Den Mittelwert der beiden 
Frequenzen dann am Empfänger dauerhaft einstellen.

von Fred R. (fredylich)


Lesenswert?

Hallo Peter,

hatte ähnliche Probleme.
Zitat:
Ich sende 10 Bytes inkl. Checksumme.
Zitat ende

Habe die Checksumme komplett entfernt und sende 2x die synchron Byte.
Ab da alles okay.

Mit freundlichen Grüßen
Fred

von Michael U. (amiga)


Lesenswert?

Hallo,

mindestens 2x 0x55 oder 0xAA damit der Empfänger Zeit aht AFC und AGC 
einzustellen, dann die MagicPattern, dann die Daten.
Wenn man den RFM nach dem Senden abschaltet, aufpassen, die 
Senderoutinen
fragen normalerweise nur BufferEmpty ab und schreiben das Byte dann in 
den RFM. Wenn man jetzt den RFM abschaltet, ist das letzt Byte 
unvollständig gesendet. Also unbedingt warten, bis wieder BufferEmpty 
gemeldet wird und dann erst abschalten.
Ich habe nur ein simples XOR als Prüfsumme, so ca. 1x in 2 Wochen kommt 
damit ein defektes Paket durch und meine Temeratur zeigt Hyroglyphen an.
Ich habe das nie umgebaut in den Jahren...

Gruß aus Berlin
Michael

von Fred R. (fredylich)


Lesenswert?

Hallo,

wie Michael schreibt ist auch vorm abschalten des Senders ein sauberer 
Abschluss wichtig.
Habe mal mein Projekt „Funke RFM 12B“ ausgekramt, dass seit Jahren mit 
den abgemahnten Modulen sehr zuverlässig funktioniert.
Sende: 6x analog- Eingänge 3x digital- Ports und 2x digital- 
Temperatursensoren als Paket(50 Byte).
Sender ist im Außenbereich. Empfänger im Haus ca. 40 Meter Entfernung. 
Bedingt durch Messzeiten der Sensoren im Sekundentakt.
Hatte viel Zeit investieret, da dass Datenblatt schon einige 
Widersprüche hat(FIFO usw.)
Wird die Ini des RFM auf Projekt angepasst(Kanal, Sendeleistung usw.) 
mit Anpassung zum Empfänger, ist dies schon ein gutes Teil.
In der Anwendung werden alle empfangene Pakete auf SD- Karte/Eeprom 
gespeichert und an PC-Terminal gesendet. Erfahrungen zeigen, es kommen 
sehr selten „Flicker“, diese verwerfe ich dann in der Empfängersoftware.

Nun mein Beispiel in BASCOM wie der Ablauf sein sollte.

Sub Rfm12_senden(byval Anzahl As Integer)
   Local N As Byte
   Local D As Word
 D = Spitransfer(&H8238)                                    'einschalten
  Gosub Rfm12_warte                                         'dreimal AA 
schicken
 D = Spitransfer(&Hb8aa)                                   'Hex AA 
(Binär ist das 10101010)
  Gosub Rfm12_warte
  D = Spitransfer(&Hb8aa)

  Gosub Rfm12_warte
  D = Spitransfer(&Hb8aa)

  Gosub Rfm12_warte
  D = Spitransfer(&Hb82d)                                   'synchron 
Byte schicken

  Gosub Rfm12_warte
  D = Spitransfer(&Hb8d4)

 For N = 1 To Anzahl                                        'jetzt Daten 
schreiben
    Gosub Rfm12_warte
   D = &HB800 + Ausgabedaten(n)
   D = Spitransfer(d)
 Next N

  Gosub Rfm12_warte
  D = Spitransfer(&Hb8aa)                                   'zum 
Abschluss noch mal zweimal AA

  Gosub Rfm12_warte
  D = Spitransfer(&Hb8aa)

  Gosub Rfm12_warte
  D = Spitransfer(&H8208)                                   'ausschalten
End Sub

Rfm12_warte:
   Ss = 0
    Do
    Loop Until Miso = 1
Return

Hier noch zum Verständnis die RFM Parameter meiner Variante.

'Funkmodul Initialisierungsdaten
Datainit3:
Data &H80E7% 
'Configurations Settings Command
Data &H8239%                                                'Power 
Management Command
Data &HA708%                      requency Setting Command (HA708 = 
869.0MHz) (HA668 = 868.1MHz)
Data &HC647%                                                'Data Rate 
Command
Data &H94A0%                                                'Receiver 
Control Command
Data &HC2AD%                                                'Data Filter 
Command
Data &HCA81%                                                'FIFO und 
Reset Mode Command
Data &HCA83%                                                'FIFO und 
Enable Mode Command
Data &HCED4%                                                'Synchron 
Pattern Command
Data &HC400%                                                'Automatic 
Frequecy Control Command
Data &H9850%                                                'TX Control 
Command
Data &HCC17%                                                'PLL 
Settings Command
Data &HE000%                                                'Wake-Up 
Timer Command
Data &HC800%                                                'Low 
Duty-Cycle Command
Data &HC000%                                                'Low Battery 
Detect & µC CLK Command
Data 0%                                                     'ende 
Initialisierung

Das komplette Projekt Hard- Software habe ich schon mal ins Web 
gestellt. Weis aber nicht mehr wo.
Ist schon blöd, wenn man im Alter nicht mehr alles im Kopf speichern 
kann.
In diesem Forum ist mir schon bewusst, es kommen Kommentar wie “Deine 
Rhetorik und Hinweise sind Schrott, nimm lieber deinen Rollader und 
fahre ums Dorf “.

Ätsch mache ich aber nicht, es sei denn......

MfG

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.