Übertragung von Seriellen Daten, Frage eines Anfängers

Ich möchte Daten mittels eines ganz einfachen Senders und Empfängers ( 433Mhz , diese einfachen Mini-Module ) über eine kurze Strecke übertragen.

Es handelt sich dabei um Daten in der Form 28,2 oder 22,3 oder -8,4, also einstellig bis zwistellig, eine Kommastelle, oder alternativ sogar als 2 - 3 stellige Ganzzahl, teilen durch 10 kann man ja nach dem Empfang.

Die Module haben einen Datenpin, olso stelle ich mir das so vor, wie bei der IR-Fernbedienung, deren Empfänger einfach nimmt, was er bekommt, und man diese Zalen dann abfragen und vergleichen kann, also weiterverarbeiten.

Was mir Sorgen bereitet, ist die Senderseite. Die IR Fernbedienung hat Tasten, und wenn man drückt, dann sendet die was.

Hier aber muss ich das, was gesendet wird, selbst "zusammenbasteln" und hab keinen Plan, wie ich das machen soll.

Daher die Frage, wo man so etwas nachlesen kann. Wo und wie kann man lernen, solche "Datenpakete zu erstellen, und zu lernen wie man sie dann auf den Weg an den Datenpin gibt.

Ideal wäre es, wenn ich einen Zahlencode senden könnte, der den empfang erst einmal öfnnet, und dann den eigentlichen Variablenwert danach sende. So könnte man verhindern, das durch Fremdfung irgendwelcher Mist in die variable gerät.

Kann mir jemand Literatur ( Anfängertauglich ) empfehlen, wo ich das lernen kann.

Es stellen sich mir da nämlich Fragen über Fragen, die ich mir gerne beantworten würde.

Wie wird 0,00 übertragen, da ist ja nicht was gesendet wird, ausser nullen.
Wie merkt die Empfangsseite, das jetzt die Übertragung beendet ist, und wie übernehme ich das Ergebnis dann in eine Variable zurück.

Gesendet wird nur bei 1 , da muss irgenwie ein Timing vorhanden sein, also der Empfänger muss ja wissen, jetzt wäre eine Stelle dran, kommt da nichts, ist es null, kommt der träger, ist es eins.

Wie erfolgt die Adressierung ( eindeutige Kopplung dieses einen Senders mit dem einen Empfänger ), damit z.B. wenn ein Nachbar zufällig die gleiche Idee hätte, sich die Geräte nicht stören, bzw. "Fremdlauschen )

Wie stelle ich sicher, das bei Framdfunkimpulsen nicht gesendet wird, sondern immer nur in den Lücken, wo keine Fremdfeldstärke anliegt?

usw, usw

Danke für Tips oder Literaturhinweise.

Letztendlich wirst Du auf der Strecke Zeichenketten übertragen. Hier ein paar Infos dazu.
Als Ende-Kennung solltest Du ein Zeichen verwenden, das nicht im Text vorkommt, also z.B. '\n' (Linefeed/Zeilenvorschub).
Ich würde an Deiner Stelle den . als Dezimaltrennzeichen verwenden, das vereinfacht einiges.

Gruß Tommy

(deleted)

Die 2 und die 3 bei MySerial(2,3), meint das die Digatalen ein-/Ausgänge?

Lesenswert: How to process incoming serial data without blocking

Mehr Sicherheit gewinnst Du mit einer Prüfsumme, wie sie beispielsweise beim CAN-Bus verwendet wird.

Im ASCII-Zeichensatz sind Steuerzeichen, ursprünglich für Fernschreiber, enthalten, die man als Anfangs-, Trenn- und Endecode verwenden kann. Gerne wird STX für den Start und ETX für das Ende verwendet.

skyfox60:
Die 2 und die 3 bei MySerial(2,3), meint das die Digatalen ein-/Ausgänge?

Ja.

Da du nicht geschrieben hast, welche Module du verwenden willst, ist eine genaue Aussage sehr schwer möglich.
Die einfachen, billigen 433 MHz Module arbeiten mit einem eigenen Format, welches nicht mit der seriellen Schnittstelle angesprochen werden können. Da brauchst du z.b. die Library VirtualWire oder RadioHead. Beispiele dazu findest du auch in der jeweiligen Library..

Mein Tipp hier, verwende die Funkmodule HC-12, die eine deutlich bessere und modernere Technik verwenden und damit sicherer arbeiten. Diese Module arbeiten mit der seriellen Schnittstell (UART) und können damit sehr einfach angesteuert werden.

Sehr gute Beispiele dazu findest du in diesem Beitrag.