Reading of Environmental data
Answer
8/9/18 9:11 AM

Hello,

meanwhile im working successfully with 10 XDK sensors.

This sensors will monitor the quality of our automated systems.

The values of the environmental data are not correct, i compared the XDK values with Testo sensors.

Temperature and humidity will give values in raw data and conversion data.

I read out the values of the converted data (see image)

 

The conversion data will give correct data (T [m°C], H [Pa]) values but the values are not exact.

Example:

Room temp real 27°C - XDK 32 °C

Room humidity real 45%  rH - XDK 25% rH

What is the failure ?

 

Thomas

 

 

+1 (1 Vote)
RE: Reading of Environmental data
Answer
8/9/18 2:21 PM as a reply to Thomas Scharfenberger.
Hi Thomas,

the XDK self-heats depending on the power disipation due to the use of peripherals and charging of the battery. In Your case 5°C is not uncommon if You are charging the battery while sensing.

The BME280 will measure the temperature with an accuracy of 1°C (see datasheet), so the value of 32°C is probably the temperature on the circuit board. For higher temperatures, the humidity measuered will be lower than the ambient humidity, which is the behaviour You noted. However for ambient conditions 27°C and 45% rH and sensor temperature 32°C i would expect humidity on the sensor side to be 34% rH.

The offset between ambient and sensor temperature should be constant during operation, please measure it and feed it into the environmental sensor API (Environmental_setTemperatureOffset()) and use the compensation API (Environmental_readCompensatedData()) to see if this improves the data.

Best Regards,

Francisco
0 (0 Votes)
RE: Reading of Environmental data
Answer
8/9/18 5:27 PM as a reply to Francisco Llobet Blandino.
Hello Thomas,

As Francisco already explained in detail is the temperature difference given due to the nature of the XDK housing.

To solve this a compensation of the temperature readings can be made using the Environmental API.

As such, I would recommend applying the compensation after the XDK had his warm-up phase and the temperature offset is constant.

Please let me know if this was helpful and feel free to ask if you have further questions.

Kind regards,
Franjo
0 (0 Votes)
RE: Reading of Environmental data
Answer
8/13/18 9:04 AM as a reply to Franjo Stjepandic.

Hello Franjo, hello Francisco,

i use the XDK to log temperature and humidity data.

 

When i use the IPAD (VirtualXDKDemo) then the values are very exact and reliable.

Using my own program (copy of StreamSensorDataOverUsb and the compensation function of the VirtualXDKDemo) the values are not correct, not compensated.

The unique difference between the systems are the type of variable (UINT32 and UINT8 4x)

The function to read and compensate ist the same (API from Bosch)

thx for help

0 (0 Votes)
RE: Reading of Environmental data
Answer
8/13/18 12:40 PM as a reply to Thomas Scharfenberger.
...
0 (0 Votes)
RE: Reading of Environmental data
Answer
8/13/18 12:42 PM as a reply to Thomas Scharfenberger.

Hello Franjo,

see the difference

 

IPAD works fine

PC is not compensated >> too hot

 

Thomas

 

 

0 (0 Votes)
RE: Reading of Environmental data
Answer
8/13/18 3:40 PM as a reply to Thomas Scharfenberger.
Hello Thomas,

thank you for providing the view to your code.
I assume, you refer to your first code snippet picture, which shows the implemented code of your second code snippet picture, the VirtualXdkDemo itself.

So both versions, your commented code (line 260 - 271) including the buffer array and also the original code, using the long int values (line 248 - 254) do not show the correct output values in regards of the earlier made compensations?

In your earlier use case scenario, using BLE in case of the VirtualXdkDemo , no WiFi was used, which now comes into play.
Activating the WiFi-chip increases the XDK's heat for about five degrees Celsius, which affects the environmental sensor as well.
If you use the default compensation value, which is two degrees Celsius, the algorithm does not consider the WiFi's heat.

Gladly, this can be easily resolved by increasing the compensation value up to about seven. This can be done over the function Environmental_setTemperatureOffset() by passing a negative temperature offset in millidegree into it.

I am sure, you will find the right value by playing in a range between five and eight.

Please tell me if this was helpful, and do not hesitate to ask further questions.

Kind regards,
Franjo
0 (0 Votes)