Делал метеостанцию на BME280 на Wemos D1 mini. Так вот завышает градусов на пять температуру. При чем и на других датчиках, например HDT22 и BMP180. Влажность и давление нормально работают. При чем далеко датчик от радиатора чипа и еще поролончик проложен. На других платах нормально работает, косячит именно на Wemos D1 mini. Ни кто с таким не сталкивался? Код (Javascript): I2C1.setup({scl:D13,sda:D12}); D15.write(0); var bme = require('BME280').connect(I2C1); setInterval(function() { bme.readRawData(); var temp_cal = bme.calibration_T(bme.temp_raw); var press_cal = bme.calibration_P(bme.pres_raw); var hum_cal = bme.calibration_H(bme.hum_raw); var temp_act = (temp_cal / 100.0).toFixed(1); var press_act = (press_cal * 0.0075).toFixed(0); var hum_act = (hum_cal / 1024.0).toFixed(0); console.log('Pressure: ' + press_act + ' mm Hg'); console.log('Temperature: ' + temp_act + ' C'); console.log('Humidity: '+ hum_act +' %'); console.log('----------------------'); }, 1000);
Для меня BME280 исправляет на 2 градуса и в порядке. По сравнению, например, с DS18B20. И не имеет значения, если это Wemos или Nodemcu.
Значит так. Термометр в BME280 правильно показывает и совпадает с аналоговым если отрубить его, дать отлежаться и врубить. А превышение из-за жесткого теплового фона от кристалла ESP8266 и возможно еще тепло идет по контактам, т.е. надо делать на длинных проводах с выносом датчика.
Тут не из-за этого. Опрос идет каждые пять секунд. Я посадил датчик на длинный провод сантиметров десять и отлично показывает без завышения.