Sensirion Gas/Temp/Humidity Sensor Kit - Review

Table of contents

RoadTest: Sensirion Gas/Temp/Humidity Sensor Kit

Author: shabaz

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Hard to make a direct comparison, different manufacturers excel or perform worse depending on what is being sense out of the four quantities under consideration here (temperature, humidity, VOC and CO2). Environment sensors from Bosch are also available, for humidity the BME280 would be worth considering; GE has sensor modules for CO2, Honeywell has a humidity sensor, Amphenol products are comparable, and combined humidity and temperature and VOC are possible with Bosch BME680. For VOC performance, the Sensirion device doesn't have a lot of competition in its class.

What were the biggest problems encountered?: No problems encountered. Personally I believe it would have been preferable if the board wasn't an Arduino shield, since it is trivial to connect to any microcontroller board, however as mentioned it is merely a preference, and it doesn't affect usability.

Detailed Review:


It is always fun exploring sensors, so when the opportunity came up to be able to RoadTest the Sensirion Environmental Sensor Shield boardSensirion Environmental Sensor Shield board, I wanted to apply!


The board contains a couple of sensor devices; the SHTC1 and SGP30. The former is used for temperature and humidity monitoring, and the latter is used for volatile organic compound (VOC) and carbon dioxide (CO2) monitoring.


In order to get to know the sensor devices, I decided to use the board to make an indoor environment monitor using a moving-coil meter and an Arduino MicroArduino Micro. The seven-minute video contains a demo:


The board is easy to use and the Environmental Sensor Shield schematic is available; a single I2C bus is used to access the devices. The board runs from 5V and there is an on-board voltage regulator to drop the voltage down to 1.8V for the sensors. The 1.8V I2C bus is translated to 5V using MOSFETs. As a result, the board is ideal for use with the older 5V Arduino Uno boards, but conveniently it can be made to operate at any voltage between 3 and 5V, with any microcontroller board, by using a four-pin supply and I2C connector on the underside.



Temperature and Humidity

The SHTC1 is a tiny (2x2x0.75mm) high resolution (two decimal places) sensor. When measuring temperature, it has a sensing range of -30 to 100 degrees C, and it’s pretty accurate, within a room temperature range, to within +- 0.3 degrees C typically.


Unlike some other semiconductor temperature sensors, the SHTC1 has an enclosure that provides for low thermal mass, and that makes it respond much quicker. Handling and using the sensor seems straightforward but there are some SHTxx handling rules (PDF); the board must not be washed, and the sensor needs to be covered in Kapton tape prior to spraying on any coatings onto the board.



The humidity measurement capability of the sensor is impressive too; typically accurate to within +- 3% at expected room conditions. The measurements are low-noise. The charts below show two minutes worth of measurements (one measurement per second) in a room (i.e. uncontrolled temperature and humidity). 



SGP30 VOC and CO2 Sensor

The SGP30 is barely larger than the SHTC1. It is 2.45x2.45x0.9mm sized. It has the ability to measure volatile organic (carbon-containing) compounds such as alcohols, fuels and certain types of paint fumes. Many VOCs can cause headaches, illness or far worse, so it can be important to monitor them. The SGP30 can also provide an indication of carbon dioxide (CO2) level. It measures this indirectly by looking at the level of another gas (hydrogen molecules); this method is appropriate for room use, but not for (say) laboratory experiments where actual CO2 may need to be measured.


VOC and CO2 values may need to be measured across an extremely large range, so it was nice to see that the SGP30 provides higher resolution at the lower end of the range (which is where you want a room to be!). It provides an excellent 1 part-per-billion resolution when measuring VOC at the lower end of the range, and 1 part-per-million for CO2 measurement. The total range is huge; up to 60k ppb and 60k ppm for VOC and CO2 respectively. That extreme would likely be a very stinky, death-inducing room condition.


When using the SGP30 (PDF datasheet), there are some rules; an I2C command has to be sent regularly (every second) to perform a measurement. The regularity is important because it allows the sensor to automatically correct for internal drift; it runs a built-in algorithm that requires a result each second for this to work.



Physically, the SGP30 has an unusual top; it is covered in a special film. The key-shape points toward pin 1.

The SGP30 is pricey, at around £5 GBP in quantities of 1000. However it's very good at what it does; some sensors like the Bosch BME680 may also be worth considering, but they are not much cheaper, and the resolution for VOC is lower.

It should be reiterated that the sensor is designed for room environments, and not for lab testing of chemicals. There is a chance of damaging the sensor if it is exposed to chemicals beyond the expected range or for sustained periods beyond what would be expected in a room.


Power Consumption

The SHTC1 is intended for devices such as mobile phones and IoT sensor nodes, and has very low power consumption. It consumes an average of 4.8uA at 1.8V if the device is measuring per second. The SGP30 by its nature needs to internally heat its sensor, and so the average current consumption when operating is higher at 48mA at 1.8V.


There isn’t a convenient place on the board to measure current consumption per device alone, but for a realistic typical circuit measurement I broke the track from the output of the 1.8V regulator that supplied both of the sensor chips, and confirmed that with regular measurements each second, the current consumption is a near-constant 48mA.


Custom Boards

The shield should be lower cost I feel (it is $34 USD but steeper at £39 GBP in the UK), and breakout boards for the sensor chips from third parties like Adafruit are expensive too. However, with little effort a custom board could be made because despite the tiny size of the chips, the pins are spaced well apart (1.0mm pitch for the SHTC1 and 0.8mm for the SGP30). The SHTC1 costs just over £2 GBP in single quantities, but the SGP30 costs around £10 in single quantity (and half of that in quantities of 1000).



Building a Room Air Quality Sensing Meter

I decided that to get to know the sensors better, it could be interesting to build a desktop device called the FeelWellMeter! It’s intended to provide information to help improve health and productivity. I can use it to try to change my environment if it reports bad temperature, humidity or air quality.


I didn’t have a suitable large Arduino to plug the board onto, but there is a 4-pin connector on the underside that exposes the I2C bus, and a 3-5V supply connection. I directly wired it to an Arduino Micro.



I used World Health Organization and other sources to try to establish good environment conditions, and shaded them green on the meter scale.



The Arduino was wired to a 100uA moving-coil panel meter (available from Aliexpress; search for 44C2 100uA meter, it is 100x80 mm sized) through a 47 kohm resistor. The aim was to use pulse width modulation (PWM) to control the average current through the meter, in relation to the sensor measured value.



A dilemma was how to select and indicate between temperature, humidity, VOC and CO2 measurements. I wanted to keep it simple, so I went with a single-button solution. By default at power-on, the FeelWellMeter will repeatedly cycle through displaying all four measurements, and one of four LEDs will indicate the parameter being displayed. If the button is pressed, the cycling will stop, and the parameters can be manually cycled with additional presses of the button. A further press will go back into the automatic mode (and briefly an LED will flicker to indicate the automatic mode). I wouldn't say I implemented the rear LED indication very well, and a 3D printed LED bracket might be a better method.

The schematic is shown below.



The software makes use of Sensirion's environmental sensor shield library and while it was easy to use, I didn't like that it relied on a delay to perform the timing; a timer would have been better, but I can understand it is easier to use with any Arduino if the delay is used. It is a minor thing; there is nothing inherently awkward in the library to stop a software developer to use a timer where needed.


I also needed to consider how to calibrate the meter needle, since it is supply voltage, resistor and meter dependent. The solution I went with was manual calibration; at power-on, if the button is held down, the calibration mode is entered. The meter needle will slowly move, and the user must press the button at the minimum and maximum markings. The values are stored to non-volatile EEPROM memory.


The sensors need to be exposed to air, and so some large 10mm diameter holes were used. In a real product enclosure the air flow needs to be considered more carefully. Sensirion has SHTxx design guidelines (PDF) for that.



The photo below shows the final result. The earlier video shows it in operation along with demonstrations of the sensing capability.






It proved easy to work with the Sensirion Environment Sensor Shield. I liked that it could be used with any microcontroller despite it being designed for an Arduino. The measurements are low-noise, and the huge VOC and CO2 range does not come at the expense of poor resolution; the granularity is excellent at the low end. I was very pleased that it proved possible to build a little room air quality unit with not much effort, and the results will be useful to examine while I’m working.


The FeelWellMeter source code is available, for anyone else who wishes to replicate it. Thanks for reading!