ผู้เขียนบทความ
1.นายธนภัทร นิติธนะธาดา
2.นางสางวิสัชนา เงินนุช
3.นายศักดิ์สิทธิ์ นครจันทร์
คณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์
วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2567
1.ความเป็นมา
ผู้จัดทำสร้างผลงานชิ้นนี้สร้างขึ้นมาเพื่อเป็นการเพิ่มความปลอดภัยบริเวณโรงเก็บของเมื่อเวลาเจ้าของบ้านพักผ่อนอยู่ภายในบ้านเวลากลางคืนเราอาจจะไม่รู้ว่ามีใครอยู่บริเวณพื้นที่บ้านหรือจุดที่ลับสายตาคนบริเวณพื้นที่บ้านแน่นอนว่าการติดกล้องวงจรปิดก็ช่วยได้ถึงแม้จะสามารถดูผ่านในโทรศัพท์ได้แบบเรียลไทม์ แต่กล้องวงจรปิดนั้นอาจจะมองไม่เห็นจุดลับตาในบางจุดบริเวณภายนอกบ้าน ในปัจจุบันอินเทอร์เน็ตมีผลต่อชีวิตประจำวันอย่างมากในการเข้าถึงสื่อหรืออื่นๆโดยการทำผลงานชิ้นนี้จะใช้ Line Notify ในการรับการแจ้งเตือนเพราะ Line มีความทันสมัย โดยเฉพาะเมื่อมีบุคคลภายนอกเข้ามาในบริเวณพื้นที่ของบ้านเราเราจะสามารถรับรู้ได้ทันที ด้วยเหตุนี้ผู้จัดทำจึงสร้างผลงานชิ้นนี้ขึ้นมาเพื่อให้เกิดความสบายใจแก่ผู้อาศัยภายในบ้านให้มากยิ่งขึ้น และเพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น
2.วัตถุประสงค์
2.1 เพิ่มความปลอดภัยให้กับสถานที่ เช่น บ้านหรือสำนักงาน โดยการตรวจจับการเคลื่อนไหวที่ไม่พึงประสงค์และแจ้งเตือนเจ้าของทันที
2.2 เมื่อตรวจพบการบุกรุก ระบบจะจับภาพของผู้บุกรุกเพื่อให้เจ้าของสามารถดูรายละเอียดของเหตุการณ์ที่เกิดขึ้นได้อย่างชัดเจน
2.3 ระบบส่งการแจ้งเตือนผ่าน LINE Notify เพื่อให้เจ้าของได้รับรู้ได้ทันทีที่เกิดเหตุการณ์ ซึ่งช่วยให้เจ้าของสามารถตอบสนองได้อย่างรวดเร็ว
3.ขอบเขต
3.1 เมื่อมีการเดินผ่านบริเวณที่มีเซนเซอร์ กล้องก็จะตรวจจับและส่งการแจ้งเตือนไปยัง Line Notify แบบ
เรียลไทม์
3.2 ระบบสามารถเชื่อมต่อกับอินเทอร์เน็ตและเซิร์ฟเวอร์ของ Line Notify เพื่อส่งข้อความและรูปภาพไปยัง Line Notify
3.3 เมื่อกล้อง ESP32-CAM บันทึกรูปภาพแล้ว รูปภาพจะไปอยู่ที่ MicroSD Card
4.ประโยชน์ที่คิดว่าจะได้รับ
4.1 ระบบจะสามารถตรวจจับการเคลื่อนไหวในพื้นที่ที่เราจัดไว้ ซึ่งช่วยให้ผู้ใช้สามารถรับข้อมูลเกี่ยวกับกิจกรรมที่ไม่พึงประสงค์ได้ทันที
4.2 การจับภาพในช่วงที่มีการตรวจจับการ เคลื่อนไหวจะช่วยให้สามารถบันทึกหลักฐานและตรวจสอบเหตุการณ์ที่เกิดขึ้นได้อย่างชัดเจน
4.3 ภาพที่จับได้สามารถจัดเก็บหรือส่งไปยังคลาวด์เพื่อการตรวจสอบในภายหลัง ช่วยให้สามารถวิเคราะห์และตรวจสอบเหตุการณ์ที่เกิดขึ้นได้อย่างละเอียด
5.ความรู้ที่เกี่ยวข้อง
5.1 Line Notify
เป็นบริการที่ช่วยให้ผู้ใช้สามารถส่งการแจ้งเตือนไปยังแอปพลิเคชัน LINE ได้ง่าย โดยสามารถส่งข้อความหรือภาพได้ โดยการสร้าง Line Notify สามารถทำตามขั้นตอนโดยเรียงลำดับได้ดังนี้
ขั้นตอนที่ 1 เข้าสู่เว็บไซต์ LINE Notify – เมื่อเข้าสู่หน้าเว็บไซต์แล้วให้ทำการล็อกอินเข้าสู่ระบบไลน์แล้วไลน์จะนำมาสู้หน้าดังกล่าว เมื่อมาถึงหน้าดังกล่าวแล้วให้คลิกที่ “My page”
ขั้นตอนที่ 2 ให้เลือก “Generate Token” เพื่อนำโทเคนมาใส่ในโค๊ดของเราเพื่อให้ระบบส่งการแจ้งเตือนไปยังห้องแชทที่เราได้เลือกไว้
ขั้นตอนที่ 3 เลือกกลุ่มหรือห้องแชทที่ต้องการส่งการแจ้งเตือน
ขั้นตอนที่ 4 ให้เก็บ Token ที่ได้ไว้ใช้งาน Token นี้ควรเก็บไว้ให้ดีเพราะจะสามารถดูได้เพียงรอบเดียวเท่านั้นควรถ่ายรูปเก็บเอาไว้
5.2 อุปกรณ์ที่ใช้
5.2.1 ESP32-CAM – เป็นโมดูลที่ใช้ไมโครคอนโทรลเลอร์ ESP32 ร่วมกับกล้องโดยมีฟังก์ชันหลักหลายอย่างที่สามารถนำไปใช้ในโปรเจคต่างๆได้ ดังนี้
– การถ่ายภาพ ESP32-CAM สามารถใช้ถ่ายภาพหรือวิดีโอโดยการใช้กล้องที่ติดตั้งอยู่บนโมดูล ซึ่งเหมาะสำหรับการสร้างระบบตรวจจับความเคลื่อนไหวหรือการเฝ้าระวัง
– การสื่อสารผ่าน Wi-Fi โมดูลนี้สามารถเชื่อมต่อกับเครือข่าย Wi-Fi ทำให้สามารถส่งข้อมูลภาพหรือข้อความไปยังอุปกรณ์อื่น ๆ เช่น โทรศัพท์มือถือหรือเซิร์ฟเวอร์
5.2.2 Ultrasonic Sensor – โมดูลชนิดนี้เป็นโมดูลเซ็นเซอร์ที่นิยมนำมาวัดระยะทางโดยใช้คลื่นเสียงในการวัดระยะตรวจจับเสียงสะท้อนกลับจากวัตถุกีดขวางที่อยู่ด้านหน้า หลังจากที่ได้มีการส่งคลื่นเสียงออกไปจากตัวส่ง การจับเวลาจะเริ่มระหว่างการส่งคลื่นเสียงออกไปและจับเวลาคลื่นเสียงที่สะท้อนกลับมาเพื่อคำนวณระยะทางที่ได้ โมดูลอัลตราโซนิคมีตัวส่งและตัวรับคลื่นเสียงเพียงหนึ่งคู่เรียกว่า Transmitter และ Receiver ตัว Transmitter จะเป็นส่วนที่ทำหน้าที่ส่งคลื่นเสียงความถี่สูงออกมา (คลื่นอัลตราโซนิค) โดยคลื่นที่ส่งออกไปจะเดินทางผ่านอากาศไปชนกับวัตถุ และ Receiver เป็นส่วนที่ทำหน้าที่รับคลื่นเสียงที่สะท้อนกลับมาหลังจากชนกับวัตถุ ซึ่งจะส่งสัญญาณไฟฟ้ากลับมายัง ESP32 เพื่อทำการประมวลผล
5.2.3 Buzzer – เป็นอุปกรณ์เสียงที่สามารถแปลงสัญญาณเสียงเป็นสัญญาณเสียง Buzzer เป็นเหมือนวงจรที่เรียบง่ายขับเคลื่อนด้วยกระแสตรง (DC) นอกจากนี้ยังสามารถใช้สำหรับการใช้งานที่แตกต่างกัน เช่น การเตือนภัยเมื่อมีไฟไหม้ การเตือนภัยเมื่อมีผู้บุกรุก
5.2.4 Micro SD Card 32GB – ใช้ในการจัดเก็บข้อมูลซึ่งที่ได้มาจาก ESP32-CAM เพื่อเก็บไว้ดูในภายหลัง Micro SD Card ความจุสูงสุด 32GB (Class 10) อัตราการอ่านข้อมูลสูงสุด 30mb/s รองรับการเก็บข้อมูลทุกประเภท ไฟล์ เพลง รูปภาพ วีดีโอ รองรับการบันทึกข้อมูลวีดีโอความละเอียดสูง (Full HD 1080p Video Recording)
5.3 Coding
5.3.1 การนำเข้าไลบรารี่
network – สำหรับการเชื่อมต่อ Wi-Fi
machine – สำหรับการเข้าถึงพินและฟังก์ชันฮาร์ดแวร์
time – สำหรับการจัดการเวลาการทำงาน
urequests – สำหรับการทำ HTTP requests
ujson – สำหรับการจัดการ JSON (แม้ว่าจะไม่ได้ใช้ในโค้ดนี้)
esp32cam – ไลบรารีที่ใช้สำหรับควบคุมกล้อง ESP32-CAM
import network
import machine
import time
from machine import Pin, Timer
import urequests
import ujson
from esp32cam import Camera
5.3.2 การกำหนดค่าในการใช้โค๊ด – กำหนดค่าที่จำเป็น เช่น ชื่อ Wi-Fi และรหัสผ่าน การใส่ LINE token และพินที่ใช้สำหรับโมดูล Buzzer , Ultrasonic sensor , และ LED flash บน ESP32-CAM
SSID = "sak***"
PASSWORD = "06297*****"
LINE_TOKEN = "xZxGy4DCmKZj4Zx3drOHRy5YLrIc8**************"
BUZZER_PIN = 15
TRIG_PIN = 12
ECHO_PIN = 13
LED_FLASH_PIN = 4
5.3.3 การกำหนดพินต่างๆ – กำหนดพินต่าง ๆ สำหรับ Buzzer , Trig , Echo , และ LED flash โดยใช้ Pin
เพื่อระบุโหมดการทำงาน (Input/Output)
buzzer = Pin(BUZZER_PIN, Pin.OUT)
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)
led_flash = Pin(LED_FLASH_PIN, Pin.OUT)
5.3.4 การเชื่อมต่อ Wi-Fi – ฟังก์ชันนี้เชื่อมต่อ ESP32 กับ Wi-Fi โดยใช้ชื่อและรหัสผ่านที่กำหนดไว้ และจะพิมพ์ข้อความ “Connecting to WiFi…” จนกว่าจะเชื่อมต่อสำเร็จ
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
print("Connecting to WiFi...")
time.sleep(1)
print("WiFi connected. IP:", wlan.ifconfig()[0])
5.3.5 ฟังก์ชันถ่ายภาพและส่งไปยัง LINE Notify – ฟังก์ชันนี้ใช้ส่งภาพที่ถ่ายไปยัง LINE Notify พร้อมข้อความแจ้งเตือน โดยใช้ HTTP POST request
def send_line(image_data):
headers = {
'Authorization': 'Bearer ' + LINE_TOKEN,
'Content-Type': 'application/json',
}
payload = {
"message": "ตรวจจับการบุกรุก!!",
"imageFile": image_data
}
response = urequests.post("https://notify-api.line.me/api/notify", headers=headers, json=payload)
response.close()
5.3.6 ฟังก์ชันวัดระยะด้วย Ultrasonic Sensor – ฟังก์ชันนี้จะส่งสัญญาณจากเซ็นเซอร์ Ultrasonic เพื่อวัดระยะห่างโดยการคำนวณจากเวลาที่เสียงใช้ในการกลับมา
def measure_distance():
trig.value(1)
time.sleep_us(10)
trig.value(0)
pulse_start = time.ticks_us()
while echo.value() == 0:
pulse_start = time.ticks_us()
while echo.value() == 1:
pulse_end = time.ticks_us()
duration = pulse_end - pulse_start
distance = duration * 0.034 / 2
return distance
5.3.7 ฟังก์ชันหลัก – ฟังก์ชันนี้คือฟังก์ชันหลักที่ทำงานต่อเนื่อง โดยจะเชื่อมต่อ Wi-Fi เริ่มต้นกล้อง และทำการวัดระยะห่าง ถ้าระยะห่างน้อยกว่าหรือเท่ากับ 50 ซม. จะทำให้ LED และ Buzzer ทำงานเพื่อเตือนภัย จากนั้นจะถ่ายภาพและส่งไปยัง LINE Notify
def main():
connect_wifi()
Camera.init() # เริ่มต้นกล้อง
while True:
distance = measure_distance()
print("Distance:", distance)
if distance <= 50: # ระยะที่ต้องการตรวจจับ
led_flash.on()
buzzer.on()
time.sleep(0.2)
led_flash.off()
buzzer.off()
time.sleep(0.2)
# ถ่ายภาพ
image_data = Camera.capture()
send_line(image_data)
time.sleep(1)
6.ผลการดำเนินงาน
วิธีการใช้งาน
ในขั้นตอนแรกเมื่อมีการปล่อยไวไฟแล้ว SSID และ Password ตรงกันกับที่เขียนโค๊ดไว้ระบบจะทำการเชื่อมไวไฟให้เองโดยอัตโนมัติหลังจากนั้นระบบจะเริ่มทำงานทันทีเมื่อเสียบโมดูล CP2102 เข้ากับแหล่งจ่ายไฟเมื่อระบบเริ่มการทำงานแล้วอัลตราโซนิคจะทำการส่งคลื่นเสียงที่มีความถี่สูงออกไปเมื่อสะท้อนกลับมาแล้วพบว่ามีการเคลื่อนไหวภายในระยะ 50 เซนติเมตร ระบบจะทำการส่งการแจ้งเตือนโดยการส่งข้อความและรูปภาพไปยัง Line Notify หลังจากนั้นจะแจ้งเตือนด้วยการส่งเสียงผ่าน Buzzer และบันทึกรูปภาพลงใน MicroSD Card เพื่อที่จะสะดวกต่อการดูเหตุการณ์ที่เกิดขึ้นในภายหลัง
หากชิ้นงานไม่มีการเชื่อมต่อไวไฟหรือไวไฟขาดหายหรือมีปัญหา เมื่อมีผู้บุกรุกภายในระยะ 50 เซนติเมตร ระบบจะไม่ส่งแจ้งเตือนเข้าไปยัง Line Notify แต่อัลตราโซนิคจะตรวจจับได้ถี่ขึ้นกว่าเดิมและบัสเซอร์ก็จะดังถี่ขึ้นกว่าเดิมจนกว่าจะมีไวไฟกลับมาเชื่อมต่อ
7.สรุปผลและข้อเสนอแนะ
7.1 สรุปผล
จากการทำระบบตรวจจับผู้บุกรุกภายนอกอาคารโดยใช้ ESP32-CAM พบว่าโปรเจคชิ้นนี้สามารถทำงานได้ตามที่ตั้งใจไว้โดยสามารถให้ Ultrasonic ส่งคลื่นเพื่อตรวจจับคนในระยะที่กำหนดได้ และเมื่อพบเจอว่ามีคนระบบจะทำการส่งการแจ้งเตือนไปยัง Line Notify และส่งเสียงผ่าน Buzzer ทันที อีกทั้งยังเก็บภาพลงใน MicroSD Card ได้เมื่อเกิดเหตุการณ์ขึ้น
ปัญหาที่พบคือการใช้งานจาก PIR SENSOR จึงเปลี่ยนเป็น Ultrasonic แทน เพราะ PIR อาจจะตรวจจับรังสีความร้อนที่แผ่มาจากที่อื่นที่ไม่ใช่จากตัวคน เช่น คอมเพรสเซอร์แอร์ อาจจะทำให้ระบบเกิดความผิดพลาดได้
7.2 ข้อเสนอแนะ
เพื่อให้ชิ้นงานทำงานได้อย่างมีประสิทธิภาพมากกว่าเดิมสามารถทำให้ระบบส่ง SMS ได้ในกรณีที่ Line Notify ไม่สามารถใช้งานได้ และในส่วนของการบันทึกภาพเพื่อให้สามารถเช็คได้หลังจากเกิดเหตุการณ์ขึ้นสามารถปรับเปลี่ยนจาก MicroSD Card เป็นระบบ Cloud ได้ เพราะคลาวด์สามารถเข้าได้ทุกที่ที่มีอินเทอร์เน็ต และเรื่องความจุก็สามารถขยายได้โดยไม่ต้องซื้ออุปกรณ์มาเพิ่มอีกด้วยซึ่งต่างจาก MicroSD Card มาก
8.อ้างอิง
8.1 กล้องดักถ่ายภาพอัตโนมัติด้วย pir motion สืบค้นจาก https://www.robotsiam.com
8.2 สอนใช้งาน NodeMCU ESP32 แจ้งเตือนผ่าน LINE Notify สืบค้นจาก https://www.cybertice.com/article
8.3 การใช้งานโมดูล HC-SR04 Ultrasonic Sensor สืบค้นจาก https://www.cybertice.com/article/638
วีดีโอนำเสนอการทำงานของระบบตรวจจับผู้บุกรุกภายนอกอาคาร