Índice:

AndyMOTE Server: 12 etapas
AndyMOTE Server: 12 etapas
Anonim
AndyMOTE Server
AndyMOTE Server

Eu queria um controle remoto universal para minha mancave e descobri que deveria ser capaz de fazer isso com um aplicativo no meu celular (para fornecer a interface do usuário) e um Raspberry PI para fornecer o Infra Red 'Blaster'. Depois de uma pequena investigação, descobri o projeto LIRC que parecia ideal para o 'Blaster'. Eu escrevi meu próprio Android App (AndyMOTE) e um pequeno programa de 'servidor' para fornecer uma interface entre os dois.

Este instrutível mostra como construir o servidor

As instruções fornecidas aqui devem funcionar com Raspian Jessie, elas não funcionam com Raspian Buster e, neste ponto, eu entendo que Raspian foi substituído pelo Raspberry Pi OS, eu tenho um conjunto de instruções atualizado em meu site (ver link abaixo) que funcionam com Raspian Stretch-Lite ou Raspian Buster-Lite

Etapa 1: Lista de Itens

  • RaspberryPi Zero WH
  • Controlador de infravermelho Energenie ENER314-IR
  • Cartão Micro SD (Classe 10) (16 GB)
  • Fonte de alimentação Raspberry Pi
  • (Opcional) Caixa (por exemplo: Pibow Zero W)
  • (Opcional) Extensor de controle remoto infravermelho * (1 receptor; 4 transmissores)

Você também precisará de um monitor, um teclado e cabos capazes de conectar esses itens ao seu Raspberry Pi

Etapa 2: prepare seu Raspberry Pi

Baixe Raspian Lite aqui e instale-o em seu cartão SD (instruções aqui).

Assim que o Raspian Lite estiver instalado no seu cartão SD e antes de mover o cartão para o Raspberry Pi; monte a placa no seu PC. Crie um arquivo vazio / boot / ssh (isso ativa SHH no servidor) e faça as seguintes edições no arquivo /boot/config.txt

# Definir HDMI para normal outputhdmi_drive = 2 # Definir HDMI para modo DMT (sutable para monitores) hdmi_group = 2 # Definir resolução para 800x600 @ 60hzhdmi_mode = 9dtoverlay = lirc-rpi, gpio_in_pin = 18, gpio_out_pin = 17

(Veja aqui para obter orientação sobre as configurações de vídeo)

Etapa 3: montar o servidor

Monte o servidor
Monte o servidor

Primeiro, insira o cartão SD pré-preparado no Raspberry Pi. Coloque o Raspberry Pi em sua caixa. Eu tive um problema que o controlador infravermelho ENER314-IR interferiu com o case Pibow, então não usei duas das peças.

Em seguida, conecte o controlador de infravermelho Energenie ENER314-IR ao Raspberry Pi (veja a imagem).

Em seguida, conecte o Raspberry Pi ao teclado (usando o conector USB) e ao monitor (usando o conector HDMI … Podem ser necessários adaptadores).

Finalmente, ligue e espere a unidade inicializar.

Etapa 4: Configurar rede

Primeiro, abra o arquivo de configuração wpa-supplicant usando seu editor favorito (por exemplo, nano).

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Vá para o final do arquivo e adicione sua rede (por exemplo).

rede = {ssid = "YOUR_SSID" psk = "YOUR_KEY" prioridade = "1" id_str = "YOUR_SSID_NAME"}

Substitua YOUR_SSID, YOUR_KEY e YOUR_SSID_NAME conforme apropriado para sua rede.

Salve o arquivo, reinicie o suplicante WPA e reinicie.

$ wpa_cli -i wlan0 reconfigurar $ sudo reinicializar

Etapa 5: configurar o endereço IP estático

É recomendado que seu servidor tenha um endereço IP fixo. Você pode conseguir isso configurando seu servidor DHCP apropriadamente ou, para definir a interface wlan0 para um endereço estático no Raspberry Pi, edite o arquivo /etc/dhcpcd.conf e inclua as linhas.

# Exemplo de configuração de IP estático: interface wlan0static ip_address = 192.168.1.116 / 24static roteadores = 192.168.1.1static domain_name_servers = 192.168.1.1 8.8.8.8

Altere 192.168.1.1 para o endereço real do seu roteador e 192.168.1.116 para o endereço estático real que você precisa para o seu aplicativo.

* Você pode desejar executar o utilitário raspi-config e fazer quaisquer alterações de configuração neste ponto.

Reinicie quando terminar.

Etapa 6: Instale o LIRC

Instale o LIRC usando o comando.

$ sudo apt-get install lirc

Edite o arquivo / etc / modules; por exemplo:

$ sudo nano / etc / modules

e adicione as linhas:

lirc_devlirc_rpi gpio_in_pin = 18 gpio_out_pin = 17

Salve o arquivo e reinicie.

$ sudo reboot

Etapa 7: Configurar LIRC

Edite o arquivo /etc/lirc/hardware.conf, por exemplo:

$ sudo nano /etc/lirc/hardware.conf

e fazer com que fique assim:

############################################################### ######## /etc/lirc/hardware.conf## Argumentos que serão usados ao iniciar lircdLIRCD_ARGS = "- uinput --listen" ## Não inicie o lircmd mesmo que pareça haver uma boa configuração arquivo # START_LIRCMD = false ## Não inicie o irexec, mesmo que pareça existir um bom arquivo de configuração. # START_IREXEC = false ## Tente carregar os módulos de kernel apropriadosLOAD_MODULES = true ## Execute "lircd --driver = help" para um lista de drivers suportados. DRIVER = "default" ## geralmente / dev / lirc0 é a configuração correta para sistemas usando udevDEVICE = "/ dev / lirc0" MODULES = "lirc_rpi" ## Arquivos de configuração padrão para seu hardware se anyLIRCD_CONF = "" LIRCMD_CONF = "" Edite o arquivo /etc/lirc/lirc_options.conf e modifique as linhas como abaixo: driver = defaultdevice = / dev / lirc0

Salve o arquivo e reinicie o lircd.

$ sudo systemctl restart lircd

Etapa 8: Teste do receptor

Insira a seguinte sequência de comandos para interromper o LIRC Daemon e testar o receptor.

$ sudo systemctl stop lircd $ sudo mode2

O programa mode2 produzirá a proporção de espaço de marcação de um sinal de infravermelho para o console. Aponte um controle remoto para o receptor IR e pressione alguns botões. Você deve ver algo assim:

space 16300pulse 95space 28794pulse 80space 19395pulse 83space 402351

quando terminar, pressione ctl-c e reinicie o LIRC Daemon usando o seguinte comando.

$ sudo systemctl start lircd

Etapa 9: Adicionar controles remotos - Método 1

O LIRC usa arquivos de configuração que contêm dados relacionados a cada controle remoto que pode ser emulado pelo LIRC. Você deve gerar ou fornecer esses arquivos de configuração para que o subsistema LIRC funcione conforme desejado.

Importante

Você deve fornecer um arquivo de configuração individual para cada remoto a ser emulado. Os arquivos de configuração devem ser armazenados no diretório /etc/lirc/lircd.conf.d. A escolha do nome da chave é importante para a melhor experiência do AndyMOTE. Ao selecionar nomes para as suas chaves, siga as orientações aqui. Os arquivos de configuração também podem ser baixados aqui, mas cuidado, se você usá-los, eles devem conter apenas uma configuração remota. (Os arquivos de configuração são arquivos de texto simples e podem ser facilmente editados, se necessário.

O método 1 requer o controle remoto original usando os seguintes comandos:

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

$ sudo irrecord -f -n ~ / FILENAME.conf

Substitua FILENAME por algum nome descritivo para o controle remoto que você está configurando. O último comando cria um arquivo 'bruto' e isso às vezes é necessário dependendo das características do controle remoto que você está usando. A opção -n permite que você use qualquer nome-chave que desejar (em vez de se limitar à lista de namespaces do LIRC).

Lembre-se de reiniciar o lircd e reiniciar quando terminar.

$ sudo systemctl start lircd $ sudo reboot

Etapa 10: Adicionar controles remotos - Método 2

O método 2 não exige que o remoteGlobal-cache original mantenha um banco de dados baseado em nuvem com mais de 200.000 Códigos IR. Qualquer pessoa pode se registrar e fazer download de até 5 conjuntos de códigos por dia. Esses conjuntos de códigos podem ser convertidos em arquivos LIRC conf, de uma forma amigável AndyMOTE, usando o aplicativo gcConvert descrito aqui.

Etapa 11: instalar o programa AndyMOTE Server

Instale as bibliotecas liblirc e libboost conforme descrito abaixo:

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

Em seguida, instale o git, vá para seu diretório inicial e clone o repositório andymoteserver

$ sudo apt install git $ cd ~ $ git clone

então compile o código-fonte

$ cd andymoteserver $ make

Mova o arquivo resultante para um local conveniente; por exemplo:

$ sudo mkdir -p / opt / andymoteserver $ sudo mv dist / Debug / GNU-Linux / andymote / opt / andymoteserver /

Arrumar

$ cd ~ $ rm -Rf andymoteserver

Finalmente, para executar o AndyMOTE Server como um serviço, crie o arquivo /lib/systemd/system/andymote.service com o conteúdo mostrado abaixo:

[Unit] Description = execute AndyMOTE Server como um serviço [Service] Type = simpleRemainAfterExit = falseRestart = alwaysRestartSec = 30ExecStop = / bin / trueExecStart = / opt / andymoteserver / andymote [Install] WantedBy = multi-user.target

Habilite e inicie o serviço

$ sudo systemctl enable andymote $ sudo systemctl start andymote

Etapa 12: E finalmente …

E finalmente…
E finalmente…

A imagem acima mostra meu servidor em sua posição final (esquerda). O dispositivo à direita da foto é o Infrared Remote Control Extender, que recebe os sinais IR do servidor e os retransmite através de 4 transmissores IR (não mostrados); eles são montados em meus dispositivos de mídia (TV, amplificador, etc.).

Espero que você goste!

Recomendado: