สวัสดีครับพี่ๆ ผมอยากให้กดเปิดButton manaul แล้ว ปุ่มbuttonในBlynk มันเปิดด้วย ต้องทำยังไงครับ โค้ดที่ผมเขียนตอนนี้ได้แค่ ควบคุม Relay บน Blynk อย่างเดียวครับ

#define BLYNK_TEMPLATE_ID "TMPL3lRTtbKp"
#define BLYNK_DEVICE_NAME "my blynk"
#define BLYNK_FIRMWARE_VERSION  "0.1.0"
#define BLYNK_PRINT Serial
#define APP_DEBUG
#define DHTTYPE DHT11
#define DHTPIN D4
#include "BlynkEdgent.h"
#include <DHT.h>
DHT dht(DHTPIN, DHTTYPE);     //ตัวแปล DHT
int ldr = A0;                 //ตัวแปล LDR
int button = D0;


BLYNK_WRITE(V0)               //เก็บค่าตัวแปล Relay
{
  int val = param.asInt();    //
  digitalWrite(D5, val);     //
}
BLYNK_WRITE(V1)               //
{
  int val = param.asInt();    //
  digitalWrite(D6, val);     //
}
BLYNK_WRITE(V2)               //
{
  int val = param.asInt();    //
  digitalWrite(D7, val);     //
}
BLYNK_WRITE(V3)               //
{
  int val = param.asInt();    //
  digitalWrite(D8, val);     //
}

void setup()
{
  
  pinMode(D5, OUTPUT);        //แสดงสัญญาณ Relay
  delay(100);                 //
  BlynkEdgent.begin();        //
  
  pinMode(D6, OUTPUT);        //
  delay(100);                 //
  BlynkEdgent.begin();        //

  pinMode(D7, OUTPUT);        //
  delay(100);                 //
  BlynkEdgent.begin();        //

  pinMode(D8, OUTPUT);        //
  delay(100);                 //
  BlynkEdgent.begin();        //

  dht.begin();                // เริ่มทำงาน DHT
  delay(100);                 //
  BlynkEdgent.begin();        //

  Serial.begin(9600);         // เริ่มทำงาน LDR
  pinMode(ldr,INPUT);         //
  BlynkEdgent.begin();        //
}

void loop() 
{
  BlynkEdgent.run();
  float t = dht.readHumidity();     //แสดงค่า DHT
  float h = dht.readTemperature();  //
  Blynk.virtualWrite(V5,t);         //
  Blynk.virtualWrite(V6,h);         //
  int val = analogRead(ldr);        //แสดงค่า LDR
  Blynk.virtualWrite(V4,val);       //
}

ลองดูเป็นแนวทางครับ ผมให้ไปเแนวแบบกว้างๆ นะครับ ดูการเชื่อมโยงของ code ถ้าเข้าใจ Code แล้วก็สามารถประยุกต์ ใช้กับ โปรเจคเราได้เลย

#include <Bounce2.h>

#define BUTTON_1 D0
Bounce debouncer1 = Bounce();

int Btn1 = 0; 
int Device_1sent;


void setup() {

 pinMode(BUTTON_1, INPUT_PULLUP);
  debouncer1.attach(BUTTON_1);   debouncer1.interval(25);

}

BLYNK_WRITE(V1)//PB V1
{
  int pinValue = param.asInt();
  //Serial.print("V1 =  "); Serial.println(pinValue);
  if (pinValue == 1 ) {
    Device_1sent = 11;
  }
  if (pinValue == 0) {
    Device_1sent = 10;
  }
}


if (Device_1sent  == 11) { //on

   digital.write (xx,xx); {//ทำให้ Relay  on
        
      Btn1 = 1;
}

    if (Device_1sent  == 10) {// Relay  off

  digital.write (xx,xx); {//ทำให้ Relay  off

         Btn1 = 0;
}

debouncer1.update();
    //--Toggle SW  PB 1

    if ( debouncer1.fell() ) {
      Btn1 = !Btn1; // Toggle LED state

      if ( Btn1 == 1 ) {//ทำให้ Relay  on
        Device_1sent = 11;
        Blynk.virtualWrite(V1, 1);
      }

      if ( Btn1 == 0 ) {//ทำให้ Relay  off
        Device_1sent = 10;
        Blynk.virtualWrite(V1, 0);
      }
    }




ทำได้แล้วครับ ขอบคุณพี่มากครับได้ความรู้ใหม่