Hallo zusammen, ich habe die Logik (theorie) des Decodierens und entcodierens von Signalen in der Funkübertragung ( 433 Mhz ) so weit verstanden (denke ich;-) und würde das gerne einmal in der Praxis nachvollziehen wollen (am einfachsten mit einer sehr einfach Manchester Codierung nur in eine Richtung). Hierzu benötige ich ja einen 433 Mhz sender und empfänger, welchen Microcontroller könnt Ihr mir für die Programmierung empfehlen und wie müsste ich in der Programmierung des Microcontrollers vorgehen!? Was mir an Wissen noch fehlt ist folgendes (Beispiel mit 433 Mhz Sender und Empfänger) Wenn ich ein Signal über den Sender losschicke (damit meine ich nicht durch einen Encoder angereicherten, sondern einfach z.B. 3 volt in die Datenleitung des Senders für exakt 10,5 sek. gehalten, und würde gerne dieses Signal an der Empfängerseite auswerten ( so nach dem Motto, ist das ankommende Signal auf 1 und exakt 10,5 sek. lang ?) <-- genau so funktionieren ja auch die Protokolle, oder ? Würde mich über Eure hilfe freuen. Zu meinem Background kurz erwähnt, bin Software Entwickler habe auch ein gutes Verständnis für Elektronik.
:
Verschoben durch Moderator
Beitrag #5055193 wurde von einem Moderator gelöscht.
> 433 Mhz Decoder und Encoder Verständnis Ich habe das schon einmal gefragt... Beitrag "OOK Decoder (Methode)"
Hi Georg, danke für den link, schaue ich mir an.... Wenn der Sender auf 433 MHZ ein Signal sendet, bedeutet das ja auf der Empfängerseite, das ein Signal mit 433 Mhz ankommt, so weit so gut, aber wie kann der Microcontroller (falls er nicht von vorne herein auf die 433 MHZ eingestimmt ist !? ) dieses Signal synchron auswerten? Wie muss sich das ein Laie vorstellen ? es kommt ja auf der Empfängerseite ein "Stream" , wie wird dieser Stream dann auf der Empfängerseite "geparst", bzw. woher weiss der Empfänger das ein SendeBlock begint und ein SendeBlock endet !??? Vielen Dank. Grüsse Diagonal
Beitrag #5055449 wurde von einem Moderator gelöscht.
Beitrag #5055469 wurde von einem Moderator gelöscht.
> welchen Microcontroller könnt Ihr mir für die Programmierung empfehlen jeden > wie müsste ich in der Programmierung des Microcontrollers vorgehen Kommt auf den Mikrocontroller an. Zuerst mal würde ich mir eine geeignete IDE suchen und ein Tutorial dazu. Parallel dazu das bzw die Datenblätter und Programming Manuals des Chipherstellers lesen. > Wenn ich ein Signal über den Sender losschicke (damit meine > ich nicht durch einen Encoder angereicherten, sondern einfach > z.B. 3 volt in die Datenleitung des Senders für exakt 10,5 sek. > gehalten, und würde gerne dieses Signal an der Empfängerseite > auswerten ( so nach dem Motto, ist das ankommende Signal auf 1 und > exakt 10,5 sek. lang ?) Nein, so einfach ist das nicht. Diese Funkmodule funktionieren nicht wie Kabel. Du musst das Signal kodieren und das verzerrte Signal empfängerseitig dekodieren. > genau so funktionieren ja auch die Protokolle, oder ? Nein, sie funktionieren völlig anders. > ich habe die Logik (theorie) des Decodierens und entcodierens > von Signalen in der Funkübertragung ( 433 Mhz ) so weit > verstanden (denke ich;-) Nein. Fange nochmal von vorne an. > Wenn der Sender auf 433 MHZ ein Signal sendet, bedeutet das ja auf > der Empfängerseite, das ein Signal mit 433 Mhz ankommt Beim Empfänger kommt immer ein Rauschen von allem an, was durch die Luft schwirrt. Er filtert sich eine bestimmtes Frequenzband heraus und demoduliert es (z.B. per AM oder FM). Wenn ales gut läuft, entspricht das demodulierte Signal ungefähr (niemals genau) dem ursprünglich gesendeten Signal. > kann der Microcontroller (falls er nicht von vorne herein auf die 433 > MHZ eingestimmt ist !? ) dieses Signal synchron auswerten? Mikrocontroller können ana,oge Signale nicht direkt auswerten - jedenfalls nicht mit so hoher Frequenz. > woher weiss der Empfänger das ein SendeBlock begint und ein > SendeBlock endet !??? Woran man erkennt, daß du überhaupt nichts verstanden hast. Der Sender sendet ein eindeutiges Kennzeichen, dass der Empfänger wiedererkennen muss. Wenn ich Dir zum Beispiel fortlaufend Grimms Märchen vorlese, erkennst du den Anfang jedes Märchens an den Worten "Es war einmal".
Beitrag #5055483 wurde von einem Moderator gelöscht.
diagonal schrieb im Beitrag #5055469:
> muss ich mir Ihre IP Adresse gerichtlich geben lassen!
Ja, lass dir meine auch gleich noch mit einklagen.
diagonal schrieb: > Wie muss sich das ein Laie vorstellen ? es kommt ja auf der Empfängerseite ein > "Stream" , wie wird dieser Stream dann auf der Empfängerseite "geparst", > bzw. woher weiss der Empfänger das ein SendeBlock begint und ein > SendeBlock endet !??? Wie gesagt, ich wollte auch wissen, wie der Mikrocontroller die ankommende Impulsfolge verdaut. Genauer gesagt, ich fragte nach dem etablierten Verfahren. diagonal schrieb: > Zu meinem Background kurz erwähnt, > bin Software Entwickler habe auch ein gutes Verständnis für Elektronik. Wenn das wirklich so ist, dann sollte es für dich kein großes Problem sein, den Quellcode RCSwitch.cpp zu analysieren und das Verfahren zu verstehen. https://github.com/sui77/rc-switch ( Alternativ "RadioHead" http://www.airspayce.com/mikem/arduino/RadioHead/ )
Georg M. schrieb: > Genauer gesagt, ich fragte nach dem etablierten Verfahren. Es gibt keines und alle. Will heißen, daß du dich nur daran halten sollst, den Sender nicht dauernd eingeschaltet zu lassen, sondern dir eine Art Sendepaket ausdenken mußt, das möglichst kurz sein soll, denn alle anderen senden auf der gleichen Frequenz und wollen "ihr" Gerät ja auch empfangen. Ebenso mußt du damit rechnen, daß es Kollisionen gibt. Und die umso häufiger, je länger dein Sendepaket dauert. Auch ist es so, daß dein Empfänger nicht unbedingt die klappe hält, wenn grad nix empfangen wird, sondern dann zumeist breitbandiges Rauschen an dein µC-Pin abliefert. So, du mußt also deine Sendesignale (Ein- und Aus-Zeiten) vom Rauschen unterscheiden, selbige aufnehmen und das so empfangene Paket prüfen, ob es überhaupt von deinem Sender stammt. Wie du das machst und welche Codierung du wählst, st deine Sache, das macht jeder anders - allein schon, um sich von den anderen Sendern zu unterscheiden, denn das ist nötig. Also nicht die Quellen anderer analysieren, sondern ein eigenes Protokoll konzipieren. W.S.
diagonal schrieb: >würde das gerne einmal in der Praxis nachvollziehen wollen (am >einfachsten >mit einer sehr einfach Manchester Codierung nur in eine Richtung). Manchester Codierung ist nicht einfach, die brauchst du aber nur, wenn sich Daten mit Gleichspannungsanteil nicht übertragen lassen, zum Beispiel wenn sich ein Übertrager oder ein Kondensator im Signalweg befindet. Ansonsten geht es auch mit der einfacheren seriellen RS232 Übertragung. Du mußt also erst mal herausfinden, ob dein Sender und Empfänger das kann, also ob sich dauer an aus (1 oder 0) übertragen läßt. Manchester Codierung brauchst du zum Beispiel wenn du Daten wie früher auf Kassettenrecorder aufzeichnen willst, oder mit einem Funkgerät am Mikrofoneingang übertragen willst.
Les dir die Doku zu VirtualWire durch, dort gibts nen link auf ein PDF wie man on the air formate/protokolle designed, das erklärt schon das Wichtigste, danach mal die Datenblätter z.B. des Si4432 oder CC110 oder ähnliche durchlesen, dann wirst oh Wunder merken dass die irgendwie alle ähnlich aufbaut sind und danach hoffentlich verstanden warum das so ist und warum man dort gewissen Dinge schon 'in Hardware' reingepflanzt hat. Bevor du deinen eingenen Sender/Dekoder an einen echten Sender hängst testest du dein Protokoll über Kabel, das eleminiert schon mal viele Fehlerquellen. Erst wenn dein Protokoll 'steht' kannst du das mit TX/RX-Bausteinen testen. Vielleicht wirst du auch schon weit davor auf den Trichter kommen dass ein eingenes Protokoll überflüssig ist, weil es das schon i.o.g. Form schon fertig gibt, das muss man nicht nochmal erfinden, nur den Sinn und den Aufbau dieser Formate begriffen haben, davon bist du noch weit entfernt.
Hallo, danke für die zahlreichen Beiträge. Ich würde gerne erst einmal mit Kabel anfangen um ein Protokoll aufzubauen bräuchte hierzu Unterstützung, die Infos von Euch sind ja alle nett gemeint, nur ist der Einstieg doch noch mit Wissenshürden verbunden. Wenn Ihr mir eine ganz einfache Anleitung zum aufbauen eines eigenen einen Protokoll über Kabel geben könntet wäre ich Euch sehr verbunden. Viele Grüsse diago
Das Aufbauen von Protokollen ist nicht einfach und man kann das auch nicht im Rahmen so einer Diskussion mal eben schnell aus dem Ärmel schütteln. Für manche Protokolle haben Menschen ihren Doktortitel bekommen. Andere lernen so etwas im Rahmen einer mehrjährigen Ausbildung. Dir wurden bereits die richtigen Stichworte gegeben (Manchester Codierung und VirtualWire). Lies dich in diese Themen ein. Oder kauf Dir eine Buch-Reihe über Nachrichtentechnik. Wenn du sie nicht verstehst oder keinen Bock auf Lernen hast, dann verwende eine fertige Library. Kannst du auch das nicht, dann vergiss das Projekt. Fang mal damit an: https://www.pjrc.com/teensy/td_libs_VirtualWire.html
Hi, wie kann ich die Signale eines 433 mhz Empfängers kontinuierlich auf dem PC aufzeichnen ? Ich möchte hier durch sehen können welche Signale oder wie die Signale am Empfänger ankommen (am besten Rechteck), um dann hieraus ableiten zu können ob mein gesendetes Signal auch ankommt und wie es aussieht, z.B. 3 sek. lang auf 1 und 5 sek. lang auf 0 ...?
Ich habe noch ein hilfreiches Dokument für Dich gefunden: https://www.uni-koblenz.de/~physik/informatik/studienarbeiten/toeppi.pdf Jetzt solltest du aber wirklich erstmal lesen anstatt weiter deine blutigen Anfängerfragen zu stellen. > wie kann ich die Signale eines 433 mhz Empfängers kontinuierlich > auf dem PC aufzeichnen Argh! Zum Beispiel mit einem Logikanalyzer undd er dazugehörigen Software. Oder indem Du dir einen Mikrocontroller programmierst, der das Signal irgendwie in serieller Form per USB an den Computer sendet. Die Aufzeichnung erfolgt dann mit einem Terminalprogramm oder meinetwegen auch Matlab. Oder mit einem digitalem Speicheroszilloskop.
Applepi@gmx.net A. schrieb: > Hi, > > wie kann ich die Signale eines 433 mhz Empfängers kontinuierlich auf dem > PC aufzeichnen ? Ich möchte hier durch sehen können welche Signale oder > wie die Signale am Empfänger ankommen (am besten Rechteck), um dann > hieraus ableiten zu können ob mein gesendetes Signal auch ankommt und > wie es aussieht, z.B. 3 sek. lang auf 1 und 5 sek. lang auf 0 ...? Eine Möglichkeit ist z.B., sich einen SDR ("Software defined radio")-fähigen DVB-T-Stick zu besorgen. Gibt's ab ca. 10 Euro und ist ein unglaublich vielseitiges Spielzeug. Eine andere Möglichkeit ist z.B., einen typischen 433MHz-Empfänger einfach an die Soundkarte Deines PCs anzuschliessen. Neben den Pins zur Stromversorgung haben diese 433MHz-Empfänger einen digitalen Ausgang, auf dem die per 433MHz empfangenen Daten als digitales Rechtecksignal ausgegeben werden, und häufig auch noch einen analogen Datenausgang. Diesen Datenausgang (wenn vorhanden, würde ich persönlich eher den analogen Ausgang nehmen) kannst Du (evtl. mit einem kleinen Spannungsteiler zur Reduzierung der Ausgangsspannung) einfach an den Line In-Eingang Deiner PC-Soundkarte anschliessen, und mit einem beliebigen Audio-Programm wie Audacity kannst Du Dir dann ganz einfach ansehen, was der 433MHz-Empfänger so empfängt. Was Dir dabei übrigens vermutlich auffallen wird, was Dir bislang vielleicht gar nicht so richtig bewusst ist: Wenn gerade kein 433MHz-Sender sendet, dann geben diese typischen 433MHz-Empfänger an ihrem Digitalausgang üblicherweise keinen konstanten Pegel aus (also high oder low), sondern eine Art digitales Rauschen.
Applepi@gmx.net A. schrieb: > wie kann ich die Signale eines 433 mhz Empfängers kontinuierlich auf dem > PC aufzeichnen ? Mit Audacity. Beitrag "Conrad Funksteckdosen 433Mhz über 433mhz sender steuern"
> diagonal > Applepi@gmx.net Hast du etwa mitten im Thread deinen Namen geändert? Böööööööhhhse, das ist hier strengstens Untersagt.
Such mal auf Youtube nach Kevin Darrah und in seiner Videoliste nach einem Video (RF Link Tutorial heisst es glaube ich) wo er mit einem solchen Modul wie du es hast ein simples Protokoll aufbaut, dort erklärt er auch Manchestercodierung und setzt ein halbfertiges Arduinosketch (nur empfangen) um. Der erklärt schon mal einige Dinge was so ein Protokoll haben sollte. Danach schaust du dir Virtualwire näher an, nicht wie man es einfach nutzt, sondern den Sourcecode und die Doku, das enthält einfach alles was ein simples aber robustes Protokoll haben sollte und wie das mit Interrupts usw umsetzt. Wenn du noch keinen Plan von MC-Programierung, z.B. einem Arduino hast, dann wird das eh nix. Dann beschäftige dich erst mal mit den Grundlagen eines Microcontrollers, wie z.B. einem Arduino, den gibts günstig vom Chinesen, endlos viele Beispiele, Doku, ... Kauf dir auch einen billigen USB-Logicanalzer von Salae, der kostet als Nachbau von Chinesen deutlich weniger, damit kannst du das was du sendest/empängst am jeweiligen Pin abgreifen und aufzeichnen, die mitgelieferte Software zeigt dir exakt die Timings an. Er kann auch andere Protkolle erkennen wie SPI, I2C, das brauicht man auch immer wieder wenn man mit MCs hantiert, ist also auch für andere Dinge nutzbar. Der SDR-Stick bzw. die Soundkarte liefert dir u.U, nicht die richtigen Timings, optisch stimmts (wenn man Erfahrung hat und es auf Anhieb erkennt), schaut man sich die Werte an stimmen sie manchmal nicht, weil die Audiosoft mit der hohen Samplerate des SDR-Rippers nicht klarkommt,.... da ist viel davon abhängig wie man den richtig anspricht, manche Software hat da einige Macken, die erkennen Protkolle die man gar nicht verwendet (rtl_433 z.B.), usw. sprich viele weitere Fehlerquellen die man sich evt. aufhalst, ist auch viel zu nervig im Handling, der Logicanalyzer ist einfach zu handhaben und man sieht sofort das Ergebniss ohne grosses Gefummel. SDR-Stick würde ich erst verwenden wenn dein Protokoll über Kabel funktioniert aber dann brauchst du das eigentlich nicht mehr, ausser kurz zu prüfen ob das Ding sendet und auch wirklich deinen Code. HAtte ich auch mal das Problem, funkte aber nix kam an. Mit SDR aufgezeichent was er sendet, tja nix weil falscher Pin angeschlossen. Die Sticks sind auch ganz brauchbar um zu schauen was sonst noch auf der Frequenz rumfunkt und evt deinen Sender manchmal stört wenn er nur sporadisch funktioniert. rtl_433 (das nutzt man über einen SDR-Stick) kann auch Virtualwire automatisch erkennen und dekodieren, ist dafür evt. auch hilfreich.
So eine Datenübertragung ist ganz einfach und ich habe es vor kurzer Zeit umgesetzt. Da ich über die technischen und gesetzlichen Voraussetzungen dafür verfüge, habe ich mir einen Sender und einen Empfänger selbst gebaut. Aber das geht genau so gut, schneller und kaum teurer, wenn man gekaufte Module verwendet. Aber auch gekaufte Module müssen den gesetzlichen Vorschriften entsprechend betrieben werden. Den Sende MC habe ich mit dem Sender verbunden und den Empfänger mit dem Empfangs MC. Der Empfänger gibt ohne Signal KEIN "digitales Rauschen" ab, sondern das Signal für 0. Wenn ich den Sender von seinem MC einschalten lasse, dann gibt der Empfänger das Signal für 1 ab. Darauf aufbauend kann man bei gedrückter Taste am Sender ein LED Lämpchen am Empfänger leuchten lassen, und bei los gelassener Taste es wieder erlöschen lassen. Dazu musst du auf beiden MCs jeweils ein Port abfragen und ein anderes Port setzen. Es würde sogar ohne MCs funktionieren. Aber man kann darauf aufbauend im MC jedes Protokoll umsetzen, das Sender und Empfänger übermitteln können. Im einfachsten Fall kann man jeweils nur einen Zustand übermitteln und die Baudrate hat bei jedem Übermittlungsverfahren irgendwo eine Grenze. Aber sonst: Baudot Code, Manchester, RZ, Morse Code und einiges mehr. Das darf man sich nach den gegebenen Notwendigkeiten aussuchen. Einer, der über sich sagt: "Software Entwickler habe auch ein gutes Verständnis für Elektronik", hat da sicher kein Problem damit, die einzelnen Protokolle nach zu lesen. 72 und 55, John
John schrieb: > Der Empfänger gibt ohne Signal KEIN "digitales Rauschen" ab, sondern das > Signal für 0. Wenn ich den Sender von seinem MC einschalten lasse, dann > gibt der Empfänger das Signal für 1 ab. In diesem Fall wäre ich Dir dankbar, wenn Du einen Link zu einem entsprechenden Empfänger posten könntest. Ich habe nämlich mehrere unterschiedliche 433MHz ASK/OOK-Empfänger, und die geben alle eine Art digitales Rauschen aus, wenn nichts gesendet wird. Das hat mich schon immer angekotzt - wenn es also auch Modelle gibt, bei denen das nicht der Fall ist, dann bin ich sehr interessiert.
Hallo Joachim, tut mir leid, einen Link zu einem nachbaufähigen Empfänger habe ich nicht. Mein Empfänger ist Eigenbau und die Entwicklung ist noch nicht abgeschlossen, so dass ich auch da mit keiner publikationsfähigen Schaltung dienen kann. Ich weiss nicht, ob du in der Lage bist so etwas selbst zu entwickeln, oder einen Empfänger zu modifizieren. Je nach Grundlage, gibt es verschiedene Ansätze: Manche Empfänger haben einfach eine agc, die auch das Rauschen auf Nutzsignalhöhe raufregelt. Da kann man die agc so einschränken, dass sie vorher an eine Schwelle kommt, wo nicht weiter rauf geregelt wird. Pendelempfänger kann man daran hindern, dass sie ohne ausreichend hohes Nutzsignal anschwingen. Man muss sie nur nach einer bestimmten Zeit löschen (quench). Das hat dann noch den Vorteil, dass der Empfänger ohne Sendersignal unhörbar bleibt. Schau dir einfach das, was so ungenau als digitales Rauschen beschrieben wird, mit einem Skop oder über die Soundkarte des PC an. Da sieht man oft sehr schnell, wie man das mit dem MC unterscheiden kann. Sehr häufig hilft ein "exponential moving average" filter als single pole tiefpass. Das braucht so gut wie keinen Speicherplatz im MC. Meistens ist aber dieses Rauschen in den Sendepausen, kein Problem, weil die Präambel der Sendung dem Empfänger sich auf das Signal einzustellen und nach der Sendung kommt das Rauschen erst nach einer bestimmten Zeit. John
Hi, wie kann ich am Empfänger eines 433 Mhz funkmoduls die Frequenz messen ? Beim Sender kann ich das ja über den Oszillator (gibt es hier noch eine andere Möglichkeit--> Stichwort SDR ?) Vielen Dank. Grüsse diagonal
Das hängt doch vom jeweiligen Empfänger ab, welche messpunkte herausgeführt sind und nach welchem Funktionsprinzip er gestaltet ist.
Die Empfangsfrequenz ist aufgedruckt. Zu welchem Zweck und was genau willst du messen? Bei deinem jetzt gegebenen Kenntnisstand kannnst du nur fertige Produkte anwenden. Zu mehr Kenntnissen wirst du mit ein paar kurzen Antworten im Forum auch nicht kommen, denn es fehlen GRUNDLAGEN. Da hilft nur recherchieren und lernen. Die nötigen Informationsquellen, gibt dir jede Suchmaschine im Internet aus. Ein Tip: Hör auf, die Leute, von denen du etwas willst (Information zum Beispiel), anzulügen. Damit stellst du dich selbst in Abseits. Du hast weder Elektronik Grundkenntnisse noch Grundkenntnisse in digitaler Datenübertragung wie ein "Software Entwickler" sie hat. Wenn die Art und das Niveau deiner Fragen nicht zu deinen Behauptungen passt, wird ganz schnell sichtbar, was Sache ist.
Hallo nochmal, sorry das ich hier sehr einfache frage stellen, aber das ist ja der Sinn des Forums: zu meiner Frage: wenn ich einen 433 Mhz Sender ( APK Modulation) habe und dieser als dateneingang einen Pegel von ca. 3 Volt erwartet und das Datensignal 1 Mhz hat, wie kann ich das Signal auf der Empfängerseite über Raspberry pi3 filtern ? Vielen Dank und habt nachsicht mit leuten die nicht eure Sprache sprechen ;-) Viele Grüße diago
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.