Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : BME280 accuracy using Micromite
Author | Message | ||||
lew247 Guru Joined: 23/12/2015 Location: United KingdomPosts: 1676 |
I;ve tried 3 different BME280 modules now in case I have a faulty one and all of them give the same results The readings are higher than the actual temperature, by around 2-3°C I have tested it with my Weatherflow Sensor beside the BME280, a glass thermometer sat in the same place and a BME280 on a Pi Zero using Python and they all give around the same temperatures around 2-3°C lower than the MM The MM is on Pi Zero W using Matherps latest Picromite and the BME280 code thats on the forum Anyone else found this or have any idea why? I've mounted the BME280 sensor physically away from the Pi so it can't be heat from the PI affecting it. |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 5898 |
I have a BMP280 co-located with a SHT31. The BMP280 is consistently 1 degree higher than the SHT31 I put it down to the BMP280 mainly interested in it's internal temperature which it uses for pressure and humidity readings. The SHT31 uses Arduino code and the BME280 is on a MX170 Jim VK7JH MMedit  MMBasic Help |
||||
PeterB Guru Joined: 05/02/2015 Location: AustraliaPosts: 639 |
Back in Feb. I took readings from 2, BME with 170 and decided the error was less than 0.5C. Peter |
||||
goc30 Guru Joined: 12/04/2017 Location: FrancePosts: 425 |
I also found this problem (+2/3 DegC), including with a rpi3, and even an arduino I think it come from chinese product quality with low cost components |
||||
PeterB Guru Joined: 05/02/2015 Location: AustraliaPosts: 639 |
Good morning Lew. I just read your post correctly this time. The actual problem is with the MM not the BME280, correct? It is reading 2-3 degrees higher than true. If that is the case then: 1. check code 2. check soldered joins & mechanical connections 3. prayer Peter |
||||
robert.rozee Guru Joined: 31/12/2012 Location: New ZealandPosts: 2285 |
might i suggest the following test: place a BMP280, a DS18B20, and a SHT31 - all wired up to a remove micromite - into a small polystyrene box, along with something to act as a thermal mass. sand would to. leave for half a day and check the temperature reading produced by each. you'll find that different constructions of sensor may behave differently in free air. things like exposed metal surfaces (BMP280), a plastic shell (SHT31), and a thermall small mass (DS18B20) will effect how small movements of air impact the reading. cheers, rob :-) |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 5898 |
I had a spare BME280 so I added it to my test micromite. (The one accessible from MMEDit) The test micromite is not in a case and the sensors are in free air reasonably close to each other. Jim VK7JH MMedit  MMBasic Help |
||||
PeterB Guru Joined: 05/02/2015 Location: AustraliaPosts: 639 |
I think it was 23.1 +/- 0.5 at your place. Peter |
||||
lew247 Guru Joined: 23/12/2015 Location: United KingdomPosts: 1676 |
Sorry the title of this post is wrong - it should be PI-Cromite not Micromite I have just got a genuine expensive BME280 just in case any of the others I tried are faulty and I still get the same results It varies from aroun 3°C high to 4°C higher than the actual temperature I have tried this so it's eliminated any heat produced by anything I have it set on a table with a fan blowing air slowly past it, the BME280 is not in any case or packaging it's open to the air on the table Then I put the glass thermometer in the same spot and took readings Then I put my Weatherflow Temperature sensor in the same spot and took readings and finally I used a Fluke multimeter with temperature sensor and took readings All devices were within 1°C of each other apart from the BME280 mounted on the Pi board I've used the same BME280 on the same board but using Python instead of MM Basic and it gives a temperature very close to the other devices I've tried altering the speed of the I2C bus in case that might be causing it but it doesn't help Anyone got any ideas? The only thing I can think of is the self calibration in MM is slightly out when using a Pi Zero? |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 3510 |
Dear lew247, I recall reading a note about the PI running MMbasic. When MMBasic is idle, it still consumes some power. Maybe that could explain the 3 degrees difference between python and MMBasic. Local heating by the PI core. You could simply check this by measuring the power from the USB. That heat goes somewhere.. Regards, Volhout PicomiteVGA PETSCII ROBOTS |
||||
lew247 Guru Joined: 23/12/2015 Location: United KingdomPosts: 1676 |
I've eliminated any heat produced by anything I have it set on a table with a fan blowing air slowly past it, the BME280 is not in any case or packaging it's open to the air on the table |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 5898 |
Can you run the same code on a micromite to see if there is a similar difference in readings. If there is a difference, you can then print the calibration values etc to see where things deviate between the platforms. I don't have a PiZero so can't do it here. I find my BME280 reads higher than the others when there is more air movement. When there is little air flow, the difference between the various modules is much less. This is this mornings test: A copy of the code you are using will help. Jim Edited 2019-09-17 08:01 by TassyJim VK7JH MMedit  MMBasic Help |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 5898 |
OK Lew, I have had a play. The following program needs to be run on your PI as well as a micromite using the same BME280 module. You can then compare the registers and see where there are differences. The cal%(x), Tx Px and Hx values should be the same for the same module but differ between modules. The adc%(x) values depend on the temperature etc so will be different for each run. If you need further investigation, we can take dig into the maths further and see where the figures diverge. Results form a RPi and micromite: Jim VK7JH MMedit  MMBasic Help |
||||
Print this page |