Interruptor de controle remoto de 2,4 GHz e 10 canais

Neste post, vamos construir um switch de controle remoto de 10 canais baseado na banda ISM (industrial, científica e médica).

Introdução

a Banda ISM Opera em 2,4 GHz, que pode ser usado sem uma licença com uma potência razoável.

O projeto proposto é um interruptor ON / OFF sem fio de uso geral, que pode ser usado para ligar / desligar luzes, ventiladores, aparelhos de automação residencial, se você estiver confiante o suficiente para trazer alterações de hardware ou software a este projeto.

O projeto está dividido em duas partes: o controle remoto e o receptor.

O controle remoto:

O controle remoto consiste em 10 botões para controlar 10 relés individuais no receptor. O controle remoto funciona com uma bateria de 9V que o torna portátil.

O coração do projeto é o módulo transceptor NRF24L01 de 2,4 GHz que permite a comunicação entre dois Arduinos.

O controle remoto possui um LED de reconhecimento.


O LED de reconhecimento acenderá momentaneamente cada vez que pressionar um botão no controle remoto e somente se o receptor receber o sinal transmitido e, em seguida, o receptor enviar um sinal de feedback ao controle remoto para ativar o LED.

Esse processo garantirá que o comando ON / OFF do controle remoto chegue ao seu destino com confirmação visual.

Um interruptor ON / OFF é fornecido no circuito do controle remoto para evitar perda excessiva de energia enquanto ocioso.

Recomenda-se o Arduino Nano ou o Arduino Pro-mini para construir o controle remoto, pois possui um formato menor que o torna portátil.

Diagrama de circuito:

Transmissor de controle remoto de 2,4 GHz e 10 canais

A descrição acima é o diagrama completo do circuito do controle remoto. O diagrama de conexão do pino para NRF24L01 também é fornecido no mesmo esquema.

Desligue o controle remoto quando terminar.

Faça o download do arquivo da biblioteca aqui: github.com/nRF24/RF24.git

Programa de controle remoto:

//-----Program Developed by R.Girish----//
#include
#include
RF24 radio(9,10);
const byte address[][6] = {"00001", "00002"};
const int ip1 = 2;
const int ip2 = 3;
const int ip3 = 4;
const int ip4 = 5;
const int ip5 = 6;
const int ip6 = 7;
const int ip7 = 8;
const int ip8 = A0;
const int ip9 = A1;
const int ip10 = A2;
const int buzzer = A3;
char buzzchar[32] = "";
const char constbuzzer[32] = "buzz";
const char button1[32] = "activate_1";
const char button2[32] = "activate_2";
const char button3[32] = "activate_3";
const char button4[32] = "activate_4";
const char button5[32] = "activate_5";
const char button6[32] = "activate_6";
const char button7[32] = "activate_7";
const char button8[32] = "activate_8";
const char button9[32] = "activate_9";
const char button10[32] = "activate_10";
void setup()
{
pinMode(ip1, INPUT);
pinMode(ip2, INPUT);
pinMode(ip3, INPUT);
pinMode(ip4, INPUT);
pinMode(ip5, INPUT);
pinMode(ip6, INPUT);
pinMode(ip7, INPUT);
pinMode(ip8, INPUT);
pinMode(ip9, INPUT);
pinMode(ip10, INPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(ip1, HIGH);
digitalWrite(ip2, HIGH);
digitalWrite(ip3, HIGH);
digitalWrite(ip4, HIGH);
digitalWrite(ip5, HIGH);
digitalWrite(ip6, HIGH);
digitalWrite(ip7, HIGH);
digitalWrite(ip8, HIGH);
digitalWrite(ip9, HIGH);
digitalWrite(ip10, HIGH);
radio.begin();
radio.openWritingPipe(address[1]);
radio.openReadingPipe(1, address[0]);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop()
{
if(digitalRead(ip1) == LOW)
{
radio.write(&button1, sizeof(button1));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip2) == LOW)
{
radio.write(&button2, sizeof(button2));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip3) == LOW)
{
radio.write(&button3, sizeof(button3));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip4) == LOW)
{
radio.write(&button4, sizeof(button4));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip5) == LOW)
{
radio.write(&button5, sizeof(button5));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip6) == LOW)
{
radio.write(&button6, sizeof(button6));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip7) == LOW)
{
radio.write(&button7, sizeof(button7));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip8) == LOW)
{
radio.write(&button8, sizeof(button8));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip9) == LOW)
{
radio.write(&button9, sizeof(button9));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
if(digitalRead(ip10) == LOW)
{
radio.write(&button10, sizeof(button10));
radio.startListening();
while(!radio.available());
radio.read(&buzzchar, sizeof(buzzchar));
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
radio.stopListening();
}
}
//-----Program Developed by R.Girish----//

Isso conclui o circuito de controle remoto.

O receptor:

O circuito receptor é composto por Arduino, que pode ser de sua escolha, 10 resistores limitadores de corrente de 330 ohm, 10 transistores e 10 relés formam o estágio de saída.

Em cada um dos 10 pinos de saída do Arduino, ele é conectado a 10 relés via resistor e transistor.

Verifique se a fonte de alimentação é capaz de fornecer pelo menos 1 A de corrente necessária para operar vários relés em um instante.

Um módulo transceptor NRF24L01 de 2,4 GHz fornece comunicação entre o controle remoto.

Diagrama de circuito:



Receptor de controle remoto de 2,4 GHz e 10 canais

 

Se você estiver confuso com o diagrama de fiação entre o módulo Arduino e NRF24L01, basta dar uma olhada na tabela ao lado do esquema, também é o mesmo para o circuito do controle remoto.

A sequência de saída e os pinos de saída são os seguintes:

PIN do Arduino: sequência de saída

PIN 2 – SAÍDA 1
PIN 3 – SAÍDA 2
PIN 4 – SAÍDA 3
PIN 5 – SAÍDA 4
PIN 6 – SAÍDA 5
PIN 7 – SAÍDA 6
PIN 8 – SAÍDA 7
PIN A0 – SAÍDA 8
PIN A1 – SAÍDA 9
PIN A2 – SAÍDA 10

Estágio de saída:

Conexões de relé de controle remoto de 2,4 GHz e 10 canais

A saída é mostrada com dois estágios de saída para simplificar o diagrama. Você deve expandi-lo para dez, se estiver usando todos os 10 canais.

Programa para o receptor:

//-----Program Developed by R.Girish----//
#include
#include
RF24 radio(9,10);
const byte address[][6] = {"00001", "00002"};
const int op1 = 2;
const int op2 = 3;
const int op3 = 4;
const int op4 = 5;
const int op5 = 6;
const int op6 = 7;
const int op7 = 8;
const int op8 = A0;
const int op9 = A1;
const int op10 = A2;
const char buzzer[32] = "buzz";
char buttonstate[32] = "";
const char button1[32] = "activate_1";
const char button2[32] = "activate_2";
const char button3[32] = "activate_3";
const char button4[32] = "activate_4";
const char button5[32] = "activate_5";
const char button6[32] = "activate_6";
const char button7[32] = "activate_7";
const char button8[32] = "activate_8";
const char button9[32] = "activate_9";
const char button10[32] = "activate_10";
boolean status1 = false;
boolean status2 = false;
boolean status3 = false;
boolean status4 = false;
boolean status5 = false;
boolean status6 = false;
boolean status7 = false;
boolean status8 = false;
boolean status9 = false;
boolean status10 = false;
void setup()
{
Serial.begin(9600);
pinMode(op1, OUTPUT);
pinMode(op2, OUTPUT);
pinMode(op3, OUTPUT);
pinMode(op4, OUTPUT);
pinMode(op5, OUTPUT);
pinMode(op6, OUTPUT);
pinMode(op7, OUTPUT);
pinMode(op8, OUTPUT);
pinMode(op9, OUTPUT);
pinMode(op10, OUTPUT);
radio.begin();
radio.openReadingPipe(1, address[1]);
radio.openWritingPipe(address[0]);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
}
void loop()
{
while(!radio.available());
radio.read(&buttonstate, sizeof(buttonstate));
Serial.println(buttonstate);
if((strcmp(buttonstate,button1) == 0) &&  status1 == false)
{
digitalWrite(op1, HIGH);
status1 = true;
radio.stopListening();
for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button1) == 0) && status1 == true) { digitalWrite(op1, LOW); status1 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button2) == 0) &&  status2 == false) { digitalWrite(op2, HIGH); status2 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button2) == 0) && status2 == true) { digitalWrite(op2, LOW); status2 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button3) == 0) &&  status3 == false) { digitalWrite(op3, HIGH); status3 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button3) == 0) && status3 == true) { digitalWrite(op3, LOW); status3 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button4) == 0) &&  status4 == false) { digitalWrite(op4, HIGH); status4 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button4) == 0) && status4 == true) { digitalWrite(op4, LOW); status4 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button5) == 0) &&  status5 == false) { digitalWrite(op5, HIGH); status5 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button5) == 0) && status5 == true) { digitalWrite(op5, LOW); status5 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button6) == 0) &&  status6 == false) { digitalWrite(op6, HIGH); status6 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button6) == 0) && status6 == true) { digitalWrite(op6, LOW); status6 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button7) == 0) &&  status7 == false) { digitalWrite(op7, HIGH); status7 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button7) == 0) && status7 == true) { digitalWrite(op7, LOW); status7 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button8) == 0) &&  status8 == false) { digitalWrite(op8, HIGH); status8 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button8) == 0) && status8 == true) { digitalWrite(op8, LOW); status8 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button9) == 0) &&  status9 == false) { digitalWrite(op9, HIGH); status9 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button9) == 0) && status9 == true) { digitalWrite(op9, LOW); status9 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button10) == 0) &&  status10 == false) { digitalWrite(op10, HIGH); status10 = true; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } else if((strcmp(buttonstate,button10) == 0) && status10 == true) { digitalWrite(op10, LOW); status10 = false; radio.stopListening(); for(int i = 0; i < 10; i++) { radio.write(&buzzer, sizeof(buzzer)); delay(10); } radio.startListening(); } } //-----Program Developed by R.Girish----//

Isso conclui o receptor.

Tem um alcance teórico de 100 metros; Pode trabalhar praticamente em torno de 30 metros ou mais, pode variar dependendo dos obstáculos sólidos entre o controle remoto e o receptor.

Como operar este projeto:

• Ligue primeiro o receiver e depois o controle remoto.

• Pressione qualquer um dos botões no controle remoto, um por um.

• Se você pressionar o primeiro botão, a saída correspondente será ativada, ou seja, a saída 1 será ativada. Se você pressionar o mesmo botão no controle remoto novamente, ele desligará a saída 1 no receptor.

• Aplica-se a todos os botões e 10 saídas.

• Desligue o controle remoto depois de usá-lo.

Se você tiver mais perguntas sobre o controle remoto de 2,4 GHz e 10 canais mencionado acima, expresse-o na seção de comentários.



FONTE

Nota: Este foi traduzido do Inglês para português (auto)

Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc...

Veja na FONTE até ser revisado o post.

Status (Não Revisado)

Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!



Veja mais

Axtudo
Axtudohttps://www.axtudo.com/
“Solidários, seremos união. Separados uns dos outros seremos pontos de vista. Juntos, alcançaremos a realização de nossos propósitos.” (Bezerra de Menezes)

Comentários

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Captcha *Limite de tempo excedido. Por favor, complete o captcha mais uma vez.

Compartilhe


Últimos Posts

Pressione os pedaços de massa enrolados com os dedos...

Vídeo - Sobremesa deliciosa: torta de maçã estilo ratatouille. Quando você ouve a palavra "ratatouille", inevitavelmente pensa no ratinho encantador do filme da Disney ou...

8 PROJETOS DE CONSTRUÇÃO BRILHANTES QUE VOCÊ TEM QUE...

#PROJETOS #CONSTRUÇÃO #BRILHANTES #VOCÊ #TEM #VER Para questões relacionadas a direitos autorais, entre em contato conosco: [email protected] 1. Rolling Unit link➤https:rollingunit.com/...

MARKETING DIGITAL | Passo a Passo p/ Ter Resultados...

Como ter resultados garantidos no marketing digital? Será que existe um jeito, um método, uma fórmula para ter resultados garantidos no Marketing Digital? Bom... Este...

WHATSAPP A VERDADE SOBRE O COMPARTILHAMENTO DE DADOSm –...

#WHATSAPP #VERDADE #SOBRE #COMPARTILHAMENTO #DADOS Me siga no Instagram! link➤http:bit.ly/canaljms Lá eu compartilho dicas especiais! Se inscreva aqui no...