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

Responder esta

Respostas a este tópico

Guilherme , tenho feito vários testes com a função Millis nessas ultimas semanas.

Mas não estão dando bom resultado.

O problema é que a rotina de descodificação tem que ficar sempre monitorando a saida do modulo de RF. O tempo de execução dessa rotina é de aproximadamente 20 ms (é uma rotina até rápida). Quando eu deixo essa rotina no Loop principal do Sketch, funciona perfeitamente.

Mas quando intercala entre outra rotinas, ela não funciona. Talvez devido ao uso dos timers.

Depois de várias tentativas frustadas, hoje pela manhã, pensei na possibilidade de fazer o delay de tempo, usando várias rotinas de descodificação ( por exemplo 10 x Monitor_RF() = 200 ms ).

Mas ainda não testei-a.

Putz, realmente isso é chato, também tive esse problema. Talvez você precise rever a organização das funções pra interferir o mínimo possível na leitura da RF.

Mas esse é um problema bem chato... Depois dou uma olhada la no fonte la no GitHub pra ver se tenho alguma sugestão...

Se nada dessas tentativas derem certo, eu tenho uma carta na manga.

Como eu já disse anteriormente, no caso de não conseguir um programa adequado com essas rotinas, pretendo usar um ATTiny 85 só para fazer essa descodificação do sinal do módulo de RF. Ele vai ficar (de castigo) em loop somente monitorando o sinal.

Quando descodificar um sinal com um código válido, ele enviará esse código via interface I2C para o Alarme Arduino. Assim ele vai se comunicar, gerando uma interrupção no Arduino.

conflito entre o ethernet shield + o rf

tenso

Conflito de portas? Ou aquelas interferências bizarras que não sabe de onde vem?? hehehe

realmente não sei, usei a porta 17 do arduino mega.....

pesquisando na net vi q pode ser algo de interrupções do ethernet shield...

vo tentar trocar de porta!

Erick, se o Ethernet shield interromper a rotina de descodificação (Monitor_RF() ) durante o processo, ela não vai funcionar. Ela conta o tempo entre os bits, para pode descodifica-los.

Se acha que os interrupts do Ethernet shield estão atrapalhando, sugiro que durante a execução da rotina Monitor RF() , desabilite essas interrupções. E logo após a rotina terminar, habilite novamente as mesmas interrupções.

Só não sei se isso vai bloquear os timers...

toda vez q usar um desativa o outro....?

Veja essa referencia sobre interrupções do Arduino:

http://arduino.cc/en/Reference/Interrupts#.Ux_ClPldWa8

O problema é que ele desabilita todas as interrupções. 

Ai não sei se a rotina Monitor_RF() vai funcionar...

José, consegui fazer funcionar usando interrupts e também com a dica do guilherme conseguir fazer um alarme sonoro com o buzzer sem bloquear a leitura do RF, porém o tempo de resposta do RF diminui, mesmo assim é um ótimo tempo pra detecções. 

Única coisa que está pegando em meu código é que envio SMS e ligo pro celular assim q detectada a invasão, essas rotinas travam o loop e até q a mensagem seja entregue e isso interfere no buzzer alarm e na leitura do RF.   To pesquisando um jeito de executar funções paralelas(multihreads) no arduino, pois o mesmo não faz isso.

Uma ideia é colocar um arduino duemilanove(compatível com meu shield) somente pra tarefas de SMS. Isso seria viável ou é matar uma mosca com canhão?

Legal Erick, parabéns!!!

Quando for implementar o internet shield vou precisar da sua ajuda!

Mas qual é o problema? A desativação do alarme?

claro guilherme, no que precisar! 

o problema é que o envio de SMS+ligação trava o loop do arduino até a mensagem se entregue, isso interfere no alarme buzzer + na leitura do RF 

o jeito era roda essa funções sem travar o loop principal

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço