Program latency due to heater in SHT30

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Jim_EE
 
Posts: 3
Joined: Sat Aug 21, 2021 8:40 am

Program latency due to heater in SHT30

Post by Jim_EE »

I am using a Arduino Uno and integration the SHT30 into the Ardent Weather Station and unclear on the following:

1. Accuracy:
Would like to record and display the most accurate temperature. Should I assume that I should wait till the end end of the "heater disabled state" avoid temp rise of the heater.

2 Latency:
I hope to create code that averages these measurements, displays and stores them. I am concerned about the 1 second delay and how it would significantly affect the loop duration. How critical is the on/off time of the heater?

Thanks
Jim

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Program latency due to heater in SHT30

Post by adafruit_support_bill »

The heater cycle timing in the example code is just an example. Temperature equilibration time will vary depending on the thermal characteristics of the system. I'd plot out temperature over time and see how long it takes for the temperature to level out after shutting down the heater.

Not sure I understand the concern over the 1 second delay. Sample rates for weather monitoring are typically at least an order of magnitude slower than 1 Hz.

User avatar
danger-will-robinson
 
Posts: 35
Joined: Fri Dec 06, 2013 1:21 pm

Re: Program latency due to heater in SHT30

Post by danger-will-robinson »

Addressing latency first, the datasheet shows a >2 second response time for temperature so if your software is looping any faster than that it is just collecting the same data over and over again.

In regards to heating, I see no reason to do it under normal circumstances and the datasheet does not recommend using it the way Adafruit has implemented it in their example code. First, according to the datasheet it introduces a temperature change of "a few degrees centigrade" which is a huge increase for purposes of atmospheric temperature measurement and is going to take much more than 1 second to thermally return to an atmospheric steady state. Second, and also according to the datasheet, it is intended for "plausibility checking only" which means when you get an outrageous reading that just doesn't make sense. For example, the local weather station is reporting 20% humidity but yours is reporting 90%. Adafruit's example code implements heating almost in a PWM fashion to limit the effects however it will still provide a false measurement over actual atmospheric temperature. They promote it as a way to combat condensation however this is likely almost never an issue in real applications and can be combated in other ways that don't require using heat regularly.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Program latency due to heater in SHT30

Post by adafruit_support_bill »

They promote it as a way to combat condensation however this is likely almost never an issue in real applications and can be combated in other ways that don't require using heat regularly.
Maybe not an issue for indoor use or arid climates. But sensor saturation due to condensation is a very common problem. And heaters are commonly used to prevent and/or help recover from it. Although heaters do raise other issues, since it will affect measurements if not used well.

That said, the datasheet explanation of heater use in the SHT30 seems odd.

User avatar
Jim_EE
 
Posts: 3
Joined: Sat Aug 21, 2021 8:40 am

Re: Program latency due to heater in SHT30

Post by Jim_EE »

Thanks for the insight into this sensor.

1 Where can i get the detailed data sheet on this sensor?

2 I will now plan to read the sensor at 30 second intervals.

3 The sensor will be installed outside, in Illinois (approx range of -20F to 115F, 5% to 100%RH) and subject to rain and condensation. It wil never be in liquid. I am considering toggling the heater 30sec on and 30min off. I plan to put a roof over ans shade the sensor. Please comment

4. Currently the sensor is in my basement (approx 75F and 50%) and plan to record the temperature measurements to see the deviation after the deactivating the heater so I can measure the time to steady state. I will start my 30 second read cycle after calculating a delay based on this data.

I will keep you postd.

Thanks
Jim

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Program latency due to heater in SHT30

Post by adafruit_support_bill »

Here is a link to the datasheet: https://cdn-shop.adafruit.com/product-f ... 767294.pdf
There are also links to a bunch of app-notes and other technical documents here: https://sensirion.com/products/catalog/SHT30-DIS-F/

Regarding heater use. I don't see any reason to toggle it on and off continuously. This type of sensor does not recover quickly from exposure to extremely dry or moist conditions. Although it is possible to dry out a saturated sensor or re-hydrate a dried-out sensor, the sensor will degrade somewhat with each exposure, so the goal is to avoid them in the first place.

Typically heaters on humidity sensors are used for 2 things:

1) Keeping the sensor element slightly above ambient temperatures in conditions where condensation is likely to occur.
2) Drying out a sensor that has become saturated.

Applying heat in hot & dry conditions is not a great idea.

User avatar
danger-will-robinson
 
Posts: 35
Joined: Fri Dec 06, 2013 1:21 pm

Re: Program latency due to heater in SHT30

Post by danger-will-robinson »

My suggestion is to forget about the heater completely. Obviously the sensor has to be protected from direct water infiltration such as rainfall and if you are really worried about condensation you can protect the sensor by using something similar to a telescope "dew cap" which is an easy solution. Most commercially available weather stations use this type of housing.

If you insist on using the heater you are much better off implementing it as Adafruit does in their example code. Your proposed 30 sec on, 30 min off cycle will not accomplish much since the device will certainly cool down well before the next "on" segment subjecting it to condensation (just as if the heater was not used at all). At least in the Adafruit method the sensor is constantly kept at an elevated temperature without much "cool-down" time. Regardless, using the heater in any manner is likely to provide inaccurate temperature measurements per the datasheet.

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”