ไฟเข้า220vac ปกติคับ
ใช้ขาไหนรับอินพุต บน ESP ครับ
D01,D02ครับ
ถ้าอน่างนั้นก็ไม่น่าจะออกละครับ มันสลับขากันรึป่าว
#define FIRST_ADDRESS 0
#define MAX_ATTEMPTS 10
#define min(a,b) ((a)<(b)?(a):(b))
PZEM004T pzem(4, 5); // RX,TX d2,d6
IPAddress ip(192, 168, 1, 1);
Rx = 4
Tx = 5
ผมแก้จากd6มาd1คับเพราะนึกว่าขาpinเสีย
ผมอัฟcodeใหม่ไปเป็นd1คับ
เช็คหน่อย D01 ต่อ Tx หรือ Rx D02 ด้วยครับ
d1=tx
d2=rx
ตอนนี้ยังออกเป็น -1 อยู่ใช่ไหมครับ
1 Likes
เหมือนเดิมคับแต่เดียวงมต่อพรุ่งนี้นะคับพี่
ส่วนโค้ต void setup() เพิ่มการกำหนดขา 4,5 เป็น input เข้าไปด้วยครับ
void setup() {
pinMode(4, INPUT);
pinMode(5, INPUT);
}
#include <PZEM004Tv30.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SoftwareSerial.h>
PZEM004Tv30 pzem(D5,D6); // (RX,TX) connect to TX,RX of PZEM
float voltage_blynk=0;
float current_blynk=0;
float power_blynk=0;
float energy_blynk=0;
float frequency_blynk=0;
float pf_blynk=0;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "*****************************************";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "*********";
char pass[] = "*********************";
unsigned long lastMillis = 0;
void setup() {
Serial.begin(115200);
pinMode(D5, INPUT);
pinMode(D6, OUTPUT);
if (WiFi.begin(ssid, pass)) {
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
}
Serial.println(" ");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
float voltage = pzem.voltage();
if(voltage != NAN){
Serial.print("Voltage: "); Serial.print(voltage); Serial.println("V"); voltage_blynk =voltage;
} else {
Serial.println("Error reading voltage");
}
float current = pzem.current();
if(current != NAN){
Serial.print("Current: "); Serial.print(current); Serial.println("A"); current_blynk=current;
} else {
Serial.println("Error reading current");
}
float power = pzem.power();
if(current != NAN){
Serial.print("Power: "); Serial.print(power); Serial.println("W"); power_blynk=power;
} else {
Serial.println("Error reading power");
}
float energy = pzem.energy();
if(current != NAN){
Serial.print("Energy: "); Serial.print(energy,3); Serial.println("kWh"); energy_blynk =energy;
} else {
Serial.println("Error reading energy");
}
float frequency = pzem.frequency();
if(current != NAN){
Serial.print("Frequency: "); Serial.print(frequency, 1); Serial.println("Hz"); frequency_blynk =frequency;
} else {
Serial.println("Error reading frequency");
}
float pf = pzem.pf();
if(current != NAN){
Serial.print("PF: "); Serial.println(pf); pf_blynk =pf;
} else {
Serial.println("Error reading power factor");
}
Serial.println();
delay(100);
//Publish data every 10 seconds (10000 milliseconds). Change this value to publish at a different interval.
if (millis() - lastMillis > 100) {
lastMillis = millis();
Blynk.virtualWrite(V1, voltage_blynk);
Blynk.virtualWrite(V2, current_blynk );
Blynk.virtualWrite(V3, power_blynk);
Blynk.virtualWrite(V4, energy_blynk );
Blynk.virtualWrite(V5, frequency_blynk );
Blynk.virtualWrite(V6, pf_blynk );
Blynk.virtualWrite(V7, lastMillis );
}
}
ได้แล้วนะคับพอดีแก้ปัญหาเคสนี้นี้ ลงlibrary ไหม่เป็นpzem-004t v3.0คับ
แล้วแก้
เยี่ยมครับ