Оглавление:

Сервер AndyMOTE: 12 шагов
Сервер AndyMOTE: 12 шагов

Видео: Сервер AndyMOTE: 12 шагов

Видео: Сервер AndyMOTE: 12 шагов
Видео: Firestick Apps Not Working - Fix it Now 2024, Июнь
Anonim
Сервер AndyMOTE
Сервер AndyMOTE

Мне нужен был универсальный пульт дистанционного управления для моей пещеры, и я решил, что смогу сделать это с помощью приложения на моем мобильном телефоне (для обеспечения пользовательского интерфейса) и Raspberry PI для обеспечения Infra Red «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 (класс 10) (16 ГБ)
  • Блок питания 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 к Raspberry Pi (см. Рисунок).

Затем подключите Raspberry Pi к клавиатуре (с помощью разъема USB) и монитору (с помощью разъема HDMI… Могут потребоваться адаптеры).

Наконец, включите питание и дождитесь загрузки устройства.

Шаг 4: Настройка сети

Во-первых, откройте файл конфигурации wpa-supplicant с помощью вашего любимого редактора (например, nano).

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Перейдите в конец файла и добавьте свою сеть (например).

network = {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-конфигурации: interface wlan0static ip_address = 192.168.1.116 / 24static router = 192.168.1.1static domain_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 install lirc

Отредактируйте файл / etc / modules; например:

$ sudo nano / и т.д. / модули

и добавьте строки:

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" для список поддерживаемых драйверов. DRIVER = "default" ## обычно / dev / lirc0 - правильная настройка для систем, использующих udevDEVICE = "/ dev / lirc0" MODULES = "lirc_rpi" ## Файлы конфигурации по умолчанию для вашего оборудования, если они есть LIRCD_CONF = "" LIRCMD_CONF = "" Отредактируйте файл /etc/lirc/lirc_options.conf и измените строки, как показано ниже: driver = defaultdevice = / dev / lirc0

Сохраните файл и перезапустите lircd.

$ sudo systemctl перезапустить lircd

Шаг 8: Тестирование приемника

Введите следующую последовательность команд, чтобы остановить демон LIRC и протестировать приемник.

$ sudo systemctl stop lircd $ sudo mode2

Программа mode2 выводит на консоль отношение метки к пространству ИК-сигнала. Направьте пульт дистанционного управления на ИК-приемник и нажмите несколько кнопок. Вы должны увидеть что-то вроде этого:

пространство 16300 импульс 95 пространство 28794 импульс 80 пространство 19395 импульс 83 пространство 402351

когда вы закончите, нажмите ctl-c и перезапустите LIRC Daemon, используя следующую команду.

$ sudo systemctl start lircd

Шаг 9: добавление пультов - метод 1

LIRC использует файлы конфигурации, которые содержат данные, относящиеся к каждому пульту дистанционного управления, которые могут быть эмулированы LIRC. Вы должны сгенерировать или иным образом предоставить эти файлы конфигурации, чтобы подсистема LIRC работала должным образом.

Важный

Вы должны предоставить индивидуальный файл конфигурации для каждого эмулируемого пульта ДУ. Файлы конфигурации должны храниться в каталоге /etc/lirc/lircd.conf.d. Выбор имени ключа важен для наилучшего взаимодействия с AndyMOTE, при выборе имен для ключей следуйте приведенным здесь инструкциям. Файлы конфигурации также можно загрузить отсюда, но имейте в виду, что если вы их используете, они должны содержать только одну удаленную конфигурацию. (Файлы конфигурации представляют собой простые текстовые файлы, и при необходимости их можно легко редактировать.

Для метода 1 требуется оригинальный пульт дистанционного управления с использованием следующих команд:

$ sudo systemctl stop lircd $ sudo irrecord -n ~ / FILENAME.conf

$ sudo irrecord -f -n ~ / ИМЯ ФАЙЛА.conf

Замените FILENAME некоторым описательным именем настраиваемого пульта дистанционного управления. Последняя команда создает «необработанный» файл, который иногда требуется в зависимости от характеристик используемого вами пульта дистанционного управления. Ключ -n позволяет вам использовать любое имя ключа, которое вам нравится (а не ограничиваться списком пространств имен LIRC).

Не забудьте перезапустить lircd и перезагрузиться, когда закончите.

$ sudo systemctl start lircd $ sudo reboot

Шаг 10: добавление пультов - метод 2

Метод 2 не требует, чтобы исходный remoteGlobal-cache поддерживал облачную базу данных, содержащую более 200 000 кодов IR. Любой желающий может зарегистрироваться и загрузить до 5 кодовых наборов в день. Эти кодовые наборы могут быть преобразованы в файлы LIRC conf удобным для AndyMOTE способом, используя приложение gcConvert, описанное здесь.

Шаг 11: Установите программу сервера AndyMOTE

Установите библиотеки liblirc и libboost, как описано ниже:

$ sudo apt-get update $ sudo apt-get install liblirc-dev libboost-all-dev

Затем установите git, перейдите в свой домашний каталог и клонируйте репозиторий andymoteserver.

$ sudo apt install 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 с содержимым, как показано ниже:

[Unit] Описание = запустить AndyMOTE Server как службу [Service] Type = simpleRemainAfterExit = falseRestart = alwaysRestartSec = 30ExecStop = / bin / trueExecStart = / opt / andymoteserver / andymote [Установить] WantedBy = multi-user.target

Включите и запустите службу

$ sudo systemctl enable andymote $ sudo systemctl start andymote

Шаг 12: И наконец…

И наконец…
И наконец…

На приведенном выше рисунке показан мой сервер в его окончательном положении (слева). Устройство справа на фотографии - это удлинитель инфракрасного пульта дистанционного управления, он принимает ИК-сигналы от сервера и повторно передает их через 4 ИК-передатчика (не показаны); они установлены на моих мультимедийных устройствах (телевизор, усилитель и т. д.).

Надеюсь вам нравится!

Рекомендуемые: