#include <WiFi.h>
#include <HTTPClient.h>
#define ssid "Wokwi-GUEST"
#define password ""
// สร้าง token https://notify-bot.line.me/th
//#define token "tiaLZBQnbbOQkkE5DLSZo3RigH00WhZ13VFD2NgqQ2P"
#define token "WJ6fZVRQknMB4cscmeAwj2cPwHtHHq58sBzZx8Vm6bP"
#define pirPin 15
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password, 6);
Serial.print("Connecting to WiFi.");
while(WiFi.status() != WL_CONNECTED) { // รอจนกว่าจะเชื่อมต่อ WiFi สำเร็จ
delay(1000);
Serial.print(".");
}
Serial.println("Connected to WiFi");
sendLineNotify("System Online");
pinMode(pirPin, INPUT);
}
void loop() {
if(WiFi.status() == WL_CONNECTED) { // ตรวจสอบการเชื่อมต่อ WiFi
int pirValue = digitalRead(pirPin); // อ่านค่าจากเซ็นเซอร์ PIR
if(pirValue == HIGH) {
sendLineNotify("เข้าแล้วจ้าาาาาาาา"); // ส่งข้อความไปยังไลน์
}
}
}
void sendLineNotify(String message) { // ฟังก์ชันส่งข้อความ
HTTPClient http;
http.begin("https://notify-api.line.me/api/notify");
http.addHeader("Authorization", "Bearer " + String(token));
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String encodedMessage = "message=" + urlEncode(message);
int httpCode = http.POST(encodedMessage);
if(httpCode > 0) {
String response = http.getString();
}
else {
Serial.println("Error");
}
http.end();
}
String urlEncode(String value) { // ฟังก์ชันเข้ารหัสข้อความผ่าน URL
String encodedValue = "";
char c;
for(size_t i = 0; i < value.length(); i++) {
c = value.charAt(i);
if(isAlphaNumeric(c)) {
encodedValue += c;
}
else {
encodedValue += String('%');
encodedValue += String(c, HEX);
}
}
return encodedValue;
}