สงสัยว่า ทำไมสั่งเปิดไฟในแอพ blynk แล้วตัดเองครับ

นี่เป็รโค้ดที่ใช้ครับ

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

char auth[] = "ADD";

char ssid[] = "AAAAAAAAAAA";
char pass[] = "BBBBBBBBBBBB";

#define DHTPIN D4 
#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;

int Relay1 = D0;
int Relay2 = D1;

int sensorValue = 0;  //ตัวแปรค่า Analog      
int outputValue = 0; 

int t_slider = 0;
int h_slider = 0;
int Value_slider;

BLYNK_WRITE(V1){

  h_slider = param.asInt();
  Serial.println(h_slider);

}
BLYNK_WRITE(V2){

  t_slider = param.asInt();
  Serial.println(t_slider);

}

void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;

}
{
pinMode(Relay1, OUTPUT); 
digitalWrite(Relay1, HIGH);
pinMode(Relay2, OUTPUT); 
digitalWrite(Relay2, HIGH);
}
  if( h < h_slider){
    digitalWrite(Relay1, LOW);
    }   else{
      digitalWrite(Relay1, HIGH);
      }

           if( t > t_slider){
    digitalWrite(Relay2, LOW);
    }   else{
      digitalWrite(Relay2, HIGH);
      }     

Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}

void setup()
{
Serial.begin(115200); // See the connection status in Serial Monitor
Blynk.begin(auth, ssid, pass);

dht.begin();

// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}

void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}

ปันหาอยู่ตรงที่ว่า ผมสั่งเปิดไฟLED ในแอพ blynk พอกด on รีเรย์ติดแล้วดับไปเลย ทั้งที่ไม่ได้สั่งตั้งรีเรย์ใว้ แล้วตัวตั้งเวลาก็ไม่ทำงานตามที่ตั้งด้วย ควรแก้ยังไงดีครับ

ปุ่มนี้เซตค่าอะไรไว้ครับ

ตั้งใว้ GP5 ครับ

ต้อง แคปต้อง serial print มาดูครับว่ามันขึ้นว่าไรรึป่าว

ยังไงหลอครับ

ก็ปกตินะครับ เพราะผมไม่ได้เขียนโค้ดให้มันสั่งprint อ่ะครับ

ได้แล้วครับ มันเกิดจากที่ ผมกำหนดตัวส่งสันยานปุ่มของแอพ blynk เป็น gp5 ซึ่งเป็นขา D1 มันไปซ้อนทับกับโค้ด

int Relay2 = D1; ซึ่งเอาใว้สั่งควบคุมป้ำน้ำ

1 Likes