รบกวนช่วยหน่อยครับ เรื่องการ เปิด-ปิด Solenoid

รบกวนช่วยหน่อยครับ พอดีเป็นมือใหม่หัดเพิ่งหัดเขียนครับ กำลังจะทำถ้าอุณหภูมิสูงให้สั่งเปิดพัดลมระบายความร้อน ถ้าระดับน้ำลดจะมีแจ้งเตือนผ่านไลน์(ตอนนี้ยังไม่ได้ไม่เป็นไรครับอยากได้หลักๆก่อน) ถ้าระดับน้ำเกินจะสั่งปิด น้ำอัตโนมัติ ตอนนี้ติดตรงเปิด-ปิด Solenoid ครับ ขออภัยหากอธิบายไม่ชัดครับ

#define BLYNK_PRINT Serial
#define DHTTYPE DHT11
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>

#define DHTPIN  D1             
int sensorPin = A0; //ระดับน้ำ
int Relay1  = D4 ;//พัดลมระบายความร้อน
int Relay2  = D3 ; //Solenoid
int sensorValue = 0;
bool auto_on = false;
SimpleTimer timer;

DHT dht(DHTPIN, DHTTYPE);

char auth[] = "**************";
char ssid[] = "*******";
char pass[] = "******************";

BLYNK_CONNECTED() 
{

  Blynk.syncAll();

  }

BLYNK_WRITE(V4) 
{
  if (param.asInt() == 1) {

    digitalWrite(Relay2,HIGH);

    delay(500);
  }

  if (param.asInt() == 0) {

    digitalWrite(Relay2,LOW);

    delay(500);

  }

}

void sendSoilValue() {

  sensorValue = analogRead(sensorPin);

  sensorValue = map(sensorValue, 0, 1023, 0, 100);

  Blynk.virtualWrite(V1, sensorValue);

}

void setup() {

  pinMode(Relay1,OUTPUT);
pinMode(Relay2,OUTPUT);
  pinMode(sensorPin,INPUT);

  pinMode(DHTPIN,INPUT);

  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  dht.begin();
  timer.setInterval(1000L, sendTemp);

  timer.setInterval(1000L, sendSoilValue);

}
void sendTemp() {

  float h = dht.readHumidity();

  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {

    Serial.println("Failed to read from DHT sensor!");

    return;

  }

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

}
void loop() {

  Blynk.run();

  timer.run();

  if(auto_on == true){

  if (  t > 35 ) 
  {

      digitalWrite(Relay1,HIGH);

  }

    else
    {
        digitalWrite(Relay1, LOW);
     } 
  if (sensorValue > 80) 
   {
      digitalWrite(Relay2,LOW);
    }

    else 
}

}

BLYNK_WRITE(V3) 
{

  if (param.asInt() == 1) {

    auto_on = true;
    Blynk.virtualWrite(V4,LOW);

  }else{

    auto_on = false;
    digitalWrite(Relay2,LOW);
    delay(500);

  }

}

แล้วตอนนี้ทำอะไรได้บ้างแล้วครับ ติดปัญหาอะไรอยู่

ตอนนี้ระดับน้ำ กับอุณภูมิใช้ได้แล้วครับ แต่ติดตรงยังไม่สามารถเปิด Solenoid แล้วก็กรณีถ้าอุณภูมิสูงสั่งพัดลมเปิดปิดอัตโนมัติครับ

ต่อกับ relay ไหนครับ

ช่อง 2 ครับ

V4 ต่อกับอะไรบนหน้าแอพครับ

image

กดแล้วมันไม่ ทำงานหรอ ลองสลับ HIGH => LOW และ LOW => HIGH ดูหรือยัง

ต่อกับ Button เปิดปิดระบบน้ำครับ ลองแล้วครับลองหลายโค้ดเลยแต่ก็ยังไม่ได้สักที เลยตัดสินใจตั้งกระทู้เลยครับ

พอเอาโค้ดอัพโหลดใส่บอร์ด Relay ไฟสีแดงติดครับ แต่พอกดใน Blynk แล้วใช้งานไม่ได้ แก้ไปแก้มา งง กว่าเดิมเลยครับ

อันนี้คือต่อปุ่ม ฮาร์ทแวร์ ภายนอกด้วยใช่ไหม

ไม่ได้ต่อครับ แต่ตอนแรกลองใส่ขา D3 แล้วก็ใส่ 4 แล้วก็ใส่ 19 แล้วมาใส่ในแอพ gpio04 แล้วก็ยังไม่ได้ครับก็เลยลองเปลี่ยนครับ

สรุปก็ยังไม่ได้สักทีครับ หาแนวทางก็มีแต่แบบไม่ใส่คำอธิบายเลยยังไม่ค่อยเข้าใจที่มาด้วยครับ

วาง QRclone ให้หน่อยครับ ของแอพเรา

122997780_661150131258293_1235996242135530759_n

ถ่าย การต่อและบอร์ดมาดูด้วยครับ

2 Likes

ตอนนี้คือกดตรงนี้แล้วเกิดอะไรขึ้น

ภาพ

ไม่เกิดอะไรเลย แค่พอขยับสายจั๊มที่ต่อขาจากรีเลย์เข้า pin บอร์ด วาร์วทำงานเปิดปิด แต่สั่งจาก blynk ไม่ทำงานครับ

V4 นี้กำหนดไว้ที่ไหนของ หน้าแอพ

ภาพ

ไว้ที่เปิดระบบน้ำครับ

Stop app แล้ววางให้ดูหน่อยครับ ผม clone มาไม่เห็นว่า กำหนดอะไรไว้เลย