Boa noite pessoal, eu comprei há algum tempo o kit (transmissor e receptor) de radiofrequência de 315 Mhz, a finalidade da compra desse kit foi para acender e desligar essa lâmpada (da qual funciona a 315 mhz, diferente do anuncio do link). 

Enfim, com o exemplo da biblioteca RC-Switch-master eu consegui adquirir o código do meu controle, que seria:

Decimal: 13176153 (24Bit)

Binary: 110010010000110101011001 

PulseLength: 272 microseconds

Raw data: 8448,796,284,796,284,260,824,260,824,800,284,252,832,256,828,792,292,244,840,252,836,248,836,252,832,784,304,780,296,252,300,252,828,792,288,252,832,792,292,792,292,788,292,248,836,248,840,788,292,

Dai com o exemplo de enviar o código, eu tentei enviar ele RAW, via decimal e com binário, não funcionou, tentei colar o sensor ao lado do socket receptor e também não funcionou.

Ou seja, o receptor funciona e o emissor não, não consigo saber se o emissor está com problema porque não tenho outro arduino para fazer o teste entre o próprio emissor e receptor. Gostaria de saber se alguém consegue entender o porque isso está acontecendo.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

Serial.begin(9600);

// Transmitter is connected to Arduino Pin #10
mySwitch.enableTransmit(10);

// Optional set pulse length.
// mySwitch.setPulseLength(320);

// Optional set protocol (default is 1, will work for most outlets)
// mySwitch.setProtocol(2);

// Optional set number of transmission repetitions.
// mySwitch.setRepeatTransmit(15);

}

void loop() {

/* See Example: TypeA_WithDIPSwitches */
mySwitch.switchOn("11111", "00010");
delay(1000);
mySwitch.switchOn("11111", "00010");
delay(1000);

/* Same switch as above, but using decimal code */
mySwitch.send(5393, 24);
delay(1000);
mySwitch.send(5396, 24);
delay(1000);

/* Same switch as above, but using binary code */
mySwitch.send("000000000001010100010001");
delay(1000);
mySwitch.send("000000000001010100010100");
delay(1000);

/* Same switch as above, but tri-state code */
mySwitch.sendTriState("00000FFF0F0F");
delay(1000);
mySwitch.sendTriState("00000FFF0FF0");
delay(1000);

delay(20000);
}

Este é o código base, lógico que substitui os sinais pelo que eu mencionei, porém mesmo assim não funcionou.

Exibições: 2243

Responder esta

Respostas a este tópico

José, eu medi muito rápido, estava saindo de casa, vi sua resposta e medi esses 4 pinos, o pino 1 e 3, na escala de 200k de 75, então seria 75k né? Ou 75kk? Rsrsrss

Mais informações importantes :

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

Foi aqui que me confundi ! O Pulso de preamble( sincronização) tem 1 pulso nivel alto e 31 pulsos nivel baixo de clock. 

EV1527, RT1527, FP1527 or HS1527

Pulse length

  • About 300 to 500 microseconds
  • 1/31 time of the synchronization low level.

Synchronization

  • 1 Pulse High + 31 Pulses Low

Bits

  • 0: 1 Pulse High + 3 Pulses Low
  • 1: 3 Pulses High + 1 Pulse Low

Telegram

  • at least 3 times: Sync Bit + 24 Two-state data bits

Entendi, e será que irei precisar transmitir esse pulso de sincronização para acender a luz?

Heitor , você viu esses projetos ? (traduzi com o Google Chrome) 

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

  • funkcontrol-over-net : Plug & Play webserver configurável completa e uma Interface Web para controlar tomadas eléctricas que funcionam em um Arduino Uno ou Arduino Ethernet.

  • homecontrol4.me : Controle os seus dispositivos com um Smartphone App

  • OpenplacOS : Openplacos é um projeto open source para automação residencial, aquariophily interiores e jardins que roda em Linux.

  • OpenPyro : Sistema OpenPyro ocorre transitória entre os sistemas profissionais maciças para espectáculos piromusicais e os vários sistemas de fogos de artifício amadores de baixo custo.

  • APDuino : projeto de automação de rede adaptado para monitorização de efeito estufa para os jardineiros de quintal DIY-entusiasta

  • ESP-Quadro : A Framework ESP oferece bibliotecas de base e componentes da Web para a plataforma ESP8266.

  • Ninjablocks / 433Utils

  • xkonni / framboesa-remote : Oferece um binário para facilitar o acesso de linha de comando e possui uma interface web para facilitar o acesso em dispositivos móveis ou de desktop.

Então José, dei uma olhada nesses projetos, porém a maioria é de projetos que não usam a RF, boa parte usa ethernet e wifi com outros sensores. E as bibliotecas de RF, como a 433Utils, eu já tentei usar e de nada funcionou.

Achei as definiçôes dos Protocolos dos Controle Remotos :

https://github.com/sui77/rc-switch/blob/master/RCSwitch.cpp

/* Format for protocol definitions:
* {pulselength, Sync bit, "0" bit, "1" bit}
*
* pulselength: pulse length in microseconds, e.g. 350
* Sync bit: {1, 31} means 1 high pulse and 31 low pulses
* (perceived as a 31*pulselength long pulse, total length of sync bit is
* 32*pulselength microseconds), i.e:
* _
* | |_______________________________ (don't count the vertical bars)
* "0" bit: waveform for a data bit of value "0", {1, 3} means 1 high pulse
* and 3 low pulses, total length (1+3)*pulselength, i.e:
* _
* | |___
* "1" bit: waveform for a data bit of value "1", e.g. {3,1}:
* ___
* | |_
*
* These are combined to form Tri-State bits when sending or receiving codes.
*/
#ifdef ESP8266
static const RCSwitch::Protocol proto[] = {
#else
static const RCSwitch::Protocol PROGMEM proto[] = {
#endif
{ 350, { 1, 31 }, { 1, 3 }, { 3, 1 }, false }, // protocol 1
{ 650, { 1, 10 }, { 1, 2 }, { 2, 1 }, false }, // protocol 2
{ 100, { 30, 71 }, { 4, 11 }, { 9, 6 }, false }, // protocol 3
{ 380, { 1, 6 }, { 1, 3 }, { 3, 1 }, false }, // protocol 4
{ 500, { 6, 14 }, { 1, 2 }, { 2, 1 }, false }, // protocol 5
{ 450, { 23, 1 }, { 1, 2 }, { 2, 1 }, true } // protocol 6 (HT6P20B)
};

Essa Biblioteca é fantástica ! Muito bem feita.

O formato do SC1527 deve ser  esse :

/* Format for protocol definitions:
* {pulselength, Sync bit, "0" bit, "1" bit}

{ 350, { 1, 31 }, { 1, 3 }, { 3, 1 }, false }, // protocol 1

A largura do pulso esta como 350uS . Por isso será importante identificar o pulso de clock do SCL1527.

Será que é 500uS ? ( 500 é o mais usado) 

Rode o programa de exemplo e ele te informará qual protocolo esta sendo usado :

ReceiveDemo_Simple.ino

https://github.com/sui77/rc-switch/blob/master/examples/ReceiveDemo...

Serial.print("Received ");

Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );

José, fantástico, estou começando a entender  sobre como funciona os pulses e como poderemos descobrir eles! Pena que não estou em casa, estou no trabalho, o protocolo eu tinha anotado, mas não consigo me recordar!! Eu acredito que era 1, isso é o que me passa pela cabeça...

Certo, me desculpe a ignorância, mas para que irá servir esse protocolo?

Protocolo é o formato usado na comunicação entre o transmissor e o receptor. 

É o que você esta querendo identificar. 

Vi nos posts anteriores que ele já identificou como Protocolo 1 :

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1

A largura do pulso esta como 350uS . Por isso será importante identificar o pulso de clock do SCL1527.

Será que é 500uS ? ( 500 é o mais usado) 

Pode ser que a definição do clock esteja errada .

Entendi!! Então o problema provavelmente está no clock (como você disse anteriormente) e para que eu altere o clock é simplesmente alterando na biblioteca de:

{ 350, { 1, 31 }, { 1, 3 }, { 3, 1 }, false }

para

{ 350, { 1, 31 }, { 1, 3 }, { 3, 1 }, true }

Correto? Na verdade tentarei com todos os exemplos (500, 350 e etc).

Isso faz total sentido! Se meu próprio receptor identificar que o protocolo é o 1, não tem o porque minha biblioteca estar enviando o protocolo 6, estou ansioso para testar rsrsrs.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço