diff -r bdc123ae7b49 -r bb72d448e282 main/iotbalkon.c --- a/main/iotbalkon.c Mon Apr 03 11:08:09 2023 +0200 +++ b/main/iotbalkon.c Mon Apr 03 16:07:34 2023 +0200 @@ -19,6 +19,7 @@ static TaskHandle_t xTaskBMP280 = NULL; static TaskHandle_t xTaskINA219 = NULL; +static TaskHandle_t xTaskAPDS9930 = NULL; static TaskHandle_t xTaskMQTT = NULL; static TaskHandle_t xTaskWifi = NULL; static TaskHandle_t xTaskOUT = NULL; @@ -55,6 +56,9 @@ extern ina219_t ina219_b_dev; extern ina219_t ina219_s_dev; extern INA219_State *ina219_state; +extern SemaphoreHandle_t xSemaphoreAPDS9930; +extern apds9930_t apds9930_dev; +extern APDS9930_State *apds9930_state; extern SemaphoreHandle_t xSemaphoreWiFi; extern WIFI_State *wifi_state; ///< WiFi state @@ -272,6 +276,16 @@ +void getLightValues() { + + request_apds9930(); + + while (! ready_apds9930()) { + vTaskDelay(10 / portTICK_PERIOD_MS); + } +} + + void app_main(void) { uint64_t totalTime, gTimeInMillis; @@ -345,6 +359,7 @@ memset(&bmp280_dev, 0, sizeof(bmp280_t)); memset(&ina219_b_dev, 0, sizeof(ina219_t)); memset(&ina219_s_dev, 0, sizeof(ina219_t)); + memset(&apds9930_dev, 0, sizeof(i2c_dev_t)); i2c_dev_t dev = { 0 }; dev.cfg.sda_io_num = CONFIG_I2C_MASTER_SDA; @@ -354,6 +369,9 @@ dev.addr = 0x39; if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { ESP_LOGI(TAG, "Found ADPS-9930"); + ESP_ERROR_CHECK(apds9930_init_desc(&apds9930_dev, 0x39, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); + ESP_ERROR_CHECK(apds9930_init(&apds9930_dev)); + ESP_LOGI(TAG, "Found APDS-9930 id: 0x%02x", apds9930_dev.id); } dev.addr = 0x40; if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { @@ -386,15 +404,17 @@ */ xSemaphoreBMP280 = xSemaphoreCreateMutex(); xSemaphoreINA219 = xSemaphoreCreateMutex(); + xSemaphoreAPDS9930 = xSemaphoreCreateMutex(); - xTaskCreate(&task_bmp280, "task_bmp280", 2560, NULL, 8, &xTaskBMP280); - xTaskCreate(&task_ina219, "task_ina219", 2560, NULL, 8, &xTaskINA219); - xTaskCreate(&task_out, "task_out", 2560, NULL, 9, &xTaskOUT); + xTaskCreate(&task_bmp280, "task_bmp280", 2560, NULL, 8, &xTaskBMP280); + xTaskCreate(&task_ina219, "task_ina219", 2560, NULL, 8, &xTaskINA219); + xTaskCreate(&task_apds9930, "task_apds9930", 2560, NULL, 8, &xTaskAPDS9930); + xTaskCreate(&task_out, "task_out", 2560, NULL, 9, &xTaskOUT); // esp_log_level_set("MQTT_CLIENT", ESP_LOG_ERROR); - xTaskCreate(&task_mqtt, "task_mqtt", 4096, NULL, 5, &xTaskMQTT); + xTaskCreate(&task_mqtt, "task_mqtt", 4096, NULL, 5, &xTaskMQTT); // esp_log_level_set("wifi", ESP_LOG_ERROR); - xTaskCreate(&task_wifi, "task_wifi", 4096, NULL, 3, &xTaskWifi); + xTaskCreate(&task_wifi, "task_wifi", 4096, NULL, 3, &xTaskWifi); vTaskDelay(10 / portTICK_PERIOD_MS); @@ -414,7 +434,7 @@ switch (State) { case State_Init: getTempBaro(); - // getLightValues(); + getLightValues(); getVoltsCurrent(); State = State_Connect; DisCounter = 0; @@ -587,7 +607,7 @@ gTimeNext = millis() + ST_INTERVAL; if (loopno >= ST_LOOPS) { ESP_LOGI(TAG, "Enough loops, do connect"); - // getLightValues(); + getLightValues(); State = State_Connect; DisCounter = 0; request_WiFi(true);