Table of Contents
Comprendre les composantes essentielles
La construction d'un système d'éclairage intelligent à partir de zéro commence par sélectionner le microcontrôleur approprié et comprendre comment chaque composant interagit. Les ESP8266 et ESP32 sont des choix populaires en raison de leur Wi-Fi intégré, de leur faible coût et de leur large soutien communautaire. L'ESP32 offre Bluetooth en plus du Wi-Fi, qui peut être utile pour le contrôle local sans réseau.
Les composants clés sont le microcontrôleur, un module relais (ou relais à l'état solide pour un fonctionnement silencieux), une alimentation qui correspond aux exigences de tension et de courant du microcontrôleur et du relais, et les luminaires eux-mêmes. Pour la sécurité, utilisez un module relais avec optoisolation pour protéger le microcontrôleur contre les pics à haute tension.
Les capteurs optionnels mais recommandés comprennent les détecteurs de mouvement infrarouge passif (PIR), les capteurs de lumière ambiante (photorésistants ou capteurs numériques BH1750) et les capteurs de température/humidité pour ajouter un contrôle adaptatif.
Sélection de votre microcontrôleur et du module Wi-Fi
ESP8266 vs ESP32: Lequel convient?
La puce ESP8266 est une puce mature et peu coûteuse qui gère la plupart des tâches de contrôle d'éclairage. Elle dispose de suffisamment d'épingles GPIO pour quelques relais et capteurs, et sa pile Wi-Fi est bien documentée. Cependant, la puce ESP32 fournit un traitement double cœur, plus de chiffrement GPIO, Bluetooth et matériel. Si vous prévoyez d'ajouter plusieurs capteurs, intégration d'assistants vocaux, ou de lancer un serveur web en même temps que la programmation des tâches, la ESP32 est le meilleur choix.
Considérations relatives à l'alimentation électrique
Les microcontrôleurs fonctionnent généralement à 3,3 V (Chips ESP) ou 5 V (Arduino), mais les relais nécessitent souvent 5 V. Une alimentation 5 V réglementée qui peut fournir au moins 1A est une référence sûre; ajouter une salle de tête supplémentaire si l'alimentation de plusieurs capteurs. Utilisez un convertisseur de dollars pour descendre à 3,3 V si nécessaire. N'alimentez jamais un relais du régulateur de bord du microcontrôleur – il peut causer des pannes ou des dommages.
Câblage du matériel
Commencez par le module relais. Connectez ses broches VCC et GND à l'alimentation 5V et sol, respectivement. Puis connectez la broche de commande du relais (souvent étiquetée IN1, IN2, etc.) à une broche numérique GPIO sur le microcontrôleur, par exemple GPIO 5 sur un ESP8266. Doublons-vérifier les niveaux logiques:[ De nombreux modules relais sont actifs LOW, ce qui signifie que le relais déclenche lorsque la broche GPIO est tirée au sol. Testez avec un multimètre ou un croquis simple avant de connecter la puissance du secteur.
Pour les feux : toujours en fonction de la puissance déconnectée. Connectez le fil secteur au terminal commun du relais (COM) et au terminal normal ouvert (NO). Ainsi, lorsque le relais est activé, le circuit se ferme et la lumière s'allume. Utilisez le fil correctement noté et assurez-vous que toutes les connexions sont isolées avec des écrous de fil ou des blocs terminaux. Si vous êtes mal à l'aise avec la tension du réseau, consultez un électricien autorisé.
Pour les capteurs optionnels : filer le capteur de mouvement PIR de VCC à 5V (ou 3,3V selon le modèle), GND au sol et la sortie à une broche numérique GPIO. Les capteurs de lumière ambiants comme le BH1750 utilisent I2C : connecter SDA et SCL aux broches I2C de microcontrôleur (généralement GPIO 4 et GPIO 5 sur ESP8266).
Programmation du Microcontrôleur
Mise en place de l'IDE Arduino pour ESP
Installez le paquet ESP8266 ou ESP32 dans l'IDE Arduino via le Gestionnaire de cartes. Sélectionnez ensuite le panneau approprié dans le menu Outils. Pour les premiers chargements, vous devrez peut-être tenir le bouton BOOT ou utiliser un adaptateur USB-vers-série avec les lignes DTR/RTS appropriées. La plupart des cartes de développement comprennent un pont USB-UART et un circuit de remise en série automatique.
Connexion Wi-Fi et serveur Web
Ecrivez un croquis qui se connecte à votre réseau Wi-Fi en utilisant la fonction
. Définissez des adresses IP statiques pour éviter les changements après les reboots du routeur. Après la connexion, démarrez un simple serveur web HTTP qui écoute les requêtes GET. Par exemple:
Ajoutez un paramètre d'état pour confirmer l'état actuel. Vous pouvez également desservir une page HTML minimale avec des boutons pour on/off, rendant le système contrôlable à partir de n'importe quel navigateur sur le réseau local. Cette approche est simple et ne nécessite aucune application externe.
Mises à jour en direct (OTA)
Une fois l'appareil installé dans un emplacement distant, les mises à jour en OTA vous permettent de ne pas devoir vous reconnecter physiquement. Inclure la bibliothèque dans votre croquis et configurer un mot de passe. Cela vous permet de télécharger sans fil un nouveau micrologiciel depuis l'IDE Arduino – une grande commodité.
Méthodes de contrôle
Interface Web
Un serveur web fonctionnant sur le microcontrôleur est la méthode de contrôle la plus directe. La page HTML peut être intégrée dans le code en tant que chaîne ou stockée dans SPIFFS (LittleFS). Inclure des boutons, des curseurs pour la luminosité si vous utilisez PWM, et peut-être un formulaire de programmeur. L'interface peut être conçue avec CSS pour un look propre.
Applications mobiles (Blynk, MQTT, Custom)
Des plateformes comme Blynk[ fournissent un constructeur d'applications glisser-déposer qui communique avec votre microcontrôleur sur Wi-Fi. Vous pouvez créer des boutons, des graphiques et des curseurs sans écrire de code mobile natif. Sinon, utilisez le protocole MQTT avec un courtier comme Mosquitto, et laissez toute application cliente MQTT (par exemple, MQTT Dashboard) contrôler les lumières.
Intégration de l'assistant voix
Pour un contrôle mains libres, intégrer avec Amazon Alexa ou Google Assistant. La manière la plus simple est d'utiliser le Appareil Belkin Wemo émulé d'ESP8266 ou d'utiliser une bibliothèque comme Espalexa.Ces bibliothèques font apparaître le microcontrôleur comme une prise intelligente standard à l'assistant vocal. Aucun service cloud n'est requis – tout fonctionne localement. Vous pouvez également utiliser le kit Alexa Skills avec une fonction cloud AWS Lambda, mais cela ajoute complexité et latence.
Automatisation et intégration des capteurs
Éclairage activé par mouvement
Les capteurs PIR détectent les radiations infrarouges des corps en mouvement. Connectez un capteur PIR à une broche GPIO et réglez-le comme entrée. Lorsque le mouvement est détecté, la sortie du capteur se fait HIGH (ou LOW selon le module). Dans votre code, vous pouvez allumer la lumière et démarrer un minuteur. Si aucun mouvement n'est détecté pendant une période configurable, éteignez la lumière. Ajoutez une machine d'état simple pour éviter de déclencher la journée à l'aide d'un capteur de lumière ambiante.
Contrôle adaptatif de la lumière ambiante
Utilisez un photorésistor (LDR) connecté à une entrée analogique, ou un capteur numérique comme le BH1750 pour lire les valeurs de lux. Puis implémentez une règle : allumez les lumières seulement lorsque la lumière ambiante tombe en dessous d'un seuil ET un mouvement est détecté. Ceci empêche les lumières d'allumer pendant la lumière du jour. Vous pouvez également ajuster l'intensité de la lumière via PWM (si l'on utilise des LED dimmables et un relais approprié ou MOSFET) pour maintenir une luminosité perçue constante.
Calendrier fondé sur le temps
Utilisez les fonctions temps du ESP via NTP. Saisissez l'heure actuelle depuis un serveur NTP au démarrage et stockez-le. Créez ensuite un horaire : allumez les lumières au coucher du soleil et éteignez-les à un moment fixe (p. ex., 23 heures). Des bibliothèques comme TimeLib et Esp8266WiFi's NTP exemple facilitent cette tâche.
Améliorations avancées
Contrôle de la scène
Grouper plusieurs lumières (par exemple, salon, chambre) et définir des scènes: -Movie mode -Dims lumières à 20%, -Lecture , définit un blanc chaud lumineux. Cela nécessite plusieurs canaux relais ou LED adressables (comme WS2812B) où chaque LED peut être commandée individuellement. Pour les LED adressables, utilisez la bibliothèque Adafruit NeoPixel et envoyez des commandes sur Wi-Fi.
Surveillance de l'énergie
Ajoutez un capteur de transformateur de courant (CT) comme le SCT-013 pour mesurer la consommation d'énergie du circuit d'éclairage. Le microcontrôleur peut lire la sortie analogique et calculer les watts. Ces données peuvent être affichées sur un tableau de bord web ou envoyées à un service comme Home Assistant pour le suivi à long terme. Utilisez la tension et le courant pour calculer la puissance réelle, mais étalonnez soigneusement en raison des charges non linéaires des pilotes LED.
Intégration MQTT et Home Automation
Connectez votre système d'éclairage à un centre d'automatisation comme Home Assistant ou OpenHAB en utilisant MQTT. Cela vous permet de créer des automatisations complexes avec d'autres capteurs (par exemple, allumer des feux lorsqu'une porte s'ouvre, ou des feux flash si la fumée est détectée).
Sécurité et pratiques exemplaires
La tension du réseau principal est dangereuse Toujours débrancher l'alimentation lors du câblage. Utilisez une boîte de jonction pour enfermer toutes les connexions du réseau. Le module de relais doit être placé dans un boîtier non conducteur, et le microcontrôleur doit être isolé du câblage haute tension. Faussez l'entrée du réseau du réseau du relais à l'ampère appropriée (p. ex., 5A pour un circuit d'éclairage).
Envisagez d'utiliser un relais à l'état solide (SSR) pour la commutation silencieuse, surtout dans les chambres. Les SSR n'ont pas de contacts mécaniques et plus de vie, mais ils génèrent de la chaleur et peuvent nécessiter un dissipateur de chaleur.
Sécurisez votre réseau Wi-Fi. Utilisez le chiffrement WPA2 ou WPA3. Évitez le codage dur des identifiants Wi-Fi dans le croquis – implémentez plutôt un portail de configuration (bibliothèque WiFiManager) qui vous permet de définir des identifiants via un point d'accès temporaire.
Dépannage de problèmes communs
- Microcontroller ne se connectant pas au Wi-Fi: Vérifier que le SSID et le mot de passe sont corrects. Vérifiez que le routeur n'est pas réglé sur une plage de canaux limitée. Essayez une IP statique en dehors de la plage DHCP.
- Relay ne pas basculer: Mesurer la tension sur la broche de commande – il devrait passer entre 0V et 3.3V/5V en fonction du module. Certains relais nécessitent un convertisseur de niveau logique si le microcontrôleur est 3,3V et le relais attend une logique 5V. Vérifiez également si le module est actif LOW – vous pouvez avoir besoin d'inverser la logique en code.
- Lights flicker quand relais interrupteurs:[ Cela indique souvent une mauvaise connexion ou un filtrage insuffisant de l'alimentation. Ajouter un condensateur 100μF à travers la bobine du relais (si l'on utilise un relais mécanique) ou un circuit de stupéfaction à travers la charge.
- Le capteur PIR déclenche faussement:[ Réduire la sensibilité par le potentiomètre embarqué. Positionner le capteur loin des sources de chaleur comme les évents d'air ou le soleil direct. Ajouter une période de refroidissement en code pour ignorer les ré-déclencheurs rapides.
- Le serveur Web arrête de répondre après quelques heures: Le microcontrôleur peut avoir une fuite de mémoire. Surveiller le tas gratuit via .
Tout mettre en place : Exemple de construction complète
Let , construit un scénario concret : un litre de couloir avec commande activé par mouvement, avec décalage temporel, plus une commande manuelle via un bouton-poussoir et une commande vocale optionnelle via Alexa.
Composants: module de relais 5V à 1 canal, capteur PIR HC-SR501, interrupteur momentané et ampoule LED. Alimentation par chargeur téléphonique USB 5V (1A). Efforcez le relais vers GPIO 5, PIR vers GPIO 4, bouton vers GPIO 2 (avec traction interne).
Le croquis se connecte au Wi-Fi, récupère le temps NTP et lance une boucle : lisez l'état PIR. Si le mouvement est détecté et le capteur de lumière ambiante (placeholder ou utiliser un minuteur simple basé sur l'heure de la journée) indique qu'il fait sombre, allumez le relais et démarrez un minuteur de 10 minutes. Si le bouton est appuyé, basculez la lumière manuellement et réinitialisez le minuteur.
Structure du code: créez des fonctions pour , , . Utilisez des retards non-bloquants avec . Le serveur web affiche l'état actuel et permet un contrôle manuel. Ce système est fiable et peut être étendu à plusieurs zones.
Conclusion et prochaines étapes
Bâtir un système d'éclairage intelligent personnalisé avec microcontrôleurs et Wi-Fi est un projet enrichissant qui enseigne l'électronique, le réseautage et la programmation. En commençant par un simple relais on/off, vous pouvez ajouter progressivement des capteurs, la logique d'automatisation et les intégrations avec les plateformes de maison intelligente.
Une fois votre système de base stable, envisagez d'explorer des LEDs dimmables via PWM ou des bandes LED adressables, ajoutant un capteur de présence pour un contrôle plus fin, ou intégrant avec des applets IFTTT pour le géo-fencing. Valider votre code avec des tests approfondis – un comportement inattendu avec l'éclairage peut être un danger de sécurité. Enfin, partagez votre travail avec la communauté sur des forums comme Reddit , r/esp32 ou Hackaday.io pour obtenir des commentaires et inspirer d'autres.
Pour plus de détails, les Random Nerd Tutorials fournissent d'excellents guides étape par étape sur la commande du relais ESP32, et la documentation Espressif ESP-IDF offre des informations plus approfondies sur les API Wi-Fi et MQTT. Ces ressources vous aideront à porter votre système d'éclairage intelligent à un niveau professionnel.