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: 59383

Responder esta

Respostas a este tópico

Sem dúvida esse problema esta relacionado com interrupções.

No meu caso, estava estudando a biblioteca I2C para entender porque estava atrapalhando o delay, mas desisti pois ela é bem complexa...(para mim).

Esse é o problema de usar essas caixas pretas. É difícil desenvolver algo assim, talvez chegue la no final do projeto e encontre problemas sem solução.

Boa sorte....

não sei bem se é i i2c, eu teste e em meu projeto é o interrupts.

Só funciona se eu HABILITAR os interrupts na função do servidor WEB

mais se habilitar isso trava o I2c.

veja a função abaixo!

void servidor(){

interrupts();
EthernetClient client = server.available();

if (client) {
// guarda o caracter na string 'msg'

msg[1]=msg[2]; msg[2]=msg[3]; msg[3]=msg[4]; msg[4]=msg[5]; msg[5]=msg[6];
msg[6] = client.read();
Serial.print(msg[6]);
if (msg[6]=='#') {

switch(msg[5]) {
case 'R':
// Se receber o comando 'R#' envia de volta o status dos
// dispositivos. (Que será a string 'Luz')
client.write(Luz);
break;
case 'P':
// Caso P#, aciona o pino do portão pequeno por 1s.
digitalWrite(A4,HIGH);
delay(1000);
digitalWrite(A4,LOW);
break;
case 'G':
// Caso G#, aciona o pino do portão pequeno por 1s.
digitalWrite(A5,HIGH);
delay(1000);
digitalWrite(A5,LOW);
break;
case 'L':
// Caso L#, ele copia os 4 bytes anteriores p/ a
// string 'Luz' e cada byte representa um
// dispositivo, onde '1'=ON e '0'=OFF
Luz[0]=msg[1];
Luz[1]=msg[2];
Luz[2]=msg[3];
Luz[3]=msg[4];
Serial.print(Luz[0]);
if (Luz[0]=='1') {
ativaAlarme();
}else{
desativaAlarme();
}

break;

}
}
}
noInterrupts();
}

Erick qual modulo Ethernet esta usando?

O Ethernet shield comunica-se com o Arduino através da interface SPI?

noInterrupts(); 

Esse comando desabilita as interrupções 

http://arduino.cc/en/Reference/noInterrupts

Poste a sua função que atraca o rele, fica difícil uma analise sem ela. Não ha possibilidade do Arduíno esta reiniciando?

José, já consegui arrumar...tirei esses interrupts das minhas funções e funcionou certinho o i2c.

A rotina do alarme ta perfeita.

Legal! Parabéns !

Unica coisa que falta e fazer aquele tempo de ativação e desativação, você fez algo assim?

Erick eu havia feito alguns testes, mas como o delay parou de funcionar com as rotinas de I2C. 

eu ainda não descobri  como resolver - fiz outros testes com timer (millis).

Tmb fiz uns testes tmb e o delay tmb nao funcionou com i2c.

To a procura se uma solução

Gostaria de parabenizar a todos pelo tópico... Desde que comecei a fuçar o Arduino, logo imaginei um projeto para alarme caseiro. A idéia de usar sensores sem fio é boa pela versatilidade e pela possibilidade de usar diversos sensores. 

Porém, pretendo utilizar o conhecimento aqui exposto e fazer um alarme com fio, com as mesmas características aqui ressaltadas, apesar dos pesares... E digo isso pois tenho um alarme sem fio....

Os problemas que vejo no alarme sem fio são: interferências, possibilidade de intercepção do sinal RF (a exemplo da reportagem veiculada no Fantástico e a substituição de baterias (é um saco subir na escada e ter que trocar de baterias e dar carga). 

Mas louvo a iniciativa pois a troca de conhecimentos é o maior ganho nesse projeto. Parabéns a todos.

Me coloco a disposição para contribuir nas funcionalidades desse alarme.... Por exemplo.: Seria muito interessante a idéia do botão de pânico, criação de zonas/sensores 24hs.....

Abraços

Cláudio seja bem vindo ao projeto.

Obrigado pelos elogios.

O sensor PIR sem fio que estou usando informa bateria descarregada. 

A Central informará isso para o usuário.

E o fabricante garante que a bateria dura um ano.

Algum sensor sen fio do seu alarme disparou devido a interferencia?

Pela teoria do funcionamento isso é impossível.

O grande problema do alarme com fio, é a dificuldade para a instalação.

Por isso estamos usando sem fio.

A questão de segurança pode ser eliminada, se o acionamento do alarme for feito somente por teclado conectado a central. Portanto se alguem tentar copiar os códigos e tentar reproduzi-los fará com que dispare o alarme e não desativá-lo.

Se deseja montar o alarme com fio veja esse Sketch:

https://github.com/ArduinoFree/Alarme-Arduino-Open-Source/blob/mast...

Um outro colega já havia sugerido o botão de pânico (com cereteza teremos). Como já informado, não usaremos zonas. É muito chato ter que ficar lembrando qual zona corresponde a qual sensor.

A prórpria central informará qual sensor foi disparado.

Não entendi sobre sensores 24H...

Obrigado pelo apoio.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço