First off, I’d like to mention the very fast delivery: ordered on Sunday, arrived on Wednesday (the Netherlands)! I’ve ordered two sensors for my first steps into domotica:
- CO2 monitor (CM1102, temperature+humidity+pressure (= BME280); no RF
- WiFi thermometer (temperature+humidity+pressure (= BME280)
The CO2 and humidity values are all looking good, however I’m having issues with the temperature measurements: both devices output too high values: in a 19C room, the CO2 monitor reads 22C and the WiFi thermometer 24C.
I wondered whether heat from other components would be the cause of this, so I’ve taken an infrared thermometer and checked the outside of the casing.
- CO2 monitor: 32C above the CO2 sensor, 21C above the temperature sensor
- WiFi thermometer: 24C above the WiFi chip, 22C above the temperature sensor
No significant difference in results between using the chrome configuration tool, or using Domoticz to read out the sensors. No difference between power sources (pc port, Sony charger, Anker charger). Taking the WiFi thermometer out of its casing seemed to slightly lower readings, but it's still too high. There's also very little variance in readings (~0.5C) despite room temperature going up and down.
Is there something wrong with my unit, or is it reading the temperature from the other components? I was planning on ordering more WiFi thermometers for each room, but being a few degrees to high with little variation makes them pretty useless.
Hmm, this is strange... i will check in detail. recently i added some changes so that the firmware starts to boot too boot a bit slower, and the temperature sensor depends on the fact that the Wifi module stays mostly in sleep mode.
you are sending just one value to domoticz right ?
and in the Chrome config Tool is not connected ? (this means reading out the values from Domoticz as you said ?)
(when it is connected, it does not let the device go to sleep)
ahhh, turned out that while partly firmware related (this decreased the temperature by 1 degree)
there is also a hardware part - somehow the USB Power supplies do something with the USB lines, so that the USB2Serial module does not go to sleep, and consumes 12ma constantly. I had tested with a USB Battery and with 5V directly.
And this 12ma inclrease the temperature in the small box enough to raise with additional 1 degree. The problem is that even if you take it out of the box, the heat dissipates via the power lines, which are quite short in this case
i will make a new design of the box so that the temperature sensor is not connected directly and will send you only the new box and wiring
Thank you for the quick response!
The Chrome config tool is not connected: they're both being fed by USB wall chargers. Only one line is sent to domoticz (the combined temp/hum/pressure).
Following your post I've tried using an Anker 5000mah powerbank instead, but that didn't seem to matter much. Unfortunately my lab power supply is broken so I can't test that. Could the prevention of sleep mode be related to the data pins either being shorted or having a resistor between them perhaps (depending on charger/powerbank brand)?
Looking forward to the new box design and f/w update.
After 2 days and testing several designs i got it to work. I really wanted to make a more rectangular box, but unfortunately regardless of what i did, the temperature readings were +1 degree. At the end i extended the box by 6-7 cm, and added some ventilation holes. And now the readings are CORRECT!
i will send the new box tomorrow It is not as pretty as i would like it to be, but somehow - the only thing that consistently helped was distance.
In the next version of the board - the USB2Serial will be controllable, so that it will be possible to disconnect it, but i am not sure how soon i will be able to adapt. In addition i want to include also Bluetooth and Battery support, so it requires serious time investment
The final version is the one on the right. And the comparison was done against the same module but taken outside of the enclosure
Ah, the heat dissipation via the leads explains a lot. I also noticed a 2 degree difference with my DHT22 sensor (even when placed only a few cm from each other) and tried with the temperature sensor just outside the box (the leads nicely fit through one of the ventilation holes) but without any noticeable improvement. I'll give it a try as well with longer leads.
On the other hand: I am really pleased with behavior of the CO2 sensor. Even better, I am considering buying a second one as your reduced Holiday prices are really competitive (and that is in comparison with buying only the CO2 sensor!)
Ahhh after fiddling few more nights with this i can tell you that i was wrong with this assumption that heat is dissipated via the leads. It simply shows my total lack of understanding of heat vs temperature
Simply put - if the device is consuming 60 mW (e.g. 5v x 12mA) this will impact the temperature reading in a radius of 7-8 cm (e.g. +3 degrees if <3 cm, +1 degree ~5 cm, etc...
20mW (5v x 4 mA) results in +0.5 deg @4cm.
Somehow putting plastic, foam etc, does not really change it for some reason
In fact putting the sensor out should help to reduce the heat impact, but you need to put it in a direction opposite to the ESP and CO2 sensor.
And also if during this time you have connected via the Chrome Config tool - the device will not go to sleep - so better use some other serial monitor if you want to watch the output (i will add a feature to enable sleep in the upcomming update of the tool)
After much testing and evaluating the results are that you can get absolute readings by taking out the sensor out of the enclosure. Inside the temperature offset is 1 degree (in case the device sends data not often than once per 2 minutes) (need to check a bit more for smaller intervals). This is done mostly by the USB2Serial chip (60 mW) and the CO2 Sensor (~20-50 mW)
The CO2 Sensor i can turn off, but the only way to turn off the USB2Serial chip is to dedicate an USB cable for powering the device, and carefully cut through it's shielding and disconnect the Green and White (D+ and D-) lines.
Yet the investigations showed that the offset is consistent regardless of the ambient temperature. Here results from two different sensors - one is inside the enclosure, the other - outside
So what i will add as an option is to be able to set temperature offset. It will be different for the different types of devices, but i will preset it. Also i need to change the firmware in a way that there are settings that are not cleared when factory reset is being done, as they are rather related to the hardware of the device.
Apart from this - the sensors that i use have an accuracy of +- 0.4 - 0.5 degrees
For the WiFi Temperature Sensor - i will use the bigger enclosure, as there the offset was 3 degrees, which is quite a bit.
I've finally gotten around to changing the enclosure, and the first results are looking good: the wifi temperature sensor shows almost the same temperature as the CO2 monitor (also BME280) right next to it. Humidity (1%) and pressure (<2 hPa) are almost identical as well now.
For both sensors, the temperature is still a bit higher than it should be in this room (about a degree), so an option to set a temperature offset would be greatly appreciated
Lastly, I couldn't really find how to update the firmware OTAH, is there a command to do this?
i did lot's of tests about this in the last week basically it turns out - the
BME280 sensor shows ~0.5 C above SI7021 (and i have another one - BMP180, that shows 0.5C lower than SI)
In a sample of 5 BMEs, 5 SIs and 5 BMPs, all of the SIs are within 0.1C range, while the BME s are within 0.5C and the BMP is 0.5 lower
So in the new firmware i added two things
1. the TEMP variable for BME is autimatically decreased by 0.5C in the firmware, for BMP it is increased by 0.5
2. there is also a TEMPR variable that is the raw temperature from the sensor
3. there is another property that you can set to configure temperature offset
About the update, i've done lots of improvement in the last weeks and in the last week i am testing if everything works well. I will release the new firmware, i hope today, and you will automatically get the update after you restart it. The Chrome App will also automatically update