void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(ReadVoltage(33),3);]
Serial.println(analogRead(33));
delay(1000);
}
double ReadVoltage(byte pin){
double reading = analogRead(pin); // Reference voltage is 3v3 so maximum reading is 3v3 = 4095 in range 0 to 4095
if(reading < 1 || reading > 4095) return 0;
// return -0.000000000009824 * pow(reading,3) + 0.000000016557283 * pow(reading,2) + 0.000854596860691 * reading + 0.065440348345433;
return -0.000000000000016 * pow(reading,4) + 0.000000000118171 * pow(reading,3)- 0.000000301211691 * pow(reading,2)+ 0.001109019271794 * reading + 0.034143524634089;
}
Serial.println(ReadVoltage(33),3);
How can I publish this with client.publish?
int voltage = (ReadVoltage(33));
if (!isnan(voltage))
{
snprintf (msg, 20, "%d", voltage);
/* publish the message */
client.publish(BATTERY_TOPIC, msg);
}
Voltage: 3.089
Analog Voltage: 3917
That is my output from Serial
If I use that it publishes 3
Thanks for help
~Marlon