| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include <Wire.h>
- #include "Adafruit_SGP30.h"
- Adafruit_SGP30 sgp;
- void setup() {
- Serial.begin(9600);
- Serial.println("SGP30 test");
- if (! sgp.begin()){
- Serial.println("Sensor not found :(");
- while (1);
- }
- Serial.print("Found SGP30 serial #");
- Serial.print(sgp.serialnumber[0], HEX);
- Serial.print(sgp.serialnumber[1], HEX);
- Serial.println(sgp.serialnumber[2], HEX);
- // If you have a baseline measurement from before you can assign it to start, to 'self-calibrate'
- //sgp.setIAQBaseline(0x8E68, 0x8F41); // Will vary for each sensor!
- }
- int counter = 0;
- void loop() {
- if (! sgp.IAQmeasure()) {
- Serial.println("Measurement failed");
- return;
- }
- Serial.print("TVOC "); Serial.print(sgp.TVOC); Serial.print(" ppb\t");
- Serial.print("eCO2 "); Serial.print(sgp.eCO2); Serial.println(" ppm");
- delay(1000);
- counter++;
- if (counter == 30) {
- counter = 0;
- uint16_t TVOC_base, eCO2_base;
- if (! sgp.getIAQBaseline(&eCO2_base, &TVOC_base)) {
- Serial.println("Failed to get baseline readings");
- return;
- }
- Serial.print("****Baseline values: eCO2: 0x"); Serial.print(eCO2_base, HEX);
- Serial.print(" & TVOC: 0x"); Serial.println(TVOC_base, HEX);
- }
- }
|