Files
yggdrasil/thermo_sensor/main/thermo_sensor.c
T

61 lines
1.8 KiB
C
Raw Normal View History

2026-09-11 10:19:50 +02:00
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <esp_system.h>
#include "nvs_flash.h"
#include "esp_http_server.h"
#include "ygg_http_server.h"
#include "ygg_http_routes.h"
#include "ygg_wifi.h"
#include "ygg_http_server.h"
#include "ygg_bmp280.h"
2026-09-13 18:14:19 +02:00
#include "ygg_http_req.h"
2026-09-15 20:51:07 +02:00
#include "ygg_state.h"
2026-09-11 10:19:50 +02:00
static const char *TAG = "thermo_sensor";
bmp280_t dev_bmp_280;
void main_loop(void *pvParameters) {
while (1) {
ygg_bmp280_read_sensor(&dev_bmp_280);
2026-09-15 20:51:07 +02:00
ygg_send_sensor_readouts(SENSOR_NAME,
CURR_READOUT);
2026-09-17 19:49:23 +02:00
vTaskDelay(pdMS_TO_TICKS(10000));
2026-09-11 10:19:50 +02:00
}
}
void app_main()
{
2026-09-17 19:49:23 +02:00
// NVS - Non-Volatile Storage, this memory stays untouched
// after power off. It is key value memory stored
// in separate partition of flash. It takes about 20kB.
// Here it is not used directly. It is required by WiFi
// driver to store SSID and password.
// NVS is organized into pages. Single page is one flash
// sector - typically 4096B
2026-09-11 10:19:50 +02:00
esp_err_t ret = nvs_flash_init();
2026-09-17 19:49:23 +02:00
2026-09-18 14:20:49 +02:00
if (ret == ESP_ERR_NVS_NO_FREE_PAGES ||
ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
2026-09-17 19:49:23 +02:00
// ESP_ERR_NVS_NEW_VERSION_FOUND - NVS header page is
// stored in newer version (newer IDF) than version
// it is used by this application
2026-09-11 10:19:50 +02:00
ESP_ERROR_CHECK(nvs_flash_erase());
2026-09-17 19:49:23 +02:00
ESP_ERROR_CHECK(nvs_flash_init());
2026-09-11 10:19:50 +02:00
}
2026-09-17 19:49:23 +02:00
ygg_wifi_init_sta();
2026-09-11 10:19:50 +02:00
httpd_handle_t server = ygg_start_webserver();
httpd_register_uri_handler(server, &ygg_temp_uri);
2026-09-11 13:34:55 +02:00
httpd_register_uri_handler(server, &ygg_press_uri);
httpd_register_uri_handler(server, &ygg_hum_uri);
2026-09-11 10:19:50 +02:00
ESP_ERROR_CHECK(i2cdev_init());
ygg_bmp280_init(&dev_bmp_280);
xTaskCreatePinnedToCore(main_loop, "bmp280_test", configMINIMAL_STACK_SIZE * 8, NULL, 5, NULL, APP_CPU_NUM);
}