💡 LumiSetup : Ma lampe connectée (ESP8266 + PIR + WS2812B

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

ComposantDétailsLien
ESP8266 NodeMCUESP-12E / ESP8266MODAliExpress
Capteur PIRHC-SR501 (recommandé)AliExpress
Ruban LEDWS2812B (30 LEDs/m)AliExpress
Alimentation5V / 3A minimum(pour 40Led)
Connecteur USB Type-C femelle 2 brochesAliExpress

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

Installation

Tout le code est disponible sur GitHub. Avant d’uploader, installez les librairies suivantes dans Arduino IDE :

LibrairieAuteurSource
FastLEDDaniel GarciaGestionnaire Arduino
ArduinoJson v6Benoit BlanchonGestionnaire Arduino
NTPClientFabrice WeinbergGestionnaire Arduino
ESPAsyncTCPme-no-devGitHub (installer en premier)
ESPAsyncWebServerme-no-devGitHub

Premier démarrage

  1. Branchez le NodeMCU.
  2. Connectez-vous au WiFi « LumiSetup » (mot de passe : lumi1234).
  3. Une page de configuration s’ouvre automatiquement — ou tapez 192.168.4.1 dans votre navigateur.
  4. Choisissez votre langue (FR/EN), entrez vos identifiants WiFi et validez.
  5. 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.

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

Buy Me A Coffee

Soutenir le projet

Si mes tutos t’aident, tu peux m’offrir un petit café !

☕ Offrir un café