สารบัญ:
- ขั้นตอนที่ 1: รายการรายการ
- ขั้นตอนที่ 2: เตรียม Raspberry Pi. ของคุณ
- ขั้นตอนที่ 3: ประกอบเซิร์ฟเวอร์
- ขั้นตอนที่ 4: ตั้งค่าเครือข่าย
- ขั้นตอนที่ 5: ตั้งค่าที่อยู่ IP แบบคงที่
- ขั้นตอนที่ 6: ติดตั้ง LIRC
- ขั้นตอนที่ 7: กำหนดค่า LIRC
- ขั้นตอนที่ 8: ทดสอบตัวรับ
- ขั้นตอนที่ 9: เพิ่มรีโมท - วิธีที่ 1
- ขั้นตอนที่ 10: เพิ่มรีโมท - วิธีที่ 2
- ขั้นตอนที่ 11: ติดตั้งโปรแกรมเซิร์ฟเวอร์ AndyMOTE
- ขั้นตอนที่ 12: และสุดท้าย…
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ฉันต้องการรีโมตคอนโทรลสากลสำหรับ mancave ของฉัน และคิดว่าฉันน่าจะทำได้ด้วยแอปบนโทรศัพท์มือถือของฉัน (เพื่อให้มีอินเทอร์เฟซผู้ใช้) และ Raspberry PI เพื่อให้ 'Blaster' ของอินฟาเรด หลังจากการสอบสวนเล็กน้อย ฉันค้นพบโปรเจ็กต์ LIRC ซึ่งดูเหมาะกับ 'Blaster' ฉันเขียนแอพ Android ของตัวเอง (AndyMOTE) และโปรแกรม 'เซิร์ฟเวอร์' ขนาดเล็กเพื่อให้อินเทอร์เฟซระหว่างทั้งสอง
คำแนะนำนี้แสดงวิธีสร้างเซิร์ฟเวอร์
คำแนะนำที่ให้ไว้ที่นี่ควรใช้ได้กับ Raspian Jessie แต่ใช้ไม่ได้กับ Raspian Buster และ ณ จุดนี้ฉันเข้าใจว่า Raspian ถูกแทนที่ด้วย Raspberry Pi OS แล้ว ฉันมีชุดคำแนะนำที่อัปเดตบนเว็บไซต์ของฉันแล้ว (ดูลิงก์ ด้านล่าง) ที่ใช้งานได้กับ Raspian Stretch-Lite หรือ Raspian Buster-Lite
ขั้นตอนที่ 1: รายการรายการ
- RaspberryPi Zero WH
- Energenie ENER314-IR อินฟาเรดคอนโทรลเลอร์
- การ์ด Micro SD (Class 10) (16GB)
- Raspberry Pi พาวเวอร์ซัพพลาย
- (ไม่บังคับ) เคส (เช่น Pibow Zero W)
- (อุปกรณ์เสริม) ตัวขยายการควบคุมระยะไกลอินฟราเรด* (ตัวรับ 1 ตัว; เครื่องส่งสัญญาณ 4 ตัว)
คุณจะต้องใช้จอภาพ คีย์บอร์ด และสายเคเบิลที่สามารถเชื่อมต่อรายการเหล่านี้กับ Raspberry Pi. ของคุณได้
ขั้นตอนที่ 2: เตรียม Raspberry Pi. ของคุณ
ดาวน์โหลด Raspian Lite จากที่นี่ จากนั้นติดตั้งลงในการ์ด SD ของคุณ (คำแนะนำที่นี่)
เมื่อติดตั้ง Raspian Lite บนการ์ด SD แล้ว และก่อนที่คุณจะย้ายการ์ดไปยัง Raspberry Pi ติดตั้งการ์ดบนพีซีของคุณ สร้างไฟล์ว่าง /boot/ssh (เปิดใช้งาน SHH บนเซิร์ฟเวอร์) และทำการแก้ไขไฟล์ /boot/config.txt ต่อไปนี้
# ตั้งค่า HDMI เป็นเอาต์พุตปกติhdmi_drive=2# ตั้งค่า HDMI เป็นโหมด DMT (เหมาะสำหรับจอภาพ) hdmi_group=2# ตั้งค่าความละเอียดเป็น 800x600 @ 60hzhdmi_mode=9dtoverlay=lirc-rpi, gpio_in_pin=18, gpio_out_pin=17
(ดูที่นี่สำหรับคำแนะนำเกี่ยวกับการตั้งค่าวิดีโอ)
ขั้นตอนที่ 3: ประกอบเซิร์ฟเวอร์
ขั้นแรก ใส่การ์ด SD ที่เตรียมไว้ล่วงหน้าลงใน Raspberry Pi ใส่ Raspberry Pi ลงในเคส ฉันมีปัญหาที่ตัวควบคุมอินฟาเรด ENER314-IR แทรกแซงเคส Pibow ดังนั้นจึงไม่ได้ใช้สองชิ้น
จากนั้นเสียบ Energenie ENER314-IR Infra Red Controller เข้ากับ Raspberry Pi (ดูรูป)
จากนั้นเชื่อมต่อ Raspberry Pi กับคีย์บอร์ด (โดยใช้ขั้วต่อ USB) และจอภาพ (โดยใช้ขั้วต่อ HDMI… อาจจำเป็นต้องใช้อะแดปเตอร์)
สุดท้าย เปิดเครื่องและรอให้เครื่องบู๊ต
ขั้นตอนที่ 4: ตั้งค่าเครือข่าย
ขั้นแรก เปิดไฟล์การกำหนดค่า wpa-supplicant โดยใช้โปรแกรมแก้ไขที่คุณชื่นชอบ (เช่น nano)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ไปที่ส่วนท้ายของไฟล์และเพิ่มเครือข่ายของคุณ (เช่น)
เครือข่าย={ ssid="YOUR_SSID" psk="YOUR_KEY" Priority="1" id_str="YOUR_SSID_NAME"}
แทนที่ YOUR_SSID, YOUR_KEY และ YOUR_SSID_NAME ตามความเหมาะสมกับเครือข่ายของคุณ
บันทึกไฟล์ รีสตาร์ทผู้ร้องขอ WPA และรีบูต
$ wpa_cli -i wlan0 กำหนดค่าใหม่ $ sudo reboot
ขั้นตอนที่ 5: ตั้งค่าที่อยู่ IP แบบคงที่
ขอแนะนำให้เซิร์ฟเวอร์ของคุณมีที่อยู่ IP คงที่ คุณอาจสามารถทำได้โดยการกำหนดค่าเซิร์ฟเวอร์ DHCP ของคุณอย่างเหมาะสม หรือหากต้องการตั้งค่าอินเทอร์เฟซ wlan0 เป็นที่อยู่คงที่บน Raspberry Pi ให้แก้ไขไฟล์ /etc/dhcpcd.conf และรวมบรรทัด
# ตัวอย่างการกำหนดค่า IP แบบคงที่: อินเทอร์เฟซ wlan0static ip_address = 192.168.1.116/24 เราเตอร์แบบคงที่ = 192.168.1.1 โดเมนคงที่_name_servers = 192.168.1.1 8.8.8.8
เปลี่ยน 192.168.1.1 เป็นที่อยู่จริงของเราเตอร์ของคุณและ 192.168.1.116 เป็นที่อยู่คงที่จริงที่คุณต้องการสำหรับแอปพลิเคชันของคุณ
* คุณอาจต้องการเรียกใช้ยูทิลิตี้ raspi-config และทำการเปลี่ยนแปลงการกำหนดค่า ณ จุดนี้
รีบูตเมื่อเสร็จสิ้น
ขั้นตอนที่ 6: ติดตั้ง LIRC
ติดตั้ง LIRC โดยใช้คำสั่ง
$ sudo apt-get ติดตั้ง lirc
แก้ไขไฟล์ /etc/modules; เช่น:
$ sudo nano /etc/modules
และเพิ่มบรรทัด:
lirc_devlirc_rpi gpio_in_pin=18 gpio_out_pin=17
บันทึกไฟล์และรีบูต
$ sudo รีบูต
ขั้นตอนที่ 7: กำหนดค่า LIRC
แก้ไขไฟล์ /etc/lirc/hardware.conf เช่น:
$ sudo nano /etc/lirc/hardware.conf
และทำให้มีลักษณะดังนี้:
####################################################### ####### /etc/lirc/hardware.conf## อาร์กิวเมนต์ซึ่งจะถูกใช้เมื่อเปิด lircdLIRCD_ARGS="--uinput --listen"## อย่าเริ่ม lircmd แม้ว่าจะมีการกำหนดค่าที่ดี file# START_LIRCMD=false## อย่าเริ่ม irexec แม้ว่าจะมีไฟล์ปรับแต่งที่ดีอยู่# START_IREXEC=false## พยายามโหลดโมดูลเคอร์เนลที่เหมาะสมLOAD_MODULES=true## เรียกใช้ "lircd --driver=help" สำหรับ a รายการไดรเวอร์ที่รองรับ DRIVER="default"## ปกติ /dev/lirc0 เป็นการตั้งค่าที่ถูกต้องสำหรับระบบที่ใช้ udevDEVICE="/dev/lirc0"MODULES="lirc_rpi"## LIRCMD_CONF=""แก้ไขไฟล์ /etc/lirc/lirc_options.conf และแก้ไขบรรทัดด้านล่าง:driver = defaultdevice = /dev/lirc0
บันทึกไฟล์และรีสตาร์ท lircd
$ sudo systemctl รีสตาร์ท lircd
ขั้นตอนที่ 8: ทดสอบตัวรับ
ป้อนลำดับของคำสั่งต่อไปนี้เพื่อหยุด LIRC Daemon และทดสอบตัวรับ
$ sudo systemctl หยุด lircd$ sudo mode2
โปรแกรม mode2 จะส่งออกอัตราส่วนพื้นที่ทำเครื่องหมายของสัญญาณ IR ไปยังคอนโซล ชี้รีโมทคอนโทรลไปที่ตัวรับสัญญาณ IR แล้วกดปุ่มบางปุ่ม คุณควรเห็นสิ่งนี้:
พื้นที่ 16300pulse 95space 28794pulse 80space 19395pulse 83space 402351
เมื่อคุณทำเสร็จแล้ว ให้กด ctl-c และรีสตาร์ท LIRC Daemon โดยใช้คำสั่งต่อไปนี้
$ sudo systemctl เริ่ม lircd
ขั้นตอนที่ 9: เพิ่มรีโมท - วิธีที่ 1
LIRC ใช้ไฟล์คอนฟิกูเรชันที่มีข้อมูลที่เกี่ยวข้องกับรีโมตคอนโทรลแต่ละตัวที่ LIRC จำลองได้ คุณต้องสร้างหรือจัดเตรียมไฟล์คอนฟิกูเรชันเหล่านี้ เพื่อให้ระบบย่อย LIRC ทำงานได้ตามต้องการ
สำคัญ
คุณต้องจัดเตรียมไฟล์กำหนดค่าแต่ละรายการสำหรับรีโมตแต่ละตัวที่จะจำลอง ไฟล์ปรับแต่งต้องเก็บไว้ในไดเร็กทอรี /etc/lirc/lircd.conf.d การเลือกชื่อคีย์เป็นสิ่งสำคัญสำหรับประสบการณ์ AndyMOTE ที่ดีที่สุด เมื่อเลือกชื่อสำหรับคีย์ของคุณ โปรดปฏิบัติตามหลักเกณฑ์ที่นี่ ไฟล์ Config สามารถดาวน์โหลดได้จากที่นี่ แต่ระวังว่าหากคุณใช้งาน ไฟล์เหล่านั้นจะต้องมีการกำหนดค่าระยะไกลเพียงรายการเดียว (ไฟล์กำหนดค่าเป็นไฟล์ข้อความธรรมดาและสามารถแก้ไขได้ง่ายหากจำเป็น
วิธีที่ 1 ต้องใช้รีโมทคอนโทรลเดิมโดยใช้คำสั่งต่อไปนี้:
$ sudo systemctl หยุด lircd$ sudo irrecord -n ~/FILENAME.conf
$ sudo irrecord -f -n ~/FILENAME.conf
แทนที่ FILENAME ด้วยชื่อที่สื่อความหมายสำหรับรีโมทคอนโทรลที่คุณกำลังกำหนดค่า คำสั่งหลังสร้างไฟล์ 'ดิบ' และบางครั้งอาจจำเป็น ทั้งนี้ขึ้นอยู่กับลักษณะของรีโมตคอนโทรลที่คุณใช้ สวิตช์ -n ช่วยให้คุณใช้ชื่อคีย์ใดก็ได้ที่คุณต้องการ (แทนที่จะจำกัดอยู่ในรายการเนมสเปซ LIRC)
อย่าลืมรีสตาร์ท lircd และรีบูตเมื่อคุณทำเสร็จแล้ว
$ sudo systemctl start lircd$ sudo reboot
ขั้นตอนที่ 10: เพิ่มรีโมท - วิธีที่ 2
วิธีที่ 2 ไม่ต้องการ remoteGlobal-cache ดั้งเดิมรักษาฐานข้อมูลบนคลาวด์ที่มีรหัส IR มากกว่า 200,000 รายการ ทุกคนสามารถลงทะเบียนและดาวน์โหลดชุดโค้ดได้สูงสุด 5 ชุดต่อวัน ชุดโค้ดเหล่านี้สามารถแปลงเป็นไฟล์ LIRC conf ในรูปแบบที่เป็นมิตรต่อ AndyMOTE โดยใช้แอปพลิเคชัน gcConvert ที่อธิบายไว้ที่นี่
ขั้นตอนที่ 11: ติดตั้งโปรแกรมเซิร์ฟเวอร์ AndyMOTE
ติดตั้ง Libraries liblirc และ libboost ตามที่อธิบายไว้ด้านล่าง:
$ sudo apt-get update$ sudo apt-get ติดตั้ง liblirc-dev libboost-all-dev
ถัดไป ติดตั้ง git ไปที่โฮมไดเร็กตอรี่ของคุณ & โคลนที่เก็บ andymoteserver
$ sudo apt ติดตั้ง git$ cd ~$ git clone
แล้วรวบรวมต้นทาง
$ cd andymoteserver$ make
ย้ายไฟล์ผลลัพธ์ไปยังตำแหน่งที่สะดวก เช่น:
$ sudo mkdir -p /opt/andymoteserver$ sudo mv dist/Debug/GNU-Linux/andymote /opt/andymoteserver/
ทำความสะอาด
$ cd ~$ rm -Rf andymoteserver
สุดท้าย ในการรัน AndyMOTE Server เป็นบริการ ให้สร้างไฟล์ /lib/systemd/system/andymote.service พร้อมเนื้อหาที่แสดงด้านล่าง:
[หน่วย]Description=เรียกใช้ AndyMOTE Server เป็นบริการ[Service]Type=simpleRemainAfterExit=falseRestart=alwaysRestartSec=30ExecStop=/bin/trueExecStart=/opt/andymoteserver/andymote[Install]WantedBy=multi-user.target
เปิดใช้งานและเริ่มบริการ
$ sudo systemctl เปิดใช้งาน andymote$ sudo systemctl start andymote
ขั้นตอนที่ 12: และสุดท้าย…
ภาพด้านบนแสดงเซิร์ฟเวอร์ของฉันในตำแหน่งสุดท้าย (ซ้าย) อุปกรณ์ทางด้านขวาของภาพถ่ายคือ Infrared Remote Control Extender ซึ่งรับสัญญาณ IR จากเซิร์ฟเวอร์และส่งสัญญาณอีกครั้งผ่านตัวส่งสัญญาณ IR 4 ตัว (ไม่แสดง) สิ่งเหล่านี้ติดตั้งอยู่ในอุปกรณ์สื่อของฉัน (ทีวี แอมพลิฟายเออร์ ฯลฯ)
ฉันหวังว่าคุณจะสนุก!