Sensors and issues with I2C
The alpha design that we first put together in October 2021 with a ESP8266 and two i2c sensors on a single channel provided reliable data capture. It was possible to leave the system running during the day collecting valid data.
In order to run multiple sensors with the same i2c address (where multiple addresses are not available on the device) we introduced a Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakout. The introduction of this alongside multiple sensors (8 in total during development) we started to experience the well-documented i2c lockup phenomena that we had hoped to avoid. Despite multiple delays to allow i2c communications to complete the i2c bus would lock up and prevent further transfers from taking place.
The beta design of summer 2022 looked at using non-i2c sensors such as SPI and Analog which has proven to be more reliable but the downside being poorer choice.
There are so many sensors available to the maker community its overwhelming and its particularly difficult to keep track of which sensors use which communication method. The following table highlights some of the sensors that we have evaluated.
|SHT31-D||Temperature & Humidity Sensor||i2c (QT)||±2% relative humidity |
|SGP30||TVOC/eCO2 Gas Sensor||i2c (QT)||Adafruit_SGP30 Class Reference||Volatile Organic Compounds (VOCs) and H2,|
Total Volatile Organic Compound (TVOC),
Equivalent carbon dioxide reading (eCO2).
|LTR390||ALS/UV Sensor||i2c (QT)||Low cost UV sensor with both ambient light and UVA sensing|
|DSP310||Barometric Pressure / Altitude Sensor||i2c (QT)||High precision barometric sensor|
|MPL115A2||Barometric Pressure & Temperature Sensor||i2c||Adafruit Github||Best for barometric sensing only|
|SI1145||Digital UV Index / IR / Visible Light Sensor||i2c||Adafruit Learn|
|TSL2561||Luminosity Sensor Breakout||i2c||Retired.|
|BMP180||Barometric Pressure Sensor Breakout||i2c||Retired|
|ML8511||UV Sensor||Ana||Sparkfun Learn||Retired|
|GUVA-S12SD||UV Sensor||Ana||Electropeak||Faulty Sensor maybe? Doesn’t seem to work.|
|BME280||Temp + Humidity & Pressure||i2c + SPI||Adafruit Learn|
|MAX31856||Thermocouple Amplifier||SPI||Adafruit Learn||allows for a range of thermocouples to be connected|
Some of you might be wondering why not design a PCB with all these sensors with their associated circuits laid out on a single board. Its definitely an option for the future if demand exists but for now its about simplicity and accessibility.