Esp8266 จับวัตถุด้วย ir sensor แจ้งเตือนผ่าน line notify

ตอนนี้กำลังทำโครงงานตู้รับพัสดุคล้ายๆกับตู้จดหมายแจ้งเตือนทางไลน์ ตอนนี้ใช้บอร์ด esp8266 เซ็นเซอร์เป็นตัว IR Infrared Obstacle Detection Sensor ค่ะ แต่พออัปโหลดลงบอร์ดแล้ว แจ้งเตือนไม่ขึ้นเลยค่ะ ควรจะแก้ยังไงดีคะ

<void Line_Notify1(String message1) ;

 #include <ESP8266WiFi.h>

#include <DHT.h>

 

#define WIFI_SSID "[THM]OMZOC" 

 
#define WIFI_PASSWORD "510520522538555"

 
#define LINE_TOKEN_PIR "vxdqYylnTcq6Q5g2vVW94KymXKY6GheAuSnfBPvyTmb"

 

#define PirPin 6

#define DHTPIN 7

#define DHTTYPE DHT11

 

DHT dht(DHTPIN, DHTTYPE);

String message1 = "hallo";

bool beep_state = false;

bool send_state = false;

uint32_t ts, ts1, ts2;

 

void setup() {

 

Serial.begin(115200);

Serial.println();

 

pinMode(PirPin, INPUT);

pinMode(LED_BUILTIN, OUTPUT);

digitalWrite(LED_BUILTIN, HIGH);

 

dht.begin();

 

Serial.println("connecting");

WiFi.mode(WIFI_STA);

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());

 

delay(10000);

Serial.println("Pir Ready!!");

 

read_sensor();

 

ts = ts1 = ts2 = millis();

}

 

void loop() {

 

ts = millis();

 

if (WiFi.status() == WL_CONNECTED) {

digitalWrite(LED_BUILTIN, HIGH);

} else {

digitalWrite(LED_BUILTIN, LOW);

}

 

if ((ts - ts2 >= 60000) && (WiFi.status() == WL_CONNECTED)) {

read_sensor();

}

 

if ((ts - ts1 >= 5000) && (beep_state == true)) {

beep_state = false;

}

 

if ((digitalRead(PirPin) == HIGH) && (beep_state == false) && (WiFi.status() == WL_CONNECTED)) {

while (digitalRead(PirPin) == HIGH) delay(100);

Serial.println("Detect !");

Line_Notify1(message1);

beep_state = true;

}

delay(10);

 

}

 

void Line_Notify1(String message) {

WiFiClientSecure client;

 

if (!client.connect("notify-api.line.me", 443)) {

Serial.println("connection failed");

delay(2000);

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_PIR) + "\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=" + message1).length()) + "\r\n";

req += "\r\n";

req += "message=" + message1;

// Serial.println(req);

client.print(req);

 

delay(20);

 

while (client.connected()) {

String line = client.readStringUntil('\n');

if (line == "\r") {

break;

}

}

}

 

void read_sensor() {

 

float h = dht.readHumidity();

float t = dht.readTemperature();

 

if (isnan(h) || isnan(t)) {

Serial.println("Failed to read from DHT sensor!");

return;

}

 

Serial.print("Temperature: ");

Serial.print(t);

Serial.println(" *C ");

} 

Code basic line ขึ้นปกติรึป่าว

ขออนุญาติสอบถามได้มั้ยคะ ว่าต้องเช็คยังไง

โค้ตที่มีมาให้กับ library เลยครับ