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:
O conversor USB-serial é usado somente para a gravação do programa no Arduino Pro Mini.
Depois ele pode ser retirado. E assim a serial do Arduino poderia ser usada para se comunicar com o Raspberry Pi, por exemplo.
Essas são uma das vantagens do Pro Mini - tamanho reduzido (pois não tem esse circuito USB-serial), custo baixo, e consumo reduzido de energia. Muito legal.
eu comprei uma arduino nano v.3
Nano V3.0 AVR ATmega328 P-20AU Module Board + USB Cable for Arduino
Blue board
- Digital I/O Pins: 12 (D2~D13)
- Analog Input Pins: 8 (A0~A7)
- 1 Pair TTL serial data receiving and transmitting pins: RX/TX
- PWM Output Pins: 6 (D3/D5/D6/D9/D10/D11)
- Microcontroller: Atmel Atmega328P-AU
- Employs Atmega328P-AU single chip
- Supports USB download and power supply / ISP download
- Supports external 5V~12V DC power supply or 9V battery
- Comes with cable length: 25cm
paguei 11 doleta!
O problema é que só vai chegar no natal. :)
Galera, o tutorial que eu fiz sobre usando o Arduino Pro Mini foi aprovado!
http://labdegaragem.com/profiles/blogs/tutorial-usando-arduino-pro-...
testei um controle de alarme aqui e achei a conexão lenta, teve hora q tive q apertar uma 5 x...é assim mesmo!?
Não é não...pode ser bateria fraca..
O meu funciona na hora - é perfeito.
Veja se o seu usa o chip HT6P20B e esta configurado para a mesmo clock de 2KHz.
http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...
Qual é marca ? Tire uma foto se quiser.
O mais provável é bateria fraca mesmo...
é esse modelinho aqui
http://www.intelbras.com.br/Produtos/Seguranca-Eletronica/Alarmes/A...
abri ele e ta lá o chip encoder HT6P20B, na minha central capta o endereço dele certinho!
vou tentar troca a bateria...
Mais um grande passo !! Já estou estou conseguindo a comunicação entre os dois Arduinos !
Fiquei feliz porque penei um bocado.
Tive que estudar a fundo a interface I2C do Arduino.
A princípio achei que teria que usar Arrays, pointers para transmitir os quatro bytes do código do controle remoto (ou do sensor sem fio) do Arduino Pro Mini para o Arduino 2009 - Central de Alarme.
Portanto fiquei essa ultima semana estudando também sobre esse assunto. E achei meio enrolado, pois esta sendo novidade para mim, no caso do Sketch. A ultima vez que estudei Matrizes foi a mais de 20 anos atrás...
Quebrando o côco ontem, pensei - acho que não irei precisar de Arrays (matrizes). São somente quatro bytes.
Pois a função Wire.write pode transmitir bytes ou arrays.
Optei por enviar os quatro bytes, um de cada vez. Podem achar tosco, mas funcionou !
O Arduino Pro Mini (Mestre I2C ) esta ligado ao módulo receptor de RF através do pino digital 2.
A comunicação entre os dois Arduinos, foi feita pelos pinos Analog 4 (SDA) e pino Analog 5 (SCL) .
Usei resistores de 4,7K ohms para pullup nas duas linhas (conectados ao +5V) .
Não se esqueçam de conectar o terra dos dois Arduinos.
O Arduino 2009 (Central do Alarme - no caso escravo I2C ) deixei conectado ao meu PC através da Serial para monitoramento.
Essa são as partes parciais do código para transmissão I2C :
Mestre - Arduino Pro Mini ================
#include <Wire.h>
const int Porta_I2C = 27; // Endereço da Porta I2C do Arduino (27 é o meu numero da sorte)
unsigned long buffer=0; // buffer do código do controle remoto - 28 bits somente
void setup()
Wire.begin(); // Inicialização da Interface I2C
Monitor_RF()
(suprimi rotinas)
byte Codigo_1,Codigo_2,Codigo_3,Codigo_4 = 0;
Codigo_1 = buffer ;
Codigo_2 = buffer>>8 ;
Codigo_3 = buffer>>16 ;
Codigo_4 = buffer>>24 ;
Wire.beginTransmission(Porta_I2C); // Começa a transmissão através da Porta I2C 27
Wire.write(Codigo_1); // envia primeiro Byte
Wire.write(Codigo_2); // envia segundo Byte
Wire.write(Codigo_3); // envia terceiro Byte
Wire.write(Codigo_4); // envia quarto Byte
Wire.endTransmission(); // Finaliza a transmissão
Escravo - Arduino Central de Alarme ===================
#include <Wire.h>
const int Porta_I2C = 27; // Endereço da Porta I2C do Arduino (27 é o meu numero da sorte)
unsigned long buffer=0; // buffer do código do controle remoto - 28 bits somente
void setup()
Wire.begin(Porta_I2C); // Conecta a interface I2C com o endereço 27
Wire.onReceive(Recebe_codigo); // Função para receber os dados do codigo
void Recebe_codigo (int Numero_bytes) // Recebe quatro bytes de Codigo
{
Numero_bytes = 4; // 4 bytes para receber
byte Codigo_1,Codigo_2,Codigo_3,Codigo_4 = 0; // Bytes do codigo recebido
unsigned long bufferR = 0; // Buffer de recebimento
while(Wire.available() > 0)
{
Codigo_1 = Wire.read(); // recebe o primeiro byte
Codigo_2 = Wire.read(); // recebe o segundo byte
Codigo_3 = Wire.read(); // recebe o terceiro byte
Codigo_4 = Wire.read(); // recebe o quarto byte
}
bufferR = Codigo_4 ; // remontando o codigo recebido
bufferR = Codigo_3 + (bufferR 8); // deslocamento dos bytes para a esquerda
bufferR = Codigo_2 + (bufferR 8);
bufferR = Codigo_1 + (bufferR 8);
Serial.println(bufferR,HEX);
Serial.println ();
}
Oque acontece se tiver algum mal contato ou curto no barramento I2c? Não a perda do sincronismo dos bytes?
Não haverá comunicação, isto é, nenhum byte será transferido.
Colegas, esse é Sketch do Alarme Arduino Pro Mini :
https://github.com/ArduinoFree/Alarme-Arduino-Open-Source/blob/mast...
Vejam a saida da serial do Arduino Pro Mini - esses quatro bytes são enviados para o outro Arduino (Central do Alarme) através da interface I2C. Esse bytes serão verificados na Central .
Modulo de Descodificacao Pronto
Codigo enviado : 854BA15
Codigo1 = 15
Codigo2 = BA
Codigo3 = 54
Codigo4 = 8
Vejam as telas da captura da comunicação serial I2C , usando o Analisador Lógico Arduino:
http://labdegaragem.com/profiles/blogs/tutorial-analisador-l-gico-c...
Tela de captura I2C :
Analisando com a ferramenta I2C analyzer:
E mais essa - muito bom !
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por