"ตอนนี้กำลังทำเครื่อง ขอความช่วยเหลือผู้สูงอายุ อยู่ค่ะ" แต่ติดปัญหาอยู่ค่ะ "พี่ๆคนไหนพอ รู้วิธีแก้บ้างคะ"

ปัญหาที่ยังแก้ไม่ได้ก็คือเวลากดปิดสวิตซ์แล้วแต่สวิตซ์ไม่ดับ อีกปัญหาก็คือ. บลัชเซอร์ดังตลอดไม่ดับค่ะ

โค้ดที่ใช้

#include <ESP8266WiFi.h>
#include <WiFiClientSecureAxTLS.h> 
void Line_Notify(String message) ;

#define WIFI_SSID "wasanfern" // ชื่อไวไฟ
#define WIFI_PASSWORD "2317012345"//รหัสผ่านไวไฟ

// Line token
#define LINE_TOKEN "UAsdAKjCdCamsmQXGwIXGrZTzc41EHQPfe1oToO1jUW"// ไลน์token
#define Switch D2 //สวิทช์
#define relay D3 //รีเลย์
String message = "ช่วยด้วยอันตราย"; // เขียนข้อความที่ต้องการ

void setup() {
  pinMode(Switch, INPUT); 
  pinMode(relay, OUTPUT);
  Serial.begin(9600);
  digitalWrite(relay,LOW);
  WiFi.mode(WIFI_STA);
  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  if (digitalRead(Switch) == HIGH) {
//    while(digitalRead(Switch) == HIGH){ 
//   delay(10);
   Serial.println("Enter !");
   Line_Notify(message); //ฟังชั่นที่ใช้ในการส่ง
   delay(10);
   digitalWrite(relay,HIGH); //ไซเรนทำงาน
   delay(5000);// เวลาที่ตั้งให้ไซเรนดัง 5000= 5 วินาที
  }
  else
  {
   digitalWrite(relay,LOW); //ไซเรนหยุดทำงาน
  }
 }


void Line_Notify(String message) {
  axTLS::WiFiClientSecure client; // กรณีขึ้น Error ให้ลบ axTLS:: ข้างหน้าทิ้ง

  if (!client.connect("notify-api.line.me", 443)) {
    Serial.println("connection failed");
    return;   
  }

  String req = "";
  req += "POST /api/notify HTTP/1.1\r\n";
  req += "Host: notify-api.line.me\r\n";
  req += "Authorization: Bearer " + String(LINE_TOKEN) + "\r\n";
  req += "Cache-Control: no-cache\r\n";
  req += "User-Agent: ESP8266\r\n";
  req += "Connection: close\r\n";
  req += "Content-Type: application/x-www-form-urlencoded\r\n";
  req += "Content-Length: " + String(String("message=" + message).length()) + "\r\n";
  req += "\r\n";
  req += "message=" + message;
  // Serial.println(req);
  client.print(req);
    
  delay(20);

  // Serial.println("-------------");
  while(client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      break;
    }
  }
}

ถ่าย สวิตซ์ มาดูหน่อยครับ อยากเห็นว่าต่อแบบไหน

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

sw

หนูใช้แบบนี้ค่ะ

การต่อค่ะ

ต้องต่อแบบ r pull up ด้วยนะครับ

คืออะไรหรอคะ?
พี่บอกวิธีต่อด้วยได้ไหมอะคะ ขอบคุณล่วงหน้านะคะ

ต้องต่อแบบนี้ครับ

ลำโพงก็ยังดังค้างอยู่เลยอะค่ะ

ต้องแบบไหนถ่ายมาดูหน่อย

ลองใส่ Serial.println(“off relay”);

ในลูปนี้ทดสอบดูว่ามันเขามาทำงานติดปิด สวิตซ์จริงไหม

พี่คะแล้วสามารถแก้โค้ดให้ส่งทีละข้อความได้ไหมคะข้อความเด้งรัวเกินไปอะค่ะ

อธิบายไว้หมดแล้วสำหรับเคสนี้ ดูใน live ผมครับ