Captando sinais Infravermelhos (IR) com RTL

Neste artigo será apresentado como utilizar o RTL para receber sinais de controle remoto infravermelho (IR), incluindo o controle fornecido com o equipamento RTL. O receptor infravermelho do RTL é surpreendentemente poderoso, ele foi capaz de captar sinais de todos os controles remotos que testamos, retornando os dados brutos (raw) para decodificação.

É possível criar um replicador ou emissor de infravermelho bastante simples, o mais complexo é encontrar o que deve ser transmitido. Vamos tratar aqui de leitura raw, ou seja do que os controles IR enviam. Neste momento não será demonstrado como replicar ou como construir um emissor IR.

O RTL-SDR é um receptor de TV Digital via conexão USB para Computador, que pode ser utilizado também como Rádio para captar Ondas Eletromagnéticas.
Geralmente estes receptores contém uma antena e um controle remoto infravermelho (IR), que é utilizado para ligar/desligar, mudar de canais, configurações de volume, etc.
Isso quer dizer que o equipamento contém um receptor de Infravermelho (IR), além do receptor de rádio frequência da TV digital.

dongle-rtl

(Receptor RTL)

Receptor-IR

(Receptor Infravermelho)

Espectro de frequências

O RTL que utilizamos (Realtek RTL2838 DBV-T) pode sintonizar dentro de 24 MHz – 1.7 GHz, ou seja 2.4 x 10⁷ Hz até 1.7×10⁹ Hz.

Abaixo o espectro de frequência completo:

espectro-frequencia

(Espectro de frequência)

Em frequências mais altas, ou comprimentos de onda mais curtos, temos a luz infravermelha visível, ultravioleta, entre outras.

A radiação infravermelha é uma radiação eletromagnética cujo comprimento de onda é maior do que o da luz visível, e por consequência não é visível para os seres humanos. O nome significa “abaixo do vermelho” (do latim infra, “abaixo”). Isto se deve ao fato de a cor vermelha possuir a menor frequência do espectro de luz visível e o infravermelho possuir uma frequência logo abaixo da dele.
O comprimento de onda do infravermelho possui tamanho aproximadamente de 750 nm a 1mm. Estes comprimentos de onda estão muito além da faixa de frequência de sintonizador de a RTL-SDR ou qualquer SDR comum.
O sensor infravermelho, que é um componente separado do adaptador RTL-SDR, pode receber esses sinais.

RTL_IR

Existe uma ferramenta, que faz parte de uma lib específica, chamada librtlsdr, a qual contém alguns códigos para trabalhar com os receptores do dispositivo RTL. A princípio estas ferramentas foram criadas para trabalho com o receptor Rafael Micro R820T (ou similares, que recebem 24 MHz – 1.7 GHz). Recentemente foi incorporado ao repositório arquivos que possibilitam a captação de infravermelho do dispositivo (rlt_ir).

Comandos para instalação

Abaixo um breve tutorial para realizar a instalação:

git clone https://github.com/librtlsdr/librtlsdr.git
cd librtlsdr
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

Para que usuários normais (sem privilégios de root) possam utilizar, deve ser executado também a instrução abaixo:

cmake ../ -DINSTALL_UDEV_RULES=ON

(Instalação concluída)

Utilização

Após a instalação, tudo estará preparado para receber as informações. Para deixar o dispositivo em modo “ouvinte” deve ser executado o seguinte comando:

rtl_ir

Executando o comando rtl_ir, deverá aparecer a seguinte mensagem:

(Execução RTL_IR)

Isso indica que o processo funcionou e o dispositivo está pronto para receber os dados.
Para testar, basta apontar um controle infravermelho (televisão, TV a cabo, etc) e apertar as teclas.
Os bits enviados pelo controle infravermelho, serão apresentados na tela, conforme imagem abaixo:

(Sequência de Bits recebidos por Infravermelho)

Conclusão

Como pode ser visto acima, é possível obter facilmente informações dos controles infravermelho, ou seja é apenas uma atividade introdutória ao assunto, podendo ser explorada muito mais a fundo, como por exemplo decodificação e replicação de sinais, entre outras coisas.

Tags : , , , , ,

2 thoughts on “Captando sinais Infravermelhos (IR) com RTL”

  1. Muito bacana o tutorial, mas eu queria adicionar duas ressalvas que acabaram me afetando e não achei em lugar nenhum:

    1. Para os usuários de Arch Linux, o ldconfig pode não ter o comportamento esperado, pois nativamente o Arch não dá importância à /usr/local/lib, onde é posta a shared library do driver, especialmente no caso onde não a lista no /etc/ld.so.conf.d. Isso vai resultar em problemas do tipo “Could not find the shared library librtlsdr.so.0”, uma vez que o ldconfig no final não configurou essa lib.

    A solução é só criar um arquivo /etc/ld.so.conf.d/rtl-sdr.conf com o diretório /usr/local/lib como conteúdo antes de começar a instalação.

    2. Se uma versão diferente da lib já estava instalada, possivelmente pelo site original, pode ocorrer um
    “rtl_ir: symbol lookup error: rtl_ir: undefined symbol: rtlsdr_ir_query”. A solução é desinstalar e instalar essa considerando o item 1.

Leave a Reply