#include #include #include #include #include #define SDA_GPIO 32 #define SCL_GPIO 33 void bmp280_test(void *pvParamters) { bmp280_params_t params; bmp280_init_default_params(¶ms); bmp280_t dev; esp_err_t res; printf("i2cdev_init\n"); while (i2cdev_init() != ESP_OK) { printf("Could not init I2Cdev library\n"); vTaskDelay(250 / portTICK_PERIOD_MS); } printf("bmp280_init_desc\n"); while (bmp280_init_desc(&dev, BMP280_I2C_ADDRESS_0, 0, SDA_GPIO, SCL_GPIO) != ESP_OK) { printf("Could not init device descriptor\n"); vTaskDelay(250 / portTICK_PERIOD_MS); } printf("bmp280_init\n"); while ((res = bmp280_init(&dev, ¶ms)) != ESP_OK) { printf("Could not init BMP280, err: %d\n", res); vTaskDelay(250 / portTICK_PERIOD_MS); } bool bme280p = dev.id == BME280_CHIP_ID; printf("BMP280: found %s\n", bme280p ? "BME280" : "BMP280"); float pressure, temperature, humidity; while (1) { vTaskDelay(500 / portTICK_PERIOD_MS); if (bmp280_read_float(&dev, &temperature, &pressure, &humidity) != ESP_OK) { printf("Temperature/pressure reading failed\n"); continue; } printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); if (bme280p) printf(", Humidity: %.2f\n", humidity); else printf("\n"); } } void app_main(void) { xTaskCreatePinnedToCore(bmp280_test, "bmp280_test", configMINIMAL_STACK_SIZE * 8, NULL, 5, NULL, APP_CPU_NUM); }