Se rendre au contenu

← Web API - POST | Sommaire | Suivant : Guide MQTT →

10. Calibrage des capteurs



Sommaire




10.1 Vue d'ensemble

ACRouter prend en charge le calibrage des capteurs pour garantir des mesures précises de tension et de courant. Le calibrage s'effectue en calculant un coefficient multiplicateur à partir de mesures réalisées avec des instruments de référence.


Pourquoi le calibrage est-il nécessaire ?

  • Tolérances de fabrication : chaque capteur présente de légères variations par rapport aux valeurs nominales
  • Différences de tension réseau : les pays utilisent des standards différents (230V, 110V, 220V, 240V, etc.)
  • Précision de mesure : le calibrage garantit une précision de ±2 % ou mieux


Valeurs par défaut d'usine

Au premier démarrage ou après une réinitialisation, les valeurs suivantes sont utilisées :

Capteur Modèle Multiplicateur Remarque
Tension ZMPT107 328.57 Calibré pour 230V (0,70V RMS = 230V AC)
Courant SCT-013-030 30.0 Maximum 30A



10.2 Calibrage du capteur de tension ZMPT107


À partir de la version 2.0, ACRouter prend en charge le calibrage automatique du capteur de tension. Le système mesure automatiquement la sortie du capteur (VDC RMS) et calcule le multiplicateur de calibrage.

Procédure de calibrage automatique

Étape 1 : Mesurer la tension réseau

Utilisez un multimètre pour mesurer la tension réseau réelle :

python
Example:
Multimeter shows: 232.5V AC

Étape 2 : Lancer le calibrage automatique

Entrez la commande avec la tension mesurée :

bash
hardware-voltage-calibrate 232.5

Étape 3 : Le système effectue automatiquement :

  1. Mesure de la sortie actuelle du capteur (VDC RMS) — par ex. 0,72V
  2. Calcul du multiplicateur : 232.5 / 0.72 = 322.92
  3. Sauvegarde des données de calibrage dans le NVS

Exemple de sortie :

python
Auto-calibrating voltage sensor...
Measured grid voltage (from multimeter): 232.5 V
Raw sensor VDC output: 0.72 V
Calculated multiplier: 322.92
Sensor type: ZMPT107

Configuration updated:
  nominal_vdc = 0.72 V (measured)
  multiplier = 322.92

Calibration saved to NVS. Please reboot to apply: reboot

Étape 4 : Redémarrage

bash
reboot

Avantages du calibrage automatique :

No need to adjust sensor potentiometer manually
Works with any sensor output voltage (0.5V, 0.7V, 1.0V, etc.)
Automatically updates nominal_vdc to actual measured value
More accurate and faster calibration

Via Web API :

bash
curl -X POST http://192.168.4.1/api/hardware/voltage/calibrate \
  -H "Content-Type: application/json" \
  -d '{"measured_vac": 232.5}'

Via l'interface web :

  1. Ouvrez http:///settings/hardware
  2. Find "Voltage Sensor Auto-Calibration" section
  3. Entrez la tension réseau mesurée (VAC)
  4. Click "Calibrate" button
  5. Redémarrez l'appareil


Calibrage manuel (Méthode héritée)

Pour la compatibilité avec les versions antérieures ou les cas particuliers, le calcul manuel peut être utilisé.

Principe de calibrage

The ZMPT107 sensor is factory-calibrated so that:
- Nominal grid voltage0.70V RMS output (may vary ±0.1V)
- Formula: multiplier = V_measured / V_sensor_vdc

Procédure de calibrage manuel

Étape 1 : Préparation

  1. Connectez ACRouter au secteur
  2. Connectez-vous au port série (115200 bauds)
  3. Vérifiez que le capteur ZMPT107 est connecté au GPIO configuré

Étape 2 : Mesurer la tension réseau

Utilisez un multimètre pour mesurer la tension réseau réelle :

python
Example:
Multimeter shows: 232.5V AC

Étape 3 : Vérifier la sortie du capteur

Exécutez la commande pour afficher le VDC brut :

bash
hardware-voltage-show

Exemple de sortie :

python
Voltage Sensor Configuration:
  GPIO: 35
  Type: ZMPT107
  Nominal VDC: 0.70 V (factory default)
  Multiplier: 328.57
  Current reading: 232.5 V (from 0.72 V raw)
                           ^^^^^^ ← use this value

Étape 4 : Calculer le multiplicateur

Utilisez la formule avec le VDC réel du capteur :

python
multiplier = V_measured / V_sensor_vdc

Pour l'exemple ci-dessus (232,5V / 0,72V) :

python
multiplier = 232.5 / 0.72 = 322.92

Étape 5 : Appliquer le calibrage

Via la console :

bash
hardware-voltage-config-multiplier 322.92

Via Web API :

bash
curl -X POST http://192.168.4.1/api/hardware/config \
  -H "Content-Type: application/json" \
  -d '{
    "adc_channels": [
      {
        "gpio": 35,
        "type": 1,
        "multiplier": 322.92,
        "offset": 0.0,
        "enabled": true
      }
    ]
  }'

Étape 6 : Redémarrage

bash
reboot


Remarques importantes

⚠️ WARNING: The ZMPT107 sensor uses a voltage divider circuit:
- DC bias center: 1.65V DC
- Maximum peak voltage: 3.06V (for 230V AC)
- This is very close to ESP32 ADC maximum input (3.3V)!

Recommendations:
- Do not use with grid voltage above 250V AC
- For voltages above 240V, consider factory recalibration of ZMPT107 (reduce output to 0.60V = 240V)




10.3 Calibrage du capteur de courant SCT-013


Principe de calibrage

SCT-013 sensors are available in different variants:
- SCT-013-030: 0-30A, output 0-1V
- SCT-013-050: 0-50A, output 0-1V
- SCT-013-100: 0-100A, output 0-1V

Formule : multiplier = I_measured / V_adc


Procédure de calibrage

Étape 1 : Préparation

  1. Connectez une charge connue (par ex. un radiateur électrique de 2000W)
  2. Mesurez le courant à l'aide d'une pince ampèremétrique
  3. Vérifiez que le capteur SCT-013 est correctement installé sur le câble

Étape 2 : Mesurer le courant

python
Example:
Load: 2000W heater
Grid voltage: 230V
Expected current: 2000W / 230V = 8.7A
Clamp meter shows: 8.65A

Étape 3 : Vérifier la lecture ADC du courant

Exécutez la commande :

bash
status

Recherchez les courants :

python
Power Measurements:
  Voltage:     230.0 V
  Current (Load):   7.2 A    ← Uncalibrated current
  Current (Grid):   0.0 A
  ...

Étape 4 : Calculer le multiplicateur

Utilisez la formule :

python
multiplier_new = multiplier_old × (I_measured / I_current)

Pour l'exemple ci-dessus :

python
multiplier_old = 30.0  (factory default SCT-013-030)
I_measured = 8.65A (clamp meter reading)
I_current = 7.2A (ACRouter reading)

multiplier_new = 30.0 × (8.65 / 7.2) = 36.04

Étape 5 : Appliquer le calibrage

Via Web API :

json
{
  "adc_channels": [
    {
      "gpio": 39,
      "type": 2,
      "multiplier": 36.04,
      "offset": 0.0,
      "enabled": true
    }
  ]
}

Étape 6 : Vérification

Redémarrez et vérifiez :

bash
reboot
bash
status

Le courant devrait maintenant s'afficher correctement :

python
Power Measurements:
  Current (Load):   8.65 A    ← Accurate value!


Remarques importantes

  • Pour un calibrage précis, utilisez une charge résistive stable (radiateur, lampes à incandescence)
  • Ne pas utiliser pour le calibrage : alimentations à découpage ou moteurs (courant d'appel élevé)
  • Courant minimum pour le calibrage : 5A (en dessous de ce seuil, le bruit ADC affecte les mesures)



10.4 Sauvegarde du calibrage

Toutes les modifications de configuration sont automatiquement enregistrées dans le NVS (Non-Volatile Storage) et persistent après un redémarrage.


Vérifier la sauvegarde

Après le redémarrage, exécutez :

bash
hardware-config

Vous devriez voir les valeurs multiplier mises à jour.




10.5 Réinitialisation aux valeurs d'usine


Via la console

bash
hardware-reset

Puis redémarrage :

bash
reboot


Via Web API

Envoyez une requête POST à http:///api/hardware/config/reset :

bash
curl -X POST http://192.168.4.1/api/hardware/config/reset



Tableau de référence : Valeurs typiques des multiplicateurs


Capteurs de tension

Modèle Réseau Calibrage Multiplicateur
ZMPT107 230V AC 0,70V = 230V 328.57
ZMPT107 220V AC 0,70V = 220V 314.29
ZMPT107 240V AC 0,70V = 240V 342.86
ZMPT107 110V AC 0,70V = 110V 157.14


Capteurs de courant

Modèle Plage Sortie Multiplicateur
SCT-013-030 0–30A 1V à 30A 30.0
SCT-013-050 0–50A 1V à 50A 50.0
SCT-013-100 0–100A 1V à 100A 100.0



Commandes utiles

bash
# Show current measurements
status

# Show sensor configuration
hardware-config

# Reset to factory defaults
hardware-reset

# Reboot
reboot

← Web API - POST | Sommaire | Suivant : Guide MQTT →