สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เพื่อนคนหนึ่งกำลังเริ่มต้นธุรกิจเล็กๆ ที่เช่าทรัพยากรสำหรับช่วงเวลา 30 นาที เธอมองหานาฬิกาจับเวลาที่สามารถปลุกทุก ๆ 30 นาที (ในชั่วโมงครึ่งชั่วโมง) ด้วยเสียงฆ้องที่ไพเราะ แต่ไม่พบอะไรเลย
ฉันเสนอให้สร้างนาฬิกาปลุกที่ใช้ Arduino แบบง่ายๆ การออกแบบนี้ใช้ไมโครคอนโทรลเลอร์ Pro Micro, เครื่องเล่น DFPlayer Mini MP3 และนาฬิกาเรียลไทม์ DS3231 (RTC.) ฉันใช้ Fusion 360 เพื่อออกแบบเคสตาม Fusion 360 กวดวิชา – เคส Snap Fit ง่าย!
เสบียง
- Arduino Pro Micro, 5 โวลต์, 16 MHz
- เครื่องเล่น DFPlayer มินิ MP3
- การ์ด MicroSD
- DS3231RTC
- จอ LCD 1602 16x2 พร้อมอินเทอร์เฟซ I2C
- ลำโพงขนาดเล็ก
- ปุ่มกด SPST ขนาดเล็ก 2 ปุ่ม
- แหล่งจ่ายไฟ DC 5 โวลต์
- แจ็คบาร์เรลสำหรับอินพุตไฟ
- สกรู/ข้อขัดแย้ง/น็อตต่างๆ ฯลฯ
- คณะกรรมการที่สมบูรณ์แบบ
- ส่วนหัว 2.54 มม. ตัวเมียและตัวผู้
- เคสพิมพ์ 3 มิติ
ขั้นตอนที่ 1: การพัฒนาต้นแบบและรหัส Arduino
ฉันสร้างต้นแบบการออกแบบด้วย SparkFun Inventor's Kit ซึ่งรวมถึงบอร์ด Arduino Uno, เขียงหั่นขนม, สายจัมเปอร์ ฯลฯ ซึ่งเป็นแพลตฟอร์มที่ดีสำหรับการสร้างต้นแบบโปรเจ็กต์ Arduino ร่วมกับแพลตฟอร์มอื่นๆ ที่คล้ายคลึงกัน
ครั้งแรกที่ฉันใช้นาฬิกาเรียลไทม์ "Tiny RTC" DS1307 ประกอบด้วยแบตเตอรี่สำรอง CR2032 เพื่อเก็บเวลาไว้เมื่อไม่ได้จ่ายไฟให้กับโปรเจ็กต์โดยรวม อย่างไรก็ตาม ฉันได้เรียนรู้ว่า DS3231 RTC เป็นตัวเลือกที่ดีกว่า เพราะมีออสซิลเลเตอร์ที่ชดเชยอุณหภูมิเพื่อการจับเวลาที่แม่นยำยิ่งขึ้น โปรดทราบว่า DS3231M ไม่มีการชดเชยอุณหภูมิ ดังนั้นควรตรวจสอบให้ดีก่อนซื้อ
เอกสารประกอบ DFPlayer Mini MP3 Player ประกอบด้วยไดอะแกรมการเชื่อมต่อและโค้ดตัวอย่าง วิธีนี้ใช้ได้ดีสำหรับฉัน สำหรับเสียงปลุก ฉันชอบการบันทึกเสียง "ชามร้องเพลงที่ตีด้วยค้อนปลายสักหลาด" บน Freesound ด้วยความกล้า ฉันแปลงการบันทึกเสียงเป็นโมโน ตัดแต่งให้มีความยาวสั้นลง เพิ่มเฟดเอาต์ และบันทึกเป็นไฟล์.mp3 จากนั้นฉันก็คัดลอกไฟล์.mp3 ลงในการ์ด SD แล้วใส่ลงใน DFPlayer Mini (แน่นอนว่าการออกแบบนี้ทำให้คุณสามารถใช้เสียงใดก็ได้ในการปลุก)
ปุ่มกดสองปุ่มเพิ่ม/ลดเวลาหนึ่งนาที ฉันเชื่อมต่อสิ่งเหล่านี้กับ 2 พินที่เปิดใช้งานสำหรับการขัดจังหวะและใช้ AttachInterrupt()
รหัสอยู่ในไฟล์แนบ "shoni_clock.ino" แหล่งข้อมูลสำหรับรหัส Arduino และการเชื่อมต่อ:
-
เครื่องเล่น MP3 ขนาดเล็กของ DFPlayer
#include "DFRobotDFPlayerMini.h"
- อดาฟรุต RTClib
- #รวม
- LiquidCrystal_I2C
- #รวม
ขั้นตอนที่ 2: แผนภาพวงจร
ฉันใช้ Fritzing เพื่อออกแบบวงจร
- แผนผัง Fritzing แหล่งที่มา: shoni_clock.fzz
- แผนผัง.pdf: shoni_clock_schem.pdf
ขั้นตอนที่ 3: การออกแบบเคส
โปรเจ็กต์นี้เป็นโอกาสที่ดีในการพัฒนาทักษะการออกแบบ 3D CAD ของฉัน ฉันใช้ Fusion 360 บทช่วยสอน Fusion 360 - เคส Snap Fit แบบง่าย! สาธิตเทคนิคที่มีประโยชน์สำหรับการออกแบบเคสที่ขับเคลื่อนด้วยพารามิเตอร์ (ความยาว ความกว้าง ความสูง ความหนาของเปลือก) พร้อมคุณสมบัติสแน็ปอินเข้าด้วยกันสำหรับกล่องหุ้มแบบไม่มีสกรู/กาว
ฉันเพิ่มรูและช่องเจาะสำหรับแจ็คเสียบปลั๊ก จอ LCD ปุ่มกดตั้งเวลา และลำโพง ฉันออกแบบวงแหวนที่เรียบง่ายเพื่อติดตั้งลำโพงเข้ากับด้านบนของเคส ฉันใช้เครื่องมือรูปแบบ Fusion 360 เพื่อสร้างอาร์เรย์สี่เหลี่ยม ของรูสำหรับลำโพง คงจะดีกว่าถ้าสร้างรูปแบบตะแกรงลำโพงแบบวงกลม แต่ฉันหาวิธีง่ายๆ ในการทำเช่นนี้ไม่ได้ มีคนสร้างสคริปต์สำหรับ Fusion เวอร์ชันเก่า แต่ไม่ได้ติดตั้ง ในเวอร์ชั่นล่าสุด มีไอเดียทำแพทเทิร์นลำโพงแบบวงกลมไหม? แจ้งให้เราทราบด้วยความคิดเห็น
ฉันพิมพ์สิ่งนี้ใน PLA บนเครื่องพิมพ์ Ender 3
ไฟล์การออกแบบการพิมพ์ 3 มิติ:
-
เมาท์ลำโพง:
- แหล่งที่มาของ Fusion 360: speaker_mount v1.f3d
- STL: speaker_mount.stl
-
กรณี:
- แหล่งที่มาของ Fusion 360: ShoniClockCase v20.f3d
- สิ่งที่แนบมา STL: shoni_clock_case.stl
- ฝาครอบด้านล่าง STL: shoni_clock_case_bottom_cover.stl