ขอ code ที่ควบคุม รีเลย์โมดุล แบบ active low หน่อยครับ

คือผมมีรีเลย์2ชุดครับ ชุดแรกมี4Channal ชุดนี้ไม่มีปัญหาครับ
แต่ที่มีปัญหาคือชุดที่2 มี1channal แล้วเป็นแบบ active low เพราะผมลองเอาinของมันไปทิคกับไฟลบ มันทำงานครับ
หมายเหตุ:ผมใช้esp8266 เชื่อต่อผ่านโทรสัพผ่านแอพ Blynk เพื่อไปควยคุมรีเลย์ครับ

ใครรู้วิธีเขียนcode ควบคุมรีเลย์แบบนี้ รบกวนช่วยหน่อยครับ

มีทั้งหมด5ตัวครับตามภาพเลยครับ

ผมใช้ขา D0 D1 D2 D3 และ D4 ต่อจากesp8266 ไปควบคุมขา in ต่างๆของรีเลย์ครับ

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "tE9TRqslrWzojlg1O1vyrYsYKMK1ddin";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "iPhone ของ Waritnan";
char pass[] = "oumlovelove18";

// Attach virtual serial terminal to Virtual Pin V1
WidgetTerminal terminal(V1);

// You can send commands from Terminal to your hardware. Just use
// the same Virtual Pin as your Terminal Widget
BLYNK_WRITE(V1)
{

  // if you type "Marco" into Terminal Widget - it will respond: "Polo:"
  if (String("Marco") == param.asStr()) {
    terminal.println("You said: 'Marco'") ;
    terminal.println("I said: 'Polo'") ;
  } else {

    // Send it back
    terminal.print("You said:");
    terminal.write(param.getBuffer(), param.getLength());
    terminal.println();
  }

  // Ensure everything is sent
  terminal.flush();
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Clear the terminal content
  terminal.clear();

  // This will print Blynk Software version to the Terminal Widget when
  // your hardware gets connected to Blynk Server
  terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
  terminal.println(F("-------------"));
  terminal.println(F("Type 'Marco' and get a reply, or type"));
  terminal.println(F("anything else and get it printed back."));
  terminal.flush();
}

void loop()
{
  Blynk.run();
}

อันนี้คือ codeที่ผมใช้อยุ่ครับ
ส่วนการกำหนดขาต่างๆ ผมไปกำหนดในแอพ Blynk เลยครับ

@Remy_Martin รบกวนขอcode อีกรอบนึงครับ
ผมอธิบายไม่ละเอียด ขออภัยครับ

ตอนนี้ผมใช้งานได้ปกติทั้งหมดยกเว้ย relay 1channal ที่เป็น active low
ดังนั้น
ผมอยากให้ขาD4 ของesp8266 ทำงานแบบ active low เพียงขาเดียวครับ ส่วนขาอื่นๆ ยังเป็นแบบเดิมครับ
รบกวนหน่อยนะครับพี่

หมายถึงอะไรครับ จะเขียนโค้ตควบคุมเฉพาะ D4 หรอ ส่วนอันอื่นใช้การกำหนดค่าใน blynk สั่งเหมือนเดิม

1 Likes

ใช่ครับพี่ ผมต้องการควบคุมใน Blynk ทั้งหมดครับ แต่รีเลย์ 1channal ที่ผมมีอยู่มันเป้นปบบ active low และผมต่อinput มาจากขา D4ของesp8266
โดยรวมแล้วใช้ได้ครับตอนนี้ แค่รีเลย์มันเป้นแบบ active low ผมเลยควบคุมให้ปิดหรือเปิดไม่ได้ครับ มีวิธีแกไหมครับ

ผมตั้งใน Blynk เหมือนกันหมดครับแต่รีเลย์ตัวที่ผมบอกมันไม่ทำงานครับ

ทำแค่นี้ก็น่าจะพอแล้วครับ

1 Likes

ได้ผลอย่างไรแจ้งด้วยนะครับ