ESP32 ทำระบบแจ้งเตือนไฟพร้อมแสดงอุณหภูมิและความชื้นบนจอได้

แนะนำโปรเจกต์ (Project Overview)

สวัสดีครับสาย Maker! วันนี้เราจะพามาดูไอเดียโปรเจกต์ Project #15: Environment - Buzzer - Mk36 (รหัสโปรเจกต์ DL2602Mk09) จากคุณ Luc Paquin ซึ่งเป็นการนำบอร์ด ESP32 มาสร้างเป็นระบบเฝ้าระวังสภาพแวดล้อมแบบครบวงจรครับ

ระบบนี้ไม่เพียงแต่จะสามารถวัดอุณหภูมิและความชื้นในอากาศ แล้วนำมาแสดงผลกราฟิกสวยๆ บนหน้าจอสัมผัส TFT LCD ได้เท่านั้น แต่มันยังติดตั้งเซ็นเซอร์ตรวจจับเปลวไฟ (Flame Sensor) เอาไว้ด้วย หากเกิดเหตุฉุกเฉินหรือมีไฟไหม้ ระบบจะส่งเสียงร้องเตือนผ่าน Buzzer และแสดงไฟ LED สีเขียวทันทีครับ เหมาะมากที่จะนำไปประยุกต์ใช้เป็นระบบ Smart Home ป้องกันอัคคีภัยในบ้านของคุณเอง

อุปกรณ์ที่ต้องใช้ (Hardware Components)

สำหรับฮาร์ดแวร์ที่ใช้ในโปรเจกต์นี้ จะเน้นใช้อุปกรณ์ตระกูล DFRobot เป็นหลัก เพื่อให้ประกอบเข้าด้วยกันได้ง่ายครับ:

  • บอร์ดไมโครคอนโทรลเลอร์: DFRobot FireBeetle 2 ESP32-E
  • หน้าจอแสดงผล: Fermion: 3.5” 480x320 TFT LCD Capacitive (พร้อมสาย GDL Line 10 CM)
  • เซ็นเซอร์วัดสภาพอากาศ: Gravity: AHT20 Temperature and Humidity Sensor
  • เซ็นเซอร์ตรวจจับไฟ: Flame Sensor
  • ตัวส่งเสียงเตือน: Elecrow Crowtail - Buzzer 2.0
  • หลอดไฟแสดงสถานะ: Elecrow Crowtail - LED Green
  • บอร์ดขยายพอร์ต: Gravity: IO Shield และ Terminal Block Board สำหรับ FireBeetle 2
  • พลังงานสำรอง: แบตเตอรี่ Lithium Ion - 1000mAh และสาย USB 3.0 to Type-C
  • ซอฟต์แวร์: Arduino IDE

เจาะลึกโมดูลเสียง: ตัว Crowtail - Buzzer 2.0 เป็นโมดูลที่ใช้งานง่ายมากครับ แค่คุณสั่งจ่ายไฟ (Logic HIGH) จากพอร์ต Digital (D) ของบอร์ด ESP32 เข้าไป มันก็จะส่งเสียงร้องทันที หรือถ้าคุณอยากให้มันร้องเป็นเสียงโน้ตดนตรีต่างๆ ก็สามารถต่อเข้ากับพอร์ต PWM (Pulse-Width Modulation) เพื่อสร้างความถี่เสียงที่ต้องการได้เช่นกัน

💡 ทริคเพิ่มเติม: หากคุณกำลังมองหาบอร์ด ESP32, หน้าจอ TFT LCD, เซ็นเซอร์ตรวจจับควันและไฟ หรือต้องการบริการ 3D Printing สำหรับสั่งทำเคสสวยๆ เพื่อครอบระบบแจ้งเตือนไฟไหม้ตัวนี้ สามารถเข้าไปสั่งซื้อและใช้บริการได้ที่ https://openlink.co/globalbyte เลยครับ!

หน้าตาของอุปกรณ์และแผนผังวงจร (Gallery & Schematics)

Environment Buzzer Project Photo 1
View more (ดูรูปอุปกรณ์มุมอื่นๆ และแผนผังวงจร Schematics)
Environment Buzzer Project Photo 2 Environment Buzzer Project Photo 3

แผนผังวงจร (Schematics) สำหรับการต่อพอร์ตต่างๆ:

Schematics DL2602Mk09

ส่วนของโปรแกรมและซอร์สโค้ด (Software & Code)

โปรเจกต์นี้เขียนด้วยภาษา C++ บนโปรแกรม Arduino IDE ครับ โดยผู้พัฒนาได้แบ่งโครงสร้างไฟล์โปรแกรมออกเป็นหลายๆ ไฟล์ย่อย (Tabs) เพื่อให้จัดการโค้ดได้ง่ายขึ้น ได้แก่ DL2602Mk09p.ino (ไฟล์หลัก), getDisplay.ino, getEEPROM.ino, getFlame.ino, getHT.ino, และ setup.ino

ข้อแนะนำ: โค้ดที่แสดงด้านล่างนี้คือเนื้อหาของไฟล์หลัก (DL2602Mk09p.ino) ที่ใช้เรียกไลบรารีและฟังก์ชัน Loop เท่านั้น หากคุณนำไปคอมไพล์ตรงๆ จะยังไม่ผ่าน คุณจำเป็นต้องเขียนหรือสร้างฟังก์ชันย่อย (เช่น isHT() และ isFlame()) เพื่อให้ระบบทำงานได้ครบถ้วนตามแบบฉบับของผู้พัฒนาครับ

View more (ดู Source Code ไฟล์หลัก และกด Copy Code)
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment - Buzzer - Mk36 15-36 DL2602Mk09p.ino DL2602Mk09 1 x DFRobot FireBeetle 2 ESP32-E 1 x Fermion: 3.5” 480x320 TFT LCD Capacitive 1 x GDL Line 10 CM 1 x Crowtail - Buzzer 2.0 1 x Gravity: AHT20 Temperature and Humidity Sensor 1 x Flame Sensor 1 x Crowtail - LED Green 1 x Gravity: IO Shield for FireBeetle 2 1 x Terminal Block Board for FireBeetle 2 ESP32-E IoT 1 x Lithium Ion Battery - 1000mAh 1 x Micro USB Cable */ // Include the Library Code // EEPROM Library to Read and Write EEPROM with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // AHT20 Humidity and Temperature Sensor #include <DFRobot_AHT20.h> // Buzzer int iBuzzer = D10; // AHT20 Humidity and Temperature Sensor DFRobot_AHT20 aht20; // AHT20 Humidity and Temperature Sensor float h = 0; float t = 0; // Flame Sensor // LED Green int iLEDG = D11; // Flame Sensor int iFlame = A0; String sF = ""; // Defined ESP32 #define TFT_DC D2 #define TFT_CS D6 #define TFT_RST D3 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 320x480 DFRobot_ILI9488_320x480_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // Software Version Information // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "15-36"; void loop() { // AHT20 Humidity and Temperature Sensor isHT(); // Flame Sensor isFlame(); // isDisplay HT isDisplayHT(); // Delay 0.1 Second delay( 100 ); }

ข้อมูลผู้พัฒนาและช่องทางติดต่อ (Developer Info)

โปรเจกต์ดีๆ แบบนี้เป็นผลงานของคุณ Luc Paquin (Don Luc) ผู้เชี่ยวชาญและที่ปรึกษาด้าน R&D, Electronics, IoT, และ Robotics ครับ หากใครสนใจผลงานหรืออยากปรึกษาเรื่องการเขียนโปรแกรม ไมโครคอนโทรลเลอร์ต่างๆ (เช่น PIC, Arduino, Raspberry Pi, ESP), การทำงานของโดรน (UAV), หรือ AI Machine Learning สามารถเข้าไปติดตามเขาได้ตามช่องทางด้านล่างนี้เลยครับ:

พร้อมสร้างระบบ Smart Home & ความปลอดภัยในแบบของคุณหรือยัง?

อยากทำโปรเจกต์หน้าจอสัมผัสล้ำๆ หรือระบบแจ้งเตือนอัคคีภัยแบบนี้ไว้ใช้ในบ้าน แวะมาหาอุปกรณ์และพูดคุยกับเราได้เลยครับ!

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา โปรดอ้างอิงข้อมูลโครงสร้างไฟล์โค้ดโดยละเอียดจากต้นฉบับ
อ้างอิงจาก (References):

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี