sgp30test.ino 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <Wire.h>
  2. #include "Adafruit_SGP30.h"
  3. Adafruit_SGP30 sgp;
  4. void setup() {
  5. Serial.begin(9600);
  6. Serial.println("SGP30 test");
  7. if (! sgp.begin()){
  8. Serial.println("Sensor not found :(");
  9. while (1);
  10. }
  11. Serial.print("Found SGP30 serial #");
  12. Serial.print(sgp.serialnumber[0], HEX);
  13. Serial.print(sgp.serialnumber[1], HEX);
  14. Serial.println(sgp.serialnumber[2], HEX);
  15. // If you have a baseline measurement from before you can assign it to start, to 'self-calibrate'
  16. //sgp.setIAQBaseline(0x8E68, 0x8F41); // Will vary for each sensor!
  17. }
  18. int counter = 0;
  19. void loop() {
  20. if (! sgp.IAQmeasure()) {
  21. Serial.println("Measurement failed");
  22. return;
  23. }
  24. Serial.print("TVOC "); Serial.print(sgp.TVOC); Serial.print(" ppb\t");
  25. Serial.print("eCO2 "); Serial.print(sgp.eCO2); Serial.println(" ppm");
  26. delay(1000);
  27. counter++;
  28. if (counter == 30) {
  29. counter = 0;
  30. uint16_t TVOC_base, eCO2_base;
  31. if (! sgp.getIAQBaseline(&eCO2_base, &TVOC_base)) {
  32. Serial.println("Failed to get baseline readings");
  33. return;
  34. }
  35. Serial.print("****Baseline values: eCO2: 0x"); Serial.print(eCO2_base, HEX);
  36. Serial.print(" & TVOC: 0x"); Serial.println(TVOC_base, HEX);
  37. }
  38. }