ESP32-CAM: ระบบตรวจจับภาพและส่งอีเมลแจ้งเตือนแบบเรียลไทม์
สำหรับสาย Maker ที่กำลังมองหาโซลูชันกล้องวงจรปิดขนาดเล็ก หรือระบบแจ้งเตือนด้วยภาพแบบราคาประหยัด ESP32-CAM คือคำตอบที่ใช่ที่สุดครับ! ถึงแม้บอร์ดตัวนี้จะมีขา GPIO ให้ใช้น้อยกว่าบอร์ด ESP32 รุ่นปกติ แต่มันถูกออกแบบมาเพื่องานที่เน้นกล้องและการเชื่อมต่ออินเทอร์เน็ตโดยเฉพาะ
ในโปรเจกต์นี้ เราจะมาทำระบบถ่ายภาพและส่งเข้าอีเมลของเราแบบเรียลไทม์ โดยใช้ปุ่มกดเพื่อสั่งถ่ายภาพ (ซึ่งในชีวิตจริงคุณสามารถเปลี่ยนปุ่มกดนี้เป็นเซนเซอร์จับความเคลื่อนไหว (PIR) หรือเซนเซอร์ประตูเพื่อทำระบบกันขโมยได้เลย)
อุปกรณ์ที่ต้องเตรียม (Components Required)
-
ESP32-CAM Module: ทำหน้าที่เป็นสมองกลหลัก ควบคุมกล้องและ Wi-Fi
-
Push Button (2 ตัว): ใช้สำหรับเป็นปุ่มสั่งถ่ายภาพ และปุ่มสั่งส่งอีเมล
-
OLED Display (I2C): หน้าจอแสดงสถานะการทำงานของระบบ (เช่น Booting, Capturing, Sent)
-
Breadboard และสายไฟ (Jumper Wires): สำหรับต่อวงจร
*หมายเหตุ: หากบอร์ด ESP32-CAM ของคุณไม่มีพอร์ต micro USB ในตัว จะต้องใช้ตัวแปลง USB to Serial (FTDI) ในการอัปโหลดโค้ดด้วยนะครับ
การต่อวงจรและหลักการทำงาน
หน้าจอ OLED จะสื่อสารผ่านโปรโตคอล I2C ส่วนปุ่มกดแต่ละปุ่มจะถูกกำหนดหน้าที่แยกกันชัดเจน
Step การทำงานของระบบ:
-
กดปุ่มที่ 1 (Capture): กล้องจะทำการถ่ายภาพทันที หน้าจอ OLED จะขึ้นข้อความว่า "DONE" เหมือนเป็นแสงแฟลชเพื่อคอนเฟิร์มว่าภาพถูกเก็บลงในหน่วยความจำชั่วคราว (Memory) แล้ว
-
กดปุ่มที่ 2 (Send): บอร์ดจะเตรียมข้อมูล (Payload) แล้วส่งภาพขึ้นไปที่ CircuitDigest Cloud API (ซึ่งฟรีและใช้ง่ายมาก) จากนั้นระบบคลาวด์จะตีกลับภาพนั้นเข้าสู่อีเมลที่เราตั้งไว้ และหน้าจอ OLED จะขึ้นคำว่า "SENT"
คลิกเพื่อดูภาพวงจรและฮาร์ดแวร์ (View More)
คลิกเพื่อดูภาพผลลัพธ์การส่งอีเมล (View More)
เจาะลึกส่วนของโค้ด (Code Explanation)
ในการเขียนโค้ด เราจะใช้ไลบรารีหลักๆ เช่น esp_camera.h (คุมกล้อง), WiFiClientSecure.h (คุมความปลอดภัยในการส่งข้อมูล HTTPS) และ Adafruit_SSD1306.h (คุมจอ OLED) โดยมีการตั้งค่าที่สำคัญดังนี้:
-
การตั้งค่าภาพ: ใช้รูปแบบ JPEG ความละเอียดระดับ VGA (640x480) และตั้ง
fb_count = 1 (Frame Buffer) เพื่อประหยัด RAM ของบอร์ด
-
การถ่ายภาพ: ฟังก์ชัน
esp_camera_fb_get() จะถูกเรียกใช้เพื่อเก็บภาพไว้ชั่วคราว
-
การส่งอีเมล: บอร์ดจะสร้าง HTTP POST Request พร้อมแนบ API Key ไปที่โฮสต์ www.circuitdigest.cloud ผ่านพอร์ต 443 (HTTPS)
ไอเดียประยุกต์ใช้งาน & การอัปเกรดในอนาคต
-
ระบบรักษาความปลอดภัย (Smart Security): ติดตั้งไว้หน้าบ้าน เวลามีคนมาด้อมๆ มองๆ ให้ส่งรูปเข้าอีเมลทันที
-
ระบบเก็บหลักฐานหน้างาน (Remote Evidence): ใช้บันทึกภาพหน้างานก่อสร้างหรือในฟาร์มเกษตร แล้วส่งข้อมูลเข้าศูนย์กลาง
-
อัปเกรดใส่ SD Card: สามารถเขียนโค้ดเพิ่มให้บอร์ดเซฟรูปเก็บไว้ใน SD Card เป็นแบ็กอัป เผื่อกรณีเน็ตหลุด
-
ต่อยอดด้วย AI (Edge Impulse): นำไปผนวกกับโมเดลจดจำใบหน้า (Face Recognition) เพื่อแยกแยะคนแปลกหน้า หรือระบบตรวจจับวัตถุ (Object Detection)
🛠️ ปัญหาที่พบบ่อย (Troubleshooting)
-
ขึ้น Error "CAM ERR": มักเกิดจากการเลือกโมดูลกล้องในโค้ดผิดรุ่น (แนะนำให้เลือก AI-Thinker) หรือเสียบสายแพกล้องไม่แน่น
-
เชื่อมต่อ Wi-Fi ไม่ได้: ESP32 รองรับแค่คลื่น 2.4GHz เท่านั้น ห้ามต่อกับ 5GHz เด็ดขาด
-
บอร์ดรีเซ็ตตัวเองบ่อยๆ: ปัญหาสุดคลาสสิก! เกิดจาก "ไฟเลี้ยงไม่พอ" ESP32-CAM ต้องการไฟ 5V ที่เสถียรและกระแสที่สูงพอ ควรต่อแหล่งจ่ายไฟแยกต่างหาก
-
ภาพไม่เข้าอีเมล: เช็กความถูกต้องของ API Key และตรวจสอบว่าเน็ตเวิร์กคุณไม่ได้บล็อกพอร์ต HTTPS 443
อยากสร้างระบบกล้อง IoT ด้วยตัวเองใช่ไหม?
คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา
แท็ก
ESP32
Esp32 Diy
ESP32-CAM