Files
esp_jardin/include/config.h
T
2026-05-23 16:49:31 +02:00

72 lines
3.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include <Arduino.h>
#include <freertos/FreeRTOS.h>
#include <freertos/semphr.h>
// ── Constantes matérielles ──────────────────────────────────────────
#define ONE_WIRE_BUS 4 // GPIO 4 — bus OneWire DS18B20
#define NB_SONDES 3
#define HIST_TAILLE 288 // 24h × (3600/10/300 × 60) = 288 pts
#define MESURE_INTERVALLE 10000 // ms entre deux acquisitions
// ── Constantes réseau ───────────────────────────────────────────────
#define WIFI_SSID "Mon_Reseau_WiFi"
#define WIFI_PASS "Mon_Mot_De_Passe_Securise"
#define AP_SSID "ESP_CHEF_JARDIN"
#define AP_PASS "Jardin2026"
#define WIFI_TIMEOUT_MS 30000 // timeout avant bascule AP
#define WIFI_RETRY_MS 30000 // délai entre retries STA
#define MDNS_NOM "esp_jardin"
#define OTA_PASS "Jardin2026"
// ── Constantes MQTT ─────────────────────────────────────────────────
#define MQTT_BROKER "10.0.0.3"
#define MQTT_PORT 1883
#define MQTT_USER ""
#define MQTT_PASS_STR ""
#define MQTT_CLIENT_ID "esp_jardin"
#define MQTT_RETRY_MS 5000
// ── Structure : configuration d'une sonde (immuable) ────────────────
struct SondeConfig {
const char* nom;
const char* topic;
uint32_t intervalleMs;
float deadband;
};
// ── Structure : état runtime d'une sonde ───────────────────────────
struct SondeEtat {
float tempActuelle; // NAN si erreur
float dernierPublie; // dernière valeur publiée MQTT
uint32_t dernierPubliMs; // timestamp dernière publication
bool erreur;
};
// ── Structure : point d'historique ─────────────────────────────────
struct PointHistorique {
uint32_t timestamp;
float temps[NB_SONDES]; // NAN si sonde en erreur
};
// ── Structure : état réseau ─────────────────────────────────────────
struct NetworkStatus {
bool wifiConnecte;
bool modeAP;
bool mqttConnecte;
int8_t rssi;
uint32_t uptimeDemarrage; // millis() au moment de la connexion STA
};
// ── Déclarations extern (définies dans main.cpp) ────────────────────
extern SondeConfig sondesConfig[NB_SONDES];
extern SondeEtat sondesEtat[NB_SONDES];
extern PointHistorique historique[HIST_TAILLE];
extern uint16_t histIdx;
extern NetworkStatus netStatus;
// Mutex FreeRTOS protégeant l'accès concurrent au buffer historique
// (Core 0 : callbacks AsyncWebServer vs Core 1 : loop/sensors_update)
extern SemaphoreHandle_t xHistMutex;
// Mutex FreeRTOS protégeant l'accès concurrent à sondesEtat[]
extern SemaphoreHandle_t xSondesMutex;