Blynk mesure courant

Salut à tous,

J’ai monté un système pour mesure via l’A0 de mon d1 mini pro le courant passant dans une phase… Tout était ok lors d’un test sur monophase, bonne mesure en marche et à l’arret. Tout capote quand je passe sur du tri-phasé. Les valeurs fluctuent mais pas du tout comme il faudrait, machine en marche je suis a 30A pour 80A (ok c’est réglable avec la calibration) mais machine coupé je chute à peine a 25A alors que je devrais etre à 1A-0A.

J’ai bien du mal a comprendre. J’ai pourtant lu qu’il était possible avec seulement un CT sensor de venir (en estimant que la charge est équilibrée) mesurer l’ampérage… J’utilise un TT100SD.

Je vous joint le code

// Premiere partie du code qui définie la base du code. Permet d'inclure les librairies, définir les noms etc..)

#define BLYNK_PRINT Serial // Permet d'écrire ce qu'il se passe sur le monitor
#define BLYNK_DEBUG_ALL Serial

#include "EmonLib.h" // Librairie de mesure de courant
EnergyMonitor emon1; // Creation 'une instance

#include <ESP8266WiFi.h> // Lib Wifi
char ssid[] = "BLINK";
char pass[] = "12345678";               

#include <BlynkSimpleEsp8266.h> // Lib Blynk
char auth[] = "xxxxxxxx";//yourauthtoken
BlynkTimer timer; // Fait appel a la librairie Blynk pour lui faire comprendre qu'un timer sera ajouté dans le code

#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>



//Début de la fonction sendSensor

void sendSensor()
{
  Blynk.run();
  double Irms = emon1.calcIrms(1480);  
Blynk.virtualWrite(V0, ((Irms*400)/(1.732*400)*3)); // Lib Blynk, écrit sur le pin virtuel V0 la valeur emon1.calcIrms(1480)
if (emon1.calcIrms(1480) > 1) {
  Blynk.virtualWrite(V2, 255);
  Blynk.virtualWrite(V1, 0);
}
else if (emon1.calcIrms(1480) < 1) {
  Blynk.virtualWrite(V1, 255);
  Blynk.virtualWrite(V2, 0);
}
}


// Début de la fonction Setup, qui ne se réalise qu'une seule fois (sauf si appel...)

void setup()
{
  
  Serial.begin(9600); // Ecris sur le monitor en baud 9600
  Blynk.begin(auth, ssid, pass, "192.168.1.113", 8080); // Lib blynk, connexion Token,wifi,mdp, ip serveur blynk, port 8080 ou 81 à modifier
  emon1.current(0, 11.755);             // Courant : Pin input a savoir Analogique0 = 0, calibration (à taton, nécessaire de lire la librairie pour comprendre si calcul possible).
  timer.setInterval(1000L, sendSensor); // timer lancant en boucle tout les "xL" en ms, la fonction sendSensor
     ArduinoOTA.setHostname("EUROPE");
   ArduinoOTA.setPassword((const char *)"123");
    ArduinoOTA.onStart([]() {
    Serial.println("Start");
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

// Début de la fonction loop, qui tourne en boucle
// Il est nécessaire d'avoir une fonction loop la plus épuré possible sous peine de latence, déconnexion, bug .......

void loop()
{  
  Blynk.run(); // fait appel a tout les arguments blynk
  timer.run(); // enclenche le timer.setInterval, qui tout les "xL" active la fonction sendSensor 
  ArduinoOTA.handle();
  
}

J’ai du coup multiplié mon resultat par 3 etc etc … mais rien ne va sur le triphasé.

Si quelqu’un à une idée …!!