59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#include "Modules.h"
|
|
|
|
Modules::Modules()
|
|
{
|
|
|
|
}
|
|
void Modules::sleep(int sleepTime)
|
|
{
|
|
Serial.print("Go to sleep ");
|
|
Serial.println(sleepTime);
|
|
delay(20);
|
|
|
|
ESP.deepSleep(sleepTime * 1000000L); // Infini
|
|
|
|
//sleepWifi();
|
|
delay(200);
|
|
}
|
|
|
|
int Modules::readIntensite()
|
|
{
|
|
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
|
|
int RawValue= 0;
|
|
int ACSoffset = 2500;
|
|
double Voltage = 0; //voltage measuring
|
|
double Amps = 0;// Current measuring
|
|
|
|
int valeur;
|
|
float moyenne = 0;
|
|
int nbr_lectures = 50;
|
|
|
|
for( int i = 0; i < nbr_lectures; i++ )
|
|
{
|
|
valeur = analogRead( A0 );
|
|
moyenne = moyenne + float(valeur);
|
|
delay(10);
|
|
}
|
|
moyenne = moyenne / float(nbr_lectures);
|
|
RawValue = moyenne -235;
|
|
|
|
// RawValue = valeurACS712(analogIn);//reading the value from the analog pin
|
|
Voltage = (RawValue / 1024.0) * 5000; // Gets you mV
|
|
Amps = ((Voltage - ACSoffset) / mVperAmp);
|
|
|
|
//Prints on the serial port
|
|
Serial.print("Raw Value = " ); // prints on the serial monitor
|
|
Serial.print(RawValue); //prints the results on the serial monitor
|
|
|
|
|
|
Serial.print("\t mV = "); // shows the voltage measured
|
|
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
|
|
|
|
Serial.print("\t Amps = "); // shows the voltage measured
|
|
Serial.println(Amps,3);// the '3' after voltage allows you to display 3 digits after decimal point
|
|
|
|
lum = Amps;
|
|
return Amps * 1000;
|
|
|
|
}
|