Using Adafruit VOC detector:
- SGP30 Air Quality Sensor Breakout - VOC and eCO2
- AHT20 - Temperature & Humidity Sensor
Software and Dependencies:
- Adafruit CircuitPython firmware for the supported boards: https://github.com/adafruit/circuitpython/releases
- Adafruit’s Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice
class adafruit_sgp30.Adafruit_SGP30(i2c, address=88 )[source]
A driver for the SGP30 gas sensor.
Parameters
- i2c (I2C) – The I2C bus the SGP30 is connected to.
- address (int) – The I2C address of the device. Defaults to
0x58
$sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Quickstart: Importing and using the SGP30 temperature sensor
Here is one way of importing the Adafruit_SGP30
class so you can use it with the name sgp30
. First you will need to import the libraries to use the sensor
import busio import board import adafruit_sgp30
Once this is done you can define your busio.I2C
object and define your sensor object
i2c = busio.I2C(board.SCL, board.SDA, frequency=100000)
sgp30 = adafruit_sgp30.Adafruit_SGP30(i2c)
Now you have access to the Carbon Dioxide Equivalent baseline using the baseline_eCO2
attribute and the Total Volatile Organic Compound baseline using the baseline_TVOC
eCO2 = sgp30.baseline_eCO2 TVOC = sgp30.baseline_TVOC
property Ethanol
Ethanol Raw Signal in ticks
property H2
H2 Raw Signal in ticks
property TVOC
Total Volatile Organic Compound in parts per billion.
property baseline_TVOC
Total Volatile Organic Compound baseline value
property baseline_eCO2
Carbon Dioxide Equivalent baseline value
property eCO2
Carbon Dioxide Equivalent in parts per million
get_iaq_baseline()[source]
Retreive the IAQ algorithm baseline for eCO2 and TVOC
iaq_init()[source]
Initialize the IAQ algorithm
iaq_measure()[source]
Measure the eCO2 and TVOC
raw_measure()[source]
Measure H2 and Ethanol (Raw Signals)
set_iaq_baseline(eCO2, TVOC )[source]
Set the previously recorded IAQ algorithm baseline for eCO2 and TVOC
set_iaq_humidity(gramsPM3 )[source]
Set the humidity in g/m3 for eCO2 and TVOC compensation algorithm
set_iaq_relative_humidity(celsius, relative_humidity )[source]
Set the humidity in g/m3 for eCo2 and TVOC compensation algorithm. The absolute humidity is calculated from the temperature (Celsius) and relative humidity (as a percentage).
from icecream import ic
import adafruit_ahtx0
# Create the sensor object using I2C
sensor = adafruit_ahtx0.AHTx0(board.I2C())
temp_sensor = sensor.temperature
humidity_sensor = sensor.relative_humidity
ic(int(temp_sensor), int(humidity_sensor))