รบกวนสอบถามเรื่อง virtual pin ในการใช้งาน รับ-ส่ง ค่าระหว่างบอร์ดหน่อยครับ

คือผมมี esp8266 2ตัว เป็นตัวรับและตัวส่งครับ ผมต้องการกดปุ่มจากบอร์ด ESP ตัวส่งโดยใช้ V1 แล้วให้ ESP ตัวรับ รับค่าจาก V1 มาสั่งการทำงาน Relay ครับ พอดีติดปัญหาตรงรับค่ากลับมาครับ

#define BLYNK_PRINT Serial
#include <TridentTD_LineNotify.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char ssid[] = "SCI_5555";
char pass[] = "12345888";
#define LINE_TOKEN  "000r" // หลัก
char auth[] = "v.23232r";
BlynkTimer timer;
int State;

const int buttonPin1 = D2; 
int buttonState1 = 0;
#define Relay1 D8    
WidgetLED led1(V11);

const int buttonPin2 = D3; 
int buttonState2 = 0;
#define Relay2 D9 
   
WidgetLED led2(V12);
WidgetLED led3(V13);
WidgetLED led4(V14);

BLYNK_CONNECTED() {

   Blynk.syncAll();
}

BLYNK_WRITE(V1) {
State = param.asInt();
if(State == 1){
led3.on();
}else{
led3.off();
}
}

void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
   pinMode(buttonPin1, INPUT);
   pinMode(buttonPin2, INPUT);

  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);

 
}

void loop() {

    Blynk.run();
    
    buttonState1 = digitalRead(buttonPin1);
    buttonState2 = digitalRead(buttonPin2);

    if (buttonState1 == HIGH){
    //LINE.notify("ระบบตรวจสอบ");  
    //LINE.notify("ระดับน้ำถังที่ 1 สูงกว่าปกติ");  
    Serial.println("RUN 1");
    digitalWrite(Relay1,LOW);
    led1.on();
    delay(100);
    }
    } else if (buttonState1 == LOW){
    digitalWrite(Relay1,HIGH);
    led1.off();
    }

    if (buttonState2 == HIGH){
    Blynk.virtualWrite(V1, 1);
    //LINE.notify("ระบบตรวจสอบ");  
    //LINE.notify("ระดับน้ำถังที่ 2 สูงกว่าปกติ");  
    Serial.println("RUN 2");
    led2.on();
    delay(100);
    } else if (buttonState2 == LOW){ 
    Blynk.virtualWrite(V1, 0);   
    led2.off();
    }

ถ้า 2 ตัวนี้อยู่ห่างกัน ก็ใช้ bridge ของ bllnk ก็ได้ครับ
สนใจลองดูตัวอย่างนี้ครับ

1 Like