Der Multi-Gassensor SGP30 (hier auf einem Board) kann mittels eines Metalloxid(MOX)-Halbleiter-Gassensorelements flüchtige organische Verbindungen (TVOC), äquivalent berechnete Kohlendioxid-Konzentration (eCO2) messen. Darüber hinaus misst er Ethanol bzw. H2-Konzentration zwischen 0 und 1000 ppm.
0x58
)Pin | Beschreibung | Arduino Uno |
---|---|---|
VIN | Spannungsversorgung 5V | 5V |
GND | Masse/0V | GND |
SCL | "Serial clock" (I²C-Anschluss) | A5 |
SDA | "Serial data" (I²C-Anschluss) | A4 |
Die folgenden Messungen werden mir der Library RobTillaart/SGP30 durchgeführt:
#include "SGP30.h"
SGP30 SGP;
void setup()
{
SGP.begin();
SGP.GenericReset();
Serial.begin(9600);
Serial.println("TVOC\teCO2\tH2\tETH");
}
void loop()
{
SGP.measure(true);
Serial.print(SGP.getTVOC());
Serial.print("\t");
Serial.print(SGP.getCO2());
Serial.print("\t");
Serial.print(SGP.getH2());
Serial.print("\t");
Serial.println(SGP.getEthanol());
delay(500);
}
Die folgenden Messungen werden mir der Library Adafruit_SGP30 durchgeführt:
#include <Wire.h>
#include "Adafruit_SGP30.h"
Adafruit_SGP30 sgp;
int counter = 0;
void setup()
{
Serial.begin(9600);
if (!sgp.begin()) {
Serial.println("Sensor not found!");
while (true);
}
}
void loop()
{
if (!sgp.IAQmeasure()) {
Serial.println("Measurement failed");
return;
}
if (!sgp.IAQmeasureRaw()) {
Serial.println("Raw Measurement failed");
return;
}
Serial.print("TVOC=" + String(sgp.TVOC) + "ppb - ");
Serial.print("eCO2=" + String(sgp.eCO2) + "ppm - ");
Serial.print("H2=" + String(sgp.rawH2) + " - ");
Serial.println("ETH=" + String(sgp.rawEthanol));
counter++;
if (counter == 10) {
counter = 0;
uint16_t TVOC_base, eCO2_base;
if (!sgp.getIAQBaseline(&eCO2_base, &TVOC_base)) {
Serial.println("Failed to get baseline readings");
return;
}
Serial.println("--------------------------------------------------");
Serial.print("Baseline values:\neCO2: 0x");
Serial.println(eCO2_base, HEX);
Serial.print("TVOC: 0x");
Serial.println(TVOC_base, HEX);
Serial.println("--------------------------------------------------");
}
delay(1000);
}
Nach kurzer Zeit des Betriebs erreicht das Zentrum des SGP30-Sensors eine Temperatur von über 80°C:
Unabhägig vom SGP30 wird der USB/Seriell-Wandler (MEGA16U2) durch die intensive Verwendung der seriellen Schnittstelle auch warm:
zurück