สมาร์ทฟาร์มแสดงค่าเข้า Blynk

ได้แล้วครับ ตอนนี้ถ้าไม่ได้วัดอะไรปั๊มจะไม่ทำงานต่อพอเอาจุ้มในดินแห้งปั๊มน้ำทำงานเลยครับ

void loop()
{
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0, 1023, 0, 100);
Serial.print(“Soil moisture: “);
Serial.print(sensorValue);
Serial.println(”%”);

if( sensorValue < 80 ) {
digitalWrite(RelayPin, HIGH);
}
else{
digitalWrite(RelayPin, LOW);
}

คือผมจะสร้างปุ่มBottonขึ้นมาในแอพ Blynk สั่งเปิดปิดการทำงานผมควรทำยังไงบ้างหรอครับ

ทำไมพอวัดดินเปียกแล้วรีเลย์ยังไม่ตัดหรอครับ

แอดปุ่มเพิ่มมาครับ

ตัวอย่างโค้ต

button uses 0/1 (LOW/HIGH) values. Button sends 1 (HIGH) on press and sends 0 (LOW) on release.

You can change button state from hardware side. For example, turn on button assigned to virtual pin V1 :

Blynk.virtualWrite(V1, HIGH);

You can change button labels from hardware with :

Blynk.setProperty(V1, "onLabel", "ON");
Blynk.setProperty(V1, "offLabel", "OFF");

or change color :

//#D3435C - Blynk RED 
Blynk.setProperty(V1, "color", "#D3435C");

You can also get button state from server in case your hardware was disconnected with Blynk Sync feature :

BLYNK_CONNECTED() {
  Blynk.syncVirtual(V1);
}

BLYNK_WRITE(V1) {
  int buttonState = param.asInt();
}

ตอนนั้นค่า sensorValue ได้เท่าไหร่ครับ

สูงสุดที่วัดได้1024ครับ ตอนนี้ผมทำได้แล้วครับ

ขอบคุณครับ เลือกใช้ปุ่มไหนก้ได้ ในกรอบใช้มั้ยครับ

แก้ไขได้อย่างไร แชร์กันหน่อยครับ

เลือกตามลักษณะงานครับ อยากได้ปุ่มใหญ่ เลือกบน อยากได้เล็กๆ หน่อยก็อันล่าง แต่การทำงานเหมือนกัน


ในส่วนนี้วางไว้ใน loop ใช้มั้ยครับ

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h> //เรียกใช้ไลเบอรี่
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>
#define DHTPIN 0   // กำหนดช่องพินของเซนเชอร์
#define DHTTYPE DHT22   // DHT 11  ชื่อ ของเซ็นเชอร์ที่ใช้
 
#define BLYNK_PRINT DebugSerial
int sensorValue = 0;
int sensorPin = A0;
int RelayPin = 2;   
char auth[] = "mc8ARAWp_ZkKqm-sm0_jXmEJ9_jMFJgM";
 
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Sermphan_2.4GHz";
char pass[] = "0987297146";
BlynkTimer timer;
DHT dht(DHTPIN, DHTTYPE);
void myTimerEvent()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) 
  {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  else
  {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.println(t);
    Blynk.virtualWrite(V1, h); 
    Blynk.virtualWrite(V4, t);
    
 
  }
}
void setup() 
{
   Serial.begin(9600);  
   pinMode(sensorPin, INPUT);  
   pinMode(RelayPin, OUTPUT);
   digitalWrite(RelayPin, HIGH);  
   dht.begin();
    Blynk.begin(auth, ssid, pass);
  timer.setInterval(2000L, myTimerEvent);
}

void loop() 
{
  sensorValue = analogRead(A0); 
 if (sensorValue >= 999 && sensorValue <= 1024)
 {
    Serial.println(sensorValue);
    digitalWrite(RelayPin, HIGH);
   Blynk.virtualWrite(V2, HIGH);
     
     
  }
  else{
    Serial.println(sensorValue);
    digitalWrite(RelayPin, LOW);
    
  }
    
  delay(1000);   
  Blynk.setProperty(V2, "onLabel", "ON");
  Blynk.setProperty(V2, "offLabel", "OFF");       
  Serial.print("Sensor = " );                       
  Serial.println(sensorValue); 

   Blynk.run();
  timer.run(); // Initiates BlynkTimer                  
}
BLYNK_CONNECTED() {
  Blynk.syncVirtual(V2);
}

BLYNK_WRITE(V2) {
  int buttonState = param.asInt();
}

ทำไมกดสั่งให้ทำงานหยุด แต่มันหยุดและเปิดการทำงานเองเลยอ่ะครับ
ผมต้องการให้กด ON เปิด กด OFF ปิด โดยการบังคับเองอ่ะครับ

ศึกษาตามนี้ครับ

เราต้องมีอุปกรณ์อะไรต่อกับวงจรมั้ยครับ แบบมีปุ่มกดเพิ่มในบอร์ดงานอ่ะะครัย

ไม่ต้องครับกดผ่าน แอพได้เลย

ครับผมขอบคุณค้าบบบ

ถ้ารดน้ำได้ถึงความชื้นตามที่กำหนกล่ะผมอยากใส่เวลาให้มันก่อนปั๊มหยุดทำงาน ควรทำยังไงบ้างครับ

ผมจะทำให้พัดลมหมุนตามอุณหภูมิตามที่กำหนดควรทำไงครับ

อยากได้เท่าไหร่กก็กำหนดได้จากบรรนี้ไงครับ

ครับผม ขอบคุณครับ