Tip_Sr
(Tip Sr)
1
ขอสอบถามหน่อยค่ะ คือตอนนี้ รับค่าจาก ค่าความชื้นในดิน เพื่อเปิด รีเลย์ ได้แล้วค่ะ แต่ Button มันเปิดปิดตาม ต้องทำยังไงค่ะ
BlynkTimer timer;
DHT dht(DHTPIN, DHTTYPE);
void myTimerEvent()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println("Failed to read from DHT sensor!");
return;
}
else
{
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.println(t);
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V2, t);
}
}
void setup()
{
pinMode(4, OUTPUT); //ตั้งค่าขา 4 เป็น output
pinMode(5, OUTPUT); //ตั้งค่าขา 5 เป็น output
Serial.begin(115200); // เริ่มตั้นการสื่อสารที่ 115200
dht.begin();
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, myTimerEvent);
}
void loop()
{
int sensorValue ;
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0, 1023, 0, 100);
Serial.print("Soil moisture: ");
Serial.print(sensorValue);
Serial.println(" %");
Blynk.run();
timer.run(); // Initiates BlynkTimer
delay(500); //wait for half a second, so it is easier to read
if(sensorValue > 80)
{
digitalWrite(5,HIGH);
}
else {
digitalWrite(5,LOW);
Blynk.virtualWrite(A0,5);
}
}
Remy_Martin
(Permpol Thanapunnamas)
2
ปุ่มกำหนด Vpin ไหนไว้ครับ
Remy_Martin
(Permpol Thanapunnamas)
5
กะแล้วว่าต้องกำหนด ตรงๆ แบบนี้ จริงๆ ถ้าเรากำหนดแบบนี้เป็น gp5 มันจะสั่ง on โดยตรงเลยครับ ทำให้เราไม่สามารถ สั่ง on off ที่ปุ่มหน้าแอฟ ได้
ดังนั้นเราต้อง เปลี่ยนให้เป็น Vpin ที่ยังว่างอยู่ เช่น V3 ตัวอื่นที่เป็น gp5 ก็ต้องเปลี่ยนตามไปด้วย
Remy_Martin
(Permpol Thanapunnamas)
6
โค้ตที่ต้องเปลี่ยนต้องสั่งงานแบบนี้
if(sensorValue > 80)
{
digitalWrite(5,HIGH);
Blynk.virtualWrite(A3,1); //คำสั่งให้ปุ่ม on
}
else {
digitalWrite(5,LOW);
Blynk.virtualWrite(A3,0); // สั่งให้ปุ่ม off
}
Remy_Martin
(Permpol Thanapunnamas)
7
แล้วอย่างลืมเพิ่มคำสั่งให้เวลาที่เรากดปุ่ม on/off ที่ V3 ให้มันทำงานด้วย ถ้าเราไม่ใส่กดยังไง relay เราก็ไม่ on
BLYNK_WRITE(V3)
{
if (param.asInt()==1) { // เมื่อ V3 มีค่าเป็น 1
digitalWrite(5, HIGH); // Relay on
}
}else{
digitalWrite(5, LOW); //Relay off
}
}
Remy_Martin
(Permpol Thanapunnamas)
8
โค้ตชุดล่าสุดใส่ต่อมาจาก void loop เลยนะครับ อย่าเอาไปใส่ในนั้น
void loop (){
// คำสั่ง
}
BLYNK_WRITE(V3)
{
if (param.asInt()==1) { // เมื่อ V3 มีค่าเป็น 1
digitalWrite(5, HIGH); // Relay on
}
}else{
digitalWrite(5, LOW); //Relay off
}
}
Tip_Sr
(Tip Sr)
9
void loop()
BLYNK_WRITE(V3)
{
if(param.asInt()==1){
digitalWrite(5,HIGH);
}
else{digitalWrite(5,LOW);
}
{
int sensorValue ;
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0, 1023, 0, 100);
Serial.print("Soil moisture: ");
Serial.print(sensorValue);
Serial.println(" %");
Blynk.run();
timer.run(); // Initiates BlynkTimer
delay(500); //wait for half a second, so it is easier to read
if(sensorValue > 80)
{
digitalWrite(5,HIGH);
Blynk.virtualWrite(V3,1);
}
else {
digitalWrite(5,LOW);
Blynk.virtualWrite(V3,0);
}
}
Tip_Sr
(Tip Sr)
10
แบบนี้หรอค่ะ แต่มันยังติด Error
Remy_Martin
(Permpol Thanapunnamas)
11
ผิดครับต้องแบบนี้
int sensorValue;
void loop()
{
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0, 1023, 0, 100);
Serial.print("Soil moisture: ");
Serial.print(sensorValue);
Serial.println(" %");
Blynk.run();
timer.run(); // Initiates BlynkTimer
delay(500); //wait for half a second, so it is easier to read
if(sensorValue > 80)
{
digitalWrite(5,HIGH);
Blynk.virtualWrite(V3,1);
}else{
digitalWrite(5,LOW);
Blynk.virtualWrite(V3,0);
}
}
BLYNK_WRITE(V3)
{
if(param.asInt()==1){
digitalWrite(5,HIGH);
}else{
digitalWrite(5,LOW);
}
}
Tip_Sr
(Tip Sr)
14
ได้แล้วค่ะ ขอบคุณมากนะคะ
แต่ถ้าอยากสั่งงานแบบ Manual ด้วยในปุ่มเดียวกันจะได้ไหมค่ะ
Remy_Martin
(Permpol Thanapunnamas)
16
โค้ตชุดนั้นก็สั่งได้ทั้ง Manual และด้วยค่าจากความชื้นแล้วนะครับ
Tip_Sr
(Tip Sr)
19
คือพอกดสั่งแบบ Manual แล้ว มันก็ปิดเองเลยค่ะ
และตัวสั่งงานแบบตั้งเวลาก็ปิดเองเหมือนกัน
Remy_Martin
(Permpol Thanapunnamas)
20
อุปกรณ์ต่อ แบบ active low รึป่าวครับ แก้จาก HIGH เป็น LOW และส่วนที่เป็น LOW เป็น HIGH ดูครับ
Remy_Martin
(Permpol Thanapunnamas)
21
ถ้ายังไม่ได้ลองเอาโค้ตมาดูก่อนครับ อธิบายด้วยว่ากดอะไรเป็นยังไงบ้าง