Files
gilles 7aa8cd2a1c init: structure initiale du projet esp_jardin
Spec, plan d'implémentation, design system, documentation de déploiement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 14:58:24 +02:00

2.4 KiB
Raw Permalink Blame History

feature.md — esp_jardin v1.0

Fonctionnalités implémentées

Acquisition des températures

  • 3 sondes DS18B20 sur bus OneWire (GPIO 4) — adressage par index
  • Acquisition non-bloquante : demande de conversion + attente 750 ms via millis()
  • Fréquence : toutes les 10 secondes (configurable)
  • Validation métrologique : valeurs 127.0°C (CRC fail) et 85.0°C (power-on) rejetées
  • Précision affichée : 1 décimale (%.1f)

Historique 24h en RAM

  • Tampon circulaire de 288 points (structure PointHistorique)
  • Empreinte mémoire : ~4.5 Ko sur 520 Ko SRAM (<1%)
  • Les valeurs d'erreur sont stockées comme NAN pour discontinuer les courbes

Connectivité réseau hybride

  • Mode STA : connexion au réseau WiFi configuré, timeout 30s
  • Mode AP de secours : point d'accès ESP_CHEF_JARDIN si STA échoue
  • Reconnexion automatique STA non-bloquante (retry toutes les 30s / 60s en mode AP)
  • mDNS : accessible via http://esp_jardin.local
  • OTA : mise à jour firmware à distance, protégée par mot de passe

Interface web temps réel

  • Page unique servie depuis LittleFS (data/index.html)
  • WebSocket : push JSON immédiat à chaque nouvelle acquisition
  • Graphique 24h (Chart.js) : initialisé depuis /api/history, mis à jour en temps réel
  • 3 cartes sondes avec valeur live, LED d'état, message d'erreur si sonde déconnectée
  • Panneau statut système : WiFi / IP / RSSI / MQTT / RAM libre / uptime
  • Console de configuration : intervalle + broker MQTT (appliqué en RAM)
  • Bascule thème dark/light
  • Responsive (grille adaptative sur mobile)

API REST

Endpoint Description
GET /api/status RSSI, uptime, RAM libre, mode AP, état MQTT
GET /api/temperatures Températures instantanées des 3 sondes
GET /api/history Historique complet 24h (288 points)
POST /api/config Mise à jour intervalle + broker MQTT

Publication MQTT

  • Client PubSubClient, reconnexion non-bloquante (retry toutes les 5s)
  • Publication indépendante par sonde
  • Filtre deadband : publish si |ΔT| ≥ deadband OU si intervalle_max dépassé
  • Messages retain=true
  • Valeurs d'erreur jamais publiées

Hors scope v1

  • Deep sleep / économie d'énergie
  • NTP (timestamps relatifs millis())
  • Capteurs I2C (BH1750, SHT31), sol (ADC), relais, pluviomètre
  • Authentification interface web
  • Persistance de la configuration (redémarrage → retour aux valeurs par défaut)