มันไม่ต้องใช้โค้ตครับ แค่ on off
เพราะปัญหาตอนนี้คือ มันทํางานพร้อมกัน2โหมด ส่งผลให้ตั้งเวลาทํางานไม่ได้ เพราะติดคํ่าสั่งของเซนเซอร์
ปกติจะต้องให้ผู้ใช้เลือกนะ ว่าจะให้เป็น แบบ ออโต้ หรือ ทามเมอร์ ถ้าเอามาทำงานร่วมกันก็มั่งครับ ไม่งั้นก็ต้องให้ else ของ sensor ปล่อย off ออกมาแค่ครั้งเดียว
ถ้าผมจะทําโหมด2โหมด แบบออโต้กับทามเมอร์ ผมต้องทําอย่างไรคับ
ตัวอย่างการ lock ลอจิก หาในกระทู้ แจ้งเตือนผ่าน line ดูครับ
ลองเขียนดูแล้วเอามาคุยกันนะครับ
คับขอบคุณคับ
หากระทู้ไม่เจอเลยครับ
ถ้าผมจะทําแบบนี้ได้ไหมคับ ใช้widget button เลือกโหมดเอา แบบว่า หากกดbuttonตัวนี้จะเข้าโหมดนี้และกดbutton อีกตัว จะเลือกแบบตั้งเวลา
ไม่เจอเลยครับ
ผมจำได้ไม่เปะๆ นะครับ หาก แบบที่หนึ่งไม่เจอเราต้องฝึกประยุกค์ สักนิด นั้นคือทักษะสำคัญในการเขียนโปรแกรมครับ
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
int sensorValue = 0; //ตัวแปรค่า Analog
int outputValue = 0; // ตัวแปรสำหรับ Map เพื่อคิด %
const int analogInPin = A0;
char auth[] = " vrUsz_PiEoHTQN3nfrY6gZI9jJBpXnis";
char ssid[] = "iPhone";
char pass[] = "12345678";
int t_slider = 0;
int Value_slider;
int led = D6;
int i;
bool lock1 = false;
bool lock2 = false;
BLYNK_WRITE(V1){ //ควบคุมความชื้น
t_slider = param.asInt();
Blynk.virtualWrite(V7,t_slider);
delay(100);
}
BLYNK_WRITE(V3)
{
if (param.asInt()==1) {
digitalWrite(led, HIGH);
}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void setup()
{
pinMode(led,OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023,100,0); //คิดเป็นเปอร์เซ็น
Blynk.virtualWrite(V0,outputValue);
// if(outputValue >= t_slider ){ //ถ้าค่าที่อ่านได้จาก เซ็นเซอร์ มากกว่าหรือเท่ากับ slider ให้ D4 ทำงาน
// digitalWrite(led, HIGH);
// Serial.print('ON');}
// if (outputValue < t_slider){digitalWrite(led,LOW);}
if(outputValue >= t_slider)
{ if(lock1 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V3,1);
lock1 = true;
}
else
{
lock1 = false;
}
if(outputValue <= t_slider)
{ if(lock1 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V3,0);
lock1 = true;
}
else
{
lock1 = false;
}
Blynk.run();
}
แบบนี้ไหมคับ
เยี่ยมครับ ประมาณนั้น ทดสอบแล้วเป็นไงบ้าง
ยังไม่ได้ทดสอบตอนนี้มาโรงเรียน ไว้ตอนคํ่าตะทดสอบนะคับ
น้องอยู่ระดับชั้นไหนครับ
ช.3 ไฟฟ้าคับ
ทําโปรเจบจบอยู่