The SGP30 is a digital multipixel gas sensor designed for easy integration. The SGP30 is a complete sensor on a single chip an integrated i2c data interface with a temperature controlled micro hotplate and two preprocessed indoor air quality signal that includes a metal-oxide gas sensor in a multiple sensing element on a SMD package, the SGP30 delivers more detailed data about air quality typical and maximum accuracy tolerance in percent of measured value at 25 degree Celsius.
The contamination gases preset in real world application enabling a unique long-term stability and low drift. The SGP30 can be integrated into air purifier, controlled ventilation, handheld devices for special purpose, and IOT applications. For more technical details please refer to the datasheet below.
Required Components
- Arduino IDE | Atmel Studio | Energia | Processing
- Sony SPRESENSE Dev Board, Arduino PRO, FIO, NANO, UNO, MINI, MEGA, PRO MINI, LEO, BT, DUE, ETHERNET,LILYPAD, NodeMCU, Teensy Board, TeensyDuino, ESP8266 12, 12E, ESP32, LinkItOne, ESP8266 NodeMCU, ESPDuino, ATMEGA328 16/12, ATMEGA32u4 16/8/ MHz, ESP8266, MSP430 ,ATMEGA250 16 MHz, ATSAM3x8E, STM32.
- If your working with Sony SPRESENSE Please refer to this link
- Note: For AVR (please see the flash size of the MCU and respective pin-outs & bus configuration )
- Note: The Diagram below is using ATMEGA328TQFP. (please refer to each MCU’s respective pin-outs & bus configuration)
- SGP30 Sensor /Module
- Capacitors (See below required value)
- Resistors (See below required value)
- Regulators (See below required value)
- TTL USB UART (Optional if your using s MCU USB/UART integrated)
- PCB Designer (Circuit simulation to PCB Layout / Circuitmaker / Fritzing )
Wiring Guide
Source Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <sensirion_ess.h> SensirionESS SGP; void setup() { Serial.begin(9600); Serial.println("14CORE | SGP30 TEST CODE"); Serial.println("Initializing............"); ) delay(2000); SGP.initSensors(); } void loop() { SGP.measureIAQ(); SGP.measureRHT(); Serial.print(SGP.getTemperature()); Serial.print(" "); Serial.print(SGP.getHumidity()); Serial.print(" "); Serial.print(SGP.getTVOC()); Serial.print(" "); if (SGP.getProductType() == SensirionESS::PRODUCT_TYPE_SGP30) { Serial.print(SGP.getECO2()); } Serial.print("\n"); delay(SGP.remainingWaitTimeMS()); } |