Ou melhor dizendo - Tentando desvendar Controle Remoto RF.

Depois que consegui fazer funcionar o Analisador Lógico com o Arduino, tenho feito várias verificações que sempre quis fazer. Fiz uma análise de controle remoto usando a Luz infravermelha e agora estou fazendo uma análise mais apurada de controle remoto que usa Rádio-frequência RF).

Tutorial - Analisador Lógico com Arduino:

http://labdegaragem.com/profiles/blogs/tutorial-analisador-l-gico-c...

Decodificando Controle Remoto infravermelho:

http://labdegaragem.com/profiles/blogs/6223006:BlogPost:315534

Já li em vários Blogs do Lab de Garagem, que muitos desejam usar o Controle Remoto RF com o Arduino.

Para a minha decepção e acredito que  muitos se decepcionarão também, os controles remotos atuais são criptografados.Por isso, alguns já tentaram usar e falharam.

Para entender melhor, fiz uma análise do Controle Remoto do fabricante Rossi. (aciona a abertura e fechamento de portões de garagem). Esse controle usa o chip HCS201 da Microchip:

http://ww1.microchip.com/downloads/en/DeviceDoc/41098c.pdf

Possui dois botões (chaves) S0 e S1. A frequência da portadora é de 433,92 MHz. Usa uma pilha de 12V.

O link da Rossi portões, com os circuitos de controle de portões:

http://www.rossiportoes.com.br/produtos/120-central-de-comando.html

Lendo o data sheet do chip HCS201 da Microchip, percebi que a tecnologia usada é bem segura.

Ele é bem versátil - cada chip tem um número de série programável de 28 bits e uma chave de criptografia de 64 bits (acredito que é impossível descobri-la) . Essas informações são gravadas pelo fabricante do controle remoto (no caso a Rossi).

Cada transmissão tem um código diferente, por isso, se o circuito receptor não souber a chave criptográfica do fabricante, não haverá rotina de decodificação que permita identificar qual código foi transmitido. Fiz vários testes e comprovei ! Pressionei várias vezes o botão S1 e a cada momento o trem de pulsos era de um formato diferente.

Seria possível usar o controle remoto, desde que usasse um chip programado pelo desenvolvedor.

Assim a rotina de decodificação usaria a chave gravada no chip.

Vejam que interessante as várias telas capturadas usando o Analisador Lógico com o Arduíno.

Minhas medições foram no saída TX OUT do chip HCS201. Alimentei o controle remoto com 5V para não danificar o Arduino.

Essa captura foi feita pressionando o botão S1 - taxa de amostragem de 5 KHz :

Vejam que tem 12 pulsos de preambulo para sincronização :

Taxa de amostragem de 10 Khz.

Os 12 pulsos de preambulo usam a largura de pulso de 780 us:

(taxa de amostragem 50 KHz) 

Para decodificar os bits 0 e bit 1 :

Esse é o formato do Bit 0 : (taxa de amostragem 50 KHz) 

E esse é o formato do Bit 1 : (taxa de amostragem 50 KHz) 

Exibições: 87365

Responder esta

Respostas a este tópico

Entendi José Gustavo, bom, pelo menos fico mais tranquilo porque fiquei uns 2 dias tentando várias modificações e não consegui. Como não entendi muito bem o conceito do código de RF então não sabia dessa informação.

Mas agradeço imensamente sua ajuda

Obrigado!

Boas notícias,colegas ! 

Um colega do Lab, o Heitor Badotti descobriu uma Biblioteca fantástica que pode ser usada para muitos controles remotos AM 315 ou 433 MHz :

  • SC5262 / SC5272
  • HX2262 / HX2272
  • PT2262 / PT2272
  • EV1527 / RT1527 / FP1527 / HS1527 / SCL1527
  • Intertechno outlets
  • HT6P20X

Link para download da Biblioteca :

https://github.com/sui77/rc-switch

WIKI da Biblioteca : (como usar) 

https://github.com/sui77/rc-switch/wiki

Veja o Tópico do projeto do Heitor :

http://labdegaragem.com/forum/topics/rf-315-mhz-recebe-mas-n-o-envia

Mt bacana Murta e Heitor!

Testei a biblioteca RC-SWITCH usando controles com o encoder HT6P20B e funcionou 100%

Muito simples e fácil a utilização. Recomendo!

To precisando agora de um controle com o encoder HT6P20D (com pelo menos 5 botões).

Alguém sabe onde posso encontrar?

VALEU!!!

Bom dia Afonso, eu também gostei demais da Biblioteca RC-Swtich.

Muito bem feita. 

O chip HT6P20B só aceita no máximo 4 botões . Mas o HT6P20D aceita 5 botões :

http://www.holtek.com.tw/producthome/-/pid/110/225

Esse tem 4 botôes :

Controle Remoto Alarme Intelbras Tx Xac 3000 4k 433 Mhz

eu  montei um circuito na protoboard com o HT6P20B  e um emissor RF 433 igual na imagem que vc postou e tentei gravar o codigo no portao eletronico, mas nao obtive sucesso. consegue me dizer o que pode ter acontecido?

A frequencia portadora do modulo receptor do seu portão pode ser diferente da frequencia do seu transmissor. 

Então o portão não vai reconhecer o que transmitiu...

Boa tarde, uma ajuda.

Usando o codigo citado anteriormente para decodificar os TX´s, se eu quisesse salvar um controle na eeprom do arduino (nodemcu) eu deveria salvar os binarios ou o endereço?

Boa tarde, 

Favor informar qual programa esta usando.

o programa deste link: 

http://acturcato.wordpress.com/2013/12/20/decodificador-para-o-enco...

consigo receber pelo nodemcu os binarios e addres dos TX´s, mas como salvar isso na eeprom em HEX ou long?

Rodrigo , o chip do seu controle remoto é o  HT6P20B ?

Sobre o Sketch de descodificação do código do  HT6P20B :

https://gist.github.com/acturcato/8362007

Cada chip tem um address code (22 bits) e mais 2 bits de dados para identificar qual botão foi pressionado. 

Recomendo que salve os 24 bits. Os outros 4 bits de anti-code só servem para verificação.

Vc poderia me mostrar um exemplo desse trecho para gravar esse 24bits..

(obs venho do CCS/PIC estou aprendendo sobre a IDE do arduino ainda)

http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...

Para descobrir qual botão foi pressionado :

//Get Buttons from Buffer


_rfControl.btn1 = bitRead(buffer,4);
_rfControl.btn2 = bitRead(buffer,5);

Imprime o AddressCode e qual botão foi pressionado : 

Serial.print("Address: "); Serial.println(_rfControl.addr, HEX);
Serial.print("Button1: "); Serial.println(_rfControl.btn1, BIN);
Serial.print("Button2: "); Serial.println(_rfControl.btn2, BIN);
Serial.println();

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço