ค่าไม่ขึ้น Virtual Blynk และ Serial monitor แก้ยังไงครับ

// Fill-in information from your Blynk Template here
#define BLYNK_TEMPLATE_ID "TMPLDnur0Rpr"
#define BLYNK_DEVICE_NAME "SmartFarm"

#define BLYNK_FIRMWARE_VERSION        "0.2.0"

#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG

#define APP_DEBUG

// Uncomment your board, or configure a custom board in Settings.h
#define USE_NODE_MCU_BOARD
//#define USE_TTGO_T7

#include "BlynkEdgent.h"
#define Pump1   23 
#define Pump2   22
#define Valve1  3
#define Valve2  21
#define Fog1    19
#define Fog2    18
////////////////////////////////////
#define pH1     36
#define pH2     25
#define Soil1   12
#define Soil2   26
#define Humid1  34
#define Humid2  27
#define Temp1 35
#define Temp2 14
#define Lux1  2
#define Lux2  15     

BLYNK_WRITE(V1)
{
 int val = param.asInt();
 digitalWrite(Pump1,val);  
 }
BLYNK_WRITE(V2)
{
 int val = param.asInt();
 digitalWrite(Pump2,val);  
 }
 BLYNK_WRITE(V3)
{
 int val = param.asInt();
 digitalWrite(Valve1,val);  
 }
 BLYNK_WRITE(V4)
{
 int val = param.asInt();
 digitalWrite(Valve2,val);  
}
 BLYNK_WRITE(V5)
{
 int val = param.asInt();
 digitalWrite(Fog1,val);  
  }
  BLYNK_WRITE(V6)
{
 int val = param.asInt();
 digitalWrite(Fog2,val);  
 }
  
void setup()
{
  Serial.begin(115200);
  /////////////////////
  pinMode(Pump1,  OUTPUT);
  pinMode(Pump2,  OUTPUT);
  pinMode(Valve1, OUTPUT);
  pinMode(Valve2, OUTPUT);
  pinMode(Fog1,   OUTPUT);
  pinMode(Fog2,   OUTPUT);
  /////////////////////
  pinMode(pH1,  INPUT);
  pinMode(pH2,  INPUT);
  pinMode(Soil1,INPUT);
  pinMode(Soil2,INPUT);
  pinMode(Temp1,INPUT);
  pinMode(Temp2,INPUT);
  pinMode(Humid1,INPUT);
  pinMode(Humid2,INPUT);
  pinMode(Lux1,INPUT);
  pinMode(Lux2,INPUT);
  //delay(100);

  BlynkEdgent.begin();
}

void loop() {
   BlynkEdgent.run();
   pHsensor();
   Soilsensor();
   Humidsensor();
   Tempsensor();
   Luxsensor();
}
/////////////////////////////////
void pHsensor()
{ int pH_1 = analogRead(pH1);
  int pH_2 = analogRead(pH2);
  Blynk.virtualWrite(V7, pH_1);
  Blynk.virtualWrite(V12, pH_2);
  Serial.print("pH1=");
  Serial.print(pH_1);
  Serial.print("pH2=");
  Serial.print(pH_2);
  delay(20);
 }
void Soilsensor()
{
  int Soil_1 = analogRead(Soil1);
  int Soil_2 = analogRead(Soil2);
  Blynk.virtualWrite(V8, Soil_1);
  Blynk.virtualWrite(V13, Soil_2);
  Serial.print("\tSoil1=");
  Serial.print(Soil_1);
  Serial.print("\tSoil2=");
  Serial.print(Soil_2); 
  delay(20);
  }
void Humidsensor()
{ 
  int Humid_1 = analogRead(Humid1);
  int Humid_2 = analogRead(Humid2);
  Blynk.virtualWrite(V9, Humid_1);
  Blynk.virtualWrite(V14, Humid_2); 
  Serial.print("\tHumid1=");
  Serial.print(Humid_1);
  Serial.print("\tHumid2=");
  Serial.print(Humid_2); 
  delay(20);
  }
void Tempsensor()
{
  int Temp_1 = analogRead(Temp1);
  int Temp_2 = analogRead(Temp2);
  Blynk.virtualWrite(V10, Temp_1);
  Blynk.virtualWrite(V15, Temp_2);
  Serial.print("\tTemp1=");
  Serial.print(Temp_1);
  Serial.print("\tTemp2=");
  Serial.print(Temp_2);
  delay(20); 
}
 void Luxsensor()
{
  int Lux_1 = analogRead(Lux1);
  int Lux_2 = analogRead(Lux2);
  Blynk.virtualWrite(V11, Lux_1);
  Blynk.virtualWrite(V16, Lux_2);
  Serial.print("\tLux1=");
  Serial.print(Lux_1);
  Serial.println();
  Serial.print("\tLux2=");
  Serial.print(Lux_2);
  Serial.println();
  delay(20);
}

ค่าอะไรไม่ขึ้นครับ

ค่าที่ Gauge และ Serial monitor ครับ จาก 10 ตัว อ่านค่าขึ้นแค่ สามตัว ครับ


แต่ละตัวกำหนดค่าอะไรไว้บ้าง Vpin อะไรขอดูหน่อย

ค่าที่ไม่ออกนี้ต่ออะไรไว้บ้างขอดูหน่อยเช่น

Soil1 และ Soil2

ผมต่อตามนี้ครับ คือ ถ้าใช้เพียง ESP32 ทดสอบกับ Serial monitor ค่าอ่านได้อยู่ครับ พอมาใชร่วมกับ Blynk แล้วค่ากับขึ้นแค่บางตัว งงงงง

#define pH1 36
#define pH2 25
#define Soil1 12
#define Soil2 26
#define Humid1 34
#define Humid2 27
#define Temp1 35
#define Temp2 14
#define Lux1 2
#define Lux2 15

เบื้องต้น ทำให้ Serial มีค่าออกมาก่อนครับ เมื่อค่าขึ้นครบแล้วค่อยส่งไป blynk รวมกันแล้วไม่ขึ้นไม่เกี่ยวกันเท่าไหร่ เว้นแต่บอร์ดจะเกิดการรีเซต

ครับผม ผมลองแล้ว มันเป็นที่ ESP32 เมื่อใช้ WIFI ด้วยมันใช้ขา Analog ได้แค่ ADC1 ครับ
ขอบคุณครับ

1 Likes