esp_garden git · master
Distributed ESP sensor and actuator system (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.gzserver_hsnr/main/main.cpp 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);
}