Indoor Air Quality Meter

by ZaNgAbY in Circuits > Arduino

12934 Views, 217 Favorites, 0 Comments

Indoor Air Quality Meter

air_quality_bme680.jpg

Simple project to check the air quality in your house.

Since we stay/work from home a lot lately, it might be a good idea to monitor the quality of the air and remind yourself when it's time to open the window and get some fresh air in.

Parts and Tools

BME680.jpg
OLED.jpg
ESP8266.jpg
dupont.jpg
Parts

Tools

Soldering iron

Wiring Diagram

ESP8266_BME680png.png

Wiring Diagram

The Code

kisspng-arduino-computer-software-library-electronics-arduino-logo-5b4beae2df7ab1.6638086415317019869154.jpg

The code is available here: https://github.com/zangaby/ESP8266_BME680_air_quality

Based on https://github.com/3KUdelta/heltec_wifi_kit_32_BM...

Calculates IAQ with a BME680 sensor.

Reading of raw temperature, humidity and gas resistance Allow offset for temperature calibration Automatically calculate respective humidity using the August-Roche-Magnus approximation Calculate IAQ from temperature, humidity and gas resistance following Dr. Julie Riggs, The IAQ Rating Index, www.iaquk.org.uk

Code for those who are interested in using a BME680 sensor via I2C and Adafruit libraries to calculate IAQ without the proprietary libraries from Bosch.

Adafruit´s library: This is a library for the BME280 humidity, temperature & pressure sensor Designed specifically to work with the Adafruit BME280 Breakout ----> www.iaquk.org.uk These sensors use I2C or SPI to communicate, 2 or 4 pins are required to interface. The device's I2C address is either 0x76 or 0x77. Adafruit invests time and resources providing this open source code, please support Adafruit andopen-source hardware by purchasing products from Adafruit! Written by Limor Fried & Kevin Townsend for Adafruit Industries. BSD license, all text above must be included in any redistribution

Libraries needed:

ThingPulse SSD1306 (https://github.com/ThingPulse/esp8266-oled-ssd1306)

General Adafruit Sensor (Arduino Library Manager)

Adafruit BME680 (Arduino Library Manager)

SoftwWire Steve Marple (Arduino Library Manager)

AsyncDelay Steve Marple (Arduino Library Manager)

Connect Everything

box.jpg
wire.jpeg

OLED
VCC - 3.3v

GND - GND

SCL - D1

SDA - D2

BME680

VCC - 3.3v

GND - GND

SCL - D1

SDA - D2

Since both the sensor and the OLED are connected using I2C, they are connected to the same pins. In order to do that you can cut a dupont cable in half, and solder the cables to have some Y shaped cables.

​Further Ideas

idea.jpeg

Further Ideas

  • Send the data to MQTT/Blink/Thingspeak
  • Add a battery

Hope you enjoyed this project and if you have any questions feel free to ask.

Thank you for reading!