🔌 Branchement Électroménager : Lave-linge, Lave-vaisselle, Frigo + Monitoring Smart ESP32 (Guide Complet 2026)

⚠️ AVERTISSEMENT DE SÉCURITÉ CRUCIAL : Le branchement d'appareils électroménagers implique des tensions de 230V AC qui peuvent être mortelles. Coupez TOUJOURS le courant au disjoncteur général avant toute intervention. Respectez scrupuleusement la norme NF C 15-100. En cas de doute, faites appel à un électricien certifié.
Branchement Électroménager : Lave-linge, Lave-vaisselle, Frigo + Monitoring Smart ESP32

1. Introduction

Le branchement des appareils électroménagers (lave-linge, lave-vaisselle, réfrigérateur) est une opération courante mais qui nécessite le respect de règles strictes de sécurité. Ces appareils, souvent gourmands en énergie, doivent être raccordés à des circuits dédiés avec des protections adaptées.

Dans ce guide complet, nous allons voir :

  • Les règles de base de la norme NF C 15-100
  • Le branchement spécifique de chaque appareil
  • Un projet DIY unique : ajouter un monitoring intelligent avec ESP32 pour suivre la consommation en temps réel
  • L'intégration avec Home Assistant pour une domotique complète

2. Normes Électriques (NF C 15-100)

📌 Règles Fondamentales :

  • Circuit dédié : Chaque appareil puissant doit avoir son propre circuit avec disjoncteur individuel
  • Protection différentielle 30mA : Obligatoire pour toutes les prises de cuisine et salle de bain
  • Mise à la terre : Indispensable pour la sécurité des personnes
  • Sections de câble : Adaptées à la puissance de l'appareil

3. Types de Prises et Sections de Câble

Appareil Puissance Typique Type de Prise Section Câble Disjoncteur
Lave-linge 2000-2500W Prise 20A (type spécialisé) 2.5 mm² 20A
Lave-vaisselle 1800-2200W Prise 20A 2.5 mm² 20A
Réfrigérateur 200-400W Prise 16A standard 1.5 mm² 16A
Four électrique 2500-3500W Prise 32A specialized 6 mm² 32A
Plaque induction 3000-7000W Prise 32A ou raccordement direct 6 mm² 32A

4. Branchement Lave-linge

🔧 Étapes de Branchement :

  1. Coupez le courant au disjoncteur général
  2. Installez une prise 20A spécialisée (prise avec terre, adaptée aux fortes puissances)
  3. Tirez un câble 3G2.5 mm² depuis le tableau électrique
  4. Connectez au disjoncteur 20A dédié dans le tableau
  5. Respectez les codes couleur :
    • Bleu = Neutre (N)
    • Rouge/Marron = Phase (L)
    • Vert/Jaune = Terre (⏚)
  6. Vérifiez la polarité avec un multimètre avant de brancher l'appareil
💡 Astuce Pro : Placez la prise à au moins 60 cm du sol et à 40 cm de l'arrivée d'eau pour éviter tout risque d'éclaboussures.

5. Branchement Lave-vaisselle

🔧 Étapes de Branchement :

  1. Même procédure que le lave-linge (prise 20A, câble 2.5 mm², disjoncteur 20A)
  2. Prévoyez une arrivée d'eau avec robinet d'arrêt accessible
  3. Installez un siphon pour l'évacuation
  4. Respectez les distances de sécurité :
    • 60 cm minimum entre la prise et le point d'eau
    • Zone de volume 2 (protection IPX4 minimum)

6. Branchement Réfrigérateur

🔧 Étapes de Branchement :

  1. Prise 16A standard avec terre
  2. Câble 3G1.5 mm² suffisant
  3. Disjoncteur 16A dédié (ou sur circuit prises de cuisine)
  4. Évitez les rallonges et les multiprises
  5. Laissez un espace de 10 cm derrière le frigo pour la ventilation
✅ Recommandation : Pour un frigo américain (avec distributeur de glace/eau), prévoyez une arrivée d'eau dédiée avec un robinet d'arrêt.

7. 🚀 Projet DIY : Monitoring Smart avec ESP32

Maintenant que vous maîtrisez le branchement traditionnel, passons au niveau supérieur : transformer vos appareils en objets connectés avec un système de monitoring intelligent basé sur ESP32.

🎯 Objectifs du Projet :

  • Mesurer la consommation en temps réel de chaque appareil
  • Détecter les cycles de fonctionnement (quand le lave-linge tourne, quand le frigo démarre)
  • Envoyer des notifications quand une machine est terminée
  • Calculer le coût énergétique quotidien/mensuel
  • Intégrer avec Home Assistant

📦 Liste des Composants (BOM) :

  • ESP32 DevKit V1 : 1x (~6€)
  • PZEM-004T v3.0 : Module de mesure de puissance (1-2x selon le nombre d'appareils) (~12€)
  • Capteur CT SCT-013-000 : 100A (inclus avec PZEM-004T)
  • Transformateur AC-AC : 230V vers 9V (pour mesure tension) (~4€)
  • Écran OLED 0.96" I2C : Affichage local (optionnel) (~4€)
  • Alimentation 5V 2A : Pour l'ESP32 (~3€)
  • Boîtier étanche IP65 : Pour sécuriser l'électronique (~5€)
  • Câbles, borniers, connecteurs : (~5€)

💰 Coût total : ~39€ (contre 150-300€ pour des solutions commerciales type Shelly EM)

🔌 Schéma de Câblage (Monitoring Lave-linge) :

╔══════════════════════════════════════════════════════════════╗
║         SCHÉMA DE CÂBLAGE - MONITORING SMART              ║
╠══════════════════════════════════════════════════════════════╣
║                                                            ║
║   PRISE 230V ──┬──→ [PZEM-004T] ──┬──→ APPAREIL          ║
║   (Lave-linge) │   V  A           │   (Lave-linge)       ║
║                │   │  │           │                       ║
║                │   │  └──[CT SCT-013]──┘                  ║
║                │   │      (autour du fil L)               ║
║                │   │                                       ║
║                │   └──[Transfo AC-AC]                      ║
║                │        (mesure tension)                   ║
║                │                                           ║
║   PZEM-004T ───┴──→ ESP32                                 ║
║   (UART2)          GPIO 16 (RX) ← TX PZEM                ║
║                    GPIO 17 (TX) → RX PZEM                ║
║                    GND ←→ GND                              ║
║                                                            ║
║   OLED (I2C) ──→ ESP32                                    ║
║                  GPIO 21 (SDA)                             ║
║                  GPIO 22 (SCL)                             ║
║                                                            ║
╚══════════════════════════════════════════════════════════════╝
⚠️ SÉCURITÉ : Le PZEM-004T possède une isolation galvanique entre la partie haute tension (230V) et la partie basse tension (ESP32). Cependant, travaillez TOUJOURS hors tension lors du raccordement du capteur CT autour du fil de phase.

8. Code Arduino Complet

/* * 🏠 Smart Energy Monitor for Home Appliances * TechFix Hub - DIY Electronics & IoT Projects * * Mesure la consommation d'un lave-linge/lave-vaisselle/frigo * avec ESP32 + PZEM-004T et envoie les données via MQTT * * Bibliothèques requises : * - PZEM004Tv30 (by Jakub Mandula) * - PubSubClient (pour MQTT) * - WiFi (inclus dans ESP32 core) * - Adafruit_SSD1306 (optionnel, pour OLED) */ #include #include #include #include #include #include // ============ CONFIGURATION ============ // WiFi const char* WIFI_SSID = "VOTRE_WIFI"; const char* WIFI_PASSWORD = "VOTRE_MDP"; // MQTT (Home Assistant ou broker local) const char* MQTT_SERVER = "192.168.1.100"; // IP de votre Home Assistant const int MQTT_PORT = 1883; const char* MQTT_USER = "votre_user"; const char* MQTT_PASSWORD = "votre_password"; const char* MQTT_DEVICE_ID = "lave_linge"; // Broches ESP32 #define PZEM_RX 16 #define PZEM_TX 17 #define OLED_SDA 21 #define OLED_SCL 22 // Seuil de détection de cycle (en Watts) #define CYCLE_THRESHOLD 5.0 // Au-dessus de 5W = appareil en fonctionnement // ============ OBJETS ============ PZEM004Tv30 pzem(PZEM_RX, PZEM_TX); WiFiClient espClient; PubSubClient mqttClient(espClient); Adafruit_SSD1306 display(128, 64, &Wire, -1); // ============ VARIABLES ============ float voltage = 0; float current = 0; float power = 0; float energy = 0; float frequency = 0; float pf = 0; bool cycleEnCours = false; unsigned long cycleStartTime = 0; unsigned long lastMQTTPublish = 0; unsigned long lastDisplayUpdate = 0; // ============ SETUP ============ void setup() { Serial.begin(115200); Serial.println("\n\n====================================="); Serial.println("🏠 Smart Energy Monitor - TechFix Hub"); Serial.println("=====================================\n"); // Initialisation OLED if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("❌ Erreur OLED SSD1306")); } else { display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println("Demarrage..."); display.display(); } // Connexion WiFi connectToWiFi(); // Connexion MQTT mqttClient.setServer(MQTT_SERVER, MQTT_PORT); mqttClient.setBufferSize(512); connectToMQTT(); // Initialisation PZEM Serial.println("🔌 Initialisation PZEM-004T..."); while (!pzem.setAddress(0x50)) { Serial.println("⚠️ PZEM non detecte, nouvelle tentative..."); delay(1000); } Serial.println("✅ PZEM initialise avec succes!"); // Affichage initial updateDisplay("Pret!", "", ""); delay(2000); } // ============ LOOP ============ void loop() { // Vérifier connexions if (WiFi.status() != WL_CONNECTED) { connectToWiFi(); } if (!mqttClient.connected()) { connectToMQTT(); } mqttClient.loop(); // Lecture PZEM toutes les 2 secondes static unsigned long lastRead = 0; if (millis() - lastRead > 2000) { lastRead = millis(); readPZEM(); detectCycle(); } // Publication MQTT toutes les 10 secondes if (millis() - lastMQTTPublish > 10000) { lastMQTTPublish = millis(); publishToMQTT(); } // Mise à jour OLED toutes les secondes if (millis() - lastDisplayUpdate > 1000) { lastDisplayUpdate = millis(); updateDisplayOLED(); } } // ============ FONCTIONS ============ void connectToWiFi() { Serial.print("📶 Connexion WiFi : "); Serial.println(WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); int attempts = 0; while (WiFi.status() != WL_CONNECTED && attempts < 20) { delay(500); Serial.print("."); attempts++; } if (WiFi.status() == WL_CONNECTED) { Serial.println("\n✅ WiFi connecte!"); Serial.print("📍 IP : "); Serial.println(WiFi.localIP()); } else { Serial.println("\n❌ Erreur WiFi"); } } void connectToMQTT() { Serial.print("🔗 Connexion MQTT..."); String clientId = "ESP32-" + String(MQTT_DEVICE_ID); if (mqttClient.connect(clientId.c_str(), MQTT_USER, MQTT_PASSWORD)) { Serial.println(" OK!"); // Souscription aux commandes (optionnel) String topic = String("home/elec/") + MQTT_DEVICE_ID + "/cmd"; mqttClient.subscribe(topic.c_str()); } else { Serial.print(" ❌ Erreur, rc="); Serial.println(mqttClient.state()); delay(5000); } } void readPZEM() { voltage = pzem.voltage(); current = pzem.current(); power = pzem.power(); energy = pzem.energy(); frequency = pzem.frequency(); pf = pzem.pf(); // Gestion des valeurs invalides if (isnan(voltage)) voltage = 0; if (isnan(current)) current = 0; if (isnan(power)) power = 0; if (isnan(energy)) energy = 0; } void detectCycle() { bool appareilActif = (power > CYCLE_THRESHOLD); // Détection début de cycle if (appareilActif && !cycleEnCours) { cycleEnCours = true; cycleStartTime = millis(); Serial.println("\n🟢 DEBUT DE CYCLE detecte!"); Serial.print(" Puissance : "); Serial.print(power); Serial.println(" W"); // Notification MQTT String topic = String("home/elec/") + MQTT_DEVICE_ID + "/cycle"; mqttClient.publish(topic.c_str(), "START"); } // Détection fin de cycle if (!appareilActif && cycleEnCours) { unsigned long cycleDuration = (millis() - cycleStartTime) / 1000; cycleEnCours = false; Serial.println("\n🔴 FIN DE CYCLE detecte!"); Serial.print(" Duree : "); Serial.print(cycleDuration / 60); Serial.println(" minutes"); // Notification MQTT (pour Home Assistant) String topic = String("home/elec/") + MQTT_DEVICE_ID + "/cycle"; String payload = "END:" + String(cycleDuration); mqttClient.publish(topic.c_str(), payload.c_str()); } } void publishToMQTT() { String baseTopic = String("home/elec/") + MQTT_DEVICE_ID; // Publication des mesures mqttClient.publish((baseTopic + "/voltage").c_str(), String(voltage, 1).c_str()); mqttClient.publish((baseTopic + "/current").c_str(), String(current, 2).c_str()); mqttClient.publish((baseTopic + "/power").c_str(), String(power, 1).c_str()); mqttClient.publish((baseTopic + "/energy").c_str(), String(energy, 3).c_str()); mqttClient.publish((baseTopic + "/frequency").c_str(), String(frequency, 1).c_str()); mqttClient.publish((baseTopic + "/pf").c_str(), String(pf, 2).c_str()); mqttClient.publish((baseTopic + "/cycle").c_str(), cycleEnCours ? "ON" : "OFF"); Serial.println("📤 Donnees MQTT publiees"); } void updateDisplayOLED() { display.clearDisplay(); display.setTextSize(1); display.setCursor(0, 0); display.print("U:"); display.print(voltage, 1); display.print("V I:"); display.print(current, 2); display.println("A"); display.print("P:"); display.print(power, 1); display.print("W "); display.print(pf, 2); display.println("PF"); display.print("E:"); display.print(energy, 3); display.println("kWh"); display.print("F:"); display.print(frequency, 1); display.println("Hz"); // Indicateur de cycle if (cycleEnCours) { display.fillRect(0, 54, 128, 10, SSD1306_WHITE); display.setTextColor(SSD1306_BLACK); display.setCursor(20, 55); display.print("EN COURS..."); } else { display.setCursor(20, 55); display.print("EN VEILLE"); } display.display(); } void updateDisplay(String line1, String line2, String line3) { display.clearDisplay(); display.setTextSize(1); display.setCursor(0, 0); display.println(line1); display.println(line2); display.println(line3); display.display(); }

📚 Bibliothèques Requises :

  • PZEM004Tv30 (by Jakub Mandula) - Gestion du module PZEM
  • PubSubClient (by Nick O'Leary) - Client MQTT
  • Adafruit SSD1306 + Adafruit GFX - Affichage OLED

9. Intégration Home Assistant

Ajoutez ce code dans votre fichier configuration.yaml de Home Assistant :

# configuration.yaml - Home Assistant # Déclaration du capteur MQTT mqtt: sensor: # Lave-linge - name: "Lave-linge Puissance" state_topic: "home/elec/lave_linge/power" unit_of_measurement: "W" device_class: power state_class: measurement - name: "Lave-linge Tension" state_topic: "home/elec/lave_linge/voltage" unit_of_measurement: "V" device_class: voltage state_class: measurement - name: "Lave-linge Courant" state_topic: "home/elec/lave_linge/current" unit_of_measurement: "A" device_class: current state_class: measurement - name: "Lave-linge Énergie" state_topic: "home/elec/lave_linge/energy" unit_of_measurement: "kWh" device_class: energy state_class: total_increasing - name: "Lave-linge Cycle" state_topic: "home/elec/lave_linge/cycle" # Automation : Notification fin de cycle automation: - alias: "Notification Fin Lave-linge" trigger: - platform: state entity_id: sensor.lave_linge_cycle from: "ON" to: "OFF" condition: # Éviter les fausses notifications (cycle > 15 min) - condition: template value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('automation.notification_fin_lave_linge', 'last_triggered') | default(0))) > 900 }}" action: - service: notify.mobile_app_votre_telephone data: title: "🧺 Lave-linge terminé!" message: "Votre cycle de lavage est terminé." data: push: sound: "default" tag: "lave_linge"

10. Économies d'Énergie

💡 Conseils pour Réduire la Consommation :

  • Lave-linge : Privilégiez les cycles à 30°C ou 40°C (économie de 40% vs 60°C)
  • Lave-vaisselle : Lancez uniquement quand plein, utilisez le mode "Eco"
  • Réfrigérateur : Placez-le loin des sources de chaleur, laissez 10 cm d'espace derrière
  • Dégivrage : 3 mm de givre = +15% de consommation
  • Heures creuses : Programmez les machines la nuit (tarif réduit)

📊 Calcul du Coût Annuel :

Appareil Consommation Annuelle Coût Annuel (0.20€/kWh)
Lave-linge (220 cycles/an) ~220 kWh ~44€
Lave-vaisselle (250 cycles/an) ~250 kWh ~50€
Réfrigérateur (A++) ~250 kWh ~50€
Total ~720 kWh ~144€

11. Dépannage Courant

Problème Cause Possible Solution
Le disjoncteur saute Surcharge ou court-circuit Vérifiez la section du câble, testez l'appareil sur une autre prise
L'appareil ne démarre pas Problème d'alimentation Vérifiez la prise, le disjoncteur, le fusible de l'appareil
Choc électrique au contact Défaut de mise à la terre ⚠️ COUPEZ TOUT et appelez un électricien immédiatement
PZEM ne mesure rien Capteur CT mal orienté Vérifiez le sens du capteur (flèche vers la charge)
ESP32 redémarre en boucle Alimentation insuffisante Utilisez une alimentation 5V 2A de qualité
Données MQTT incohérentes Connexion WiFi instable Rapprochez l'ESP32 du routeur, ajoutez un condensateur 100µF

12. FAQ

Peut-on brancher un lave-linge sur une prise standard 16A ?

Non, c'est déconseillé. Un lave-linge peut consommer jusqu'à 2500W (soit ~11A), mais avec des pics au démarrage. La norme NF C 15-100 impose une prise spécialisée 20A avec un câble de section 2.5 mm² et un disjoncteur 20A dédié.

Faut-il un différentiel 30mA pour le lave-vaisselle ?

OUI, absolument. Tous les circuits de cuisine et salle de bain doivent être protégés par un différentiel 30mA pour éviter les électrocutions en cas de fuite de courant. C'est une obligation légale (NF C 15-100).

Quelle est la différence entre PZEM-004T et Shelly EM ?

Le PZEM-004T est un module de mesure brut (nécessite un microcontrôleur comme ESP32) tandis que le Shelly EM est une solution tout-en-un prête à l'emploi. Le PZEM coûte ~12€ et offre une flexibilité maximale, le Shelly EM coûte ~60€ mais s'intègre directement à Home Assistant. Pour les makers, le PZEM+ESP32 est bien plus intéressant.

Le frigo doit-il être sur un circuit dédié ?

Idéalement oui, mais ce n'est pas obligatoire. Un frigo peut partager un circuit avec d'autres prises de cuisine, à condition que le disjoncteur soit adapté (16A) et la section de câble suffisante (1.5 mm²). Cependant, un circuit dédié évite les coupures en cas de surcharge.

Comment savoir si mon installation électrique est aux normes ?

Faites réaliser un diagnostic électrique par un professionnel certifié (coût ~100-150€). Il vérifiera la présence des différentiels 30mA, la mise à la terre, les sections de câbles, et vous remettra un rapport conforme. Obligatoire pour la vente d'un logement.

13. Conclusion

Le branchement des appareils électroménagers est une opération qui nécessite rigueur et respect des normes. En suivant ce guide, vous avez appris :

  • ✅ Les règles de sécurité essentielles (NF C 15-100)
  • ✅ Le branchement spécifique de chaque appareil
  • ✅ Un projet DIY unique avec ESP32 pour monitorer votre consommation
  • ✅ L'intégration avec Home Assistant pour une domotique complète

🎯 Prochaines Étapes :

  1. Réalisez le branchement électrique en respectant les normes
  2. Construisez le module de monitoring ESP32 + PZEM-004T
  3. Intégrez le tout à Home Assistant
  4. Créez des automatisations (notifications, économies d'énergie)
  5. Partagez votre réalisation dans les commentaires !

🔗 Articles Connexes :

Vous avez des questions ? Rencontrez-vous des difficultés lors du branchement ou de la programmation ? Partagez vos expériences dans les commentaires ci-dessous !

Bottom Ad [Post Page]