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
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
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
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.
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.
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.
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.
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
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".
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 ?
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
Danke für den Tipp. Ich bereite mal was vor und schick mal ein Foto ob du das so meinst.
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.
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
Super danke für die Tipps. Wie sieht das denn mit der 90° Variante aus ?
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
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.