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

Responder esta

Respostas a este tópico

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 !

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço