สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สร้างแถบไฟ LED ที่ควบคุมด้วย rc ของคุณเองสำหรับการส่องสว่างในห้องแต่ละห้อง!
แถบ rgb-led-strip ส่วนใหญ่ถูกควบคุมโดยรีโมทคอนโทรลอินฟราเรด หากต้องการปิดหรือเปิดหรือเปลี่ยนสี คุณต้องอยู่ข้างหน้าเครื่องรับ นี่มันน่าเบื่อและไม่ฉลาดจริงๆ เพื่อควบคุมแสงในแบบที่เย็นกว่า ฉันได้พัฒนาบอร์ดควบคุม rc เพื่อกำหนดสีที่ถูกต้องของแถบ รหัส rc สามารถส่งจากราสเบอร์รี่ pi นึกถึง IFTTT นั่นฉลาดกว่ารีโมตคอนโทรลมาก
สิ่งที่คุณต้องการ:
- rgb-led-strip ตัวอย่างเช่นสิ่งนี้จะทำเคล็ดลับ
- ATTiny85
- เครื่องรับ 433 MHz (และผู้ส่งเสริม)
- ตัวควบคุม 5v (L7805)
- ทรานซิสเตอร์ NPN 3 ตัว ฉันใช้ดาร์ลิงตันอาเรย์
- ตัวเก็บประจุ 1 µF
- ตัวเก็บประจุ 10 µF
- แหล่งจ่ายไฟ 12v
- แผ่นวงจรปิด
- หลายสาย
- โปรแกรมเมอร์ ATTiny, arduino-mega หรือ arduino-uno
- เลือกราสเบอร์รี่ pi เพื่อส่งสัญญาณ
ขั้นตอนที่ 1: ประสานคณะละครสัตว์
หากคุณมีส่วนประกอบทั้งหมด คุณต้องบัดกรีแผงวงจร
แถบนำต้องการ 12v, ATTiny และตัวรับสัญญาณ rc ต้องการ 5v ด้วยเหตุนี้ circuid จึงได้รับ 12v
สำหรับ ATTiny และตัวรับ rc ฉันใช้ตัวควบคุม 5v วงจรของฉันได้รับแรงบันดาลใจจาก soorj619
บอร์ดจะเปลี่ยนสีแดงสีเขียวและสีน้ำเงินสามสีเป็นแถบนำในตารางเวลา 3 มิลลิวินาที แต่ละสีในเปอร์เซ็นต์ที่เหมาะสมเพื่อให้ได้สีที่ระบุ เนื่องจากตารางเวลามีระยะเวลา 3 มิลลิวินาที คุณจึงไม่เห็นการสลับสามสีเป็นสีแดง เขียว และน้ำเงิน แต่คุณเห็นเพียงสีที่ถูกต้อง (เช่น สีเหลืองผสมด้วยสีแดงและสีเขียว) ในกล่องเครื่องมือของฉันมีดาร์ลิงตันอาเรย์ เพราะฉันใช้อาร์เรย์นี้เพื่อเปลี่ยนสี คุณสามารถใช้ทรานซิสเตอร์ NPN ใดก็ได้
อย่าลืมเสาอากาศ 17 ซม. ที่ตัวรับสัญญาณ
ขั้นตอนที่ 2: แฟลช ATTiny
ตอนนี้ได้เวลาแฟลช ATTiny ด้วย Arduino-sketch ที่ถูกต้อง
ในการแฟลชไมโครคอนโทรลเลอร์ ฉันใช้ Arduino ide ฉันไม่มีโปรแกรมเมอร์ ดังนั้นฉันจึงใช้ Arduino-mega คุณสามารถใช้ arduino-uno หรือ arduino-mega เพื่อแฟลช ATTiny ที่อธิบายไว้ที่นี่หรือที่นี่
ภาพร่างใช้ไลบรารีสวิตช์ rc เพื่อรับสัญญาณ คุณสามารถดาวน์โหลดได้ที่นี่
ไลบรารีสวิตช์ rc ถูกเขียนขึ้นสำหรับบอร์ด Arduino ดังนั้นจึงใช้กิจวัตรบางอย่างที่ไม่มีอยู่ในไมโครคอนโทรลเลอร์ ATTiny เนื่องจาก ATTiny บรรทัดที่ 153 ถึง 165 เริ่มต้นการขัดจังหวะด้วยวิธีที่รุนแรงมาก คุณต้องสร้างวิธีการ 'จัดการInterrupt' จาก 'ส่วนตัว' เป็น 'สาธารณะ' ในไลบรารีสวิตช์ rc
ขั้นตอนที่ 3: ส่งรหัสจาก Raspberry Pi. ของคุณ
ตอนนี้ได้เวลาเปิดไฟแล้ว
ในการส่งสัญญาณ คุณต้องเชื่อมต่อ raperry pi กับผู้ส่ง rc เว็บไซต์หลายแห่งสาธิตการส่งรหัส rc ด้วย raspberry pi ตัวอย่างเช่น ที่นี่ ที่นี่ และ ที่นี่ รูปภาพแสดงแถบไฟ LED ด้านหลังหน้าจอทีวี แต่นี่เป็นภาพตัดต่อจากสามภาพที่มีสีเดียว
โปรแกรม c ขั้นต่ำในการส่งรหัสสามารถมีลักษณะดังนี้:
#รวม "RCSwitch.h" #include
#รวม
int main (int argc, ถ่าน * argv ) {
รหัส PIN = 0;
ข้อความ int = atoi(argv[1]);
ถ้า (wiringPiSetup () == 1) คืนค่า 1;
printf("กำลังส่งข้อความ[%d]\n", ข้อความ);
RCSwitch mySwitch = RCSwitch ();
mySwitch.enableTransmit (PIN);
mySwitch.send (ข้อความ, 32);
}
สีถูกเข้ารหัสด้วยค่าจำนวนเต็ม 4 ไบต์ ไบต์ซ้ายสุดต้องเท่ากับ 10 ดู 178 ในแบบร่าง สามไบต์ถัดไปมีความเข้มของสีสำหรับแต่ละสี (แดง เขียว และน้ำเงิน)
หากต้องการตั้งค่าแสงสีเขียวที่มีความเข้ม 66% ให้ป้อนคำสั่ง: sudo sendInt 167815680 โดยที่ sendInt เป็นโปรแกรมที่คอมไพล์ด้านบน
ปิดไฟ LED ด้วยคำสั่ง: sudo sendInt 167772160
ลองนึกภาพความเป็นไปได้ด้วย IFTTT เช่น ไฟสีฟ้า 3 วินาทีสำหรับอีเมล สีเขียวสำหรับการแจ้งเตือนของ Google ปฏิทิน ฉลาดกว่าการกดรีโมตคอนโทรล ir ที่หน้าเครื่องรับเล็กน้อย;)
ขั้นตอนที่ 4: สร้างสิ่งที่แนบมา
สร้างกล่องพิมพ์ 3 มิติ
การออกแบบมีรูสำหรับสายไฟและช่องว่างด้านบนเพื่อเชื่อมต่อแถบไฟ LED
ฉันใช้ Fusion 360 เพื่อออกแบบกล่องหุ้มและส่งออกผลลัพธ์เป็นไฟล์.step
Netfabb อนุญาตให้เทสเซลเลชันและการเตรียมงานบิลด์ ฉันแนบ 3mf ที่มีด้านบนและด้านล่างของกล่องหุ้ม Netfabb ยังรองรับการสร้าง gcode
ในที่สุดฉันก็ใช้ prusa i3 mk2 เพื่อพิมพ์กล่องหุ้ม