นี่เป็รโค้ดที่ใช้ครับ
#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 รีเรย์ติดแล้วดับไปเลย ทั้งที่ไม่ได้สั่งตั้งรีเรย์ใว้ แล้วตัวตั้งเวลาก็ไม่ทำงานตามที่ตั้งด้วย ควรแก้ยังไงดีครับ