#include <WiFi.h>
#include <WiFiClientSecure.h>
char ssid[] = "Wokwi-GUEST"; // ชื่อเครือข่าย Wi-Fi
char pass[] = ""; // รหัสผ่าน Wi-Fi (ถ้าไม่มีให้เว้นว่าง)
#define TokenLine "TWLpDhfaWjqeJP96VXK8RXIQzQoIEJTRMZxcsBkEo2w" // ใส่โทเคน LINE Notify ของคุณที่นี่
String txt1 = "หนูรัตน์บุกรุก!!! ที่อาคาร 1"; // ข้อความที่ต้องการส่ง
byte sensorPin = 18; // ขาเชื่อมต่อของเซ็นเซอร์
void setup() {
pinMode(sensorPin, INPUT); // ตั้งค่าให้ขาเซ็นเซอร์เป็น INPUT
Serial.begin(115200); // เริ่มต้นการสื่อสารผ่าน Serial
WiFi.begin(ssid, pass); // เชื่อมต่อกับ Wi-Fi
Serial.print("WiFi Connecting");
while (WiFi.status() != WL_CONNECTED) { // รอจนกว่า Wi-Fi จะเชื่อมต่อสำเร็จ
Serial.print(".");
delay(10000);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP()); // แสดง IP ที่ได้รับจากการเชื่อมต่อ Wi-Fi
}
void loop() {
byte state = digitalRead(sensorPin); // อ่านค่าจากเซ็นเซอร์
if (state == 1) { // หากเซ็นเซอร์ตรวจจับการเคลื่อนไหว
Serial.println("Somebody is in this area!");
NotifyLine(txt1); // ส่งการแจ้งเตือนผ่าน LINE Notify
} else if (state == 0) { // หากเซ็นเซอร์ไม่ตรวจจับการเคลื่อนไหว
Serial.println("No one!");
}
delay(5000); // รอ 5 วินาทีก่อนตรวจสอบอีกครั้ง
}
void NotifyLine(String t) {
WiFiClientSecure client;
client.setInsecure(); // ปิดการตรวจสอบใบรับรอง SSL/TLS
if (!client.connect("notify-api.line.me", 443)) { // เชื่อมต่อกับ LINE Notify API
Serial.println("Connection failed");
return;
}
String 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: ESP32\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); // ส่งคำร้องขอไปยัง LINE Notify API
// อ่านและทิ้งการตอบกลับ
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
break;
}
}
client.stop(); // ปิดการเชื่อมต่อ
}