ArduinoNano und Übertragung von Fließpunktwerten per Modbus

Hallo,

ich plane in meinem Wohnhaus an acht Messstellen Klimadaten zu erfassen und sie auf einem OLED direkt an der Messstelle anzuzeigen. Zusätzlich dazu möchte ich die Messdaten von einer zentralen "Sammelstelle" (in diesem Fall Raspi3) einsammeln- und in einer MySQL-Datenbank ablegen. Soweit, so gut. Die Übertragung bzw. Datenverbindung ist per RS485 Modbus gesetzt, jede Messstelle ist per Modbus mit dem Pi verbunden.

Die Kommunikation mit jedem Slave ( Slave_ID von 1 bis 8) läuft soweit, jetzt geht es mir um Übertragung von Datentypen jenseits des 16bit INT.

Jetzt stehe ich vor der Herausforderung, dass meine DHT22 Fließpunktwerte liefern und ich Diese auch so (ohne Umrechnen auf Int) über den Bus schicken möchte.

Ich würde jetzt hergehen und das 32bit Doppelwort auf zwei 16bit Worte aufteilen, aber wie?

Hat hierzu jemand eine Hilfestellung für mich? Vielen Dank schon mal.

Im Prinzip überträgst Du einfach die 4 Bytes, entweder mit einem Typecast (char[4]) oder aus einer Union aus der Fließpunktvariablen und 4 Bytes. Was für Ausgebefunktionen bietet Deine Bibliothek an?

In der Praxis kann es bei Fließpunktzahlen Probleme geben, wenn die Controller unterschiedliche binäre Darstellungen oder Byteorder haben, dann empfiehlt sich die Übertragung der Werte im Textformat. Eine unterschiedliche Byteorder hättest Du allerdings schon bei int16 bemerkt.