diff --git a/include/config.h b/include/config.h new file mode 100644 index 0000000..04d0f93 --- /dev/null +++ b/include/config.h @@ -0,0 +1,64 @@ +#pragma once +#include + +// ── 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; diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..af50d26 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,21 @@ +#include +#include "config.h" + +// ── Définitions des variables globales ───────────────────────────── +SondeConfig sondesConfig[NB_SONDES] = { + { "T°C Ext", "maison/jardin/ext/temperature", 60000, 0.2f }, + { "T°C Serre", "maison/jardin/serre/temperature", 60000, 0.1f }, + { "T°C Sol", "maison/jardin/sol/temperature", 60000, 0.1f }, +}; +SondeEtat sondesEtat[NB_SONDES] = {}; +PointHistorique historique[HIST_TAILLE] = {}; +uint16_t histIdx = 0; +NetworkStatus netStatus = {}; + +void setup() { + Serial.begin(115200); + Serial.println("[BOOT] esp_jardin démarrage..."); +} + +void loop() { +}