Erhöhen der Nutzlastgröße über 32 Byte mit nRF24L01 +

7

Ich habe versucht, das Beispiel auf der folgenden Seite zu ändern, indem ich die angegebene Zeichenfolge durch eine 56-Byte-Zeichenfolge ersetzt habe, nachdem alle geeigneten Änderungen an den Parametern read /), write () und max_payload_size (auf 64 Byte erhöht) sowie payload_size () vorgenommen wurden in der RF24-Bibliothek.

http://shanes.net/another-nrf24l01-sketch-string-sendreceive/

Das Problem ist, dass der Empfänger die Zeichenfolge auf 32 Zeichen abschneidet. Sind 32 Bytes eine harte Einschränkung für die Nutzlast mit dem Radio nrf24l01 +? Wenn ja, wie ändere ich den Empfänger im obigen Beispielproblem, um die gesamte Zeichenfolge zu empfangen?

Naveen
quelle

Antworten:

5

Wenn Sie sich die Spezifikation oder das Datenblatt für den nRF24l01 + ansehen, werden Sie feststellen, dass die 32-Byte-Nutzlast das Maximum ist, das das Gerät verarbeiten kann.

Zum Beispiel:

spez

Wenn Sie etwas senden müssen, das größer als 32 Byte ist, müssen Sie ein Protokoll entwickeln, das Ihre Daten in Blöcke von 32 Byte oder weniger aufteilt und die Daten in mehreren Paketen sendet.

Das eigentliche Protokoll, das Sie entwerfen, liegt bei Ihnen, aber eine einfache Technik könnte darin bestehen, das erste Paket zu verwenden, um eine Anzahl der zu erwartenden Datenpakete zu senden, und dann einfach diese Pakete mit jeweils einem Teil Ihrer Daten zu senden und bei neu zusammenzusetzen das empfangende Ende.

Möglicherweise müssen Sie etwas Robusteres entwerfen, damit Sie nicht durch verlorene Pakete oder schlechte Daten verwirrt werden. Je größer Ihre Nutzlast ist, desto größer ist die Wahrscheinlichkeit von Übertragungsfehlern. Daher ist es möglicherweise eine Idee, die Nutzlastgröße zu ermitteln, um den besten Durchsatz für Ihre spezielle Anwendung zu erzielen.

Roger Rowland
quelle