Pourquoi construire un compteur de puissance basé sur un microcontrôleur?

Les moniteurs commerciaux coûtent souvent des centaines de dollars et n'ont pas la flexibilité nécessaire pour s'interfacer avec des systèmes de domotique personnalisés. Un compteur de puissance à microcontrôleur offre une alternative peu coûteuse que vous pouvez adapter à vos besoins spécifiques. En mesurant la tension, le courant et le calcul de la puissance réelle, ces appareils fournissent des informations pratiques qui vous aident à déplacer les charges, à identifier les appareils défectueux et à suivre les tendances à long terme. Ce guide passe par la sélection du matériel, la conception de circuits, le développement de micrologiciels et les étapes d'étalonnage nécessaires pour construire un compteur de puissance fiable et précis à l'aide d'une plateforme Arduino, ESP32 ou similaire.

Composantes de base : ce dont vous avez besoin et pourquoi

Chaque compteur de puissance repose sur quelques composants critiques. La sélection de pièces de qualité affecte directement la précision, la sécurité et la facilité d'utilisation. Ci-dessous, nous décomposons chaque élément, nous discutons des options communes et nous expliquons comment ils fonctionnent ensemble.

Microcontrôleur (MCU) – Le cerveau

Pour la surveillance de l'énergie à domicile, le ESP32 est un choix fort car il intègre le WiFi et le Bluetooth, fonctionne sur 3.3V et offre un traitement double-cœur. Si vous préférez la simplicité, une logique Arduino Uno (5V) fonctionne bien pour le prototypage, mais nécessite un bouclier WiFi externe pour la connectivité. Les spécifications clés à considérer incluent la résolution ADC (10-bit est commun mais 12 bits ou plus améliore la précision), le taux d'échantillonnage (idéalement >1 kHz pour des calculs RMS précis), et le nombre d'entrées analogiques (au moins deux : une pour la tension, une pour le courant).

Sensibilité à la tension

La mesure de la tension du réseau (généralement 110-240 VAC) en toute sécurité est le premier défi. La connexion directe de l'ADC du microcontrôleur serait dangereuse et illégale. L'approche la plus sûre utilise un ][FACT:][FLT:][FLT:][FLT:]][FLT:][FLT:][FACT:][FLT:]][FACT:][FACT:][FACT:][FACT:][FLT:]][FACT:][FACT:]][FACT:][FLT:]][FLT:]][FACT:][FACT:][FACT:][FACT:][FACT:[F][

Sensation actuelle

Pour la mesure du courant, les transformateurs à courant fractionné (CT) sont idéaux car ils se serrent autour d'un fil en direct sans interrompre le service. La famille SCT‐013 est populaire : la variante 30A/1V produit une puissance de courant proportionnelle à 0–1V, qu'un CDA peut lire après un biais DC. Les capteurs à effet Hall comme l'ACS712 ou l'ACS758 offrent une mesure DC/AC dans un ensemble compact IC mais nécessitent une coupe du circuit et l'insertion du capteur. Les CT sont non-invasifs et préférés pour les installations permanentes.

Conversion analogique au numérique (ADC)

Pour une plus grande précision, il est possible de considérer un CDA externe tel que le MCP3208 (12-bit, SPI) ou le ADS1115 (16-bit, I2C). L'ADS1115 est particulièrement populaire car il offre un gain programmable (jusqu'à ±256 mV) et un faible bruit, permettant une mesure précise des petits signaux.

Affichage et connectivité

Un écran local (OLED 128×64, TFT ou LCD de caractère) affiche la puissance en temps réel en watts, kilowattheures et coût. Pour l'accès à distance, le WiFi (ESP32 intégré) ou un module ESP‐01 externe vous permet de pousser les données vers MQTT, ThingsBoard ou un simple serveur web. Bluetooth BLE est une option pour les applications mobiles à courte portée. Assurez-vous que votre connectivité n'augmente pas la consommation d'énergie au point où elle réduit les économies d'énergie.

Conception du circuit et considérations de sécurité

Avant de monter quoi que ce soit, concevoir le circuit sur papier. Les voies de mesure de tension et de courant doivent être complètement isolées les unes des autres et du côté MCU basse tension. Utiliser une alimentation régulée 5V ou 3.3V dérivée d'un petit adaptateur mural, et non du secteur. Toutes les connexions au secteur doivent être enfermées dans une boîte isolée et notées pour la tension et le courant attendus. Ne travaillez jamais sur des circuits vivants à moins que vous ne soyez qualifié.

Un circuit typique pour un compteur monophasé:

  • Chaîne de tension: Transformateur à marche arrière (p. ex. sortie 9V AC) → diviseur de tension pour réduire à 1V pic → décalage DC (Vcc/2) → filtre RC (100-0/10μF) → entrée ADC.
  • Chaîne actuelle:[ CT (p. ex. SCT‐013 avec résistance à la charge intégrée) → DC offset (Vcc/2) → RC filter → entrée ADC.
  • Alimentation électrique:[ 5V ou 3.3V réglé à partir d'une banque d'alimentation USB ou d'un adaptateur dédié. Ne tirez pas de puissance du circuit de mesure.

Ajouter une borne 10k-- pour ajuster le décalage DC précisément à la moitié de la référence ADC. Cela garantit que la forme d'onde AC est centrée et que le microcontrôleur peut lire les moitiés positives et négatives.

Firmware: échantillonnage, calcul RMS et calcul de puissance

Le firmware doit échantillonner les deux canaux de manière synchronisée, calculer les valeurs RMS vraies (pour les charges non sinusoïdales comme les alimentations de commutation), et dériver la puissance active, la puissance apparente et le facteur de puissance.

Stratégie d'échantillonnage

Pour un réseau de 50/60 Hz, prélever au moins 64 points par cycle (p. ex. 3840 échantillons/seconde pour 60 Hz) pour capturer les harmoniques jusqu'au 15e. Une fréquence d'échantillonnage plus élevée (2–4 kHz) améliore la précision. Utilisez une interruption de minuterie ou la fonction pour maintenir les intervalles cohérents.

Calcul de la tension et du SGR actuel

Utilisez la formule suivante pour chaque canal :

sum_squared = 0;
for (int i = 0; i < N; i++) {
 read = analogRead(pin);
 // Remove DC offset
 sample = read - DC_OFFSET;
 sum_squared += sample * sample;
}
rms = sqrt(sum_squared / N) * (ADC_VREF / ADC_RESOLUTION) * SCALE_FACTOR;

Le convertit la lecture ADC (valeur numérique brute) en volts ou en amplis. Déterminez-la expérimentalement : alimentez une référence connue (p. ex. 10V AC) et ajustez le facteur jusqu'à ce que la lecture RMS corresponde à un vrai multimètre RMS.

Calcul de la puissance

La puissance apparente (S = V rms × I rms) est simple, mais la puissance active (P) nécessite une multiplication instantanée et une moyenne:

sum_active = 0;
for (int i = 0; i < N; i++) {
 v = (analogRead(V_PIN) - V_OFFSET) * V_SCALE;
 i = (analogRead(I_PIN) - I_OFFSET) * I_SCALE;
 sum_active += v * i;
}
active_power = sum_active / N;

Pour les charges purement résistives, PF ↓ 1.0; pour les charges inductives (moteurs), PF tombe en dessous de 1.0, et une vraie mesure de la puissance active est essentielle pour une facturation précise.

Accumulation d'énergie (kWh)

Pour suivre la consommation d'énergie, intégrer l'énergie active dans le temps :

uint32_t lastMillis = 0;
float energy_Wh = 0;
void loop() {
 if (millis() - lastMillis >= 1000) { // every second
 float power_watts = compute_active_power();
 energy_Wh += power_watts * (1.0 / 3600.0);
 lastMillis = millis();
 }
}

Entreposez la valeur accumulée dans la mémoire EEPROM ou RTC pour qu'elle survive à la perte de puissance. Pour un compteur entier, attendez des valeurs de l'ordre de 500 à 2000 Wh par heure selon l'utilisation.

Étalonnage : le secret des données fiables

Sans calibrage, vos relevés pourraient être désactivés de 10 à 20 % ou plus. Le processus comporte trois étapes :

  • Californage par zéro:[ Sans charge, lisez le décalage DC pour chaque canal et ajustez les constantes du micrologiciel jusqu'à ce que le SMR soit aussi près que possible de zéro (typiquement <0.1 W).
  • Californage de la tension: Appliquer une tension stable connue (p. ex., un adaptateur AC 12V mesuré avec un multimètre) et régler le facteur d'échelle de tension jusqu'à ce que le compteur corresponde.
  • Californage de la pression de courant: Connectez une charge résistive connue (p. ex., une ampoule à incandescence de 100W) et ajustez le facteur d'échelle actuel. Un pinceur à RMS calibré est ici inestimable.

Enregistrez les constantes d'étalonnage finales dans le code source ou stockez-les dans une mémoire non volatile afin de pouvoir affiner la fonction sans re-clasher le firmware.

Enregistrement et visualisation des données

Pour la surveillance à distance, envoyez des données via le WiFi à des plateformes comme EMONCMS, ThingsBoard ou un tableau de bord personnalisé Node-RED. L'ESP32 rend cette chose triviale – il suffit de se connecter à votre réseau domestique et de publier JSON sur MQTT. Si vous préférez une solution auto-installée, écrivez un simple serveur web sur le MCU qui sert une page HTML légère avec des graphiques Chart.js.

Pour la logation à long terme, un module de carte SD écrit des fichiers CSV. Ceci est utile lorsque le WiFi est peu fiable ou pour une analyse hors ligne. Assurez-vous que la carte est bien formatée et que la bibliothèque SD est initialisée en toute sécurité pour éviter la corruption de fichiers.

Plus d'une phase : Systèmes à trois phases et à polyphase

Les maisons à puissance triphasée (communes en Europe et dans les grandes maisons américaines) nécessitent trois canaux de tension et trois canaux courants. Vous pouvez utiliser un MCU avec suffisamment d'entrées analogiques (par exemple, ESP32 a deux ADC multiplexés à 16 broches, mais le bruit analogique augmente lorsque vous utilisez plusieurs canaux).

Synchronisation de l'heure

Pour une puissance active précise par phase, échantillonnez toutes les paires de tension et de courant en une seule explosion (en microsecondes) pour préserver les relations de phase. Si vous échantillonnez les canaux de façon séquentielle (comme avec un multiplexeur), le décalage horaire introduit une erreur de phase qui augmente avec les fréquences plus élevées.

Caractéristiques avancées pour étendre votre compteur

Une fois que le compteur de puissance de base fonctionne, envisager d'ajouter ces améliorations:

  • Avertissements de correction du facteur de puissance: Si PF tombe sous 0,8, indiquer à l'utilisateur d'étudier les éventuelles charges réactives.
  • Identification de l'appareil :[ En analysant les signatures harmoniques (en utilisant FFT), vous pouvez distinguer entre un réfrigérateur, un micro-ondes et un lave-linge.
  • Surveillance de la génération solaire:[ Ajouter un deuxième transformateur de courant sur la ligne d'alimentation solaire (CT bidirectionnelle) pour mesurer l'exportation/importation nette.
  • Calibration automatique:[ Utilisez un relais pour basculer dans une résistance de référence connue pour l'auto-étalonnage pendant les périodes de ralenti.
  • Arrêt de puissance excessive:[ Connectez un relais à l'état solide pour déconnecter les charges lorsque la consommation dépasse un seuil (p. ex. pour éviter le déclenchement du disjoncteur).

Comparaison avec les moniteurs d'énergie commerciale

Les produits commerciaux comme Sense, Emporia Vue ou Shelly EM offrent des applications polies, l'intégration du cloud et la sécurité UL. Cependant, ils vous verrouillent dans un écosystème propriétaire et nécessitent souvent un abonnement mensuel pour les données historiques. Un compteur DIY vous donne la pleine propriété des données, aucun coût récurrent, et la capacité d'interface avec n'importe quel standard de maison intelligente (Home Assistant, OpenHAB).

Ressources et lectures supplémentaires

Pour une meilleure compréhension, consultez les ressources suivantes :

Tout rassembler : une liste de vérification pratique

Pour vous aider à démarrer, voici une liste de contrôle étape par étape pour un compteur ESP32 monophasé :

  1. Composants de sélection et de commande: ESP32 DevKitC, SCT‐013‐000 (100A/50mA), transformateur AC 230V à‐9V, résistances 1k- et 10k--, condensateurs 10μF/25V, perfboard, boîtier.
  2. Assemblez d'abord les circuits de division de tension et de courant sur une table à pain. Testez avec un multimètre pour vérifier que le décalage DC est exactement Vcc/2.
  3. Écrire un croquis simple qui imprime les valeurs brutes ADC. Appliquer une tension AC connue (par l'intermédiaire du transformateur) et vérifier la forme de la forme d'onde sur un traceur série.
  4. Mettre en œuvre le calcul RMS avec une moyenne sur 50 cycles. Comparer la lecture à un multimètre.
  5. Ajouter le capteur de courant et répéter l'étalonnage. Tester avec une ampoule 100W (devrait lire ~0.43A sur 230V).
  6. Combiner la tension et le prélèvement du courant en une seule boucle. Calculer la puissance active. Vérifier avec une charge résistive (puissance active -puissance apparente).
  7. Ajoutez une connexion WiFi et une publication MQTT. Utilisez un outil comme MQTT Explorer pour vérifier le flux de données.
  8. Conception et impression 3D d'un boîtier qui assure le débit d'air et empêche tout contact accidentel avec le câblage secteur. Installez la version finale dans le panneau disjoncteur (avec disjoncteur principal désactivé).
  9. Exécutez le compteur pendant 24 heures et comparez le total d'énergie quotidien avec votre facture de service pour confirmer la précision dans les 2 à 5 %.

Bâtir un compteur de puissance à microcontrôleur est un projet gratifiant qui offre des avantages pratiques immédiats. Avec une conception et un calibrage soignés, votre moniteur maison fournira des années de données énergétiques fiables, vous aidant à réduire les déchets et à économiser de l'argent.