ฮับข้างเตียง: All In One Clock 2.0
All In One Clock 2.0 เป็นการรวมเอาโปรเจกต์ย่อยๆ หลายโปรเจกต์เข้าด้วยกัน โดยนำการจับเวลาด้วย RTC, การตรวจจับสภาพอากาศ และเมนูแบบโต้ตอบ มารวบรวมเข้าเป็นชุดโค้ดขนาดใหญ่ที่มีฟังก์ชันการทำงานสูง

การซิงโครไนซ์ฮาร์ดแวร์
- ส่วนประมวลผลหลัก: ต้องใช้ Arduino Mega หรือ ESP32 เนื่องจากขนาดโค้ดที่ใหญ่และความต้องการไลบรารีจำนวนมาก
- ส่วนจับเวลา (DS3231 RTC): แตกต่างจากฟังก์ชัน
delay()พื้นฐาน โมดูล RTC มีแบตเตอรี่ภายใน แม้คุณจะถอดปลั๊ก Arduino เป็นเวลาหนึ่งปี RTC ก็ยังคงจำวินาทีและปีที่ถูกต้องได้ - ส่วนตรวจสอบสภาพอากาศ (DHT22 หรือ BME280): อ่านค่าอุณหภูมิห้อง
- ส่วนติดต่อผู้ใช้: จอแสดงผล Text LCD ขนาด 20x4 หรือจอสัมผัส TFT ขนาด 3.5 นิ้ว แสดงข้อมูลทั้งหมดที่จัดรูปแบบอย่างสวยงาม
- ส่วนรับข้อมูล: ปุ่มกด 4 ปุ่ม (Menu, Up, Down, Select) เพื่อนำทางในเมนูการตั้งค่าและตั้งค่านาฬิกาปลุก
โครงสร้างเมนูขั้นสูง
เพื่อรวมคุณสมบัติทั้งหมดเหล่านี้เข้าด้วยกัน โค้ดใช้ State Machine ที่ซับซ้อน
State 0 (Home): แสดงเวลาและอุณหภูมิState 1 (Menu): แสดง "1. ตั้งเวลา, 2. ตั้งปลุก, 3. การตั้งค่า"State 2 (Set Alarm): เคอร์เซอร์จะกะพริบเหนือชั่วโมง เพื่อรอให้ผู้ใช้กด 'Up' หรือ 'Down'
การสร้างลอจิก switch/case สำหรับระบบเมนูแบบหลายระดับ เป็นหนึ่งในแบบฝึกหัดซอฟต์แวร์ที่น่าหงุดหงิดแต่ก็คุ้มค่าที่สุดในการเขียนโปรแกรมระบบสมองกลฝังตัว!