สารบัญ:

เซิร์ฟเวอร์ AndyMOTE: 12 ขั้นตอน
เซิร์ฟเวอร์ AndyMOTE: 12 ขั้นตอน

วีดีโอ: เซิร์ฟเวอร์ AndyMOTE: 12 ขั้นตอน

วีดีโอ: เซิร์ฟเวอร์ AndyMOTE: 12 ขั้นตอน
วีดีโอ: อยากสร้างระบบของตัวเอง เลือก Server แบบไหนให้เหมาะกับเราดีนะ !? 2024, มิถุนายน
Anonim
เซิร์ฟเวอร์ AndyMOTE
เซิร์ฟเวอร์ AndyMOTE

ฉันต้องการรีโมตคอนโทรลสากลสำหรับ 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 ตัว (ไม่แสดง) สิ่งเหล่านี้ติดตั้งอยู่ในอุปกรณ์สื่อของฉัน (ทีวี แอมพลิฟายเออร์ ฯลฯ)

ฉันหวังว่าคุณจะสนุก!

แนะนำ: