โปรเจกต์ Alarm clock ที่จะทำให้คุณลุกออกจากเตียงในตอนเช้าได้จริงๆ
ฉันสร้าง Alarm clock โดยใช้ motion detection Sensor เพื่อให้คุณไม่สามารถกดปุ่ม snooze แล้วกลับไปนอนต่อได้
ฉันสร้าง Alarm clock โดยใช้ motion detection Sensor เพื่อให้คุณไม่สามารถกดปุ่ม snooze แล้วกลับไปนอนต่อได้
▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์
Project Supporter Team
โพสต์โดย
เพราะบางครั้งการตื่นนอนในตอนเช้าเป็นเรื่องที่ยากมาก ผมจึงตัดสินใจสร้างนาฬิกาปลุกที่ช่วยให้คุณลุกออกจากเตียงได้จริงๆ ไอเดียคือการใช้ Motion Sensor เพื่อให้นาฬิกาปลุกรู้ว่าคุณกลับไปนอนต่อหรือไม่หลังจากกดปุ่ม Snooze ไปแล้ว หากเป็นเช่นนั้นนาฬิกาจะปลุกอีกครั้ง แต่ถ้าคุณลุกขึ้นมานานพอ (เช่น 2 นาที) นาฬิกาปลุกก็จะไม่ดังอีก ในช่วงเวลานี้คุณต้องอยู่บริเวณด้านหน้า Sensor (ภายในระยะไม่กี่เมตร) ซึ่งคุณสามารถเริ่มกิจวัตรประจำวันในตอนเช้าได้เลย
สำหรับโปรเจกต์นี้ เราต้องใช้ Clock Module, Motion Sensor, Buzzer, ปุ่มกดขนาดเล็ก และ Arduino

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

ก่อนอื่นคุณต้องดาวน์โหลดไฟล์ 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

Motion Sensor จำเป็นต้องมีการปรับแต่งเพื่อให้ทำงานได้อย่างถูกต้องสำหรับนาฬิกาปลุกนี้ ขั้นแรกเราต้องวาง Jumper เลือกการ Trigger ให้อยู่ในตำแหน่งที่ถูกต้อง โดยต้องตั้งค่าเป็น 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 รวมถึงช่องสำหรับลำโพง

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



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