Page tree
Skip to end of metadata
Go to start of metadata

Project Goal

To create Arduino based device to compare data for as much t/RH sensors as possible (without manual sensor switch), optionally with data logging for further analysis.


Use of the same sensor on i2c usually limited by 1 or 2 (using ALT i2c address) of the same type. And SHT20, SHT21, SHT25, HTU21 is actually the same type, so to be able to compare measurement there is need to use i2c multiplexer. In the case of 8 line multiplexer, there is a possibility to have 8-16 sensor of the same time to be connected with Arduino.

Sensor i2c addresses and voltages

to divide between multiplexers

Sensoraddressalt addressspecVmin-VmaxVtyp1.8v3.3v5v**
AOSONG AHT100x38 (62)0x39 (63)*pdf1.8-3.6v3.3v(question)(tick)(minus)
AOSONG AHT150x38 (62)
Senserion SHT2x0x40 (64)0x41 (65)20,21,252.1-3.6v3v(minus)(tick)(minus)
Senserion SHT3x0x44 (68)0x45 (69)SHT3x2.15-5.5v3.3v(minus)(tick)(tick)
Senserion SHT8x0x44 (68)
Meas(1) HTU21D0x40 (64)
Silicon Labs Si70210x40 (64)
Bosch(2) BMEx800x76 (118)0x77 (119)6801.71v-3.6v1.8v(tick)(tick)(minus)
Bosch(2) BME2800x76 (118)0x77 (119)2801.71v-3.6v1.8v(tick)(tick)(minus)
Ti(3) HDC10800x40 (64)
Ti(3) HDC20800x40 (64)0x41 (65)pdf1.62v-3.6v-(tick)(tick)(minus)
AOSONG DHT120x5C (92)
AOSONG AM23200x5C (92)

1 TE Connectivity Measurement Specialties

2Bosch Sensortec

3 Texas Instruments

** some sensors board have voltage regulators and level converter (and may support voltages above mentioned in sensor datasheet)

Draft schematic



  • Single multiplexer breadboard draft project with 26 Sensors


  • Use less wires and more soldering and connectors
  • SD data logging (with filenames auto increment)
  • Add more columns to the screen


  • Use 3+ multiplexers to include twice more sensors (incl. hdc1080 and Si7021, SHT85)
  • Add more SHT85 sensors to see results repeatability (for the most expensive sensor)
  • remove some libraries (multiplexor, sensor reading) not compatible with multiple mux projects
  • substitute i2c scan every cycle with pre-defined array processing
  • (Hardware) i2c 3.3v/5v level converter
  • (Hardware) 2500mAh battery with related circuits
  • (Hardware) New case, 
  • (Hardware) New 2m wire between the main unit and the board
  • (Hardware) New plastic shields for connectors

v4 - failed

  • AHT10 sensors (both wiring and code needed) - fail
  • Change board wiring for new Adafruit sensors
  • replace DHT12 with additional BME280
  • Change board sensors (HDC1080 to HTU21d)


  • New board for both mux and sensors with fewer wires and connectors 
  • Wire new additional 5v sensor board with mux #4
  • AM23020 5v sensors and code
  • HDC1080 moved to 5v additional board
  • Separate AHT10 to additional multiplexor (mux #5)

v6 - unstable

  • AHT15 sensors (AHT10 code reuse)
  • HDC2080 sensors and code
  • connect and enable mux #6

v7 - unstable

  • hardware RTC clock
  • SD files with correct timestamps

v8 - current

  • Updated Power circuit
  • i2c voltage converter board and new wiring
  • SHTC1 and SHTC3 sensors added
  • mux #1 address changed (to solve i2c address conflict)
  • 2x BME680 removed (to solve i2c address conflict)
  • 1x BME280 removed (to solve i2c address conflict)
  • DHT12 sensors added instead of three BMEx80 (8a)
  • ChipCap Sensor added instead of DHT12 (8b)


  • code optimization
  • trend visualization
  • hardware controls
  • menu options (like format SD card)
  • got some kind of home-made "calibration" tests with resolutions
  • fan
  • publish final electric scheme, sketch, results