🌡️ Installation Climatisation Maison : Guide Complet 2026 + Contrôle Intelligent ESP32
📋 Table des Matières
- 1. Introduction
- 2. Types de Climatisation
- 3. Dimensionnement Puissance (BTU/Watts)
- 4. Outils et Matériel Nécessaires
- 5. Installation Électrique et Câblage
- 6. Schémas de Câblage Complets
- 7. 🚀 Contrôle Intelligent avec ESP32
- 8. Code Arduino Complet
- 9. Monitoring Température/Humidité
- 10. Intégration Home Assistant
- 11. Entretien et Maintenance
- 12. Pannes Courantes et Dépannage
- 13. FAQ
- 14. Conclusion
1. Introduction
L'installation d'une climatisation split system est un projet qui combine plomberie (circuit frigorifique), électricité (alimentation 220V) et domotique (contrôle intelligent). Dans ce guide complet 2026, nous allons couvrir :
- Le dimensionnement correct de votre climatisation
- L'installation électrique sécurisée que vous pouvez faire vous-même
- Le câblage de contrôle entre unité intérieure et extérieure
- Un système de contrôle intelligent avec ESP32 pour piloter votre clim à distance
- L'intégration avec Home Assistant pour une domotique complète
2. Types de Climatisation
🔧 Les Différents Systèmes :
- Climatisation Split System (Mono-split) : 1 unité intérieure + 1 unité extérieure (idéal pour une pièce)
- Multi-split : 1 unité extérieure + 2-5 unités intérieures (plusieurs pièces)
- Système Gainable : Climatisation centralisée avec gaines (maison entière)
- Climatisation Mobile : Solution temporaire, moins efficace
3. Dimensionnement Puissance (BTU/Watts)
| Surface Pièce | Puissance Requise | BTU/h | Consommation Électrique |
|---|---|---|---|
| 10-15 m² | 2000-2500W (7000-9000 BTU) | 7000-9000 | ~600-800W |
| 15-25 m² | 2500-3500W (9000-12000 BTU) | 9000-12000 | ~800-1200W |
| 25-35 m² | 3500-5000W (12000-18000 BTU) | 12000-18000 | ~1200-1800W |
| 35-50 m² | 5000-7000W (18000-24000 BTU) | 18000-24000 | ~1800-2500W |
- Orientation : +10% si plein sud, +15% si plein ouest
- Isolation : +20% si mauvaise isolation
- Hauteur sous plafond : +10% si > 2.5m
- Nombre de personnes : +100W par personne supplémentaire
- Appareils électriques : +200W par ordinateur/TV
4. Outils et Matériel Nécessaires
📦 Pour l'Installation Électrique (DIY) :
- Câble électrique : 3G2.5mm² (alimentation 220V) ou 3G1.5mm² (selon puissance)
- Câble de contrôle : 4-5 fils 0.75-1mm² (liaison UI-UE)
- Disjoncteur différentiel : 30mA type A ou AC
- Disjoncteur divisionnaire : 16A ou 20A selon puissance
- Boîtier étanche IP65 : Pour connexions extérieures
- Goulotte/cable duct : Pour passage câbles
- Perceuse, visseuse, niveau à bulle
- Multimètre : Pour tests de continuité et tension
🔧 Pour le Contrôle Intelligent ESP32 :
- ESP32 DevKit V1 (~6€)
- Capteur DHT22 ou BME280 (température/humidité) (~5€)
- Module Relais 5V (pour contrôle ON/OFF) (~3€)
- Module IR (TSOP38238) (pour contrôle télécommande) (~2€)
- LED IR (940nm) (pour émission IR) (~1€)
- Résistances, câbles, breadboard (~5€)
💰 Coût total projet ESP32 : ~22€ (vs 100-300€ pour solutions commerciales type Nest/Tado)
5. Installation Électrique et Câblage
- Coupez TOUJOURS le courant au disjoncteur général avant toute intervention
- Vérifiez l'absence de tension avec un multimètre
- Respectez la norme NF C 15-100
- Utilisez des câbles de section adaptée
- Protégez avec un différentiel 30mA obligatoire
🔌 Étapes d'Installation Électrique :
- Alimentation depuis le tableau :
- Tirez un câble 3G2.5mm² depuis le tableau électrique
- Installez un disjoncteur 16A ou 20A dédié
- Protégez avec un différentiel 30mA
- Longueur max : 20m pour 2.5mm² (sinon passez à 4mm²)
- Connexion unité extérieure :
- Installez un boîtier étanche IP65 près de l'UE
- Connectez Phase (L), Neutre (N), Terre (⏚)
- Utilisez des cosses adaptées et serrez bien
- Câblage de contrôle UI-UE :
- Utilisez un câble 4-5 fils 0.75-1mm²
- Respectez le schéma du fabricant (généralement : 1-2-3-4-5)
- Broches typiques : Alimentation, Terre, Signal TX, Signal RX
- Longueur max : 15-20m selon modèle
6. Schémas de Câblage Complets
📋 Schéma de Câblage Standard :
═══════════════════════════════════════════════════════════╗ ║ SCHÉMA DE CABLAGE CLIMATISATION SPLIT ║ ╠═══════════════════════════════════════════════════════════╣ ║ ║ ║ TABLEAU ÉLECTRIQUE ║ ║ ┌─────────────────┐ ║ ║ │ Différentiel 30mA│ ║ ║ │ Divisionnaire │ ║ ║ │ 16A/20A │ ║ ║ └────────┬────────┘ ║ ║ │ Câble 3G2.5mm² ║ ║ │ (L/N/⏚) ║ ║ ▼ ║ ║ ─────────────────┐ ║ ║ │ BOÎTIER IP65 │ ║ ║ │ (Extérieur) │ ║ ║ └────────┬────────┘ ║ ║ │ ║ ║ ├──→ UNITÉ EXTÉRIEURE (UE) ║ ║ │ - Phase (L) ║ ║ │ - Neutre (N) ║ ║ │ - Terre () ║ ║ │ ║ ║ └──→ CÂBLE DE CONTRÔLE (4-5 fils) ║ ║ Broche 1: Communication ║ ║ Broche 2: Communication ║ ║ Broche 3: Signal ║ ║ Broche 4: Signal ║ ║ Broche 5: Optionnel ║ ║ ↓ ║ ║ UNITÉ INTÉRIEURE (UI) ║ ║ ║ ╚═══════════════════════════════════════════════════════════╝
7. 🚀 Contrôle Intelligent avec ESP32
Maintenant que l'installation électrique est faite, passons à la partie DIY la plus intéressante : créer un système de contrôle intelligent avec ESP32 qui vous permettra de :
- Contrôler votre climatisation à distance via WiFi
- Programmer des horaires de marche/arrêt
- Surveiller la température et l'humidité en temps réel
- Intégrer avec Home Assistant, Alexa, Google Home
- Économiser de l'énergie avec des automatisations intelligentes
📦 Matériel Requis pour le Contrôle ESP32 :
- ESP32 DevKit V1 (WiFi + Bluetooth)
- Capteur DHT22 ou BME280 (température/humidité)
- Récepteur IR TSOP38238 (pour apprendre la télécommande)
- LED IR 940nm (pour émettre les signaux IR)
- Module Relais 5V (optionnel, pour contrôle ON/OFF direct)
- Résistance 220Ω (pour LED IR)
- Résistance 10kΩ (pour DHT22)
🔌 Schéma de Câblage ESP32 :
ESP32 Composants ───── ────────── GPIO 4 ───→ DHT22 Data (avec 10kΩ pull-up) 3.3V ───→ DHT22 VCC GND ───→ DHT22 GND GPIO 15 ───→ TSOP38238 OUT (récepteur IR) 3.3V ───→ TSOP38238 VCC GND ───→ TSOP38238 GND GPIO 2 ───→ LED IR (+ via 220Ω) GND ───→ LED IR (-) GPIO 5 ───→ Relais IN (optionnel) 3.3V/5V ───→ Relais VCC GND ───→ Relais GND
8. Code Arduino Complet
/*
* Contrôle Intelligent Climatisation avec ESP32
* TechFix Hub - DIY Electronics & Smart Home Projects
*
* Fonctionnalités :
* - Contrôle IR de la climatisation (apprentissage télécommande)
* - Surveillance température/humidité (DHT22/BME280)
* - Interface Web pour contrôle à distance
* - Intégration MQTT pour Home Assistant
* - Programmation horaires
*
* Bibliothèques requises :
* - DHT sensor library (by Adafruit)
* - ArduinoJson (by Benoit Blanchon)
* - PubSubClient (by Nick O'Leary) - pour MQTT
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
// ============ CONFIGURATION WIFI ============
const char* WIFI_SSID = "VOTRE_WIFI";
const char* WIFI_PASSWORD = "VOTRE_MDP";
// ============ CONFIGURATION MQTT (Home Assistant) ============
const char* MQTT_SERVER = "192.168.1.100"; // IP de votre broker MQTT
const int MQTT_PORT = 1883;
const char* MQTT_USER = "votre_user";
const char* MQTT_PASSWORD = "votre_password";
const char* MQTT_DEVICE_ID = "clim_salon";
// ============ BROCHES ESP32 ============
#define DHT_PIN 4
#define IR_RECV_PIN 15
#define IR_SEND_PIN 2
#define RELAY_PIN 5
// ============ CONSTANTES ============
#define DHT_TYPE DHT22
#define MQTT_BUFFER_SIZE 512
// ============ OBJETS ============
DHT dht(DHT_PIN, DHT_TYPE);
WebServer server(80);
WiFiClient espClient;
PubSubClient mqttClient(espClient);
IRsend irsend(IR_SEND_PIN);
IRrecv irrecv(IR_RECV_PIN);
// ============ VARIABLES ============
float temperature = 0;
float humidity = 0;
bool climState = false;
int targetTemp = 24;
String climMode = "cool"; // cool, heat, dry, fan
unsigned long lastTempRead = 0;
unsigned long lastMQTTPublish = 0;
// Codes IR (à apprendre avec votre télécommande)
uint64_t IR_CODE_ON = 0x000000000000; // Remplacez par vos codes
uint64_t IR_CODE_OFF = 0x000000000000;
uint64_t IR_CODE_TEMP_UP = 0x000000000000;
uint64_t IR_CODE_TEMP_DOWN = 0x000000000000;
// ============ SETUP ============
void setup() {
Serial.begin(115200);
Serial.println("\n\n=====================================");
Serial.println("🌡️ Contrôle Climatisation ESP32");
Serial.println("=====================================\n");
// Initialisation capteurs
dht.begin();
irsend.begin();
irrecv.enableIRIn(); // Démarrer réception IR
// Connexion WiFi
connectToWiFi();
// Configuration MQTT
mqttClient.setServer(MQTT_SERVER, MQTT_PORT);
mqttClient.setBufferSize(MQTT_BUFFER_SIZE);
mqttClient.setCallback(mqttCallback);
connectToMQTT();
// Configuration serveur Web
setupWebServer();
Serial.println("✅ Système prêt!");
Serial.println("Accédez à http://" + WiFi.localIP().toString() + " pour contrôler");
}
// ============ LOOP ============
void loop() {
// Gestion WiFi
if (WiFi.status() != WL_CONNECTED) {
connectToWiFi();
}
// Gestion MQTT
if (!mqttClient.connected()) {
connectToMQTT();
}
mqttClient.loop();
// Lecture température toutes les 5 secondes
if (millis() - lastTempRead > 5000) {
lastTempRead = millis();
readSensors();
}
// Publication MQTT toutes les 30 secondes
if (millis() - lastMQTTPublish > 30000) {
lastMQTTPublish = millis();
publishToMQTT();
}
// Gestion réception IR
decodeIR();
// Gestion serveur Web
server.handleClient();
delay(100);
}
// ============ 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 connecté!");
Serial.print("📍 IP : ");
Serial.println(WiFi.localIP());
} else {
Serial.println("\n❌ Erreur WiFi");
}
}
void connectToMQTT() {
Serial.print("🔗 Connexion MQTT...");
String clientId = "ESP32-" + MQTT_DEVICE_ID;
if (mqttClient.connect(clientId.c_str(), MQTT_USER, MQTT_PASSWORD)) {
Serial.println(" OK!");
// Souscription aux topics
String topic = String("home/climat/") + MQTT_DEVICE_ID + "/cmd";
mqttClient.subscribe(topic.c_str());
topic = String("home/climat/") + MQTT_DEVICE_ID + "/temp/set";
mqttClient.subscribe(topic.c_str());
topic = String("home/climat/") + MQTT_DEVICE_ID + "/mode/set";
mqttClient.subscribe(topic.c_str());
} else {
Serial.print(" ❌ Erreur, rc=");
Serial.println(mqttClient.state());
delay(5000);
}
}
void readSensors() {
temperature = dht.readTemperature();
humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("❌ Erreur lecture DHT22");
return;
}
Serial.print("🌡️ Température: ");
Serial.print(temperature);
Serial.print("°C | Humidité: ");
Serial.print(humidity);
Serial.println("%");
}
void mqttCallback(char* topic, byte* payload, unsigned int length) {
String message;
for (unsigned int i = 0; i < length; i++) {
message += (char)payload[i];
}
Serial.print("📨 Message MQTT [");
Serial.print(topic);
Serial.print("] : ");
Serial.println(message);
// Parse JSON
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, message);
if (error) {
Serial.println("❌ Erreur parse JSON");
return;
}
// Traitement commandes
if (doc.containsKey("state")) {
String state = doc["state"];
if (state == "ON") {
turnOnClim();
} else if (state == "OFF") {
turnOffClim();
}
}
if (doc.containsKey("temperature")) {
targetTemp = doc["temperature"];
setTemperature(targetTemp);
}
if (doc.containsKey("mode")) {
climMode = doc["mode"];
setMode(climMode);
}
}
void turnOnClim() {
climState = true;
irsend.sendNEC(IR_CODE_ON, 32); // Adaptez le protocole
Serial.println("✅ Climatisation ALLUMÉE");
publishToMQTT();
}
void turnOffClim() {
climState = false;
irsend.sendNEC(IR_CODE_OFF, 32);
Serial.println("❌ Climatisation ÉTEINTE");
publishToMQTT();
}
void setTemperature(int temp) {
targetTemp = temp;
// Envoyer code IR pour régler température
// À adapter selon votre modèle de clim
Serial.print("️ Température cible: ");
Serial.println(temp);
}
void setMode(String mode) {
climMode = mode;
// Envoyer code IR pour changer mode
Serial.print("🔄 Mode: ");
Serial.println(mode);
}
void decodeIR() {
decode_results results;
if (irrecv.decode(&results)) {
Serial.print("📡 Code IR reçu: 0x");
Serial.println(uint64ToString(results.value));
// Apprendre les codes de votre télécommande
// Comparez avec IR_CODE_ON, IR_CODE_OFF, etc.
irrecv.resume();
}
}
void publishToMQTT() {
String baseTopic = String("home/climat/") + MQTT_DEVICE_ID;
// Créer JSON
StaticJsonDocument<200> doc;
doc["temperature"] = temperature;
doc["humidity"] = humidity;
doc["target_temp"] = targetTemp;
doc["state"] = climState ? "ON" : "OFF";
doc["mode"] = climMode;
char buffer[256];
serializeJson(doc, buffer);
// Publication
String topic = baseTopic + "/status";
mqttClient.publish(topic.c_str(), buffer);
Serial.println("📤 Données MQTT publiées");
}
void setupWebServer() {
server.on("/", [](){
String html = generateWebPage();
server.send(200, "text/html", html);
});
server.on("/api/status", [](){
StaticJsonDocument<200> doc;
doc["temperature"] = temperature;
doc["humidity"] = humidity;
doc["target_temp"] = targetTemp;
doc["state"] = climState ? "ON" : "OFF";
doc["mode"] = climMode;
String json;
serializeJson(doc, json);
server.send(200, "application/json", json);
});
server.on("/api/control", HTTP_POST, [](){
String body = server.arg("plain");
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, body);
if (!error) {
if (doc.containsKey("state")) {
String state = doc["state"];
if (state == "ON") turnOnClim();
else if (state == "OFF") turnOffClim();
}
if (doc.containsKey("temperature")) {
setTemperature(doc["temperature"]);
}
if (doc.containsKey("mode")) {
setMode(doc["mode"]);
}
server.send(200, "application/json", "{\"status\":\"ok\"}");
} else {
server.send(400, "application/json", "{\"error\":\"Invalid JSON\"}");
}
});
server.begin();
Serial.println("🌐 Serveur Web démarré");
}
String generateWebPage() {
return R"rawliteral(
Contrôle Climatisation
🌡️ Contrôle Climatisation
Température Actuelle
--°C
Humidité
--%
Contrôle
24°C
Mode
)rawliteral";
}
200>200>200>200>
9. Monitoring Température/Humidité
Pour un contrôle optimal de votre climatisation, il est essentiel de surveiller en temps réel :
- Température ambiante : Pour ajuster automatiquement la clim
- Humidité relative : Pour activer le mode déshumidification si nécessaire
- Consommation électrique : Pour optimiser les coûts (avec module PZEM-004T)
💡 Automatisation Intelligente :
- Si température > 26°C → Allumer clim automatiquement
- Si humidité > 70% → Activer mode déshumidification
- Si fenêtre ouverte (capteur) → Éteindre clim
- Si personne détectée (PIR) → Mode économie
10. 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:
climate:
- name: "Climatisation Salon"
unique_id: "clim_salon_mqtt"
mode_state_topic: "home/climat/clim_salon/status"
mode_state_template: "{{ value_json.mode }}"
mode_command_topic: "home/climat/clim_salon/cmd"
temperature_state_topic: "home/climat/clim_salon/status"
temperature_state_template: "{{ value_json.target_temp }}"
temperature_command_topic: "home/climat/clim_salon/temp/set"
current_temperature_topic: "home/climat/clim_salon/status"
current_temperature_template: "{{ value_json.temperature }}"
modes:
- "off"
- "cool"
- "heat"
- "dry"
- "fan_only"
min_temp: 16
max_temp: 30
temp_step: 1
sensor:
- name: "Clim Salon Température"
state_topic: "home/climat/clim_salon/status"
value_template: "{{ value_json.temperature }}"
unit_of_measurement: "°C"
device_class: temperature
- name: "Clim Salon Humidité"
state_topic: "home/climat/clim_salon/status"
value_template: "{{ value_json.humidity }}"
unit_of_measurement: "%"
device_class: humidity
# Automation : Allumage automatique si température > 26°C
automation:
- alias: "Clim Auto Allumage"
trigger:
- platform: numeric_state
entity_id: sensor.clim_salon_temperature
above: 26
condition:
- condition: state
entity_id: climate.climatisation_salon
state: "off"
action:
- service: climate.turn_on
target:
entity_id: climate.climatisation_salon
- service: climate.set_temperature
target:
entity_id: climate.climatisation_salon
data:
temperature: 24
- alias: "Clim Auto Extinction"
trigger:
- platform: numeric_state
entity_id: sensor.clim_salon_temperature
below: 22
condition:
- condition: state
entity_id: climate.climatisation_salon
state: "cool"
action:
- service: climate.turn_off
target:
entity_id: climate.climatisation_salon
11. Entretien et Maintenance
🔧 Maintenance Régulière :
- Tous les mois : Nettoyer les filtres à air (lavage à l'eau tiède)
- Tous les 3 mois : Vérifier l'écoulement des condensats
- Tous les 6 mois : Nettoyer les ailettes de l'unité extérieure
- Annuellement : Faire vérifier le niveau de gaz par un professionnel
12. Pannes Courantes et Dépannage
| Panne | Cause Possible | Solution |
|---|---|---|
| Clim ne s'allume pas | Disjoncteur déclenché ou problème d'alimentation | Vérifiez le tableau, testez la tension avec multimètre |
| Fuite d'eau intérieure | Bouchon dans évacuation condensats | Déboucher le tuyau d'évacuation |
| Mauvais refroidissement | Filtres sales ou manque de gaz | Nettoyer filtres, appeler pro pour contrôle gaz |
| Bruit anormal | Ventilateur déséquilibré ou pièces desserrées | Vérifier serrage vis, nettoyer ventilateur |
| Code erreur affiché | Problème électronique ou capteur | Consulter manuel, redémarrer système |
13. FAQ
Puis-je installer moi-même ma climatisation ?
L'installation électrique et le câblage de contrôle peuvent être réalisés en DIY si vous avez des compétences en électricité. Cependant, la manipulation du circuit frigorifique (gaz R32/R410A) est réglementée et doit être faite par un professionnel certifié. De plus, la mise en service nécessite un professionnel pour garantir la garantie.
Quelle puissance de climatisation pour 20m² ?
Pour une pièce de 20m² avec hauteur sous plafond standard (2.5m) et isolation correcte, il faut une climatisation de 2500-3500W (9000-12000 BTU). Ajustez +10-20% si la pièce est mal isolée ou exposée plein sud.
Combien coûte l'installation d'une clim split system ?
Le coût total varie entre 800-2500€ selon la puissance et la complexité d'installation. Cela inclut : climatisation (500-1500€), main d'œuvre professionnelle (300-800€), et matériel électrique (50-200€). Le système ESP32 DIY coûte seulement ~22€ pour le contrôle intelligent.
Comment économiser avec sa climatisation ?
Régler à 26°C en été (1°C de plus = 7% d'économie), utiliser la programmation horaires, fermer volets/rideaux en journée, entretenir régulièrement les filtres, et utiliser un système de contrôle intelligent (ESP32) pour optimiser automatiquement la consommation.
14. Conclusion
L'installation d'une climatisation split system combine plusieurs compétences : électricité, plomberie (circuit frigorifique) et domotique. Dans ce guide, vous avez appris :
- ✅ Le dimensionnement correct selon la surface
- ✅ L'installation électrique sécurisée (que vous pouvez faire vous-même)
- ✅ Le câblage de contrôle entre unités
- ✅ Un système de contrôle intelligent avec ESP32 pour piloter à distance
- ✅ L'intégration avec Home Assistant pour une domotique complète
🎯 Prochaines Étapes :
- Dimensionnez correctement votre climatisation
- Faites appel à un professionnel pour l'installation du circuit frigorifique
- Réalisez vous-même l'installation électrique et le câblage
- Construisez le système de contrôle ESP32 (~22€)
- Intégrez avec Home Assistant pour des automatisations intelligentes
- Profitez d'une climatisation économique et connectée !
🔗 Articles Connexes :
Vous avez des questions sur l'installation ou le contrôle intelligent ? Partagez vos expériences dans les commentaires ci-dessous !
