Índice:
- Etapa 1: Le Montage
- Etapa 2: Le Code Arduino
- Etapa 3: Infos Sur Les Codes Infra-Rouge
- Etapa 4: Infos Sur Codes RX433
Vídeo: Récupérer Les Codes Infra-Rouge Et 433 MHz: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Le but est d'afficher les codes des télécommandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.
Em pourra donc ensuite, grâce à une autre montage, envoyer ces codes et piloter n’importe quoi!
Etapa 1: Le Montage
Simples, um Arduino Nano, um réceptrice de diodo infravermelho e um récepteur 433 mhz.
Etapa 2: Le Code Arduino
// InfraRouge
#incluir
int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)
IRrecv irrecv (recvPin);
// RX433
#incluir
RCSwitch mySwitch = RCSwitch ();
resultados de decode_results;
void setup ()
{
Serial.begin (9600);
irrecv.enableIRIn ();
irrecv.blink13 (true); // alocar o LED interno lors de l'envoie InfraRouge
mySwitch.enableReceive (0); // Récepteur RX433 (XY-MK-5V) no pino 2 de Arduino Uno et Nano
}
// affichage des codes InfraRouge
void ircode (decode_results * results)
{
// Panasonic
if (resultados-> decode_type == PANASONIC) {
Serial.print (resultados-> endereço, HEX);
Serial.print (":");
}
Serial.print (resultados-> valor, HEX);
}//vazio
// afficahge des codes encodés
codificação vazia (decode_results * resultados)
{
switch (resultados-> decode_type) {
predefinição:
case UNKNOWN: Serial.print ("Inconnu"); pausa;
case NEC: Serial.print ("NEC"); pausa;
case SONY: Serial.print ("SONY"); pausa;
caso RC5: Serial.print ("RC5"); pausa;
caso RC6: Serial.print ("RC6"); pausa;
case DISH: Serial.print ("DISH"); pausa;
case SHARP: Serial.print ("SHARP"); pausa;
case JVC: Serial.print ("JVC"); pausa;
case SANYO: Serial.print ("SANYO"); pausa;
case MITSUBISHI: Serial.print ("MITSUBISHI"); pausa;
caso SAMSUNG: Serial.print ("SAMSUNG"); pausa;
caso LG: Serial.print ("LG"); pausa;
case WHYNTER: Serial.print ("WHYNTER"); pausa;
case AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); pausa;
case PANASONIC: Serial.print ("PANASONIC"); pausa;
case DENON: Serial.print ("Denon"); pausa;
}
}
// dump les résultats
void dumpInfo (decode_results * resultados)
{
// Verifique se o buffer estourou
if (resultados-> estouro) {
Serial.println ("Código IR muito longo. Edite IRremoteInt.h e aumente RAWBUF");
Retorna;
}
// Mostrar padrão de codificação
Serial.print ("Codificação:");
codificação (resultados);
Serial.println ("");
// Mostrar código e comprimento
Serial.print ("Código:");
ircode (resultados);
Serial.print ("(");
Serial.print (resultados-> bits, DEC);
Serial.println ("bits)");
}
//estrutura
void dumpRaw (decode_results * results)
{
// Imprimir dados brutos
Serial.print ("Tempo [");
Serial.print (resultados-> rawlen-1, DEC);
Serial.println ("]:");
para (int i = 1; i rawlen; i ++) {
longo sem sinal x = resultados-> rawbuf * USECPERTICK;
if (! (i & 1)) {// par
Serial.print ("-");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
} else {// ímpar
Serial.print ("");
Serial.print ("+");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
if (i rawlen-1) Serial.print (","); // ',' não é necessário para o último
}
if (! (i% 8)) Serial.println ("");
}
Serial.println (""); // Nova linha
}
//+=============================================================================
// Remova a estrutura decode_results.
//
void dumpCode (decode_results * results)
{
// Iniciar declaração
Serial.print ("unsigned int"); // tipo de variável
Serial.print ("rawData ["); // nome da matriz
Serial.print (resultados-> rawlen - 1, DEC); // tamanho da matriz
Serial.print ("] = {"); // Iniciar declaração
// Dump data
para (int i = 1; i rawlen; i ++) {
Serial.print (resultados-> rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print (","); // ',' não é necessário no último
if (! (i & 1)) Serial.print ("");
}
// Fim da declaração
Serial.print ("};"); //
// Comente
Serial.print ("//");
codificação (resultados);
Serial.print ("");
ircode (resultados);
// Nova linha
Serial.println ("");
// Agora descarte os códigos "conhecidos"
if (resultados-> decode_type! = UNKNOWN) {
// Alguns protocolos têm um endereço
if (resultados-> decode_type == PANASONIC) {
Serial.print ("unsigned int addr = 0x");
Serial.print (resultados-> endereço, HEX);
Serial.println (";");
}
// Todos os protocolos possuem dados
Serial.print ("dados int não assinados = 0x");
Serial.print (resultados-> valor, HEX);
Serial.println (";");
}
}
void loop ()
/ ************************************************** * InfraRouge ******************************************* /
{
resultados de decode_results; // Algum lugar para armazenar os resultados
if (irrecv.decode (& results)) {// Obtenha um código IR
dumpInfo (& resultados); // Envie os resultados
dumpRaw (& resultados); // Produz os resultados em formato RAW
dumpCode (& resultados); // Envie os resultados como código-fonte
Serial.println (""); // Linha em branco entre as entradas
irrecv.resume (); // Prepare-se para o próximo valor
}
/ *************************************************** *** RX433 ******************************************** /
if (mySwitch.available ())
{
valor int = mySwitch.getReceivedValue ();
Serial.println ("RX433");
if (valor == 0) {
Serial.print ("Codage inconnu");
} outro
{
Serial.print ("Reçu");
Serial.print (mySwitch.getReceivedValue ());
Serial.print ("/");
Serial.print (mySwitch.getReceivedBitlength ());
Serial.print ("bit");
Serial.print ("Protocole:");
Serial.println (mySwitch.getReceivedProtocol ());
}
mySwitch.resetAvailable ();
} // RX433
}//ciclo
Etapa 3: Infos Sur Les Codes Infra-Rouge
Il y a plusieurs protocoles:
NEC: 32 bits (detalhes do protocolo)
Sony: 12 ou 20 bits (detalhes do protocolo) (Compreendendo os códigos remotos IR da Sony.)
RC5: 12 bits (detalhes do protocolo)
RC6: 20 ou 36 bits (detalhes do protocolo)
Despeje Sony e RC5 / 6, chaque transmissão doit être répétés 3 fois!
ATENÇÃO: la librairie IRremote.h ne semble pas pouvoir envoyer des codes codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, qui prennent plus de taille mémoire.
L'envoie des codes se fera avec la librairie IRremote.h
Exemplo: (0x devant le code) et le nombre de bits irsend.sendNEC (0xA55A38C7, 32);
Etapa 4: Infos Sur Codes RX433
L'envoie se fera avec la librairie RCSwitch.h
Exemple mySwitch.send (1975778, 24);
On peut facilement piloter avec cela des prises commandés.
Recomendado:
Como fazer uma campainha sem toque, detecção de temperatura corporal, GY-906, 433 MHz usando Arduino: 3 etapas
Como fazer uma campainha sem toque, detecção da temperatura corporal, GY-906, 433 MHz usando o Arduino: Hoje faremos uma campainha sem toque, ela detectará a temperatura do seu corpo. Na situação atual, é muito importante saber se a temperatura corporal de alguém está mais alta do que o normal, quando alguém está chocando. Este projeto mostrará luz vermelha se detectar alguma
Walkie-Talkie Faça Você Mesmo com Módulos de RF de 433 MHz genéricos: 4 etapas
DIY Walkie-Talkie com módulos RF de 433 MHz genéricos: Neste projeto, vou mostrar como usar módulos de RF de 433 MHz genéricos do Ebay para criar um Walkie-Talkie funcional. Isso significa que compararemos diferentes módulos de RF, aprenderemos um pouco sobre um amplificador classe D e, finalmente, construiremos o Walkie-Talkie
Sensor de temperatura e umidade Arduino alimentado por energia solar como sensor Oregon de 433 mhz: 6 etapas
Sensor de temperatura e umidade Arduino alimentado por energia solar como sensor Oregon de 433 mhz: esta é a construção de um sensor de temperatura e umidade alimentado por energia solar. O sensor emula um sensor Oregon de 433 mhz e é visível no gateway Telldus Net.O que você precisa: 1x " 10-LED Sensor de movimento de energia solar " do Ebay. Certifique-se de que diz bateria de 3,7 V
Rádio-controle RF 433MHZ usando HT12D HT12E - Fazendo um controle remoto Rf usando HT12E e HT12D com 433 MHz: 5 etapas
Rádio-controle RF 433MHZ usando HT12D HT12E | Fazendo um controle remoto Rf usando HT12E e HT12D com 433 mhz: Neste instrutível, vou mostrar como fazer um controle remoto RADIO usando o módulo receptor transmissor 433 mhz com codificação HT12E & IC decodificador HT12D. Neste instrutível, você poderá enviar e receber dados usando COMPONENTES muito baratos, COMO: HT
Rede de sensores sem fio de baixo custo na banda de 433 MHz: 5 etapas (com imagens)
Rede de sensores sem fio de baixo custo na banda de 433 MHz: Muito obrigado a Teresa Rajba por gentilmente me dar sua aceitação em usar os dados de suas publicações neste artigo. * Na imagem acima - as cinco unidades de sensor remetente que usei para testar o que são sensores sem fio redes? Uma definição simples seria