Hi,
I’m using EmonLib.h to monitor current in a DIY domotics installation. I designed and produced PCB’s that connect directly to an Arduino Mega supporting 15 ZHT-103 (have a look at it there if you’re interested : Arduino MEGA + 15x ZHT-103 - EasyEDA open source hardware lab )
It works quite well but I’m having a ‘speed’ issue.
Actually, I’m currently ‘calculating’ the current of each sensor during the construction of the JSON objet that will be sent to the MQTT server for future use, this takes something like 3 seconds to complete which is too slow (I need it every second max).
There must be some possibilities to group this and calculates values at the same time (using an array?) but I couldn’t get it working so far
Any help would be appreciated.
Here’s the code :
//Build json object
String jsonPayload = “{"ZHT_1_0":"”;
double Irms = emon0.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_1":"”;
Irms = emon1.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_2":"”;
Irms = emon2.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_3":"”;
Irms = emon3.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_4":"”;
Irms = emon4.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_5":"”;
Irms = emon5.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_7":"”;
Irms = emon7.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_8":"”;
Irms = emon8.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_9":"”;
Irms = emon9.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_10":"”;
Irms = emon10.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_11":"”;
Irms = emon11.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_12":"”;
Irms = emon12.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_13":"”;
Irms = emon13.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_14":"”;
Irms = emon14.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“","ZHT_1_15":"”;
Irms = emon15.calcIrms(1480);
jsonPayload += Irms;
jsonPayload +=“"}”;
Thanks a lot in advance for your help !