Salut les makers ! Aujourd’hui je vous partage un projet que j’utilise au quotidien chez moi : LumiSetup. L’idée est simple : une lampe qui s’allume toute seule quand vous passez devant, mais seulement aux heures que vous avez choisies.
Le nécessaire
| Composant | Détails | Lien |
| ESP8266 NodeMCU | ESP-12E / ESP8266MOD | AliExpress |
| Capteur PIR | HC-SR501 (recommandé) | AliExpress |
| Ruban LED | WS2812B (30 LEDs/m) | AliExpress |
| Alimentation | 5V / 3A minimum(pour 40Led) | |
| Connecteur USB | Type-C femelle 2 broches | AliExpress |
⚠️ Je recommande le HC-SR501 plutôt que le SR505. Le SR505 est plus compact mais son temps de blocage interne (~8 secondes) est fixe et sans réglage. Le HC-SR501 a deux potentiomètres pour ajuster la sensibilité et le délai — beaucoup plus pratique.
Le câblage
Le montage est rapide, 3 fils par composant :
- Capteur PIR : VCC → 3.3V | GND → GND | OUT → D5 (GPIO14)
- LEDs WS2812B : DIN → D6 (GPIO12) | 5V → alimentation externe | GND → GND commun
- Alimentation 5V : + → VIN (NodeMCU) + 5V (LEDs) | − → GND commun
⚠️ Le GND doit être commun entre l'alimentation, le NodeMCU et les LEDs — sans ça, les LEDs ne fonctionneront pas correctement.
🔴 Le ruban WS2812B a un sens de branchement ! Connectez toujours sur l'extrémité DIN (indiquée par une flèche sur le ruban). Brancher sur l'autre côté = aucun signal.

Installation
Tout le code est disponible sur GitHub. Avant d’uploader, installez les librairies suivantes dans Arduino IDE :
| Librairie | Auteur | Source |
| FastLED | Daniel Garcia | Gestionnaire Arduino |
| ArduinoJson v6 | Benoit Blanchon | Gestionnaire Arduino |
| NTPClient | Fabrice Weinberg | Gestionnaire Arduino |
| ESPAsyncTCP | me-no-dev | GitHub (installer en premier) |
| ESPAsyncWebServer | me-no-dev | GitHub |
🚫 Ne pas installer WiFiManager — il entre en conflit avec ESPAsyncWebServer. Le portail WiFi est géré directement dans le code.
ℹ️ Dans Arduino IDE, sélectionnez NodeMCU 1.0 (ESP-12E Module) et réglez le Flash Size sur 4MB (FS:2MB). Sans ce réglage, LittleFS ne fonctionnera pas et vos paramètres ne seront pas sauvegardés.
Premier démarrage
- Branchez le NodeMCU.
- Connectez-vous au WiFi « LumiSetup » (mot de passe : lumi1234).
- Une page de configuration s’ouvre automatiquement — ou tapez 192.168.4.1 dans votre navigateur.
- Choisissez votre langue (FR/EN), entrez vos identifiants WiFi et validez.
- L’ESP redémarre et rejoint votre réseau. C’est tout !
Une fois connecté, accédez à l’interface via http://lumisetup.local depuis n’importe quel appareil sur votre réseau.
L’interface web
L’interface est disponible en français ou en anglais selon votre choix — et ce choix est mémorisé. Depuis celle-ci vous pouvez gérer :
- Mode AUTO : le PIR s’active uniquement dans la plage horaire configurée (ex : 22h–07h pour une veilleuse de nuit).
- Mode ON : les LEDs restent allumées en permanence.
- Override : force l’allumage à tout moment, hors plage ou hors durée.
- Couleur & intensité : pour une ambiance tamisée ou vive selon vos envies.
- Durée d’allumage : combien de secondes les LEDs restent allumées après une détection.
- Effet fondu : fade-in / fade-out pour une transition douce.

Les fichiers
Tout est disponible en open source sur GitHub — le code complet en fichier unique, le schéma de câblage, et les instructions d’installation complètes dans le README.
Depuis la version ESP8266, LumiSetup a bien évolué ! Une version complète pour ESP32
WROOM-32 est maintenant disponible. Le câblage GPIO reste identique (GPIO14 pour le PIR,
GPIO12 pour les LEDs) — seule la carte change. En échange, vous gagnez une stabilité réseau
bien supérieure, un MQTT fiable, et une intégration Home Assistant complète.


Ce que vous pouvez faire depuis Home Assistant
Allumer / éteindre la lampe
Depuis le dashboard, une automatisation ou une scène
Contrôler la couleur RGB
Roue chromatique complète depuis HA
Régler l’intensité
De 0 à 100% en temps réel
Voir les détections PIR en temps réel
Capteur de mouvement visible dans HA
Activer / désactiver le système
Coupure complète sans toucher à l’ESP32
Forcer l’allumage (Override)
Ignorer la plage horaire à la demande
Basculer mode AUTO « ON
Mode automatique PIR ou allumage permanent
Plage horaire lever/coucher du soleil
Mise à jour automatique chaque jour via automatisation HA
Inclure dans des scènes
Ex : scène Bonne Nuit > LumiSetup en mode auto
Automatisations avancées
Ex : allumer si présence détectée + nuit tombée
Nouveautés techniques vs version ESP8266

La version ESP32 nécessite des librairies spécifiques, différentes de la version ESP8266.
Certaines ne sont pas disponibles dans le gestionnaire Arduino et doivent être installées via ZIP
GitHub :
Gestionnaire Arduino : FastLED, ArduinoJson v6
AsyncTCP + fork Mathieu Carbou OBLIGATOIRE
ESPAsyncWebServer (le repo me-no-dev original est incompatible avec ESP32 core v3.x)
async-mqtt-client (Marvin Roger) — pas dans le gestionnaire
Partition Scheme Scheme : Huge APP (3MB No OTA) — obligatoire, le sketch dépasse la limite
par défaut
Lien dispo sur le Github
Soutenir le projet
Si mes tutos t’aident, tu peux m’offrir un petit café !
