Nimbin[12]?Embedded / esp_garden / server_hsnr/main/main.cpp

esp_garden git · master

Distributed ESP sensor and actuator system (garden)

esp32 esp-idf iot sensors c++ sql · first commit 2025-10-15 · last commit 2026-01-20 (8 months ago) · synced 3 days ago · upstream: git.ide3.de/hsnr/mic/esp_garden

C++ 70.7% Markdown 18% C 10.7%
git clone https://git.christianimmanuel.de/embedded/esp_garden.gitwget https://git.christianimmanuel.de/embedded/esp_garden/archive/esp_garden.tar.gz
server_hsnr/main/main.cpp 1.3 KB · 65 lines raw
#include "Server.h"
#include "WiFiManager.h"

#include "esp_system.h"
extern "C" esp_err_t esp_base_mac_addr_set(const uint8_t mac[6]);


int64_t next_connection_unix = 0;
bool go_to_sleep = false;

PendingConfigRequest_s pending_config;


extern "C" void server_loop(void*) {
    while (true) {
        if (pending_config.active)
            get_PendingConfigFromServer();

        if (g_buffer_count > 0)
            WiFi_PostDataToServer();

        if (g_received_ok_from_server)
            send_ConfigToEsp();

        if (go_to_sleep)
            sleep_UntilNextReceive();

        vTaskDelay(10 / portTICK_PERIOD_MS);
    }
}



extern "C" void app_main(void) {
    static const char *TAG = "app_main";

    uint32_t setup_start = millis();

    esp_base_mac_addr_set(PEER_SERVER);

    WiFi_connect();

    vTaskDelay(10000 / portTICK_PERIOD_MS);

    esp_base_mac_addr_set(PEER_SERVER);

    WIFI_SyncTime();
    //init_Server();

    init_EspNow();

    /*
SensorConfigServer_s cfg;
if (WIFI_GetSensorConfigServer("moisture_1", cfg))
    print_SensorConfigServer(cfg);
else DBG_PRINTLN("Failed to get cfg!");
    */

    go_to_sleep = false;
    next_connection_unix = 0;
    g_setup_duration = millis() - setup_start;
    ESP_LOGI(TAG, "Setup duration: %u ms\n", g_setup_duration);

    xTaskCreate(server_loop, "serverloop", 8192, nullptr, 5, nullptr);
}