Hallo Community, ich habe ein Protokoll geschrieben, damit sich die Arduinos in meinem SmartHome über 433Mhz Sender austauschen können. Euch wollte ich jetzt fragen, ob ihr irgendwelche Ergänzungen oder Vorschläge habt, um das Protokoll sinnvoll zu erweitern/verbessern. Ich würde mich über Kritik/Anregungen sehr freuen. Vielen Dank für eure Mühe PS: Fragen sind auch gern gesehen :)
Korrektur: //general information #define Receiver 0 #define Transmitter 5 #define startConnection 100 #define endConnection 300
Max M. schrieb: > Eine .ino ist kein Protokoll! Hab ich auch nicht behauptet. Der Sketch in der .ino ist das Protokoll... Ich werde es später in eine Library umwandeln
Simon S. schrieb: > Der Sketch in der .ino ist das Protokoll... Ist es auch nicht. Das ist ein Programm, das ein Protokoll umsetzt. Ein Protokoll aber ist nur mit einer Beschreibung sinnvoll. Eine Beschreibung aber ist in Deinem Code nirgendwo zu sehen.
Rufus Τ. F. schrieb: > Simon S. schrieb: >> Der Sketch in der .ino ist das Protokoll... > > Ist es auch nicht. Das ist ein Programm, das ein Protokoll umsetzt. > > Ein Protokoll aber ist nur mit einer Beschreibung sinnvoll. > > Eine Beschreibung aber ist in Deinem Code nirgendwo zu sehen. Zu Beginn des Sketches wird ein Teil erklärt. Der Rest ist hoffentlich selbsterkärend.
Simon S. schrieb: > Zu Beginn des Sketches wird ein Teil erklärt. > Der Rest ist hoffentlich selbsterkärend. Vielleicht ist es uncool, aber wenn ich so ein Protokoll entwickeln wollte, wäre mein Startpunkt kein Arduino Programm sondern ein (virtuelles) weißes Papier. Dort würden zu erst die Sensoren und Aktoren stehen die ich anbinden wollte. Dann die Anforderungen an das Protokoll die sich daraus ergeben. Dann würde ich vorhande Protokolle recherchieren und prüfen ob sie meine Anforderungen nicht schon erfüllen. Wenn nicht würde ich ein gutes um meine Anforderungen ergänzen und dann das ganze zur Diskussion stellen. Dann erst wäre die Arduino oder eine sonstige IDE für mich zu starten.
Scelumbro schrieb: > Vielleicht ist es uncool, aber wenn ich so ein Protokoll entwickeln > wollte, wäre mein Startpunkt kein Arduino Programm sondern ein > (virtuelles) weißes Papier. Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht. > Dort würden zu erst die Sensoren und Aktoren stehen die ich anbinden > wollte. Ich weiß ja gar nicht um was ich mein SmartHome alles in Zukunft erweitere. >Dann die Anforderungen an das Protokoll die sich daraus ergeben. Grob hab ich sie ja. > Dann würde ich vorhande Protokolle recherchieren und prüfen ob sie meine > Anforderungen nicht schon erfüllen. Ich möchte ein eigenes schreiben. >Wenn nicht würde ich ein gutes um meine Anforderungen ergänzen und dann das ganze zur Diskussion stellen. s.o. > Dann erst wäre die Arduino oder eine sonstige IDE für mich zu starten. Soweit bin ich schon.
Grundsätzlich soll das "Protokoll" die Übertragung von Messwerte an die Basis (auf Abfrage) realisieren, welche diese dann verwaltet. Die Slaves können aber auch empfangen und so kann die Basis bsp. eine Pumpe im Garten ansteuern.
Simon S. schrieb: > Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht. Dann stelle doch genau dieses vor und begründe deine Anforderungen. Insbesondere diese: Simon S. schrieb: > Ich möchte ein eigenes schreiben. Dann ist es am einfachsten zu entscheiden ob sie erfüllt sind.
Scelumbro schrieb: > Simon S. schrieb: >> Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht. > > Dann stelle doch genau dieses vor und begründe deine Anforderungen. > Insbesondere diese: > > Simon S. schrieb: >> Ich möchte ein eigenes schreiben. Egoismus/Perfektionismus/Ehrgeiz ? > Dann ist es am einfachsten zu entscheiden ob sie erfüllt sind. Grundsätzlich soll das "Protokoll" die Übertragung von Messwerte an die Basis (auf Abfrage) realisieren, welche diese dann verwaltet. Die Slaves können aber auch empfangen und so kann die Basis bsp. eine Pumpe im Garten ansteuern.
Bsp: Bei einer Übertragung mit der ID:1234 weis die Basis, dass es der Sensorwert XY ist. Bei einer Übertragung mit der ID:4321 weis der Slave, das er, wenn die Übertragung 1 entspricht, die Pumpe anmachen soll. Das ist nicht in dem Sketch/Protokoll enthalten, jedoch sehr einfach zu erweitern.
Das Protokoll soll die Übertragung zwischen Arduino ermöglichen, indem es Übertragungen zuordnen kann (anhand von ID's). Das ganze soll wirken wie eine Verbindung der Arduinos, damit andere nicht mehr "zuhören" , wenn sie nicht gemeint sind (Erkennung anhand der ID) Die Verbindung wird mit einem Start/Stop Signal begonnen/beendet.
Simon S. schrieb: > Bsp: Bei einer Übertragung mit der ID:1234 weis die Basis, dass es der > Sensorwert XY ist. > Bei einer Übertragung mit der ID:4321 weis der Slave, das er, wenn die > Übertragung 1 entspricht, die Pumpe anmachen soll. > Das ist nicht in dem Sketch/Protokoll enthalten, jedoch sehr einfach zu > erweitern. Wer kümmert sich um gestörte / beschädigte Übertragungen oder Übertragungen die gar nicht erst ankommen? Besonders im 433MHz Band ist schon einiges los.
Es werden nur Übertragungen ausgewertet die vollständig sind. ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle Pumpen im Garten angehen würden. (nur ein Bsp.)
Simon S. schrieb: > Es werden nur Übertragungen ausgewertet die vollständig sind. > > ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle > Pumpen im Garten angehen würden. (nur ein Bsp.) Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist. Und wird geprüft ob der Befehl an die Pumpe überhaupt angekommen ist? Simon S. schrieb: > Scelumbro schrieb: >> [...]Besonders im 433MHz Band ist schon einiges los. > Bei mir nicht. Ich hoffe du designst dein Protokoll nicht über diese optimistische Annahme.
Scelumbro schrieb: > Simon S. schrieb: >> Es werden nur Übertragungen ausgewertet die vollständig sind. >> >> ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle >> Pumpen im Garten angehen würden. (nur ein Bsp.) > > Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet > angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist. Ich hatte bis jetzt nie eine Fehlerhafte Übertragung. > > Und wird geprüft ob der Befehl an die Pumpe überhaupt angekommen ist? Ja, es wird überprüft. > > Simon S. schrieb: >> Scelumbro schrieb: >>> [...]Besonders im 433MHz Band ist schon einiges los. >> Bei mir nicht. > > Ich hoffe du designst dein Protokoll nicht über diese optimistische > Annahme. Nein
Simon S. schrieb: >> Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet >> angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist. > Ich hatte bis jetzt nie eine Fehlerhafte Übertragung. Willst du eigentlich echtes Feedback oder einfach nur Lob für das genialste Protokoll seit TCP/IP?
Scelumbro schrieb: > Simon S. schrieb: >>> Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet >>> angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist. >> Ich hatte bis jetzt nie eine Fehlerhafte Übertragung. > > Willst du eigentlich echtes Feedback oder einfach nur Lob für das > genialste Protokoll seit TCP/IP? Echtes Feedback... Und mein Satz bezieht sich nicht auf mein Protokoll, sondern auf ganz normale Tests mit 433Mhz Modulen.
Entweder kam was an oder nichts. Nie falsche Übertragungen. Das meinte ich.
Simon S. schrieb: > Entweder kam was an oder nichts. > Nie falsche Übertragungen. > > Das meinte ich. Welche Entfernung, wieviele Wände dazwischen, welches Wetter? Und wie nah liegt der Empfänger neben dem Motor der Pumpe die er schalten soll? Alles unter Einsatzbedingungen getestet?
Scelumbro schrieb: > Welche Entfernung, 20m > wieviele Wände dazwischen, 3 >welches Wetter? gutes >Und wie nah liegt der Empfänger neben dem Motor der Pumpe die er schalten >soll? 1m > Alles unter Einsatzbedingungen getestet? Das war ein Beispiel...
Ein Protokoll beschreibt man anders. zB Master-slave Block Protokol : Der Master sendet, der angesprochene Slave antwortet. -> Adressierung -> Begin & End des Blockes Variable Block Laenge -> Laenge ist im Block enthalten Detektion von Uebertragungsfehlern. -> CRC Ja, es kann Schaden entstehen. -> Failsave Zustaende Zustandsfreie Kommunikation. Dh die Rehenfolge der uebertragenen Bloecke ist egal. Alles ASCII, zum per Teminal Mitlesen oder alles Binaer Die Control Commands, die alle Teilnehmer unterstuetzen sind : .. -> Echo -> Set Powerup State -> Set Failsave State -> Get Info ..
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.