สอบถามครับ ใช้ 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 เชื่อมแล้ว
เชื่อมแล้วครับ
ลองดูตัวอย่างนี้
ขึ้นแบบนี้ครับ แต่ไลน์ไม่ชึ้น
ได้แล้วครับ ไม่ได้เชิญตัว notify เข้า ขอบคุณมากๆครับ
1 Likes
เยี่ยมมากครับ
ขอบคุณครับ
ปิดไปอีกกระทู้