กลับไปหน้ารวมไฟล์
all-in-one-clock.md

ฮับข้างเตียง: All In One Clock 2.0

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

stock_counter_lcd_setup_1772706693516.png

การซิงโครไนซ์ฮาร์ดแวร์

  1. ส่วนประมวลผลหลัก: ต้องใช้ Arduino Mega หรือ ESP32 เนื่องจากขนาดโค้ดที่ใหญ่และความต้องการไลบรารีจำนวนมาก
  2. ส่วนจับเวลา (DS3231 RTC): แตกต่างจากฟังก์ชัน delay() พื้นฐาน โมดูล RTC มีแบตเตอรี่ภายใน แม้คุณจะถอดปลั๊ก Arduino เป็นเวลาหนึ่งปี RTC ก็ยังคงจำวินาทีและปีที่ถูกต้องได้
  3. ส่วนตรวจสอบสภาพอากาศ (DHT22 หรือ BME280): อ่านค่าอุณหภูมิห้อง
  4. ส่วนติดต่อผู้ใช้: จอแสดงผล Text LCD ขนาด 20x4 หรือจอสัมผัส TFT ขนาด 3.5 นิ้ว แสดงข้อมูลทั้งหมดที่จัดรูปแบบอย่างสวยงาม
  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 สำหรับระบบเมนูแบบหลายระดับ เป็นหนึ่งในแบบฝึกหัดซอฟต์แวร์ที่น่าหงุดหงิดแต่ก็คุ้มค่าที่สุดในการเขียนโปรแกรมระบบสมองกลฝังตัว!

ข้อมูล Frontmatter ดั้งเดิม

title: "All In One Clock 2.0"
description: "The ultimate bedside companion! Build a master clock featuring time, date, temperature, humidity, and customizable alarms on an LCD."
category: "Home Automation"
difficulty: "Advanced"