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) .
Tags:
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
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?
Legal! Parabéns !
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).
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por