126 case BoschSensorID::HUMIDITY:
127 bhy2_parse_humidity(data_ptr, &
humidity);
128 Serial.print(
"humidity:"); Serial.print(
humidity); Serial.println(
"%");
130 case BoschSensorID::TEMPERATURE:
131 bhy2_parse_temperature_celsius(data_ptr, &
temperature);
132 Serial.print(
"temperature:"); Serial.print(
temperature); Serial.println(
"*C");
134 case BoschSensorID::BAROMETER:
135 bhy2_parse_pressure(data_ptr, &
pressure);
136 Serial.print(
"pressure:"); Serial.print(
pressure); Serial.println(
"Pa");
138 case BoschSensorID::IAQ: {
140 const float SCALE_IAQ_VOC = 100.0;
141 const float SCALE_IAQ_TEMP = 256.0;
142 const float SCALE_IAQ_HUMI = 500.0;
143 bhi360_event_data_iaq_output_t data{};
144 bhi360_event_data_parse_air_quality(data_ptr, &data);
145 Serial.print(
"ACCU:"); Serial.print(data.iaq_accuracy); Serial.print(
" ");
146 Serial.print(
"IAQ:"); Serial.print(data.iaq); Serial.print(
" ");
147 Serial.print(
"SIAQ:"); Serial.print(data.siaq); Serial.print(
" ");
148 Serial.print(
"VOC:"); Serial.print(data.voc / SCALE_IAQ_VOC); Serial.print(
"ppm ");
149 Serial.print(
"CO2:"); Serial.print(data.co2); Serial.print(
"ppm ");
150 Serial.print(
"Temperature:"); Serial.print(data.comp_temperature / SCALE_IAQ_TEMP); Serial.print(
"*C ");
151 Serial.print(
"Humidity:"); Serial.print(data.comp_humidity / SCALE_IAQ_HUMI); Serial.print(
"% ");
152 Serial.print(
"GAS:"); Serial.print(data.raw_gas); Serial.println(
" ohms ");
156 Serial.println(
"Unkown.");
190 Serial.begin(115200);
196 Serial.println(
"Initializing Sensors...");
199 bhy.setFirmware(bosch_firmware_image, bosch_firmware_size);
210#ifdef USE_I2C_INTERFACE
215 Serial.print(
"Failed to initialize sensor - error code:");
216 Serial.println(
bhy.getError());
223#ifdef USE_SPI_INTERFACE
226 Serial.print(
"Failed to initialize sensor - error code:");
227 Serial.println(
bhy.getError());
234 Serial.println(
"Initializing the sensor successfully!");
237 BoschSensorInfo info =
bhy.getSensorInfo();
240 ArduinoStreamPrinter printer(Serial);
241 info.printInfo(printer);
243 info.printInfo([](
const char *format, ...) ->
int {
245 va_start(args, format);
246 int result = vprintf(format, args);
257#ifdef USING_DATA_HELPER
258 air_quality.enable();
261 float sample_rate = 1.0;
262 uint32_t report_latency_ms = 0;
264 rslt =
bhy.configure(BoschSensorID::IAQ, sample_rate, report_latency_ms);
265 printResult(BoschSensorID::IAQ, sample_rate, rslt);
271#ifdef USING_SENSOR_IRQ_METHOD
288#ifdef USING_SENSOR_IRQ_METHOD
298#ifdef USING_SENSOR_IRQ_METHOD
302#ifdef USING_DATA_HELPER
305 if (air_quality.hasUpdated()) {
306 air_quality.getLastTime(s, ns);
307 Serial.print(
"[T: ");
312 Serial.print(
"TEMP:"); Serial.print(air_quality.getCelsius()); Serial.print(
"°C");
313 Serial.print(
"ACCU:"); Serial.print(air_quality.getIAQAccuracy()); Serial.print(
" ");
314 Serial.print(
"IAQ:"); Serial.print(air_quality.getIAQ()); Serial.print(
" ");
315 Serial.print(
"SIAQ:"); Serial.print(air_quality.getSIAQ()); Serial.print(
" ");
316 Serial.print(
"VOC:"); Serial.print(air_quality.getVOC()); Serial.print(
"ppm ");
317 Serial.print(
"CO2:"); Serial.print(air_quality.getCO2()); Serial.print(
"ppm ");
318 Serial.print(
"HUMI:"); Serial.println(air_quality.getHumidity());
319 Serial.print(
"GAS:"); Serial.print(air_quality.getRawGas()); Serial.print(
" ohms ");