หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Alarm clock ที่จะทำให้คุณลุกออกจากเตียงในตอนเช้าได้จริงๆ

ฉันสร้าง Alarm clock โดยใช้ motion detection Sensor เพื่อให้คุณไม่สามารถกดปุ่ม snooze แล้วกลับไปนอนต่อได้

โปรเจกต์ Alarm clock ที่จะทำให้คุณลุกออกจากเตียงในตอนเช้าได้จริงๆ

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

38,155 การดู
15 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

แอปพลิเคชันและแพลตฟอร์ม

รายละเอียดและวิธีทำ

เพราะบางครั้งการตื่นนอนในตอนเช้าเป็นเรื่องที่ยากมาก ผมจึงตัดสินใจสร้างนาฬิกาปลุกที่ช่วยให้คุณลุกออกจากเตียงได้จริงๆ ไอเดียคือการใช้ Motion Sensor เพื่อให้นาฬิกาปลุกรู้ว่าคุณกลับไปนอนต่อหรือไม่หลังจากกดปุ่ม Snooze ไปแล้ว หากเป็นเช่นนั้นนาฬิกาจะปลุกอีกครั้ง แต่ถ้าคุณลุกขึ้นมานานพอ (เช่น 2 นาที) นาฬิกาปลุกก็จะไม่ดังอีก ในช่วงเวลานี้คุณต้องอยู่บริเวณด้านหน้า Sensor (ภายในระยะไม่กี่เมตร) ซึ่งคุณสามารถเริ่มกิจวัตรประจำวันในตอนเช้าได้เลย

Assembly

สำหรับโปรเจกต์นี้ เราต้องใช้ Clock Module, Motion Sensor, Buzzer, ปุ่มกดขนาดเล็ก และ Arduino

อุปกรณ์ต่างๆ (สำหรับการทดสอบ ในช่วงแรกผมใช้ Mega2560 และ Breadboard)

ตอนนี้ต้องทำการเชื่อมต่อสายไฟทั้งหมดเข้าด้วยกัน:

  • Pin ขั้วลบจาก Buzzer --> GND
  • Pin ขั้วบวกของ Buzzer --> D11
  • Pin ของปุ่มกด --> GND
  • Pin อีกด้านของปุ่มกด --> D9
  • Motion Sensor VCC --> 5V
  • ขา Output ของ Motion Sensor --> D7
  • Motion Sensor GND --> GND
  • Clock Module GND --> GND
  • Clock Module VCC --> 5V
  • Clock Module SDA --> SDA (Pin 20 สำหรับ Mega2560)
  • Clock Module SCL --> SCL (Pin 21 สำหรับ Mega2560)

หลังจากเชื่อมต่อสายตามที่แสดงใน Schematic:

Code

ก่อนอื่นคุณต้องดาวน์โหลดไฟล์ ZIP จากส่วน Code นี่คือ Library สำหรับ Clock Module หากคุณมีปัญหาในการเพิ่มไฟล์ลงใน Library ของคุณ สามารถทำตามคำแนะนำที่มีอยู่ในส่วน Code ได้เลย

ตอนนี้คุณสามารถ Upload Code จากส่วน Software ได้แล้ว หลังจากที่คุณ Upload Code เสร็จแล้ว คุณต้องทำการ Comment บรรทัดนี้ออก:

clock.setDateTime(__DATE__, __TIME__);

บรรทัดนี้อยู่ใน Setup Function

จากนั้นให้คุณทำการ Re-upload Code อีกครั้งทันที

หากคุณไม่ Comment บรรทัดนี้ออก เวลาใน Clock Module จะถูก Reset กลับไปเป็นเวลาที่ Upload ล่าสุดทุกครั้งที่คุณ Reset บอร์ด

หลังจากนั้นคุณสามารถตั้งเวลาที่ต้องการให้นาฬิกาปลุกทำงานได้ โดยสามารถตั้งค่าชั่วโมงและนาทีได้ที่:

//--------------------------------------
int set_hour = 6;
int set_minute = 55;
//--------------------------------------

ตอนนี้นาฬิกาจะปลุกทุกวันในเวลานี้ นอกจากนี้ยังสามารถแก้ไข Code เพื่อให้ตั้งเวลาที่แตกต่างกันสำหรับช่วงวันหยุดสุดสัปดาห์หรือวันอื่นๆ ได้อีกด้วย

เมื่อคุณจ่ายไฟให้นาฬิกาปลุก มันจะรอจนกว่าจะถึงเวลาที่ตั้งไว้ จากนั้น Function alarm() จะทำงาน ในตอนแรกมันจะเริ่มส่งเสียง Beep จนกว่าคุณจะกดปุ่ม Snooze หลังจากนั้น Motion Sensor จะตรวจจับว่ามีคนอยู่ข้างหน้าหรือไม่ คุณต้องอยู่หน้า Sensor ตามระยะเวลาที่กำหนดและต้องมีการขยับตัวเล็กน้อยเพื่อให้ Motion Sensor ถูก Trigger หากคุณอยู่ในระยะตรวจจับของ Motion Sensor นานพอ จะมีสัญญาณ Beep สั้นๆ เพื่อบอกว่าตอนนี้ระบบปลุกถูกปิดใช้งานสำหรับวันนี้แล้ว และจะรอจนกว่าจะถึงเช้าวันถัดไป

อย่างไรก็ตาม หากคุณกลับไปนอนในช่วงเวลาหลังจากกดปุ่มไปแล้ว นาฬิกาจะปลุกขึ้นมาอีกครั้งและขั้นตอนทั้งหมดจะเริ่มใหม่ ดังนั้นนาฬิกาปลุกนี้จะช่วยให้แน่ใจว่าคุณไม่ได้แค่ปิดเสียงปลุกแล้วกลับไปนอนต่อ หวังว่าหลังจากที่คุณยืนอยู่หน้า Sensor สักพัก คุณจะตื่นเต็มตาพอที่จะไม่กลับไปนอนอีก

ในบรรทัดนี้ คุณสามารถปรับเวลา (หน่วยเป็นนาที) ที่คุณต้องอยู่หน้า Sensor ได้:

if(abs(dt.minute - minute) >= 1){ //set the time period where you must //be in

Sensor adjustment

Motion Sensor จำเป็นต้องมีการปรับแต่งเพื่อให้ทำงานได้อย่างถูกต้องสำหรับนาฬิกาปลุกนี้ ขั้นแรกเราต้องวาง Jumper เลือกการ Trigger ให้อยู่ในตำแหน่งที่ถูกต้อง โดยต้องตั้งค่าเป็น Repeatable Trigger Mode!

ตั้งค่าเป็น Repeatable Trigger Mode

ตอนนี้คุณต้องปรับ Time Delay และ Sensitivity ด้วย สำหรับผม ค่าที่ใช้งานได้ดีที่สุดคือตั้ง Sensitivity ไว้ที่ระดับสูงสุด และตั้ง Time Delay ไว้สูงกว่าระดับต่ำสุดเล็กน้อย ค่า Time Delay จะกำหนดว่าขา Output จะยังคงเป็น High นานแค่ไหนหลังจากตรวจจับคนครั้งสุดท้าย หาก Delay สั้นเกินไปจะทำให้ระบบปลุกกลับมาทำงานอีกครั้งได้ยาก เพราะ Sensor อาจไม่ได้ตรวจจับคุณตลอดเวลา ในทางกลับกันหาก Delay นานเกินไป นาฬิกาปลุกก็จะไม่รู้หากคุณกลับไปนอนอีกครั้ง

ทำให้มีขนาดกะทัดรัดขึ้น

หลังจากทดสอบเสร็จแล้ว เราพร้อมที่จะทำให้นาฬิกาปลุกมีขนาดเล็กลง สำหรับขั้นตอนนี้ผมใช้ Arduino Nano Every แต่คุณสามารถใช้บอร์ด Arduino รุ่นอื่นเกือบทุกรุ่นแทนได้

เราเริ่มจากการบัดกรีทุกอย่างเข้าด้วยกันตาม Schematic ที่สอง (โดยพื้นฐานแล้วจะเหมือนกับก่อนหน้านี้ เพียงแค่ไม่มี Breadboard)

หลังจากทดสอบว่าทุกอย่างยังทำงานได้ปกติ เราก็สามารถสร้างเคสสำหรับนาฬิกาปลุกได้ ผมตัดสินใจทำเคสจากไม้บัลซ่าขนาด 3 มม. เพราะใช้งานได้ง่ายมาก นี่คือภาพบางส่วนจากขั้นตอนการสร้างเคส โดยขนาดเคสของผมคือ 55 มม. x 35 มม. x 40 มม.

ผมเจาะรูขนาดใหญ่สำหรับ Motion Sensor และช่องสำหรับสาย Micro USB รวมถึงช่องสำหรับลำโพง

หลังจากทำเคสเสร็จเรียบร้อยแล้ว ผมใช้ปืนกาว (Hot Glue) ยึดอุปกรณ์อิเล็กทรอนิกส์เข้ากับเคส

นาฬิกาปลุกที่เสร็จสมบูรณ์:

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: alarm-clock-that-really-gets-you-out-of-bed-in-the-morning-500499
1120 บาท
PromptPay QR Code