Multiple i2c sensors comparision using arduino with some consumer devices included in test results. Using SHT85 and GreenDay as "temporary reference devices".
Multiplexer Lines
Line | 0x40 | 0x44 | 0x5c | 0x77 | 0x41 | 0x45 | 0x76 | 0x70 |
---|---|---|---|---|---|---|---|---|
A | SHT21 | SHT30 | DHT12 | BME680 | ||||
B | SHT21 | SHT30 | DHT12 | BME680 | ||||
C | HTU21D | SHT31 | DHT12 | BME280 | ||||
D | HTU21D | SHT31 | - | BME280 | ||||
E | HTU21D | SHT35 | - | BME280 | ||||
F | SHT20 | SHT35 | - | BME680 | ||||
G | SHT21 | SHT31 | - | BME680 | ||||
H | SHT25 | SHT85 | - | - |
i2c Scan
Code Block |
---|
Port:0 i2c addr 64 i2c addr 68 i2c addr 119
Port:1 i2c addr 64 i2c addr 68 i2c addr 119
Port:2 i2c addr 64 i2c addr 68 i2c addr 118
Port:3 i2c addr 64 i2c addr 68 i2c addr 118
Port:4 i2c addr 64 i2c addr 68 i2c addr 118
Port:5 i2c addr 64 i2c addr 68 i2c addr 92 i2c addr 118
Port:6 i2c addr 64 i2c addr 68 i2c addr 92 i2c addr 118
Port:7 i2c addr 64 i2c addr 68 i2c addr 92 |
Hardware in use
- Mega2560 keyestudio
- LCD 3.5 inch Arduino Mega2560
- DFRobot i2c multiplexer (or compatible ShangSi MoudleCX TCA9548A i2c multiplexer)
- Sensors (DHT11, SHT21, SHT20, SHT25, HTU21D, SHT30, SHT31, SHT35, SHT85, BME280, BME680)
Draft sketch
github code: https://github.com/liutyi/arduino-humidity-sensors-test/tree/master
Libraries
Screen example
~24% RH
Device/sensor | t | RH |
---|---|---|
Green Day | 22.1 | 23.1% |
Xiaomi MHO-C201 | 22.5 | 24% |
Senserion S.G. | 22.59 | 29.88% |
Beurer HM16 | 21.6 | LOW |
TFA Spring | 22.2 | 23% |
TFA t/RH | 22 | 25% |
SHT21 (1) | 22.20 | 33.76% |
SHT21 (1) | 22.33 | 35.37% |
HTU21D (1) | 22.32 | 22.21% |
HTU21D (1) | 22.72 | 21.66% |
HTU21D (2) | 22.55 | 21.47% |
SHT20 | 22.60 | 24.80% |
SHT21 (2) | 22.79 | 23.80% |
SHT25 | 22.71 | 24.91% |
SHT30 | 22.09 | 26.83% |
SHT30 | 22.12 | 27.23% |
SHT31 | 22.08 | 28.11% |
SHT31 | 22.19 | 28.05% |
SHT35 | 22.29 | 25.49% |
SHT35 | 22.41 | 25.14% |
SHT31 (2) | 22.54 | 28.74% |
SHT85 | 22.48 | 24.10% |
BME680 | 22.62 | 25.45% |
BME680 | 23.03 | 24.73% |
BME280 | 23.04 | 21.99% |
BME280 | 22.88 | 22.31% |
BME280 | 23.22 | 21.44% |
BME680 (2) | 24.30 | 20.18% |
BME680 (2) | 24.41 | 21.03% |
DHT12 | 22.00 | 14.10% |
DHT12 | 22.00 | 31.80% |
~29% RH
Device/sensor | t | RH |
---|---|---|
Green Day | 22.1 | 29.4% |
Xiaomi MHO-C201 | 22.1 | 31% |
Senserion S.G. | 22.14 | 35.58% |
Beurer HM16 | 21.6 | LOW |
TFA Spring | 22.2 | 28% |
TFA t/RH | 22 | 28% |
SHT21 (1) | 22.13 | 37.56% |
SHT21 (1) | 22.21 | 38.98% |
HTU21D (1) | 22.10 | 28.39% |
HTU21D (1) | 22.39 | 28.08% |
HTU21D (2) | 22.22 | 28.14% |
SHT20 | 22.28 | 31.06% |
SHT21 (2) | 22.17 | 30.45% |
SHT25 | 22.33 | 31.17% |
SHT30 | 22.02 | 32.54% |
SHT30 | 22.09 | 33.10% |
SHT31 | 21.99 | 34.06% |
SHT31 | 21.99 | 34.11% |
SHT35 | 22.04 | 31.87% |
SHT35 | 22.14 | 31.53% |
SHT31 (2) | 22.09 | 35.21% |
SHT85 | 22.00 | 30.05% |
BME680 | 22.55 | 31.35% |
BME680 | 22.88 | 30.60% |
BME280 | 22.90 | 27.56% |
BME280 | 22.67 | 27.99% |
BME280 | 22.94 | 27.10% |
BME680 (2) | 23.74 | 25.61% |
BME680 (2) | 24.05 | 25.82% |
DHT12 | 22.10 | 22.40% |
DHT12 | 21.90 | 34.50% |
~42% RH
Device/sensor | t | RH |
---|---|---|
Green Day | 22.3 | 42.4% |
Xiaomi MHO-C201 | 22.5 | 41% |
Senserion S.G. | 22.66 | 46.24% |
Beurer HM16 | 21.8 | 30% |
TFA Spring | 22.3 | 38% |
TFA t/RH | 22 | 34% |
SHT21 (1) | 22.39 | 46.57% |
SHT21 (1) | 22.46 | 47.14% |
HTU21D (1) | 22.38 | 42.10% |
HTU21D (1) | 22.75 | 41.62% |
HTU21D (2) | 22.49 | 41.64% |
SHT20 | 22.58 | 43.45% |
SHT21 (2) | 22.64 | 42.40% |
SHT25 | 22.72 | 42.95% |
SHT30 | 22.51 | 44.97% |
SHT30 | 22.53 | 45.42% |
SHT31 | 22.40 | 46.15% |
SHT31 | 22.47 | 46.14% |
SHT35 | 22.55 | 44.30% |
SHT35 | 22.61 | 44.02% |
SHT31 (2) | 22.63 | 47.17% |
SHT85 | 22.74 | 41.88% |
BME680 | 22.64 | 44.04% |
BME680 | 22.93 | 42.72% |
BME280 | 23.08 | 40.17% |
BME280 | 22.85 | 40.79% |
BME280 | 23.11 | 39.61% |
BME680 (2) | 24.37 | 34.78% |
BME680 (2) | 23.80 | 36.54% |
DHT12 | 22.30 | 36.50% |
DHT12 | 21.90 | 43.00% |
Draft Results:
Looks like BME680 (2) module got some minor internal heating that makes t measurement higher and RH measurements lower. Will probably try to place it with sensor at the bottom next time (with updated test setup). DHT12 is (as expected) not good at low humidity. Have no explanation of why GY-213V-SHT21 is that inacurate. Surprized with relatively cheap HTU21 (that is compatible to SHT2x and may be replaced without firmware change) perform so good.
Possible improvements in next test setup:
v2
- Add more multiplexors to be able to include hdc1080 and Si7021,
- Add more SHT85 sensors to see results repitability (for most expensive sensor)
- Add more columns to the screen
v3
.
v4
- remove libraries (that is suppose to work with single sensor mostly) and create simple init and read functions for all sensor types
- remove i2c scan every cycle, remember sensors from setup phase (need restart to change sensors but it is fine)
- add non-i2c sensors like DHT11 and AM2302
- make some additional screen modes and control buttons
v5