Air Quality Monitor
This Arduino project read data from BM68x sensor and use BSEC library to get IAQ (Indoor Air Quality) data.
Hardware
Software
- Bosch BME68x library (for sensor data)
- Bosch BSEC2 library (for IAQ calculation)
- Adafruit DotStar (for RGB LEDs)
- Adafruit ST7735 and ST7789 Library (for TFT display)
- SD (for SD card)
- Arduino_MCHPTouch (for touch buttons)
Please note that you can include the Arduino_MKRIoTCarrier library to have a unified object for accessing the peripherals of the carrier.
Wiring
MKR IoT Carrier
Connect the MKR WiFi 1010 to the MKR IoT Carrier.
BME688
Connect the BME688 sensor to the Arduino board using the I2C interface.
| BME688 | I2C |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SCL / SCK | A5 (SCL) |
| ADDR / MISO | GND |
| SDA / MOSI | A4 (SDA) |
| CS | - |
Please note that the
ADDRpin is used to select the I2C address of the sensor. IfADDRis connected toGND, the address is0x76,0x77otherwise.
Usage
This project is configured to work with PlatformIO. You can use the platformio.ini file to configure the project settings.
- Open the project in PlatformIO.
- Install the required libraries.
- Build and upload the project to the Arduino board.
Please note that you need to configure the
bsec_iaq.configfile with the correct sensor settings. You can use the BSEC integration guide to generate the configuration file.
Useful links
- Arduino documentation
- Adafruit documentation
- Bosch BME688 product page
- BSEC integration guide
- Waveshare BME68X documentation
- Image to C++ converter
TODO
- Save and load sensor configuration on SD card
- Display IAQ data on TFT display
- Use touch buttons to interact with the display
- Use relay to control air purifier