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.
Preparation
Use of same sensor on i2c usually limited by 1 or 2 (using ALT i2c address) of same type. And SHT20, SHT21, SHT25, HTU21 is actually same type, so to be able to compare measurement there is need to use i2c multiplexer. In case of 8 line multiplexer there is possibility to have 8-16 sensor of same time to be connected with Arduino.
Sensor i2c addresses and voltages
to divide between multiplexers
Sensor | address | alt address | spec | Vmin-Vmax | Vtyp | 3.3v | 5v** |
---|---|---|---|---|---|---|---|
AOSONG AHT10 | 0x38 (62) | 0x39 (63) | 1.8-3.6v | 3.3v | |||
Senserion SHT2x | 0x40 (64) | 0x41 (65) | 20,21,25 | 2.1-3.6v | 3v | ||
Senserion SHT3x | 0x44 (68) | 0x45 (69) | SHT3x | 2.15-5.5v | 3.3v | ||
Senserion SHT8x | 0x44 (68) | SHT85 | 2.15-5.5v | 3.3v | |||
Meas(1) HTU21D | 0x40 (64) | HTU21D | 1.5v-3.6v | 3v | |||
Silicon Labs Si7021 | 0x40 (64) | 1.9v-3.6v | - | ||||
Bosch(2) BMEx80 | 0x76 (118) | 0x77 (119) | 680 | 1.71v-3.6v | 1.8v | ||
Bosch(2) BME280 | 0x76 (118) | 0x77 (119) | 280 | 1.71v-3.6v | 1.8v | ||
Ti(3) HDC1080 | 0x40 (64) | 2.7v-5.5v | 3v | ||||
AOSONG DHT12 | 0x5C (92) | 2.7-5.5v | 5v | ||||
AOSONG AM2320 | 0x5C (92) | 0xB8 ? | 3.1-5.5v | 5v |
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
Versions
v1
- Single multiplexer breadboard draft project with 26 Sensors
v2
- Use less wires and more soldering and connectors
- SD data logging (with filenames auto increment)
- Add more columns to the screen
v3
- 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)
v5
- 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 - current
- AHT15 sensors (AHT10 code reuse)
- HDC2080 sensors and code
- connect and enable mux #6
v7
- 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