Quando conectado com o wifi o codigo não lê a corrente!
#include "ACS712.h"
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = "Jonathas";
const char* password = "drielle24";
const char* serverName = "http://jonathas.pythonanywhere.com";
const char* serverPath = "/davy/receiver/";
const float sensibilidadeACS712 = 66; // Sensibilidade do sensor ACS712 30A (mV/A)
const int pinSensor = 25; // Pino digital ao qual os sensores estão conectados
const float voltagemReferencia = 3.3; // Voltagem de referencia do microcontrolador
const int ledPin = 2; // Pino do LED no ESP32
WiFiClient wifiClient; // Declarar wifiClient
HTTPClient httpClient; // Declarar HTTPClient
ACS712 ACS(pinSensor, voltagemReferencia, 4095, sensibilidadeACS712);
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(ledPin, HIGH); // Pisca o LED enquanto não estiver conectado
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
Serial.println("Conectando ao WiFi...");
}
ACS.autoMidPoint();
Serial.println("Conectado ao WiFi!");
digitalWrite(ledPin, HIGH); // Mantém o LED aceso quando conectado à Internet
}
void loop() {
float mA = ACS.mA_AC(); // Função da biblioteca para ler mA da corrente elétrica
if (mA < 400.0) {
Serial.println("Corrente (A): 0");
} else {
float voltage = mA;
Serial.print("Corrente (A): ");
Serial.println(mA / 1000.0, 2); // Imprime com 2 casas decimais
float power = (mA / 1000.0) * (sensibilidadeACS712);
Serial.print("Potência (W): ");
Serial.println(power, 2);
}
delay(5000);
}
Saida
14:31:41.138 -> Corrente (A): 0.00
14:31:41.211 -> Potência (W): 0.00
Porém quando eu não uso o while para se conectar o wifi, faz a leitura normal!
#include "ACS712.h"
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = "Jonathas";
const char* password = "drielle24";
const char* serverName = "http://jonathas.pythonanywhere.com";
const char* serverPath = "/davy/receiver/";
const float sensibilidadeACS712 = 66; // Sensibilidade do sensor ACS712 30A (mV/A)
const int pinSensor = 25; // Pino digital ao qual os sensores estão conectados
const float voltagemReferencia = 3.3; // Voltagem de referencia do microcontrolador
const int ledPin = 2; // Pino do LED no ESP32
WiFiClient wifiClient; // Declarar wifiClient
HTTPClient httpClient; // Declarar HTTPClient
ACS712 ACS(pinSensor, voltagemReferencia, 4095, sensibilidadeACS712);
void setup() {
Serial.begin(9600);
ACS.autoMidPoint();
}
void loop() {
float mA = ACS.mA_AC(); // Função da biblioteca para ler mA da corrente elétrica
if (mA < 400.0) {
Serial.println("Corrente (A): 0");
} else {
float voltage = mA;
Serial.print("Corrente (A): ");
Serial.println(mA / 1000.0, 2); // Imprime com 2 casas decimais
float power = (mA / 1000.0) * (sensibilidadeACS712);
Serial.print("Potência (W): ");
Serial.println(power, 2);
}
delay(5000);
}
Saida
14:35:05.635 -> Corrente (A): 2.16
14:35:05.675 -> Potência (W): 142.48