// 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);
}
ค่าอะไรไม่ขึ้นครับ
แต่ละตัวกำหนดค่าอะไรไว้บ้าง 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