ขอสอบถามเกี่ยวกับการใช้ widget slider ใน blynk ค่ะ

สวัสดีค่ะ ขอสอบถามเกี่ยวกับการใช้ widget slider ใน blynk ค่ะ
อยากให้ค่าที่รับจากเซ็นเซอร์มากกว่าค่าที่กำหนดจาก slider ให้ buzzer ส่งเสียง
แต่ปัญหาติดอยู่ที่ค่าที่กำหนดจาก slider เปลี่ยนช้ามากค่ะ ประมาณ 4 - 5 นาทีได้ ค่าที่เรากำหนดจาก slider ถึงจะเปลี่ยนตามที่เรากำหนดใหม่ พอจะมีแนวทางแนะนำมั้ยคะ

//โค้ดที่มีปัญหาอยู่ตอนนี้ค่ะ

#include "DHT.h"
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h> 
#define DHTPIN D3     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
#define lampOnline D7

char auth[] = " ";   //Key From Blynk
char ssid[] = " ";                          //Wifi Name
char pass[] = " ";                           //Wifi Password

DHT dht(DHTPIN, DHTTYPE);

float t, h;
int sensorValue;
int g_slider,t_slider;

BLYNK_CONNECTED(){
    Blynk.syncAll();
}
BLYNK_READ(V0){
  if (!isnan(h) || !isnan(t)) {
  Blynk.virtualWrite(V0, t);
  }
}
BLYNK_READ(V1){
  if (!isnan(h) || !isnan(t)) {
  Blynk.virtualWrite(V1, h);
  }
}
BLYNK_READ(V2){
  Blynk.virtualWrite(V2,sensorValue );
}

BLYNK_WRITE(V3){
  t_slider = param.asInt();
  Serial.print(t_slider);
}
BLYNK_WRITE(V4){
  g_slider = param.asInt();
  Serial.print(g_slider);
}

void setup() {
  Serial.begin(115200);
  Serial.println("DHTxx test!");
  Blynk.begin(auth, ssid, pass,"blynk.iot-cm.com", 8080);
  pinMode(D1, OUTPUT);
  if(Blynk.connect()){
    digitalWrite(lampOnline, HIGH);
  }
  dht.begin();
  
}

void loop() {
  Blynk.run();
  delay(2000);
  h = dht.readHumidity();
  t = dht.readTemperature();
  sensorValue = analogRead(A0);

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

  Serial.print("g_slider = ");
  Serial.print(g_slider);
  Serial.print("\t t_slider = ");
  Serial.print(t_slider);
  Serial.println("");
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C\t Gas ");
  Serial.print(sensorValue);
  Serial.println("");

  if(sensorValue > g_slider || t > t_slider){
    digitalWrite(D1,HIGH);
  }else{
    digitalWrite(D1,LOW);
  }
}

ขอดูหน้าแอพ หน่อยครับ

เคยดีบัค ออกมาดูรึป่าวครับว่ามันติดอยู่ตรงไหน ผมว่ามันอาจติดอยู่ช่วงที่อ่านค่าจากเซ็นเซอร์อ่ะครับ ถ้าอ่านค่าเซ็นเซอร์ไม่ได้มันก็จะวนอยู่อย่างนั้นจนกว่าจะอ่านได้ ทำให้มันไม่หลุดไปหา output ที่เราตั้งไว้ก็เป็นได้ครับ ลอง print ออกมาดูหน่อย ผมว่ามันไม่น่าส่งค่านานขนาดนั้น

free
hit counter