This will set inactive duration to 1000 and the IIR filter to 16 thus giving better readings.
Also the board should be put to sleep after reading. If not the chip could heat itself giving wrong temperature readings.
this.i2cBus.writeByte(this.i2cAddress, this.REGISTER_CONTROL, 0x00); // Set to sleep mode again to prevent the sensor from heating up.
Please add configuration register setting during read: this.REGister_CONFIG = 0xF5 this.i2cBus.writeByte(this.i2cAddress, this.REGISTER_CONFIG, 0xE0, (err) => { return err ? reject(err) : resolve(chipId); });
This will set inactive duration to 1000 and the IIR filter to 16 thus giving better readings. Also the board should be put to sleep after reading. If not the chip could heat itself giving wrong temperature readings. this.i2cBus.writeByte(this.i2cAddress, this.REGISTER_CONTROL, 0x00); // Set to sleep mode again to prevent the sensor from heating up.