Vor kurzem habe ich mit dem SI7021 an meinem ESP8266 gespielt und dabei festgestellt, dass die verwendete Bibliothek  die Temperatur ohne Komma oder Punkt ausgibt. Also 2495 statt 24,95°C. Soweit nicht so wild, aber für die Übergabe an MQTT war es notwendig einen Float-Wert für die Temperatur auszugeben.

Und so geht’s:

1
2
3
float tempfloat;
int tempint = 2495;
tempfloat = (float) tempint / 100.0;

Bei der Division ist dabei wichtig, dass die Nachkommastelle angegeben wird. Die Angabe von (float) führt ein “casting” durch, was den Typ ändert.

Hilfestellungen: