Oi… sera que voce poderia me ajudar com meu codigo… pra voce seria uma coisa muito simples comparado ao seu codigo!!
Tenho este codigo que funciona perfeitamente fora do blynk , mas nao estou conseguindo fazer ele funcionar dentro do blynk, utilizo o blynk atraves da USB… ESTE É O CODIGO:
//Programa : Medidor de corrente com Arduino e SCT-013 100A
//Baseado no programa exemplo da biblioteca EmonLib
//Carrega as bibliotecas
#include "EmonLib.h"
EnergyMonitor emon1;
EnergyMonitor emon2;
EnergyMonitor emon3;
EnergyMonitor emon4;
//Tensao da rede eletrica
int rede1 = 127;
int rede2 = 127;
int rede3 = 127;
int rede4 = 127;
//Pino do sensor SCT
int pino_sct1 = A8;
int pino_sct2 = A9;
int pino_sct3 = A10;
int pino_sct4 = A11;
void setup()
{
Serial.begin(9600);
//Pino, calibracao - Cur Const= Ratio/BurdenR. 2000/33 = 60
emon1.current(pino_sct1, 60);
emon2.current(pino_sct2, 60);
emon3.current(pino_sct3, 60);
emon4.current(pino_sct4, 60);
}
void loop()
{
//Calcula a corrente
double Irms1 = emon1.calcIrms(1480)- 0.16;
double Irms2 = emon2.calcIrms(1480)- 0.16;
double Irms3 = emon3.calcIrms(1480)- 0.16;
double Irms4 = emon4.calcIrms(1480)- 0.16;
//CALCULA KLW
int CONSUMO1 = Irms1 * 127.0;
int CONSUMO2 = Irms2 * 127.0;
int CONSUMO3 = Irms3 * 127.0;
int CONSUMO4 = Irms4 * 127.0;
//Mostra o valor da corrente no serial monitor e display
Serial.println ("Corrente1 : ");
Serial.println(Irms1); // Irms
Serial.println ("Corrente2 : ");
Serial.println(Irms2); // Irms
Serial.println ("Corrente3 : ");
Serial.println(Irms3); // Irms
Serial.println ("Corrente4 : ");
Serial.println(Irms4); // Irms
Serial.println ("CONSUMO1 : ");
Serial.println(CONSUMO1); // CONSUMO
Serial.println ("CONSUMO2 : ");
Serial.println(CONSUMO2); // CONSUMO
Serial.println ("CONSUMO3 : ");
Serial.println(CONSUMO3); // CONSUMO
Serial.println ("CONSUMO4 : ");
Serial.println(CONSUMO4); // CONSUMO
delay(3000);
}
E este é oque eu estou tentando criar… os dht estao funcionais…
#define BLYNK_PRINT Serial1
#include <BlynkSimpleStream.h>
#include <DHT.h>
#include "EmonLib.h"
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
#define DHTPIN 2 // What digital pin we're connected to
#define DHTPIN1 3 // What digital pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE1 DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht (DHTPIN , DHTTYPE );
DHT dht1(DHTPIN1, DHTTYPE1);
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial1.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void sendSensor1()
{
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h1) || isnan(t1)) {
Serial1.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V0, h1);
Blynk.virtualWrite(V1, t1);
}
EnergyMonitor emon1;
EnergyMonitor emon2;
EnergyMonitor emon3;
EnergyMonitor emon4;
//Tensao da rede eletrica
int rede1 = 127;
int rede2 = 127;
int rede3 = 127;
int rede4 = 127;
//Pino do sensor SCT
int pino_sct1 = A8;
int pino_sct2 = A9;
int pino_sct3 = A10;
int pino_sct4 = A11;
void MEDIDOR_ENERGIA()
{
//Calcula a corrente
double Irms1 = emon1.calcIrms(1480)- 0.16;
double Irms2 = emon2.calcIrms(1480)- 0.16;
double Irms3 = emon3.calcIrms(1480)- 0.16;
double Irms4 = emon4.calcIrms(1480)- 0.16;
//CALCULA KLW
int CONSUMO1 = Irms1 * 127.0;
int CONSUMO2 = Irms2 * 127.0;
int CONSUMO3 = Irms3 * 127.0;
int CONSUMO4 = Irms4 * 127.0;
//Mostra o valor da corrente no serial monitor e display
Serial.println ("Corrente1 : ");
Serial.println(Irms1); // Irms
Serial.println ("Corrente2 : ");
Serial.println(Irms2); // Irms
Serial.println ("Corrente3 : ");
Serial.println(Irms3); // Irms
Serial.println ("Corrente4 : ");
Serial.println(Irms4); // Irms
Serial.println ("CONSUMO1 : ");
Serial.println(CONSUMO1); // CONSUMO
Serial.println ("CONSUMO2 : ");
Serial.println(CONSUMO2); // CONSUMO
Serial.println ("CONSUMO3 : ");
Serial.println(CONSUMO3); // CONSUMO
Serial.println ("CONSUMO4 : ");
Serial.println(CONSUMO4); // CONSUMO
Blynk.virtualWrite(V50, Irms1);
Blynk.virtualWrite(V51, CONSUMO1);
Blynk.virtualWrite(V52, Irms2);
Blynk.virtualWrite(V53, CONSUMO2);
Blynk.virtualWrite(V54, Irms3);
Blynk.virtualWrite(V55, CONSUMO3);
Blynk.virtualWrite(V56, Irms4);
Blynk.virtualWrite(V58, CONSUMO4);
}
void setup()
{
// Debug console
Serial1.begin(9600);
//Pino, calibracao - Cur Const= Ratio/BurdenR. 2000/33 = 60
emon1.current(pino_sct1, 60);
emon2.current(pino_sct2, 60);
emon3.current(pino_sct3, 60);
emon4.current(pino_sct4, 60);
// Blynk will work through Serial
// Do not read or write this serial manually in your sketch
Serial.begin(9600);
Blynk.begin(Serial, auth);
dht.begin();
dht1.begin();
// Setup a function to be called every second
timer.setInterval(1000L, MEDIDOR_ENERGIA );
timer.setInterval(1000L, sendSensor );
timer.setInterval(1000L, sendSensor1);
}
void loop()
{
Blynk.run();
timer.run();
}
Se puder me ajudar fico imensamente agradecido!!