สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในตอนที่ 1 ฉันสาธิตวิธีประกอบ RPi + VS1838b และกำหนดค่าโมดูล LIRC ของ Raspbian เพื่อรับคำสั่ง IR จากรีโมท IR ปัญหาฮาร์ดแวร์และการตั้งค่า LIRC ทั้งหมดจะกล่าวถึงในตอนที่ 1 ส่วนที่ 2 จะสาธิตวิธีเชื่อมต่อฮาร์ดแวร์ + โมดูล LIRC ที่เราตั้งค่าในส่วนที่ 1 ด้วย python
รีโมท [ตัวรับสัญญาณ IR + RPI] LIRC Pythondisplay (หรือส่ง)
เสบียง
ไม่มี
ขั้นตอนที่ 1: ซ่อน Devinput.lircd.conf
ไฟล์คอนฟิกูเรชันระยะไกลของคุณจะถูกวางไว้ในไดเร็กทอรี /etc/lirc/lircd.conf.d LIRC จะค้นหาไฟล์ใดๆ ในไดเร็กทอรีนี้ ตราบใดที่มีนามสกุล.conf (เช่น: JVC.lircd.conf) เราจะไม่ใช้ไฟล์ devinput.lircd.conf ดังนั้นเราจะซ่อนมันโดยเปลี่ยนนามสกุลดังต่อไปนี้โดยเปลี่ยนชื่อ devinput.lircd.conf เป็น devinput.lircd.conf.copy
$ sudo mv /etc/lirc/lircd.conf.d/devinput.lircd.conf /etc/lirc/lircd.conf.d/devinput.lircd.conf.copy
ขั้นตอนที่ 2: ดาวน์โหลดไฟล์.conf สำหรับรีโมทของคุณ
วิธีที่ง่ายที่สุดในการรับไฟล์.conf ระยะไกลคือการดาวน์โหลดจากไลบรารีขนาดใหญ่ที่ lirc.sourceforge.net แม้ว่าโมเดลระยะไกลเฉพาะของคุณจะไม่อยู่ในรายการ แต่ก็มีความเป็นไปได้สูงที่โมเดลอื่นจากผู้ผลิตรายเดียวกันจะทำงานได้ดี เพียงค้นหาผู้ผลิตรีโมทของคุณและคลิกที่รุ่นใกล้เคียง หากคุณไม่แน่ใจว่ารุ่นใดอยู่ใกล้ คุณสามารถดูเนื้อหาของแต่ละรุ่นและค้นหารุ่นที่ใกล้เคียงของคุณได้
วิธีที่ยากในการรับไฟล์.conf คือการสร้างไฟล์ของคุณเองโดยใช้เครื่องมือ irrecord ในตัว แต่ฉันพยายามสร้างไฟล์โดยใช้ยูทิลิตี้นี้ไม่สำเร็จแม้ว่าจะมีความพยายามอย่างมากก็ตาม มีอีกหลายคนที่มีปัญหาคล้ายกันในการใช้ irrecord และฉันขอแนะนำเส้นทางที่ง่ายในการดาวน์โหลดไฟล์.conf จาก lirc.sourceforge.net
ไฟล์คอนฟิกูเรชันระยะไกลของคุณจะถูกวางไว้ในไดเร็กทอรี /etc/lirc/lircd.conf.d LIRC จะค้นหาไฟล์ใดๆ ในไดเร็กทอรีนี้ ตราบใดที่มีนามสกุล.conf (เช่น: JVC.lircd.conf)
ขั้นตอนที่ 3: รหัส Python
นี่คือรหัสบางส่วนที่จะทดสอบ
จาก lirc นำเข้า RawConnection
def ProcessIRRemote():
#get IR command #keypress format = (hexcode, repeat_num, command_key, remote_id) ลอง: keypress = conn.readline(.0001) ยกเว้น: if (keypress != "" and keypress != None): data = keypress.split() ลำดับ = data[1] command = data[2] #ignore คำสั่งซ้ำถ้า (sequence != "00"): return print(command)
#define Global
conn = RawConnection ()
พิมพ์ ("เริ่มต้นขึ้น … ")
ในขณะที่จริง:
กระบวนการ IRRemote()