DC Peacefair PZEM-017 (avec interface RS485 / Modbus RTU)

25 000 CFA

Catégorie :

Brève description

Ce module est un capteur / wattmètre de précision pour courant continu (DC) :

  • Plage de mesure : Tension de 0 à 300 V DC et courant de 0 à 300 A DC (selon le Shunt externe utilisé).

  • Grandeur mesurées : Tension, Courant, Puissance instantanée (W) et Énergie consommée (kWh).

  • Communication : Interface série RS485 sous protocole Modbus-RTU, permettant d’interroger le module à distance via Arduino, ESP32, Raspberry Pi ou un PC (via convertisseur USB-RS485).

  • Sécurité : Mesure via Shunt externe et isolation de la partie mesure.

Utilité et applications

Ce composant est idéal pour la gestion et le suivi énergétique des installations solaires ou sur batteries :

  • Supervision d’installations solaires (PV) : Mesurer en temps réel la tension et le courant produits par les panneaux ou stockés dans les batteries.

  • Gestion de batterie / Power Management : Suivre la consommation électrique d’un système DC et calculer l’état de charge/décharge.

  • Banc de test électronique & Smart Home : Remonter les métriques de consommation électrique vers une centrale domotique (ex: Home Assistant, Domoticz) via RS485.

    #include <SoftwareSerial.h>
    #include <ModbusMaster.h>

    // Pins pour le MAX485
    #define RX_PIN 2
    #define TX_PIN 3
    #define MAX485_RE_DE 4

    SoftwareSerial pzemSerial(RX_PIN, TX_PIN);
    ModbusMaster node;

    // Fonctions de contrôle du sens de transmission RS485
    void preTransmission() {
    digitalWrite(MAX485_RE_DE, 1);
    }

    void postTransmission() {
    digitalWrite(MAX485_RE_DE, 0);
    }

    void setup() {
    Serial.begin(9600);
    pzemSerial.begin(9600);

    pinMode(MAX485_RE_DE, OUTPUT);
    digitalWrite(MAX485_RE_DE, 0);

    // Adresse Modbus par défaut du PZEM-017 = 1
    node.begin(1, pzemSerial);
    node.preTransmission(preTransmission);
    node.postTransmission(postTransmission);

    Serial.println(« Initialisation de la lecture PZEM-017… »);
    }

    void loop() {
    uint8_t result;

    // Lecture de 6 registres d’entrée à partir de l’adresse 0x0000
    result = node.readInputRegisters(0x0000, 6);

    if (result == node.ku8MBSuccess) {
    float tension = node.getResponseBuffer(0) / 100.0; // En Volts
    float courant = node.getResponseBuffer(1) / 100.0; // En Ampères
    uint32_t puissance_raw = ((uint32_t)node.getResponseBuffer(3) << 16) | node.getResponseBuffer(2);
    float puissance = puissance_raw / 10.0; // En Watts

    Serial.print(« Tension : « );
    Serial.print(tension);
    Serial.print( » V | Courant : « );
    Serial.print(courant);
    Serial.print( » A | Puissance : « );
    Serial.print(puissance);
    Serial.println( » W »);
    } else {
    Serial.print(« Erreur de lecture Modbus : « );
    Serial.println(result, HEX);
    }

    delay(2000); // Pause de 2 secondes entre deux lectures
    }

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “DC Peacefair PZEM-017 (avec interface RS485 / Modbus RTU)”
Retour en haut