Esp32 แจ้งเตือน LINE Notify ไม่ขึ้น

สอบถามครับ ใช้ Esp32 แจ้งเตือนผ่านไลน์ แต่มันไม่ขึ้นข้อความครับ

1 Likes

ถ้าใช้​ library ของเดิมอยู่ให้​ upgrade เป็น​ เวอร์ชั่นล่าสุดครับ

ลงเป็นเวอร์ชั่นล่าสุดแล้วนะครับ ลองรันโค้ด libraly ก็ไม่ขึ้นครับ

https://drive.google.com/drive/folders/1-90AF3-8YME_38ScqsXnxFCbKy4mPp9s

ผมลองรันโค้ดตามนี้มันขึ้น Connection failed ครับ

#include <WiFi.h>
#include <WiFiClientSecure.h>
//########## CONFIGURATION : MODIFY HERE ##########
char ssid[] = "iot";  //ขื่อวายฟาย SSID
char pass[] = "workshop"; //รหัสผ่านวายฟาย
String txt = "";  //ข้อความที่จะแสดงใน Line
//รหัสเชื่อมต่อ Line TOKEN
#define TokenLine "YZofotJjQu2cEFjKiU68zkhGaJMcFpsAXxJBINcLpgrU"

boolean sent = false;
int state = 0;
void setup() {
  Serial.begin(115200);
  //เริ่มการเชื่อมต่อกับวายฟายแม่ข่าย
  WiFi.begin(ssid, pass);
  //แสดง "WiFi Connecting" ในคอนโซล
  Serial.print("WiFi Connecting");
  //ตรวจเช็คสถานะการเขื่อมต่อวายฟาย
  //ถ้าไม่สำเร็จให้แสดง "." ในคอนโซลจนกว่าจะเขื่อมต่อได้
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  //แสดงสถานะการวายฟายเชื่อต่อแล้ว และแสดงหมายเลขไอพีที่ได้รับในคอนโซล
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
  pinMode(22,OUTPUT); // กำหนดขาในการควบคุม
}
void loop() {
  int LDR = analogRead(A0); // pin ที่ต่อ LDR
  int Light = LDR;
  Serial.println("Light=" + String(Light));
  Light = map(Light, 1 , 4095 , 0 , 100);  //ทำการ Map %
  Serial.println("MapLight=" + String(Light) + " %"); // แสดงผลเป็น %
  delay(1000);
  // เงือนไขของการส่ง และสถานะแสง
  if (Light < 30 && state != 1 ) {  //ถ้าแสงน้อยกว่า 30% ให้ไฟติดและส่งค่า
    txt = "Dark";
    digitalWrite (22,HIGH); // ให้ขาที่ 22 ไฟติด
    Serial.println(txt);
    state = 1;
    sent = 0;
  }
  else if (Light > 30 && state != 2 ) { //ถ้าแสงมากกว่า 30% ให้ไฟดับและส่งค่า
    txt = "Day";
    digitalWrite (22,LOW); // ให้ขาที่ 22 ไฟดับ
    Serial.println(txt);
    state = 2;
    sent = 0;
  }
  // เงือนไขของการส่งสถานะ
  if (sent == 0 ) { // sent 0 คือยังไม่ได้ส่ง
    Serial.println(txt);
    NotifyLine(txt);
    sent = 1; // ให้บอกว่าส่งแล้ว
  }
}
void NotifyLine(String t) {
  WiFiClientSecure client;
  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(TokenLine) + "\r\n";
  req += "Cache-Control: no-cache\r\n";
  req += "User-Agent: ESP8266\r\n";
  req += "Content-Type: application/x-www-form-urlencoded\r\n";
  req += "Content-Length: " + String(String("message=" + t).length()) + "\r\n";
  req += "\r\n";
  req += "message=" + t;
  Serial.println(req);
  client.print(req);
  delay(20);
  Serial.println("-------------");
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      break;
    }
  } //while
}

แจ้งเตือนผ่าน Line.pdf (373.2 KB)

เช็คหรือยังว่า WiFi เชื่อมแล้ว

เชื่อมแล้วครับ

ลองดูตัวอย่างนี้

image
ขึ้นแบบนี้ครับ แต่ไลน์ไม่ชึ้น

ได้แล้วครับ ไม่ได้เชิญตัว notify เข้า ขอบคุณมากๆครับ

1 Likes

เยี่ยมมากครับ

ขอบคุณครับ

ปิดไปอีกกระทู้

Slow Motion Racing GIF by NASCAR