diff --git a/main/main.c b/main/main.c index 52328ad..4ff5058 100644 --- a/main/main.c +++ b/main/main.c @@ -15,6 +15,7 @@ static const char *TAG = "BME280"; /* An HTTP GET handler */ static esp_err_t root_get_handler(httpd_req_t *req); +static esp_err_t bme280_readout_handler(httpd_req_t *req); static httpd_handle_t start_webserver(void); static void stop_webserver(httpd_handle_t server); static void disconnect_handler(void* arg, esp_event_base_t event_base, @@ -28,10 +29,16 @@ static const httpd_uri_t root = { .handler = root_get_handler }; +/* static const httpd_uri_t bme280_url = { */ + /* .uri = "/bme280", */ + /* .method = HTTP_GET, */ + /* .handler = bme280_readout_handler */ +/* }; */ void setup_i2c(void); int8_t init_bme280(void); +int8_t bme280_readout(); extern struct bme280_dev bme280; // from bme280_sup.c void app_main(void) @@ -65,30 +72,30 @@ void app_main(void) int8_t ret = init_bme280(); printf("BME init result %d\n", ret); - int8_t rslt; - uint32_t count = 0; - char msgbuf[128]; - struct bme280_data comp_data; while(1) { // take BME280 readings. - rslt = bme280_set_sensor_mode(BME280_NORMAL_MODE, &bme280); - bme280.delay_ms(40); - rslt = bme280_get_sensor_data(BME280_ALL, &comp_data, &bme280); - if (rslt != BME280_OK) - ESP_LOGI(TAG, "bme280_get_sensor_data() returned %d", rslt); - - snprintf(msgbuf, sizeof(msgbuf), "%.1f C, %0.2f hPa, %0.1f%% (#%04u)", - comp_data.temperature, comp_data.pressure / 100., - comp_data.humidity, count++); - - if (count >= 9999) - count = 0; - - ESP_LOGI(TAG, "%s", msgbuf); + bme280_readout(); vTaskDelay(1600/portTICK_PERIOD_MS); } } +struct bme280_data comp_data; +int8_t bme280_readout(){ + int8_t rslt; + char msgbuf[128]; + rslt = bme280_set_sensor_mode(BME280_NORMAL_MODE, &bme280); + bme280.delay_ms(40); + rslt = bme280_get_sensor_data(BME280_ALL, &comp_data, &bme280); + if (rslt != BME280_OK) + ESP_LOGI(TAG, "bme280_get_sensor_data() returned %d", rslt); + + snprintf(msgbuf, sizeof(msgbuf), "%.1f C, %0.2f hPa, %0.1f%%", + comp_data.temperature, comp_data.pressure / 100., comp_data.humidity); + ESP_LOGI(TAG, "%s", msgbuf); + + return rslt; +} + static esp_err_t root_get_handler(httpd_req_t *req) { httpd_resp_set_type(req, "text/html"); @@ -96,6 +103,26 @@ static esp_err_t root_get_handler(httpd_req_t *req) return ESP_OK; } + +static esp_err_t bme280_readout_handler(httpd_req_t *req) +{ + /* char buffer[128]; */ + httpd_resp_set_type(req, "text/json"); + + /* if (sht31_readTempHum()) { */ + /* float h = sht31_readHumidity(); */ + /* float t = sht31_readTemperature(); */ + /* ESP_LOGI(TAG, "Humidity, Temp(c) : %.f, %.f", h, t); */ + /* sprintf(buffer, "{\"sensor\": \"sht31\", \"values\": { \"humidity\": %f, \"temp\": %f, \"units\": \"celsius\" } }", h, t); */ + /* httpd_resp_send(req, buffer, -1); */ + /* } else { */ + /* ESP_LOGI(TAG, "sht31_readTempHum : failed"); */ + /* httpd_resp_send(req, "{\"error\":\"failed to read sensor\"}", -1); */ + /* } */ + + return ESP_OK; +} + static httpd_handle_t start_webserver(void) { httpd_handle_t server = NULL;