ESP32-P4 Video Alarm Clock ปลุกด้วยวิดีโอ
เสียง Beep ยังธรรมดาไป? Project นี้เปลี่ยนนาฬิกาปลุกข้างเตียง ให้เปิดคลิปวิดีโอที่เราเลือกเอง บนจอสี่เหลี่ยม 720×720 ตอนถึงเวลาปลุก
Video Alarm Clock ใช้บอร์ดสำเร็จรูป Waveshare ESP32-P4-WIFI6-Touch-LCD-4B ซึ่งรวมจอสัมผัส, Audio, microSD และ Hardware ที่จำเป็น มาเกือบหมดแล้ว
ผลคือ Project นี้ ไม่ได้เริ่มจากการออกแบบ PCB หรือเดินสายจอใหม่ทั้งหมด แต่เอาเวลาส่วนใหญ่ ไปลงกับ Software, Video Playback, Alarm Logic, Media Management และขาตั้ง 3D Print สำหรับวางบนโต๊ะข้างเตียงแทน
Key Takeaways
- ใช้ Waveshare ESP32-P4-WIFI6-Touch-LCD-4B
- จอ MIPI-DSI ความละเอียด 720×720
- ใช้ GT911 Touch Controller
- มี ES8311 Audio Codec และ Speaker
- Board มี 32 MB Flash และ 32 MB PSRAM
- Video ถูกเก็บบน microSD ไม่ได้เก็บใน Flash หลัก
- Video ที่ Clock เล่นต้องเป็น AVI + MJPEG 720×720 + PCM Stereo 44.1 kHz
- ชื่อไฟล์ต้องอยู่ในรูปแบบ 8.3
- รองรับ Alarm หลายรายการ พร้อมเลือกวันและคลิปที่เล่น
- RTC ช่วยให้ Clock เดินต่อได้แม้ไม่มี Wi-Fi
- Wi-Fi ใช้สำหรับ NTP Time Sync, Media Upload และ OTA Update
- Firmware Update ต้องกดเอง ไม่ได้ Update อัตโนมัติ
- มี OTA Rollback หาก Firmware ใหม่เริ่มทำงานไม่สำเร็จ
- มี STL และ OpenSCAD สำหรับ Stand 3D Print มุม 15°
- Stand พิมพ์ด้วย PLA, Layer 0.2 mm, Infill 15–20% และไม่ต้อง Support ตามผู้สร้าง
จากเสียงปลุกธรรมดา สู่ Video Alarm Clock
นาฬิกาปลุกยุคก่อน อาจให้เราเลือกระหว่าง Bell, Buzzer หรือ Radio
ปัจจุบัน Smartphone ทำให้เราเลือกเสียงหรือเพลง ได้แทบอะไรก็ได้ แต่ Project นี้ลองขยับโจทย์ไปอีกขั้น:
ถ้าไม่ได้อยากตื่นแค่ด้วยเสียง แต่อยากตื่นมาพร้อมวิดีโอด้วยล่ะ?
คำตอบคือ Video Alarm Clock ที่ให้เราเตรียม Clip ใส่ microSD แล้วเลือก Clip นั้น ให้เล่นตอน Alarm ทำงาน
Work smarter, not harder: ผู้สร้างเลือกใช้ Display Module สำเร็จรูป ที่มี ESP32-P4, Touch, Audio และ microSD อยู่แล้ว จึงไม่ต้องสร้าง Hardware ทุกส่วนใหม่ตั้งแต่ศูนย์
Hardware หลักคือ Waveshare ESP32-P4 Touch Display
Current Project README ระบุ Board หลักเป็น:
Waveshare ESP32-P4-WIFI6-Touch-LCD-4B
| ส่วนประกอบ | ข้อมูลจาก Project |
|---|---|
| Processor Platform | ESP32-P4 |
| Display | 720×720 MIPI-DSI |
| Touch | GT911 |
| Audio Codec | ES8311 |
| Flash | 32 MB |
| PSRAM | 32 MB |
| Media Storage | microSD Card |
| Firmware Install | USB-C ผ่าน UART Port |
microSD เป็นส่วนสำคัญ เพราะ Video ไม่ได้ถูกเก็บ ใน Flash ของ ESP32-P4
README แนะนำว่า:
- 32 GB ถือว่าเพียงพอสำหรับการใช้งานทั่วไป
- 128 GB เป็นตัวเลือกที่ให้พื้นที่มากขึ้น
- Card ต้อง Format เป็น FAT32 ตาม Project Guide
ESP32-P4 เหมือนกัน แต่ Chip Revision ก็ต้องดู
Firmware ถูก Build ให้รองรับ ESP32-P4:
Revision v1.00 ถึง v1.99
แต่ Hardware ที่ผู้สร้างใช้พัฒนาและทดสอบจริงคือ:
Revision v1.3
ดังนั้น Board v1.x ตัวอื่นอยู่ในช่วง Revision ที่ Firmware ยอมรับ แต่ไม่ได้หมายความว่า ผู้สร้างได้ทดสอบทุก Revision จริง
ถ้า Revision ไม่อยู่ในช่วงที่ Firmware กำหนด: ตัว Flash Process จะปฏิเสธและแจ้ง Revision แทนการ Flash ต่อแบบเงียบ ๆ
ไม่มี Wi-Fi ก็ยังเดินเวลาได้ เพราะมี RTC
Clock ไม่ได้ต้อง Online ตลอดเวลา
ถ้าไม่มี Network ระบบยังใช้ RTC เดินเวลาได้ และสามารถตั้งเวลาเองผ่าน:
Gear → Time
แต่เมื่อเชื่อม Wi-Fi:
- Clock สามารถ Sync เวลาจาก NTP
- ใช้ OTA Firmware Update ได้
- ใช้ Network Upload สำหรับ Media ได้
RTC ไม่ได้หมายความว่าเวลาไม่มีวันคลาด: ผู้สร้างระบุว่า หากไม่มี Network Clock จะเดินด้วย RTC ของตัวเอง และสามารถเกิด Drift ได้
เอา MP4 โยนลง SD ตรง ๆ ไม่ได้ — Player รับ Format เดียว
นี่คือ Technical Constraint หลักของ Project
Source Video ของเรา อาจเป็นไฟล์จากมือถือ กล้อง หรือ Video File รูปแบบอื่น
แต่ก่อนนำเข้า Clock ต้อง Convert ให้เป็น Format ที่ Firmware รองรับ:
| หัวข้อ | Format ที่ Clock ต้องการ |
|---|---|
| Container | AVI |
| Video Codec | MJPEG |
| Resolution | 720×720 |
| Audio | PCM Stereo |
| Sample Rate | 44.1 kHz |
นี่ไม่ใช่แค่ “Format ที่แนะนำ”
Firmware มี Decoder สำหรับชุด Format นี้ ดังนั้นไฟล์ที่ไม่ตรง จะถูก Player ปฏิเสธ
วิดีโอ 16:9 จะเกิดอะไรขึ้น?
Conversion Tool เลือกให้ Video เติมจอสี่เหลี่ยม 720×720 แล้ว Crop ส่วนที่เกินออก
แนวคิดคือไม่ใช้ Letterbox ที่ทำให้เกิดแถบดำ บนหน้าปัดนาฬิกา
ชื่อไฟล์ต้องย้อนยุคหน่อย: ใช้กฎ 8.3
Firmware Build FATFS โดยปิด Long Filename
Video Filename จึงต้องใช้รูปแบบ:
สูงสุด 8 ตัวอักษร + .avi
ตัวอักษรที่ Source ระบุว่าใช้ได้:
- A–Z
- a–z
- 0–9
- _
- -
| ตัวอย่าง | ผล |
|---|---|
wakeup.avi |
ใช้ได้ |
sunrise.avi |
ใช้ได้ |
my-super-long-morning-video.avi |
ยาวเกินรูปแบบ 8.3 |
Conversion Script จะตรวจชื่อ ก่อนเริ่มทำงาน เพื่อไม่ให้ Upload ไฟล์ ที่ Firmware จะหาไม่เจอภายหลัง
ไฟล์ Video อยู่ใน /clock บน microSD
Video ต้องถูกวางไว้ใน:
/clock
และ Project ไม่ได้ค้นหา Video ใน Subdirectory ซ้อนลงไปอีก
↓
/clock
↓
wakeup.avi
sunrise.avi
alarm01.avi
MJPEG กินพื้นที่ค่อนข้างเยอะ
Documentation ของ Project ให้ค่าประมาณ ขนาดไฟล์อยู่ราว หลายสิบ MB ต่อนาที โดยส่วนต่าง ๆ ของเอกสารยกตัวอย่าง ประมาณ 50–65 MB ต่อนาที
เพราะฉะนั้น Clip ปลุกไม่จำเป็นต้องยาวหลายเพลง การ Trim เฉพาะช่วงที่ต้องการ จะช่วยประหยัดพื้นที่ microSD ได้มากกว่า
ติดตั้ง Firmware มีสองทาง
ทางที่ 1 — Browser Installer
Repository มี Web Installer สำหรับ Flash Firmware จาก Desktop Browser โดยไม่ต้องติดตั้ง Tool เพิ่มก่อน
ตาม README ปัจจุบัน Browser Path ต้องใช้ Browser ที่รองรับ Web Serial เช่น Chrome, Edge หรือ Firefox รุ่นที่ Source ระบุ
Safari และ iOS ไม่มี Web Serial จึงใช้ Browser Flash Path นี้ไม่ได้
ทางที่ 2 — flash.sh
สำหรับ Terminal Source มี flash.sh สำหรับ Download Firmware Release, ตรวจ Checksum และ Flash ลง Board
จุดที่ต้องระวังคือ:
เสียบ USB-C เข้าพอร์ต UART ไม่ใช่ OTG
ถ้าเสียบผิด Port Script อาจหา Board ไม่เจอ: README ระบุให้ Flash ผ่าน UART Port ของ Waveshare Board
หากใช้ Terminal Install ต้องมี esptool ตามขั้นตอนใน Repository
แปลง Video ก่อนเอาไปปลุก
Repository มี Folder:
video/
ภายในมี Tool สำหรับ Convert Source Video เป็น Format 720×720 ที่ Clock เล่นได้
Input อาจเป็น Video File ที่เรามีอยู่แล้ว เช่น:
- ไฟล์จากมือถือ
- วิดีโอที่ถ่ายเอง
- ไฟล์จากกล้อง
- Media ที่เรามีสิทธิ์นำมาใช้
Tool รองรับ YouTube URL เป็น Convenience Feature ด้วย แต่ผู้สร้างย้ำว่า นี่ไม่ใช่แกนหลักของ Tool
สิทธิ์ของ Video ยังเป็นความรับผิดชอบของผู้ใช้: ควรใช้ Footage ของตัวเอง, Public Domain หรือ Media ที่มี License / สิทธิ์เหมาะสม ไม่ใช่เห็นว่า Tool Download ได้ แล้วแปลว่าใช้ Video ใดก็ได้
Upload ผ่าน Wi-Fi ได้ แต่ Clock จะเปิด FTP แค่ตอนที่เราสั่ง
วิธี Upload ผ่าน Network ต้องเปิดหน้าจอ:
Gear → Media
Clock จะเปิด FTP Server เฉพาะช่วงที่หน้านี้เปิดอยู่
เมื่อออกจากหน้า Media:
- FTP Server จะหยุด
- หากกำลัง Transfer อยู่ การส่งไฟล์สามารถหยุดกลางทางได้
IP Address สำหรับ Upload จะแสดงอยู่บน Media Screen ตาม Project Guide
FTP นี้ไม่มี Username หรือ Password: ผู้สร้างเลือกจำกัด Exposure ด้วยการเปิด Server เฉพาะตอนผู้ใช้เปิด Media Screen ที่ตัวอุปกรณ์
ไม่อยาก Upload ผ่าน Network?
สามารถถอด microSD ไป Copy File ด้วยคอมพิวเตอร์โดยตรง แล้ววางไว้ใน /clock ได้เช่นกัน
ตั้ง Alarm จากหน้าจอ Clock ได้เลย
Workflow ตาม Project คือ:
เข้า Alarm Screen
จาก Clock Face แตะ Alarm Icon
เลือกเวลา
กำหนดเวลาที่ต้องการ ให้ Alarm ทำงาน
เลือกวัน
ตั้งวัน ที่ต้องการให้ Alarm ทำซ้ำ
เลือก Video
เลือกไฟล์ AVI ที่อยู่บน microSD เป็น Media สำหรับ Alarm นั้น
Project ออกแบบให้ข้อมูล Alarm อยู่รอดจาก Power Cut
แต่อย่าใช้คำว่า “รับประกันปลุกแน่นอน”: ผู้สร้างระบุชัดว่า นี่เป็น Hobby Project ไม่ใช่ Certified Alarm System และไม่ควรใช้เป็น Alarm เพียงตัวเดียวสำหรับเรื่องสำคัญ
Flash ครั้งแรกผ่านสาย หลังจากนั้น Update ผ่าน Wi-Fi ได้
หลังติดตั้ง Firmware แล้ว Clock รองรับ OTA Update
Workflow:
↓
About
↓
Check for updates
↓
Install
↓
Restart now
จุดน่าสนใจคือ Software ไม่ได้ Update อัตโนมัติเอง
ผู้สร้างตั้งใจให้เจ้าของ Clock เป็นคนกด Update เพราะนาฬิกาที่ Reboot ไป Firmware ใหม่เอง ตอนเจ้าของกำลังนอน อาจไม่ใช่พฤติกรรมที่ต้องการ
ถ้า Update ใหม่ Boot ไม่สำเร็จ?
Previous Firmware ยังอยู่ในอีกส่วนของ Flash และระบบสามารถ Rollback กลับไปหา Version ก่อนหน้า หาก Firmware ใหม่ ไม่สามารถเข้าสู่ Running Clock ได้สำเร็จ
อย่ากด --erase เล่น: Option นี้ล้างทั้ง Flash รวม Alarm, Wi-Fi, Brightness และ Volume Settings
Hardware ที่ผู้สร้างต้องออกแบบเองจริง ๆ คือ Stand 3D Print
Repository มี Folder:
enclosure/
ภายในมีทั้ง:
-
base-esp32-clock.stl— ไฟล์สำหรับพิมพ์ -
base-esp32-clock.scad— OpenSCAD Source
Stand ถูกออกแบบให้ Board เอียงประมาณ:
15°
เพื่อใช้เป็นนาฬิกา บนโต๊ะข้างเตียง
Print Settings จากผู้สร้าง
| Setting | ค่าที่ Source แนะนำ |
|---|---|
| Material | PLA |
| Layer Height | 0.2 mm |
| Infill | 15–20% |
| Orientation | พิมพ์วางราบบนฐาน |
| Support | ไม่ต้องใช้ตาม Design ต้นฉบับ |
| Tilt | 15° |
ช่องใส่ Board ถูกออกแบบให้ค่อนข้างพอดี: ถ้า Printer ของคุณพิมพ์ Dimension ออกมาแน่นกว่าปกติ ผู้สร้างแนะนำให้แก้ขนาด Cutout แทนการฝืนกด Board ลงในช่อง
มี STL แล้วแต่ไม่มีเครื่องพิมพ์ 3D? สามารถส่งไฟล์ Stand หรือไฟล์ 3D ที่ต้องการ ให้ทีม Globalbyte ช่วยประเมินงานรับพิมพ์ 3D ได้ โดยควรแจ้ง Material, จำนวนชิ้น และขนาดงาน เพื่อประเมินก่อนพิมพ์จริง
เป็น Clock ที่ต่อ Wi-Fi ได้ แต่ไม่ได้ออกแบบเป็นอุปกรณ์ Security สูง
Repository บอกข้อจำกัดไว้ค่อนข้างตรง ซึ่งเป็นเรื่องที่ควรรู้ ก่อนนำอุปกรณ์ไปต่อ Network
Wi-Fi Password ถูกเก็บใน Plain Flash
ผู้ที่มี Physical Access กับ Board และมี Serial Cable สามารถอ่านข้อมูลใน Flash กลับออกมาได้
FTP ไม่มี Username / Password
FTP Upload Server ไม่มี Authentication
สิ่งที่ลด Exposure คือ Server จะทำงานเฉพาะตอน Media Screen เปิดอยู่ที่ตัว Clock
เลือก Network ให้เหมาะ: ถ้าข้อจำกัดเรื่อง Plain Wi-Fi Credential หรือ FTP แบบไม่มี Authentication ไม่เหมาะกับ Network ของคุณ ไม่ควรนำ Project ไปใช้บน Network นั้น โดยไม่ปรับ Design เพิ่มเติม
License มีสองส่วน และคนละเงื่อนไขกัน
ตรงนี้สำคัญ โดยเฉพาะถ้าจะเอา Project ไปต่อยอดเชิงพาณิชย์
Firmware / Scripts / Documentation
Repository ใช้ Noncommercial License สำหรับ Software และ Documentation ส่วนหลัก
Commercial Use ต้องได้รับ Written Agreement จากผู้สร้างก่อน
Stand ใน enclosure/
Stand 3D Print และ OpenSCAD Source ใน Folder enclosure/ ถูกปล่อยภายใต้:
CC0 1.0
ผู้สร้างระบุว่าส่วนนี้ สามารถ:
- ใช้
- แก้ไข
- พิมพ์
- ขายชิ้นงานพิมพ์
ได้โดยไม่ต้องขออนุญาต สำหรับตัว Stand ภายใต้เงื่อนไขของ CC0
อย่าเหมารวม License ทั้ง Repository: การที่ Stand เป็น CC0 ไม่ได้ทำให้ Firmware และ Script กลายเป็น CC0 ตามไปด้วย
Command ที่ใช้จริงจาก Project
รอบนี้ Source มี Command สำหรับ Flash Firmware, Convert Video และ Render Stand จึงรวมไว้เป็น Code Snippet สำหรับดู Workflow
cd firmware
./flash.sh
./flash.sh --version v0.2.0
./flash.sh --port /dev/ttyACM0
cd video
./videoclock holiday.mov wakeup.avi 192.168.0.201
START=00:01:30 DURATION=00:00:45 ./videoclock holiday.mov wakeup.avi
openscad -o base-esp32-clock.stl base-esp32-clock.scad
Command อาจเปลี่ยนใน Release ถัดไป: ก่อนรันควรเปิด README เวอร์ชันล่าสุดจาก Repository โดยเฉพาะส่วน Firmware, Docker และ Video Conversion
ใช้ Windows ก็แปลง Video ได้ แต่ Workflow ต่างจาก Linux/macOS
Script videoclock เป็น Shell Script จึงไม่ได้รันตรง ๆ บน Windows แบบเดียวกับ Linux/macOS
Project Guide แนะนำให้ Windows ใช้:
Docker Desktop
แล้วเรียก Container สำหรับ Convert Video ผ่าน PowerShell
ffmpeg, yt-dlp และ Tools ที่จำเป็น อยู่ใน Container จึงไม่ต้องติดตั้ง แต่ละตัวแยกเอง หากใช้ Docker Workflow
ดูตัวเครื่องและ Stand เพิ่มเติม
มีภาพอ้างอิง 3 ภาพ จึงแสดง Hero เพียงภาพเดียวด้านบน ส่วนอีก 2 ภาพ ซ่อนไว้ใน Pure CSS View more
ถ้าอยากทำตาม Project นี้ เรียงลำดับแบบนี้เข้าใจง่ายสุด
เตรียม Waveshare Board + microSD
ตรวจ Board Revision และเตรียม microSD แบบ FAT32
Flash Firmware
ใช้ Browser Installer หรือ flash.sh ผ่าน UART Port
ตั้ง Wi-Fi หรือ Time
จะใช้ Wi-Fi + NTP หรือตั้งเวลาจาก Clock เองก็ได้
เลือก Video ที่มีสิทธิ์ใช้งาน
เตรียม Footage ที่ต้องการใช้เป็น Alarm
Convert เป็น 720×720 MJPEG AVI
ใช้ Tool ใน video/ เพื่อสร้าง Format ที่ Player รองรับ
ตั้งชื่อไฟล์แบบ 8.3
เช่น wakeup.avi และวางใน /clock
Upload หรือ Copy ลง microSD
ใช้ Media Screen สำหรับ Network Upload หรือ Copy Card ด้วยคอมพิวเตอร์
ตั้ง Alarm + Video
เลือกเวลา, วัน และ Video ที่ต้องการให้เล่น
พิมพ์ Stand
ใช้ STL จาก Folder enclosure/ หรือแก้ OpenSCAD หากต้องการปรับ Fit
Project นี้มี Detail เยอะ แนะนำเปิด README ต้นฉบับควบคู่กัน
โดยเฉพาะเรื่อง:
- Firmware Compatibility
- Browser Installer
- Serial Port
- Video Encoding
- Windows Docker Workflow
- FTP Media Upload
- OTA Update
- 3D Print Stand
- License
FAQ: ESP32-P4 Video Alarm Clock
Project นี้ใช้ ESP32 รุ่นไหน?
ใช้ Waveshare ESP32-P4-WIFI6-Touch-LCD-4B บน Platform ESP32-P4
จอความละเอียดเท่าไร?
720×720 Pixels แบบ MIPI-DSI
เป็นจอ Touch ไหม?
ใช่ Project ระบุ GT911 เป็น Touch Controller
Video เก็บที่ไหน?
เก็บบน microSD Card ไม่ได้เก็บ Video Library ไว้ใน Flash หลักของ Board
ใส่ MP4 ลง SD แล้วเล่นได้เลยไหม?
ไม่ ต้อง Convert เป็น AVI ที่มี MJPEG 720×720 และ PCM Stereo 44.1 kHz ก่อน
ทำไมชื่อ Video ต้องสั้น?
Firmware ปิด Long Filename ใน FATFS จึงใช้ Filename แบบ 8.3
Video ต้องวางไว้ตรงไหนใน SD?
Current Guide ระบุให้อยู่ใน /clock และไม่ซ้อน Subdirectory
ไม่มี Wi-Fi ยังใช้นาฬิกาได้ไหม?
ได้ Clock ใช้ RTC และตั้งเวลา Manual ได้ แต่จะไม่มี NTP Sync และ RTC สามารถเกิด Drift ได้
Wi-Fi ใช้ทำอะไร?
ใช้สำหรับ NTP Time Sync, Media Upload และ OTA Firmware Update
Firmware Update เองตอนกลางคืนไหม?
ไม่ ผู้ใช้ต้องเข้า About แล้วกด Check for updates และ Install เอง
ถ้า Firmware Update แล้วเปิดไม่ขึ้น?
Project มี OTA Rollback ที่สามารถกลับไป Firmware ก่อนหน้าได้ หาก Image ใหม่ ไม่เข้าสู่ Running Clock สำเร็จ
ตั้ง Alarm หลายรายการได้ไหม?
Project รองรับ Alarm ที่มีเวลา, วันทำซ้ำ และ Video ของแต่ละ Alarm
Alarm รอดจากไฟดับไหม?
Project ออกแบบให้ Alarm ถูกเก็บไว้หลัง Power Cut แต่ผู้สร้างย้ำว่า นี่เป็น Hobby Project ไม่ใช่ระบบ Alarm ที่รับประกันความน่าเชื่อถือ
Stand ต้องใช้ Support ตอนพิมพ์ไหม?
ผู้สร้างระบุว่า พิมพ์แบบวางฐานลง Bed และไม่ต้องใช้ Support
Stand ใช้ Material อะไร?
README แนะนำ PLA, Layer 0.2 mm และ Infill 15–20%
Stand เอียงกี่องศา?
ประมาณ 15° ตาม OpenSCAD Design ต้นฉบับ
ขายชิ้นงาน Stand ที่พิมพ์ออกมาได้ไหม?
Folder enclosure ถูกปล่อยภายใต้ CC0 1.0 และผู้สร้างระบุว่า สามารถพิมพ์, แก้ไข และขายชิ้นงานพิมพ์ได้ แต่ License ของ Firmware / Script เป็นคนละเงื่อนไข
Firmware ใช้เชิงพาณิชย์ได้เลยไหม?
ไม่ควรสรุปแบบนั้น Repository ระบุ Noncommercial License และ Commercial Use ต้องขอ Written Agreement จากผู้สร้างก่อน
ใช้เป็น Alarm ตัวเดียวสำหรับสอบหรือเที่ยวบินได้ไหม?
ผู้สร้างแนะนำว่าไม่ควร เพราะ Project ไม่ได้ Certified, ไม่มี Redundancy และไม่มีการรับประกัน ว่าจะปลุกได้ทุกครั้ง
Project นี้เด่นตรง “ไม่สร้าง Hardware ใหม่เกินจำเป็น”
Video Alarm Clock เป็นตัวอย่างที่ดี ของ Project ที่ไม่ได้พยายามทำทุกอย่าง ตั้งแต่ศูนย์
ผู้สร้างเลือก Display Module ที่มี ESP32-P4, Touch, Audio และ Storage Interface พร้อมอยู่แล้ว
แล้วไปโฟกัสกับสิ่งที่ทำให้มัน กลายเป็น “นาฬิกาปลุกวิดีโอ” จริง ๆ:
↓
RTC + Clock UI
↓
microSD Media Library
↓
720×720 MJPEG Video
↓
Alarm Schedule
↓
Wi-Fi / NTP / OTA
↓
3D Printed Bedside Stand
สำหรับสาย Maker Lesson ที่น่าสนใจ จึงไม่ได้มีแค่การทำ Alarm แต่รวมถึง:
- เลือก Module ให้ลดงาน Hardware
- จัดการ Media บน Embedded Device
- ออกแบบ Codec Constraint ให้ชัด
- จัดการ OTA แบบ Manual + Rollback
- ออกแบบ Network Exposure แบบจำกัดเวลา
- เชื่อม Software Project เข้ากับงาน 3D Printing
References / แหล่งข้อมูลต้นฉบับ
- Hackaday — ESP32-P4 Powers Video Alarm Clock
- GitHub — brunokeymolen/videoalarmclock
- Video Alarm Clock — Main README
- Video Alarm Clock — Firmware README
- Video Alarm Clock — Video Conversion README
- Video Alarm Clock — 3D Printed Stand README
- Video Alarm Clock — Software / Documentation License
- Video Alarm Clock — Project Disclaimer
มี STL แล้ว แต่ยังไม่มีเครื่องพิมพ์ 3D?
Project นี้มีไฟล์ Stand สำหรับ 3D Print อยู่แล้ว และตัว Stand ถูกปล่อยภายใต้ CC0 1.0
ถ้าต้องการพิมพ์ Stand, ทดลองปรับขนาด หรือมีไฟล์ STL สำหรับ Project Maker อื่น สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินงานรับพิมพ์ 3D ได้
หากกำลังหา Development Board, Raspberry Pi, microSD หรืออุปกรณ์ Maker สำหรับ Project อื่น สามารถสอบถามทีมได้เช่นกัน โดยสินค้าบางรุ่น อาจต้องตรวจ Stock ก่อนสั่งซื้อ