⚡ Onduleur 12V-220V Intelligent DIY : Ajoutez un Monitoring ESP32 et une Protection Batterie (Guide 2026)

⚠️ AVERTISSEMENT DE SÉCURITÉ CRUCIAL : Ce projet implique la manipulation de tensions 220V AC et de forts courants 12V DC. Ces tensions peuvent être mortelles et provoquer des incendies. Si vous n'êtes pas à l'aise avec l'électricité, limitez-vous à la partie monitoring 12V ou faites appel à un professionnel pour le câblage 220V. Travaillez TOUJOURS hors tension.
Schéma d'un onduleur 12V 220V DIY amélioré avec un module ESP32 pour la surveillance de la batterie et la protection
Figure 1 : Architecture d'un onduleur DIY sécurisé avec monitoring intelligent ESP32.

Pourquoi Moderniser un Onduleur Classique avec un ESP32 ?

Les onduleurs (convertisseurs DC-AC) DIY classiques, comme notre populaire montage 100W 12V-220V, sont excellents mais ont un défaut majeur : ils tuent les batteries. En effet, ils continuent de tirer du courant jusqu'à ce que la batterie soit complètement vide (décharge profonde), ce qui la détruit irréversiblement.

En ajoutant un ESP32 et un capteur de courant/tension INA219, nous transformons ce montage basique en un système intelligent capable de :

  • Surveiller la tension et le courant en temps réel sur un écran OLED.
  • Couper automatiquement la charge via un relais si la batterie chute sous 11.5V (protection de la batterie).
  • Calculer la puissance consommée et l'énergie totale (Wh).
  • Envoyer des alertes (optionnel) via WiFi ou Telegram.

📦 Liste des Composants (BOM)

Pour la partie Monitoring & Protection (12V DC) :

  • Microcontrôleur : ESP32 DevKit V1 (~6€)
  • Capteur de Puissance : Module INA219 (I2C, 0-26V, 0-3.2A) ou INA226 pour >3.2A (~4€)
  • Affichage : Écran OLED 0.96" I2C SSD1306 (~4€)
  • Protection : Module Relais 5V 1 canal (pour couper l'entrée de l'onduleur) (~3€)
  • Divers : Câbles Dupont, borniers à vis, fusible 15A sur la ligne 12V.

Pour la partie Onduleur (Rappel) :

  • Transformateur 12V-0-12V (selon la puissance souhaitée, ex: 5A ou 10A)
  • 2x MOSFET IRFZ44N ou IRLZ44N (avec dissipateurs thermiques)
  • Circuit de pilotage (ex: CD4047 pour générer le signal 50Hz) ou un Arduino dédié.

🔌 Schéma de Câblage (Partie Intelligente)

Le module INA219 se place en série entre la batterie et l'entrée de l'onduleur. L'ESP32 lit les données et contrôle le relais de coupure.

Batterie 12V  ──→ [Fusible 15A] ──→ [Relais (COM)]
                                     │
                                     └──→ [Relais (NO)] ──→ [INA219 V+]
                                                             │
                                                             ├──→ [INA219 V-] ──→ Entrée Onduleur 12V+
                                                             │
Batterie 12V GND ────────────────────────────────────────────┴──→ Entrée Onduleur 12V-

Connexions ESP32 :
ESP32 3.3V  ──→ INA219 VCC & OLED VCC
ESP32 GND   ──→ INA219 GND & OLED GND
ESP32 GPIO 21 ──→ INA219 SDA & OLED SDA
ESP32 GPIO 22 ──→ INA219 SCL & OLED SCL
ESP32 GPIO 25 ──→ Relais IN (via transistor NPN si relais 5V, ou directement si relais 3.3V)

💻 Code Arduino Complet (ESP32)

/* * Monitoring et Protection Onduleur 12V-220V avec ESP32 * TechFix Hub - DIY Electronics & Power Projects * Bibliothèques requises : Adafruit INA219, Adafruit SSD1306, Adafruit GFX */ #include #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Adafruit_INA219 ina219; #define RELAY_PIN 25 // Broche de commande du relais #define VOLTAGE_CUTOFF 11.5 // Tension de coupure pour protéger la batterie (Lead-Acid) bool inverterActive = true; void setup() { Serial.begin(115200); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, HIGH); // Relais activé (ON) par défaut if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("Échec initialisation OLED")); for (;;); } display.clearDisplay(); display.setTextColor(SSD1306_WHITE); if (!ina219.begin()) { Serial.println("Échec initialisation INA219"); while (1) { delay(10); } } // Calibrage pour 12V et jusqu'à 10A (nécessite un shunt externe si > 3.2A) ina219.setCalibration_16V_400mA(); // À adapter selon votre shunt INA219 display.setTextSize(1); display.setCursor(0, 0); display.println("Systeme Onduleur"); display.println("Initialisation..."); display.display(); delay(2000); } void loop() { if (inverterActive) { float voltage = ina219.getBusVoltage_V(); float current_mA = ina219.getCurrent_mA(); float power_mW = ina219.getPower_mW(); // Affichage OLED display.clearDisplay(); display.setTextSize(1); display.setCursor(0, 0); display.print("Batterie: "); display.print(voltage, 2); display.println(" V"); display.print("Courant: "); display.print(current_mA / 1000, 2); display.println(" A"); display.print("Puissance: "); display.print(power_mW / 1000, 2); display.println(" W"); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 55); display.println("STATUS: ON (Normal)"); display.display(); // Logique de protection if (voltage <= VOLTAGE_CUTOFF) { inverterActive = false; digitalWrite(RELAY_PIN, LOW); // Coupe le relais display.clearDisplay(); display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Inversé pour alerte display.setCursor(0, 25); display.println(" ALERTE BATTERIE !"); display.setCursor(0, 40); display.println(" ONDULEUR COUPE"); display.display(); Serial.println("ALERTE: Tension basse, onduleur coupé pour protéger la batterie."); } } else { // Écran d'alerte clignotant display.invertDisplay(true); delay(500); display.invertDisplay(false); delay(500); } delay(1000); }

🛠️ Étapes de Montage et Calibrage

  1. Assemblage de l'onduleur : Réalisez d'abord le circuit de puissance (MOSFETs + Transformateur) comme détaillé dans notre guide de l'onduleur 100W.
  2. Intégration du capteur INA219 : Coupez le fil positif (+) venant de la batterie. Connectez un bout au "V+" du INA219 et l'autre au "V-". C'est crucial pour que le courant traverse le shunt du capteur.
  3. Test à vide : Avant de brancher l'onduleur, alimentez le circuit avec une alimentation de laboratoire 12V. Vérifiez que l'OLED affiche bien ~12V et 0A.
  4. Test de coupure : Faites descendre progressivement la tension de l'alimentation de laboratoire. À 11.5V, le relais doit claquer et l'écran doit afficher l'alerte.
  5. Calibrage du courant : Si vous tirez plus de 3.2A, le module INA219 standard saturera. Vous devrez soit utiliser un module INA226, soit modifier la résistance de shunt (R100) sur le module et recalibrer le code (fonction ina219.setCalibration_...).

⚠️ Dépannage (Troubleshooting)

  • L'écran OLED reste noir : Vérifiez l'adresse I2C (parfois 0x3D au lieu de 0x3C) avec un scanner I2C. Vérifiez les soudures SDA/SCL.
  • L'ESP32 redémarre en boucle (Brownout) : Le relais ou l'onduleur tire trop de courant au démarrage, faisant chuter la tension 3.3V de l'ESP32. Ajoutez un condensateur électrolytique de 470µF entre le 3.3V et le GND de l'ESP32, ou alimentez l'ESP32 via un régulateur LM7805 dédié.
  • Le relais ne coupe pas : Vérifiez la logique du relais. Certains modules sont "Active LOW" (s'activent avec un 0V). Dans ce cas, inversez la logique dans le code (HIGH pour couper, LOW pour activer).

Conclusion

Ajouter un cerveau (ESP32) à un onduleur DIY ne coûte que quelques euros, mais cela multiplie par dix la fiabilité et la durée de vie de votre installation en protégeant votre batterie. C'est l'évolution logique des montages classiques vers l'électronique moderne et connectée.

Prochaine étape : Consultez notre guide sur la connexion de ce système à Home Assistant via MQTT pour surveiller votre onduleur depuis votre smartphone !

Bottom Ad [Post Page]