Added TVOC measurement report.

Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
Yilin Sun 2023-11-06 00:40:53 +08:00
parent 1ee00a9254
commit 69990fb5da
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
2 changed files with 41 additions and 19 deletions

View File

@ -1,9 +1,9 @@
#include <stdint.h>
#include "user_common.h"
#include "impl/user_bme280_impl.h"
#include "tasks/user_task_lvgl_common.h"
#include "tasks/user_task_mqtt_common.h"
#include "user_common.h"
void *user_dht_task(void *arguments);
pthread_t user_dht_task_thread;
@ -38,18 +38,13 @@ void *user_dht_task(void *arguments) {
return NULL;
}
bme280_t bme = {
.cb =
{
.read_register_cb =
(bme280_ret_t(*)(void *, uint8_t, uint8_t *,
uint8_t))user_bme280_impl_read_register_cb,
.write_register_cb = (bme280_ret_t(*)(void *, uint8_t, uint8_t))
user_bme280_impl_write_register_cb,
.delay_cb = (bme280_ret_t(*)(
void *, uint32_t))user_bme280_impl_delay_cb,
},
.user_data = &bme_impl};
bme280_t bme = {.cb =
{
.read_register_cb = (bme280_ret_t(*)(void *, uint8_t, uint8_t *, uint8_t))user_bme280_impl_read_register_cb,
.write_register_cb = (bme280_ret_t(*)(void *, uint8_t, uint8_t))user_bme280_impl_write_register_cb,
.delay_cb = (bme280_ret_t(*)(void *, uint32_t))user_bme280_impl_delay_cb,
},
.user_data = &bme_impl};
bme280_config_t cfg;
@ -80,13 +75,17 @@ void *user_dht_task(void *arguments) {
while(g_running) {
bme280_measure(&bme, &res);
USER_LOG(USER_LOG_DEBUG, "BME: T: %.02f, H: %.02f, P: %.02f%%", res.temperature, res.humidity, res.pressure);
snprintf(temperature_buf, 32, "%.02f", res.temperature);
snprintf(humidity_buf, 32, "%.02f", res.humidity);
snprintf(pressure_buf, 32, "%.02f", res.pressure);
meas_item[0].value = temperature_buf;
meas_item[1].value = humidity_buf;
meas_item[2].value = pressure_buf;
mqtt_influx_publish_measurement(&g_mqtt_influx, &meas);
sleep(1);
}

View File

@ -1,8 +1,9 @@
#include <stdint.h>
#include "user_common.h"
#include "impl/user_ccs811_impl.h"
#include "tasks/user_task_lvgl_common.h"
#include "tasks/user_task_mqtt_common.h"
#include "user_common.h"
void *user_tvoc_task(void *arguments);
pthread_t user_tvoc_task_thread;
@ -34,9 +35,9 @@ void *user_tvoc_task(void *arguments) {
ccs811_t ccs = {
.cb =
{
.write_register_cb = (ccs811_ret_t (*)(void *, uint8_t, uint8_t *, uint8_t))user_ccs811_impl_write_register_cb,
.read_register_cb = (ccs811_ret_t(*)(void *, uint8_t, uint8_t *, uint8_t))user_ccs811_impl_read_register_cb,
.delay_ms_cb = (ccs811_ret_t (*)(void *, uint32_t))user_ccs811_impl_delay_ms_cb,
.write_register_cb = (ccs811_ret_t(*)(void *, uint8_t, uint8_t *, uint8_t))user_ccs811_impl_write_register_cb,
.read_register_cb = (ccs811_ret_t(*)(void *, uint8_t, uint8_t *, uint8_t))user_ccs811_impl_read_register_cb,
.delay_ms_cb = (ccs811_ret_t(*)(void *, uint32_t))user_ccs811_impl_delay_ms_cb,
},
.user_data = &impl,
};
@ -48,10 +49,32 @@ void *user_tvoc_task(void *arguments) {
sleep(1);
}
ccs811_result_t result;
mqtt_influx_measure_t meas;
mqtt_influx_measure_item_t meas_item[2];
char etvoc_buf[32];
char eco2_buf[32];
meas.measurement = "tvoc";
meas.first_item = meas_item;
meas_item[0].key = "tvoc";
meas_item[0].next = &meas_item[1];
meas_item[1].key = "eco2";
meas_item[1].next = NULL;
while(g_running) {
ccs811_result_t result;
ccs811_measure(&ccs, &result);
USER_LOG(USER_LOG_INFO, "CCS: eTVOC: %dppb, eCO2: %dppm", result.tvoc, result.eco2);
USER_LOG(USER_LOG_DEBUG, "CCS: eTVOC: %dppb, eCO2: %dppm", result.tvoc, result.eco2);
snprintf(etvoc_buf, 32, "%u", result.tvoc);
snprintf(eco2_buf, 32, "%u", result.eco2);
meas_item[0].value = etvoc_buf;
meas_item[1].value = eco2_buf;
mqtt_influx_publish_measurement(&g_mqtt_influx, &meas);
sleep(1);
}