Le PZEM-004T V3.0 est un compteur d’énergie AC multifonction conçu pour répondre aux besoins des ingénieurs, makers, enseignants et passionnés d’électronique. Parfaitement adapté aux projets domotiques ou industriels, ce module vous permet de mesurer la tension, le courant, la puissance active, l’énergie consommée (kWh), la fréquence ainsi que le facteur de puissance (PF).
Doté d’une isolation galvanique et d’une interface de communication série UART (Modbus RTU), ce capteur s’intègre facilement à des plateformes telles que Arduino, ESP8266, ESP32, STM32 ou Raspberry Pi, pour une gestion énergétique complète et fiable.
🚀 Pourquoi choisir le PZEM-004T V3.0 ?
🔄 Version améliorée par rapport à l’ancien modèle V1.0, avec ajout de la mesure de fréquence et du facteur de puissance.
✅ Haute précision : Résolution élevée pour toutes les mesures, y compris le courant (0.001A) et la tension (0.1V).
💻 Compatible avec les plateformes open-source (Arduino, ESP, etc.) grâce à des bibliothèques bien documentées.
🔧 Installation facile : transformateur de courant (CT) inclus pour une intégration rapide sans intervention intrusive.
🧠 Parfait pour les projets IoT, systèmes de gestion de l’énergie, tableaux de distribution, ou stations de recharge solaire.
📐 Caractéristiques Techniques :
Paramètre | Plage de mesure | Résolution | Précision |
---|---|---|---|
Tension (V) | 80 – 260 V AC | 0.1 V | ±0.5 % |
Courant (A) | 0 – 100 A (CT inclus) | 0.001 A | ±0.5 % |
Puissance (W) | Jusqu’à 23 kW | 0.1 W | ±0.5 % |
Énergie (kWh) | Jusqu’à 9999.99 kWh | 1 Wh | ±0.5 % |
Fréquence (Hz) | 45 – 65 Hz | 0.1 Hz | ±0.5 % |
Facteur de puissance (PF) | 0.00 – 1.00 | 0.01 | ±1 % |
🛠️ Applications possibles :
Surveillance de consommation électrique domestique ou industrielle
Gestion intelligente d’installations photovoltaïques
Projets éducatifs en électronique/énergie
Systèmes domotiques DIY avec automatisation (Home Assistant, Domoticz, etc.)
🧑💻 Utilisation avec Arduino (extrait de code) :
#include <PZEM004Tv30.h>
PZEM004Tv30 pzem(11, 12); // RX, TX
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("Tension: "); Serial.println(pzem.voltage());
Serial.print("Courant: "); Serial.println(pzem.current());
Serial.print("Puissance: "); Serial.println(pzem.power());
Serial.print("Énergie: "); Serial.println(pzem.energy());
Serial.print("Fréquence: "); Serial.println(pzem.frequency());
Serial.print("Facteur de puissance: "); Serial.println(pzem.pf());
delay(2000);
}
🧑💻 Configuration par USB TTL (Modnus) :
uart:
rx_pin: D1
tx_pin: D2
baud_rate: 9600
modbus:
sensor:
- platform: pzemac
current:
name: "Courant PZEM"
voltage:
name: "Tension PZEM"
energy:
name: "Énergie PZEM"
power:
name: "Puissance PZEM"
frequency:
name: "Fréquence PZEM"
power_factor:
name: "Facteur de puissance PZEM"
update_interval: 60s
Protocole de communication
Le Compteur d’énergie PZEM-004T utilise une interface UART vers TTL comme protocole de couche physique, avec une configuration standard de 9600 bauds, 8 bits de données, 1 bit d’arrêt, aucune parité. Pour la couche application, le protocole utilisé est Modbus-RTU, compatible avec plusieurs codes de fonction : 0x03
(lecture des registres de maintien), 0x04
(lecture des registres d’entrée), 0x06
(écriture d’un seul registre), 0x41
(étalonnage), et 0x42
(mise hors tension). Les codes 0x41
et 0x42
sont réservés à des usages particuliers, notamment l’étalonnage et la réinitialisation, respectivement. L’adresse 0xF8 est utilisée exclusivement pour les opérations internes avec un mot de passe par défaut 0x3721
. La plage d’adressage va de 0x01
à 0xF7
, 0x00
étant l’adresse de diffusion.
La lecture des mesures s’effectue via des trames de 8 octets, la réponse dépendant du succès ou non de la requête. Les valeurs retournées (tension, courant, puissance, énergie, fréquence, facteur de puissance et état d’alarme) sont encodées sur plusieurs octets selon les registres demandés. Il est également possible de lire ou modifier certains paramètres comme l’adresse de l’esclave ou le seuil d’alarme de puissance via des trames spécifiques utilisant les codes 0x03
(lecture) ou 0x06
(écriture).
La commande de mise hors tension de l’esclave utilise le code 0x42
, tandis que la commande d’étalonnage utilise 0x41
avec une trame sécurisée par mot de passe. Le temps de réponse après un étalonnage est d’environ 3 à 4 secondes. Enfin, toutes les trames sont protégées par un contrôle CRC de 16 bits basé sur le polynôme 0xA001
(X¹⁶ + X¹⁵ + X² + 1), garantissant l’intégrité des données échangées.
Il n’y a pas encore d’avis.