Pessoal , estou lançando esse novo projeto open source, isto é, quem quiser ajudar será bem vindo.

Todos terão acesso á todo projeto, portanto cada um poderá montar o seu.

Depois de desvendar o funcionamento de controle remoto sem fio no Lab de Garagem, agora já é possível começar o projeto.

http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf

Esse diagrama em blocos que eu fiz é uma idéia inicial. Quando sugerir alguma coisa, especifique de qual bloco esta tratando, para facilitar a compreensão de todos.

Módulo de recepção RF :

A frequência que usarei é a de 433,92 MHz - a mais comum. Mas nada impede de usar outra frequência, desde que o receptor, os sensores e o controle remoto sejam da mesma frequência.

O sistema de codificação que usarei é o do chip Encoder HT6P20B. 

Data sheet :http://www.holtek.com.tw/pdf/consumer/6p20v170.pdf

Selecionei esse, pois existem inúmeros sensores e controles remotos que usam esse chip.

Vejam no tutorial mencionado acima, para entender como ele funciona.

Módulo RTC :

Usando o chip DS1307 - muito comum. Será usado para registro de log, isto é, todas a operações realizadas pelo Arduino serão registradas com horário. Exemplo: Alarme ativado, alarme disparado, sensor ativado, etc. Esses arquivos de log serão gravados no Módulo SD CARD.

Painel - Botões :

Painel de controle do Alarme, podendo ter botões, como aprender sensor, aprender controle remoto, etc. Se necessário, poderá ter um teclado numérico para digitação de senha e ou  de configurações.

Módulo Sirene:

Seria interessante inovar na sirene, como usar sons personalizados. 

No início poderá ser usada uma sirene comum.

Módulo Display LCD:

Para mostrar status do alarme, horário, configuração e disparos, etc

Interface WEB / GSM:

O objetivo é enviar email ou então mensagem SMS, avisando o proprietário que o alarme foi disparado. Informando qual sensor e qual horário foi acionado.

Seria muito bom também se o proprietário pudesse remotamente ativar ou desativar o alarme  e verificar o status do mesmo. 

Fonte / Bateria:

Fonte de alimentação do Alarme e da Sirene. Uma bateria de backup é essencial.

O projeto esta lançado. Aos poucos acrescentarei mais informações.

Agradeço antecipadamente a todos que desejarem fazer contribuições para o projeto.

Sempre quis gerenciar um projeto OPEN SOURCE, e esta vai ser uma nova oportunidade.

Open Source (Código Aberto):

http://pt.wikipedia.org/wiki/C%C3%B3digo_aberto

Gustavo Murta (BH) .

Exibições: 59373

Responder esta

Respostas a este tópico

Além disso, existe um shield "USB Host", coisa de U$15.
Não mencionei o raspberry pela questão do custo, mas ele é uma excelente solução!
Torna a vida bem mais simples, hehehe!
Servidor web, wifi, modem 3G, camera, monitor(hdmi) ou aqueles automotivos por rca, enfim...

Tenho um e gostaria de começar a usar em projetos mais sofisticados que um servidor de impressão sem fio :D
Já vi um video que o cara usa um raspi pra alarme e automação, usa tablet com comando de voz, controla aparelhos, ativa o alarme da onde estiver, só não me lembro se faz streaming das cameras, mas seria ótimo!... Pensando em sofisticação, talvez o raspi seja a solução! 

começou a falhar por volta de 100m

Você usou antena?

Módulo de recepção RF (433 MHz) :


Hoje montei um circuito Receptor de RF no Arduino e fiz alguns testes com sucesso.

Usei o Módulo de Recepção RF 433 MHz :

  


A saida do Modulo RX (Pino DATA) eu conectei ao pino Digital 2 do Arduino.


Usei o programa do Afonso Turcato para decodificar os códigos dos sensores que eu tenho.

( fico muito agradecido por ele ter disponibilizado suas rotinas)
http://acturcato.wordpress.com/2013/12/20/decodificador-para-o-enco...

A unica alteração que eu fiz, foi mudar o port de leitura:

pinRF = 2; //If necessary, change this for you project - eu mudei para Digital 2


Veja também no Tutorial:
http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf


Testei o sensor de abertura de porta do fabricante CS Eletrônica , o modelo TXR-4000 SF e funcionou!

http://www.cseletronica.com.br/produtos.php?id_categoria_principal=...

Ele é um modulo sem fio de 433 MHz e usa o encoder Ht6P20B.

A chave Reed switch aciona o sensor, quando o imã fica distante do mesmo.

Ele tem monitoramento de bateria fraca também.

Vejam os testes para decodificar os sinais do sensor:

(mudei o código do sensor  por motivo de segurança) 

Data: 1010101010101010101010110101
-Address: 2AAAAA

-Button1: 1 - sensor reed switch acionado 
-Button2: 1 - Tensão OK 
-----------------------------------


Data: 1010101010101010101010010101
-Address: 2AAAAA

-Button1: 1 - sensor reed switch acionado
-Button2: 0 - Tensão baixa 


 

Anexos

Show! Trabalho a bastante tempo nessa area, o que vcs precisarem é so falar. Abs e Sucesso!

Obrigado Daniel.

O que puder ajudar será muito bem vindo.

José Gustavo,

Pelo arquivo que você anexou, ainda não testei mais gostaria de saber se o mesmo já envia a sequencia decodificada dos dispositivos ?

Hack , o Sketch decoder do Afonso Turcato funciona perfeitamente,

A saída no monitor serial é essa (exemplo):

Data: 1010101010101010101010110101
-Address: 2AAAAA

-Button1: 1 
-Button2: 1 
-----------------------------------


Data: 1010101010101010101010010101
-Address: 2AAAAA

-Button1: 1
-Button2: 0

Estou fazendo testes para implementar essas rotinas no Sketch que já fiz do Alarme.

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

Pessoal corrigindo uma falta de informação.

O Programa  DECODER FOR HT6P20B ENCODER criado pelo Afonso Turcato, foi baseado na criação original do Jaques Moresco .

Muito obrigado para os dois, que contribuiram com seus programas!

http://forum.arduino.cc/index.php/topic,54788.msg707885.html#msg707885

/* 
ARDUINO DECODIFICADOR HT6P20B COM RESISTOR DE 2M2 NO OSC.
ESTE CÓDIGO NÃO USA TIMER, INTERRUPÇÃO EXTERNA E NEM PINO DEFINIDO DE ENTRADA.
ELE MEDE O TEMPO DO PILOT PERIOD E COMPARA SE ESTÁ DENTRO DA FAIXA DEFINIDA,
SE TIVER ELE PASSA PARA CODE PERIOD E FAZ AS MEDIDÇÕES DE TEMPO EM NIVEL ALTO
SE TIVER DENTRO DA FAIXA ACRECENTA BIT 1 OU 0 NA VARIAVEL _DATA CASO NÃO ZERA AS VARIÁVEIS E RE-INICIA
APOS RECEBER TODOS OS BITS ELE PEGA OS 4 BITS DO ANTE CODE E TESTA PARA SABER SE O CÓDIGO FOI RECEBIDO 
CORRETAMENTE, CASO RECEBIDO CERTO ELE COLOCA A VARIAVEL ANTCODE EM 1.

CRIADO POR: JACQUES DANIEL MORESCO
DATA: 28/02/2012 USANDO ARDUINO 0022.
FONES:54 3324 2251 54 9206 7168
E-MAIL: ibisul@ibisul.com.br
Permitido o uso público, mas deve-se manter o nome do autor.
*/

int x,startbit,ctr,dataok,t1,larpulso,larpulso1,larpulso2,larpulso3,larpulso4,bt1,bt2,antcode=0;
unsigned long _data=0;   // DATA é o Código recebio do HT6p20 todos os 28 BITS onde, 22 do coodigo+2 dos botões+4 do anti-codigo;
unsigned long _dur,_dur1;      // Duração do Pulso
byte          _pin;    // Pino que vai receber o sinal RF digital.

void setup()

{
  _pin=2;
  Serial.begin(9600);
  pinMode(2, INPUT);
  pinMode(13, OUTPUT);
}

void loop()

{
  
digitalWrite(13, digitalRead(2)); //Pisca o LED conforme o valor da entrada digital, testar interferencias.
if (startbit==0)
 {// Testa o tempo piloto até o Bit de inicio;
  _dur = pulseIn(_pin, LOW);
  if(_dur > 8000 && _dur < 12000 && startbit==0)
  {
    larpulso=_dur/23;
    larpulso1=larpulso-50;
    larpulso2=larpulso+50;
    larpulso3=larpulso+larpulso-50;
    larpulso4=larpulso+larpulso+50;
    startbit=1;
        _dur=0;
       _data=0;
      dataok=0;
         ctr=0;
  }
 }
 
// Se o Bit de inicio OK ENTÃO Inicia a medição do tempo em Nivel ALTO dos sinais, e testa se o tempo está na faixa.
if (startbit==1 && dataok==0 && ctr < 28)
  {
         ++ctr;
        _dur1 = pulseIn(_pin, HIGH);
   if(_dur1 > larpulso1 && _dur1 < larpulso2)     // Se a largura de pulso é entre 1/4000 e 1/3000 segundos
   {
     _data = (_data 1) + 1;      // anexar um * 1 * para a extremidade mais à direita do buffer
   }
   else if(_dur1 > larpulso3 && _dur1 < larpulso4)   // Se a largura de pulso é entre 2/4000 e 2/3000 segundos
   {
     _data = (_data 1);       // anexar um * 0 * para a extremidade mais à direita do buffer
   }
   else
   {
     /* força finalização do laço */
          startbit=0;
   }
        
   }
   
   
   

if (ctr==28)
   { if (bitRead(_data,0)==1)
         { 
           if (bitRead(_data,1)==0)
              {
                if (bitRead(_data,2)==1)
                   {
                     if (bitRead(_data,3)==0)
                        {
                          antcode=1;
                        }
                   }
              }
         }    

      if (antcode==1)
         {// Se foram recebidos todos os 28 Bits, o valor vai para a variavel _data e pode ser usada como exemplo abaixo.
           dataok=1;
           Serial.println(_data,BIN);
           ctr=0;
           startbit=0;
           antcode=0;
           delay(100);
         }
   }
}

Selecionando sensores e controle remoto:

Quando for selecionar os seus sensores e o controle remoto, fique atento à frequência de operação de 433,92 MHz e ao chip encoder HT6P20B. Nem sempre será simples. Alguns fabricantes raspam a identificação do chip.

Mas tem um jeito de identifica-los mesmo assim. O circuito usado usa um resistor de 2,2 M ohms (código 225) entre os pinos 4 e 5. Esse resistor determina a frequencia dos pulsos do encoder : aproximadamente 2 KHz. 

Veja as explicações no tutorial:

http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf

Atualmente no mercado brasileiro, são usados Encoders de dois tipos:

Learning code  = o alarme permite que vários sensores sejam memorizados ( HT6P20B e outros) 

                            A codificação é feita através de uma sequência fixa de bits de endereçamento.

                            O nosso projeto usará essa codificação. As rotinas serão dedicadas para o Chip HT6P20B, 

                            mas nada impede que outras implementações sejam acrescentadas,

“Rolling Code” ou “Hopping Code” = essa tecnologia usa criptografia e não é possível ser usada nesse                                                               projeto.  Usa o chip HCS201 e somente o fabricante do sensor tem a                                                             chave de segurança.

Sensor de presença com infra-vermelho:

Tenho um sensor de presença sem fio com infra-vermelho da marca Intelbrás.

Usei o sensor Intelbras  IVP-2000 SF:

http://www.intelbras.com.br/Produtos/Seguranca-Eletronica/Alarmes/S...

Esse sensor usa a frequência de 433,92 Mhz e o encoder é o HT6P20B.

Ele também informa quando a bateria (de 9V) esta fraca.

Vejam os testes com esse sensor de presença:

Alimentei-o com uma fonte ajustável para o teste da bateria fraca.

(mudei o código do sensor  por motivo de segurança) 

-----------------------------------

Data: 0101110111011101110111110101

-Address: 177777

-Button1: 1  - sensor de presença acionado

-Button2: 1  - bateria OK > 7V

-----------------------------------

-----------------------------------

Data: 0101110111011101110111010101

-Address: 177777

-Button1: 1  - sensor de presença acionado

-Button2: 0  - bateria fraca < 6,5V

-----------------------------------

Amigo Gustavo,

já chegou o PIR. No entanto não estou a conseguir que o receptor consiga ler qualquer coisa.

Mais uma vez peço ajuda para tal.

Será na configuração do PIR? Não adicionei nenhum jumper (tudo aberto). Apenas tenho os jumpers em:

LED Acesso, 3.3M e Delay 5s.

Como faço para o Receptor ler o accionamento do PIR?

Junto fotos.

Obrigado

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço