diff --git a/README.md b/README.md index c647e90..73c6279 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,7 @@ If you have any questions or problems, check out [our forum](https://forum.airgr - [Sensirion Gas Index Algorithm](https://github.com/Sensirion/arduino-gas-index-algorithm) - [Sensirion Core](https://github.com/Sensirion/arduino-core/) - [Sensirion I2C SGP41](https://github.com/Sensirion/arduino-i2c-sgp41) -- [Sensirion I2C SHT4x](https://github.com/Sensirion/arduino-i2c-sht4x) -- [Sensirion I2C SHT3x](https://github.com/Sensirion/arduino-i2c-sht3x) +- [Sensirion I2C SHT](https://github.com/Sensirion/arduino-sht) - [PMS](https://github.com/fu-hsi/pms) ## License diff --git a/examples/BASIC_v4/BASIC_v4.ino b/examples/BASIC_v4/BASIC_v4.ino index a967c6b..8fdedca 100644 --- a/examples/BASIC_v4/BASIC_v4.ino +++ b/examples/BASIC_v4/BASIC_v4.ino @@ -51,7 +51,7 @@ CC BY-SA 4.0 Attribution-ShareAlike 4.0 International License #define SENSOR_CO2_UPDATE_INTERVAL 5000 /** ms */ #define SENSOR_PM_UPDATE_INTERVAL 5000 /** ms */ #define SENSOR_TEMP_HUM_UPDATE_INTERVAL 5000 /** ms */ -#define DISPLAY_DELAY_SHOW_CONTENT_MS 6000 /** ms */ +#define DISPLAY_DELAY_SHOW_CONTENT_MS 2000 /** ms */ #define WIFI_HOTSPOT_PASSWORD_DEFAULT \ "cleanair" /** default WiFi AP password \ */ @@ -389,6 +389,7 @@ void setup() { /** Init I2C */ Wire.begin(ag.getI2cSdaPin(), ag.getI2cSclPin()); + delay(1000); /** Board init */ boardInit(); @@ -423,7 +424,7 @@ void setup() { Serial.println("Device id: " + id); String id1 = id.substring(0, 9); String id2 = id.substring(9, 12); - ag.display.setText("\'"+ id1); + ag.display.setText("\'" + id1); ag.display.setCursor(1, 40); ag.display.setText(id2 + "\'"); ag.display.show(); @@ -505,7 +506,7 @@ void connectToWifi() { static void boardInit(void) { /** Init SHT sensor */ - if (ag.sht4x.begin(Wire) == false) { + if (ag.sht.begin(Wire) == false) { failedHandler("SHT init failed"); } @@ -584,11 +585,14 @@ void pmPoll() { } static void tempHumPoll() { - temp = ag.sht4x.getTemperature(); - hum = ag.sht4x.getRelativeHumidity(); - - Serial.printf("Temperature: %0.2f\r\n", temp); - Serial.printf(" Humidity: %d\r\n", hum); + if (ag.sht.measure()) { + temp = ag.sht.getTemperature(); + hum = ag.sht.getRelativeHumidity(); + Serial.printf("Temperature: %0.2f\r\n", temp); + Serial.printf(" Humidity: %d\r\n", hum); + } else { + Serial.println("Meaure SHT failed"); + } } static void sendDataToServer() { diff --git a/examples/ONE_I-9PSL/ONE_I-9PSL.ino b/examples/ONE_I-9PSL/ONE_I-9PSL.ino index cc08eb9..a2ba33c 100644 --- a/examples/ONE_I-9PSL/ONE_I-9PSL.ino +++ b/examples/ONE_I-9PSL/ONE_I-9PSL.ino @@ -491,6 +491,7 @@ void setup() { /** Init I2C */ Wire.begin(ag.getI2cSdaPin(), ag.getI2cSclPin()); + delay(1000); /** Display init */ u8g2.begin(); @@ -505,9 +506,7 @@ void setup() { /** Init AirGradient server */ agServer.begin(); - - - /** Run LED test on start up */ + /** Run LED test on start up */ displayShowText("Press now for", "LED test", ""); bool test = false; uint32_t stime = millis(); @@ -525,8 +524,8 @@ void setup() { if (test) { ledTest(); } else { - /** WIFI connect */ - connectToWifi(); + /** WIFI connect */ + connectToWifi(); } /** @@ -716,7 +715,6 @@ static void displayShowDashboard(String err) { u8g2.setFont(u8g2_font_t0_16_tf); if ((err == NULL) || err.isEmpty()) { - /** Show temperature */ if (agServer.isTemperatureUnitF()) { if (temp > -10001) { @@ -753,36 +751,35 @@ static void displayShowDashboard(String err) { if (err == "WiFi N/A") { u8g2.setFont(u8g2_font_t0_12_tf); - if (agServer.isTemperatureUnitF()) { - if (temp > -10001) { - float tempF = (temp * 9 / 5) + 32; - sprintf(strBuf, "%.1f", tempF); - } else { - sprintf(strBuf, "-"); - } - u8g2.drawUTF8(1, 10, strBuf); - } else { - if (temp > -10001) { - sprintf(strBuf, "%.1f", temp); - } else { - sprintf(strBuf, "-"); - } - u8g2.drawUTF8(1, 10, strBuf); - } + if (agServer.isTemperatureUnitF()) { + if (temp > -10001) { + float tempF = (temp * 9 / 5) + 32; + sprintf(strBuf, "%.1f", tempF); + } else { + sprintf(strBuf, "-"); + } + u8g2.drawUTF8(1, 10, strBuf); + } else { + if (temp > -10001) { + sprintf(strBuf, "%.1f", temp); + } else { + sprintf(strBuf, "-"); + } + u8g2.drawUTF8(1, 10, strBuf); + } - /** Show humidity */ - if (hum >= 0) { - sprintf(strBuf, "%d%%", hum); - } else { - sprintf(strBuf, " -%%"); - } - if (hum > 99) { - u8g2.drawStr(97, 10, strBuf); - } else { - u8g2.drawStr(105, 10, strBuf); - } - - } + /** Show humidity */ + if (hum >= 0) { + sprintf(strBuf, "%d%%", hum); + } else { + sprintf(strBuf, " -%%"); + } + if (hum > 99) { + u8g2.drawStr(97, 10, strBuf); + } else { + u8g2.drawStr(105, 10, strBuf); + } + } } /** Draw horizontal line */ @@ -1051,7 +1048,7 @@ static void boardInit(void) { } /** INit SHT */ - if (ag.sht4x.begin(Wire) == false) { + if (ag.sht.begin(Wire) == false) { failedHandler("Init SHT failed"); } @@ -1067,7 +1064,6 @@ static void boardInit(void) { if (ag.pms5003.begin(Serial0) == false) { failedHandler("Init PMS5003 failed"); } - } /** @@ -1510,9 +1506,14 @@ static void sendDataToServer(void) { * @brief Update temperature and humidity value */ static void tempHumPoll(void) { - temp = ag.sht4x.getTemperature(); - hum = ag.sht4x.getRelativeHumidity(); + if (ag.sht.measure()) { - Serial.printf("Temperature: %0.2f\r\n", temp); - Serial.printf(" Humidity: %d\r\n", hum); + temp = ag.sht.getTemperature(); + hum = ag.sht.getRelativeHumidity(); + + Serial.printf("Temperature: %0.2f\r\n", temp); + Serial.printf(" Humidity: %d\r\n", hum); + } else { + Serial.println("Measure SHT failed"); + } } diff --git a/examples/Open_Air_O/Open_Air_O.ino b/examples/Open_Air_O/Open_Air_O.ino index ad1875e..9bfeac2 100644 --- a/examples/Open_Air_O/Open_Air_O.ino +++ b/examples/Open_Air_O/Open_Air_O.ino @@ -93,7 +93,7 @@ enum { #define SENSOR_CO2_UPDATE_INTERVAL 5000 /** ms */ #define SENSOR_PM_UPDATE_INTERVAL 5000 /** ms */ #define SENSOR_TEMP_HUM_UPDATE_INTERVAL 5000 /** ms */ -#define DISPLAY_DELAY_SHOW_CONTENT_MS 6000 /** ms */ +#define DISPLAY_DELAY_SHOW_CONTENT_MS 2000 /** ms */ #define WIFI_HOTSPOT_PASSWORD_DEFAULT \ "cleanair" /** default WiFi AP password \ */ diff --git a/examples/TestESP32/TestESP32.ino b/examples/TestESP32/TestESP32.ino deleted file mode 100644 index 1bd7ba5..0000000 --- a/examples/TestESP32/TestESP32.ino +++ /dev/null @@ -1,369 +0,0 @@ -#include -#include -#include - -/** - * AirGradient use ESP32C3 has default Serial0 use for PMS5003, to print log - * should use esp-hal-log instead. - */ -#include - -/** - * @brief Define test board - */ -#define TEST_OPEN_AIR_OUTDOOR 0 -#define TEST_ONE_INDOOR 1 -/** - * @brief Define test sensor - */ -#define TEST_SENSOR_SenseAirS8 0 -#define TEST_SENSOR_SHT4x 0 -#define TEST_SENSOR_SGP4x 0 -#define TEST_SWITCH 0 -#define TEST_OLED 0 -#if TEST_OPEN_AIR_OUTDOOR -#define TEST_STATUS_LED 0 -#define TEST_PMS5003T 1 -#endif -#define TEST_WATCHDOG 1 - -#if TEST_ONE_INDOOR -#define TEST_LED_BAR 1 -#define TEST_SENSOR_PMS5003 0 -#endif - -#if TEST_OPEN_AIR_OUTDOOR -AirGradient ag(OPEN_AIR_OUTDOOR); -#elif TEST_ONE_INDOOR -AirGradient ag(ONE_INDOOR); -#else -#error "Must enable board test -#endif - -void setup() { - - /** Print All AirGradient board define */ - printBoardDef(NULL); - -#if TEST_SENSOR_SenseAirS8 - /** Cause Serial is use default for PMS, CO2S8 should be use Serial 1 - * Serial 1 will be init by SenseAirS8 don't need to init any more on user - * code - */ - if (ag.s8.begin(Serial1)) { - log_i("CO2S8 sensor init success"); - } else { - log_i("CO2S8 sensor init failure"); - } - - log_i("Start baseline calib"); - if (ag.s8.setBaselineCalibration()) { - log_i("Calib success"); - } else { - log_e("Calib failure"); - } - delay(5000); // Wait for calib done -#endif - -#if TEST_SENSOR_PMS5003 - if (ag.pms5003.begin(Serial0)) { - log_i("PMS5003 sensor init success"); - } else { - log_i("PMS5003 sensor init failure"); - } -#endif - -#if TEST_PMS5003T - /** - * @brief PMS5003T_1 alway connect to Serial (esp32c3 RXD0, RXD0) - */ - if (ag.pms5003t_1.begin(Serial)) { - log_i("PMS5003T_1 sensor init success"); - } else { - log_i("PMS5003T_1 sensor init failure"); - } - - // TODO Only test without senseair s8 because it's share the UART bus -#if TEST_SENSOR_SenseAirS8 == 0 - if (ag.pms5003t_2.begin(Serial1)) { - log_i("PMS5003T_2 sensor init success"); - } else { - log_i("PMS5003T_2 sensor init failure"); - } -#endif -#endif - -#if TEST_SENSOR_SHT4x || TEST_SENSOR_SGP4x || TEST_OLED - Wire.begin(ag.getI2cSdaPin(), ag.getI2cSclPin()); -#endif - -#if TEST_SENSOR_SHT4x - - if (ag.sht4x.begin(Wire)) { - log_i("SHT init success"); - } else { - log_i("SHT init failed"); - } -#endif - -#if TEST_SENSOR_SGP4x - if (ag.sgp41.begin(Wire)) { - log_i("SGP init success"); - } else { - log_e("SGP init failure"); - } -#endif - -#if TEST_LED - led.begin(); -#endif - -#if TEST_SWITCH - ag.button.begin(); -#endif - -#if TEST_OLED - ag.display.begin(Wire); - ag.display.setTextSize(1); - ag.display.setCursor(0, 0); - ag.display.setTextColor(1); - ag.display.setText("180s to connect to wifi hostpost AC-xxxxx"); - ag.display.show(); -#endif - -#if TEST_STATUS_LED - ag.statusLed.begin(); -#endif - -#if TEST_LED_BAR - ag.ledBar.begin(); -#endif - -#if TEST_WATCHDOG - ag.watchdog.begin(); -#endif -} - -void loop() { - uint32_t ms; -#if TEST_SENSOR_SenseAirS8 - static uint32_t lastTime = 0; - - /** Wait for sensor ready */ - ms = (uint32_t)(millis() - lastTime); - if (ms >= 1000) { - lastTime = millis(); - log_i("CO2: %d (PPM)", ag.s8.getCo2()); - } -#endif - -#if TEST_SENSOR_PMS5003 - static uint32_t pmsTime = 0; - ms = (uint32_t)(millis() - pmsTime); - - if (ms >= 1000) { - pmsTime = millis(); - if (ag.pms5003.readData()) { - log_i("Passive mode PM 1.0 (ug/m3): %d", ag.pms5003.getPm10Ae()); - log_i("Passive mode PM 2.5 (ug/m3): %d", ag.pms5003.getPm25Ae()); - log_i("Passive mode PM 10.0 (ug/m3): %d", ag.pms5003.getPm10Ae()); - } else { - log_i("PMS sensor read failure"); - } - } -#endif - -#if TEST_PMS5003T - static uint32_t pmsTime = 0; - ms = (uint32_t)(millis() - pmsTime); - - if (ms >= 1000) { - pmsTime = millis(); - if (ag.pms5003t_1.readData()) { - log_i("PMS5003_1 PM 1.0 (ug/m3): %d", ag.pms5003t_1.getPm10Ae()); - log_i("PMS5003_1 PM 2.5 (ug/m3): %d", ag.pms5003t_1.getPm25Ae()); - log_i("PMS5003_1 PM 10.0 (ug/m3): %d", ag.pms5003t_1.getPm10Ae()); - log_i("PMS5003_1 PM 3.0 (ug/m3): %d", - ag.pms5003t_1.getPm03ParticleCount()); - log_i("Temperature : %02f °C", - ag.pms5003t_1.getTemperature()); - log_i("Humidity : %02f %%", - ag.pms5003t_1.getRelativeHumidity()); - } else { - log_i("PMS5003_1 sensor read failure"); - } - - if (ag.pms5003t_2.readData()) { - log_i("PMS5003_2 PM 1.0 (ug/m3): %d", ag.pms5003t_2.getPm10Ae()); - log_i("PMS5003_2 PM 2.5 (ug/m3): %d", ag.pms5003t_2.getPm25Ae()); - log_i("PMS5003_2 PM 10.0 (ug/m3): %d", ag.pms5003t_2.getPm10Ae()); - log_i("PMS5003_2 PM 3.0 (ug/m3): %d", - ag.pms5003t_2.getPm03ParticleCount()); - // log_i("Temperature : %02f °C", - // ag.pms5003t_1.getTemperature()); - // log_i("Humidity : %02f %%", - // ag.pms5003t_1.getRelativeHumidity()); - } else { - log_i("PMS5003_2 sensor read failure"); - } - } -#endif - -#if TEST_SENSOR_SHT4x - /** - * @brief Get SHT sensor data each 1sec - * - */ - static uint32_t shtTime = 0; - ms = (uint32_t)(millis() - shtTime); - if (ms >= 1000) { - shtTime = millis(); - log_i("Get sht4x temperature: %0.2f (degree celsius)", - ag.sht4x.getTemperature()); - log_i("Get sht4x temperature: %0.2f (%%)", ag.sht4x.getRelativeHumidity()); - } -#endif - -#if TEST_SENSOR_SGP4x - static uint32_t sgpTime; - ms = (uint32_t)(millis() - sgpTime); - if (ms >= 1000) { - sgpTime = millis(); - uint16_t rawVOC; - log_i("Get TVOC: %d", ag.sgp41.getTvocIndex()); - log_i("Get NOx: %d", ag.sgp41.getNoxIndex()); - } -#endif - -#if TEST_LED - static uint32_t ledTime; -#if TEST_OPEN_AIR_OUTDOOR - // ms = (uint32_t)(millis() - ledTime); - // if(ms >= 500) - // { - // ledTime = millis(); - // led.ledToggle(); - // } -#elif TEST_ONE_INDOOR - - static int ledIndex; - static int ledIndexOld; - ms = (uint32_t)(millis() - ledTime); - if (ms >= 50) { - ledTime = millis(); - if (ledIndex == ledIndexOld) { - led.ledOff(); - } else { - // Turn last LED off - led.ledSetColor(0, 0, 0, ledIndexOld); - } - - // Turn new led ON - led.ledSetColor(255, 0, 0, ledIndex); - ledIndexOld = ledIndex; - ledIndex++; - if (ledIndex >= led.getNumberOfLeds()) { - ledIndex = 0; - } - } -#else -#endif - -#endif - -#if TEST_SWITCH - static PushButton::State stateOld = PushButton::State::BUTTON_RELEASED; - PushButton::State state = ag.button.getState(); - if (state != stateOld) { - stateOld = state; - log_i("Button state changed: %s", ag.button.toString(state).c_str()); - if (state == PushButton::State::BUTTON_PRESSED) { - ag.statusLed.setOn(); - } else { - ag.statusLed.setOff(); - } - } -#endif - -#if TEST_LED_BAR - static uint32_t ledTime; - static uint8_t ledNum = 0; - static uint8_t ledIndex = 0; - static uint8_t ledStep = 0; - static bool ledOn = false; - - if (ledNum == 0) { - ledNum = ag.ledBar.getNumberOfLeds(); - log_i("Get number of led: %d", ledNum); - if (ledNum) { - ag.ledBar.setBrighness(0xff); - for (int i = 0; i < ledNum; i++) { - // ag.ledBar.setColor(0xff, 0xff, 0xff, i); - // ag.ledBar.setColor(204, 136, 153, i); - // ag.ledBar.setColor(204, 0, 0, i); - // ag.ledBar.setColor(204, 100, 153, i); - ag.ledBar.setColor(0, 136, 255, i); - } - ag.ledBar.show(); - } - } else { - ms = (uint32_t)(millis() - ledTime); - if (ms >= 500) { - ledTime = millis(); - switch (ledStep) { - case 0: { - ag.ledBar.setColor(255, 0, 0, ledIndex); - ledIndex++; - if (ledIndex >= ledNum) { - ag.ledBar.setColor(0, 0, 0); - ledIndex = 0; - ledStep = 1; - } - ag.ledBar.show(); - break; - } - case 1: { - ledIndex++; - if (ledIndex >= ledNum) { - ag.ledBar.setColor(255, 0, 0); - ag.ledBar.show(); - ledIndex = ledNum - 1; - ledStep = 2; - } - break; - } - case 2: { - if (ledOn) { - ag.ledBar.setColor(255, 0, 0); - } else { - ag.ledBar.setColor(0, 0, 0); - } - ledOn = !ledOn; - ag.ledBar.show(); - - ledIndex--; - if (ledIndex == 0) { - ag.ledBar.setColor(0, 0, 0); - ag.ledBar.show(); - ledStep = 0; - ledIndex = 0; - } - break; - } - default: - break; - } - } - } -#endif - -#if TEST_WATCHDOG - static uint32_t wdgTime; - ms = (uint32_t)(millis() - wdgTime); - if (ms >= (1000 * 60)) { - wdgTime = millis(); - /** Reset watchdog reach 1 minutes */ - ag.watchdog.reset(); - } -#endif -} diff --git a/examples/TestESP8266/TestESP8266.ino b/examples/TestESP8266/TestESP8266.ino deleted file mode 100644 index dbe4dfe..0000000 --- a/examples/TestESP8266/TestESP8266.ino +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include - -/** - * @brief Define test board - */ -#define TEST_DIY_BASIC 1 - -/** - * @brief Define test sensor - */ -#define TEST_SENSOR_SenseAirS8 1 -// #define S8_BASELINE_CALIB -#define TEST_SENSOR_PMS5003 0 -#define TEST_SENSOR_SHT4x 0 -#define TEST_SENSOR_SGP4x 0 -#define TEST_SWITCH 0 -#define TEST_OLED 0 - -#if TEST_DIY_BASIC -AirGradient ag(DIY_BASIC); -#elif TEST_DIY_PRO_INDOOR_V4_2 -AirGradient ag(DIY_PRO_INDOOR_V4_2); -#else -#error "Board test not defined" -#endif - -void setup() { - Serial.begin(115200); - - /** Print All AirGradient board define */ - printBoardDef(&Serial); - -#if TEST_SENSOR_SenseAirS8 - if (ag.s8.begin(&Serial) == true) { - Serial.println("CO2S8 sensor init success"); - } else { - Serial.println("CO2S8 sensor init failure"); - } - -#ifdef S8_BASELINE_CALIB - if (ag.s8.setBaselineCalibration()) { - Serial.println("Manual calib success"); - } else { - Serial.println("Manual calib failure"); - } -#else - if (ag.s8.setAutoCalib(8)) { - Serial.println("Set auto calib success"); - } else { - Serial.println("Set auto calib failure"); - } -#endif - delay(5000); -#endif - -#if TEST_SENSOR_PMS5003 - if (ag.pms5003.begin(&Serial) == true) { - Serial.println("PMS5003 sensor init success"); - } else { - Serial.println("PMS5003 sensor init failure"); - } -#endif - -#if TEST_SENSOR_SHT4x || TEST_SENSOR_SGP4x || TEST_OLED - Wire.begin(ag.getI2cSdaPin(), ag.getI2cSclPin()); -#endif - -#if TEST_SENSOR_SHT4x - if (ag.sht4x.begin(Wire, Serial)) { - Serial.println("SHT init success"); - } else { - Serial.println("SHT init failed"); - } -#endif - -#if TEST_SENSOR_SGP4x - if (ag.sgp41.begin(Wire, Serial)) { - Serial.println("SGP init succses"); - } else { - Serial.println("SGP init failure"); - } -#endif - -#if TEST_SWITCH - ag.button.begin(Serial); -#endif - -#if TEST_OLED - ag.display.begin(Wire, Serial); - ag.display.setTextSize(1); - ag.display.setCursor(0, 0); - ag.display.setTextColor(1); - ag.display.setText("Hello"); - ag.display.show(); -#endif -} - -void loop() { - uint32_t ms; -#if TEST_SENSOR_SenseAirS8 - static uint32_t lastTime = 0; - - /** Wait for sensor ready */ - // if(co2s8.isReady()) - // { - // Get sensor data each 1sec - ms = (uint32_t)(millis() - lastTime); - if (ms >= 1000) { - lastTime = millis(); - Serial.printf("CO2: %d (PMM)\r\n", ag.s8.getCo2()); - } - // } -#endif - -#if TEST_SENSOR_PMS5003 - static uint32_t pmsTime = 0; - ms = (uint32_t)(millis() - pmsTime); - if (ms >= 1000) { - pmsTime = millis(); - if (ag.pms5003.readData()) { - Serial.printf("Passive mode PM 1.0 (ug/m3): %d\r\n", - ag.pms5003.getPm01Ae()); - Serial.printf("Passive mode PM 2.5 (ug/m3): %d\r\n", - ag.pms5003.getPm25Ae()); - Serial.printf("Passive mode PM 10.5 (ug/m3): %d\r\n", - ag.pms5003.getPm10Ae()); - } - } -#endif - -#if TEST_SENSOR_SHT4x - /** - * @brief Get SHT sensor data each 1sec - * - */ - static uint32_t shtTime = 0; - ms = (uint32_t)(millis() - shtTime); - if (ms >= 1000) { - shtTime = millis(); - float temperature, humidity; - Serial.printf("SHT Temperature: %f, Humidity: %f\r\n", - ag.sht4x.getTemperature(), ag.sht4x.getRelativeHumidity()); - } -#endif - -#if TEST_SENSOR_SGP4x - static uint32_t sgpTime; - ms = (uint32_t)(millis() - sgpTime); - - /*** - * Must call this task on loop and avoid delay on loop over 1000 ms - */ - ag.sgp41.handle(); - - if (ms >= 1000) { - sgpTime = millis(); - Serial.printf("SGP TVOC: %d, NOx: %d\r\n", ag.sgp41.getTvocIndex(), - ag.sgp41.getNoxIndex()); - } -#endif - -#if TEST_SWITCH - static PushButton::State stateOld = PushButton::State::BUTTON_RELEASED; - PushButton::State state = ag.button.getState(); - if (state != stateOld) { - stateOld = state; - Serial.printf("Button state changed: %s\r\n", - ag.button.toString(state).c_str()); - } -#endif -} diff --git a/examples/TestSht/TestSht.ino b/examples/TestSht/TestSht.ino index e9730ec..a45f6d8 100644 --- a/examples/TestSht/TestSht.ino +++ b/examples/TestSht/TestSht.ino @@ -12,9 +12,10 @@ void setup() { Serial.begin(115200); Serial.println("Hello"); Wire.begin(ag.getI2cSdaPin(), ag.getI2cSclPin()); + delay(1000); if (ag.sht.begin(Wire) == false) { - failedHandler("SHT3x init failed"); + failedHandler("SHT init failed"); } }