#include #include #include #include #include #include #include "i2c_scan.h" #include "veml.h" #include "board.h" #include "bringup.h" using namespace ocularium; static Adafruit_BME680 bme(&Wire1); static VEML lux(Wire1); #define SCAN_I2C 0 #define SDCARD_SPI SD_SPI static SDClass sd; static bringup::init_check STARTUP_CHECKS[] = { { .name = String("bme680"), .f = [] { return bme.begin(BME_ADDR); }, .succeeded = false, }, { .name = String("veml7700"), .f = []{ return lux.init(veml::Config { .gain = veml::AmbientLightGain::Quarter, }); }, .succeeded = false, } }; void setup() { Serial.begin(115200); Serial.println("boot"); bringup::init_buses(); bringup::init_pins(); #if SCAN_I2C Serial.println("scanning..."); scan(Wire1); #endif bringup::startup_checks(STARTUP_CHECKS); Serial.println("sensors initialized"); bringup::boot_animation(); delay(100); digitalWrite(LED_CAPTURING, HIGH); } void loop() { static uint32_t bme_target_millis = 0; if (millis() >= bme_target_millis) { if (bme_target_millis != 0 && !bme.endReading()) { Serial.println("bme read error!"); } bme_target_millis = bme.beginReading(); } Serial.print("lux: " + String(lux.lux())); Serial.print(", temp: " + String(bme.temperature)); Serial.print(", hum: " + String(bme.humidity)); Serial.print(", pres: " + String(bme.pressure)); Serial.print(", gas: " + String(bme.gas_resistance)); Serial.println(); delay(100); }