Sommario:
- Passaggio 1: il montaggio
- Passaggio 2: Le Code Arduino
- Fase 3: Infos Sur Les Codes Infra-Rouge
- Passaggio 4: informazioni sui codici RX433
Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Steps
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Le but est d'afficher les codes des télécommandes du style commande de lampe, port de garage et autre fonctionnant sous 433 mhz (RX433) più aussi ceux des télécommandes infra-rouge de télévision au autre.
Su pourra donc ensuite, grâce à une autre montage, envoyer ces codes et piloter n'importe quoi !
Passaggio 1: il montaggio
Semplice, un Arduino Nano, un ricevitore a diodi infrarossi e un ricevitore 433 mhz.
Passaggio 2: Le Code Arduino
//InfraRouge
#includere
int recvPin = 11; //pin Arduino per ricevitore InfraRouge (TOSP4838)
IRrecv irrecv(recvPin);
//RX433
#includere
RCSwitch mioSwitch = RCSwitch();
decode_results risultati;
configurazione nulla ()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);//allume la LED interna lors de l'envoie InfraRouge
mySwitch.enableReceive(0); // Ricevitore RX433 (XY-MK-5V) sul pin 2 di Arduino Uno e Nano
}
// affichage des codes InfraRouge
void ircode (decode_results *results)
{
// Panasonic
if (risultati->decode_type == PANASONIC) {
Serial.print(risultati->indirizzo, HEX);
Serial.print(":");
}
Serial.print(risultati->valore, HEX);
}//vuoto
// apposizione dei codici codificati
codifica void (decode_results *results)
{
switch (risultati->decode_type) {
predefinito:
case SCONOSCIUTO: Serial.print("Inconnu"); rottura;
caso NEC: Serial.print("NEC"); rottura;
case SONY: Serial.print("SONY"); rottura;
caso RC5: Serial.print("RC5"); rottura;
caso RC6: Serial.print("RC6"); rottura;
case DISH: Serial.print("DISH"); rottura;
case SHARP: Serial.print("SHARP"); rottura;
case JVC: Serial.print("JVC"); rottura;
case SANYO: Serial.print("SANYO"); rottura;
case MITSUBISHI: Serial.print("MITSUBISHI"); rottura;
case SAMSUNG: Serial.print("SAMSUNG"); rottura;
caso LG: Serial.print("LG"); rottura;
case WHYNTER: Serial.print("WHYNTER"); rottura;
caso AIWA_RC_T501: Serial.print("AIWA_RC_T501"); rottura;
case PANASONIC: Serial.print("PANASONIC"); rottura;
case DENON: Serial.print("Denon"); rottura;
}
}
// scarica i risultati
void dumpInfo (decode_results *results)
{
// Controlla se il buffer è andato in overflow
if (risultati->overflow) {
Serial.println("Codice IR troppo lungo. Modifica IRremoteInt.he aumenta RAWBUF");
Restituzione;
}
// Mostra standard di codifica
Serial.print("Codifica: ");
codifica(risultati);
Serial.println("");
// Mostra codice e lunghezza
Serial.print("Codice: ");
ircode(risultati);
Serial.print(" (");
Serial.print(risultati->bit, DEC);
Serial.println("bit)");
}
//struttura
void dumpRaw (decode_results *results)
{
// Stampa dati grezzi
Serial.print("Tempi[");
Serial.print(risultati->rawlen-1, DEC);
Serial.println("]: ");
for (int i = 1; i rawlen; i++) {
unsigned long x = results->rawbuf * USECPERTICK;
if (!(i & 1)) { // even
Serial.print("-");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
} else { // dispari
Serial.print(" ");
Serial.print("+");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
if (i rawlen-1) Serial.print(", "); //', 'non necessario per l'ultimo
}
if (!(i % 8)) Serial.println("");
}
Serial.println(""); // Nuova linea
}
//+=============================================================================
// Scarica la struttura decode_results.
//
void dumpCode (decode_results *results)
{
// Inizio dichiarazione
Serial.print("unsigned int"); // tipo variabile
Serial.print("rawData["); // nome dell'array
Serial.print(risultati->rawlen - 1, DEC); // dimensione dell'array
Serial.print("] = {"); // Inizia la dichiarazione
// Scarica i dati
for (int i = 1; i rawlen; i++) {
Serial.print(risultati->rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print(", "); // ', ' non necessario sull'ultimo
if (!(i & 1)) Serial.print(" ");
}
// Fine dichiarazione
Serial.print("};"); //
// Commento
Serial.print(" // ");
codifica(risultati);
Serial.print(" ");
ircode(risultati);
// Nuova linea
Serial.println("");
// Ora scarica i codici "conosciuti"
if (risultati->decode_type != SCONOSCIUTO) {
// Alcuni protocolli hanno un indirizzo
if (risultati->decode_type == PANASONIC) {
Serial.print("unsigned int addr = 0x");
Serial.print(risultati->indirizzo, HEX);
Serial.println(";");
}
// Tutti i protocolli hanno dati
Serial.print("dati int senza segno = 0x");
Serial.print(risultati->valore, HEX);
Serial.println(";");
}
}
ciclo vuoto ()
/************************************************** * InfraRouge ****************************************/
{
decode_results risultati; // Da qualche parte per memorizzare i risultati
if (irrecv.decode(&results)) { // Prendi un codice IR
dumpInfo(&risultati); // Visualizza i risultati
dumpRaw(&risultati); // Emette i risultati in formato RAW
dumpCode(&risultati); // Visualizza i risultati come codice sorgente
Serial.println(""); // Riga vuota tra le voci
irrecv.resume(); // Preparati per il prossimo valore
}
/************************************************** *** RX433 *********************************************/
if (mySwitch.available())
{
int valore = mySwitch.getReceivedValue();
Serial.println("RX433");
if (valore == 0) {
Serial.print("Codage inconnu");
} altro
{
Serial.print("Registrazione");
Serial.print(mySwitch.getReceivedValue());
Serial.print(" / ");
Serial.print(mySwitch.getReceivedBitlength());
Serial.print("bit");
Serial.print("Protocollo: ");
Serial.println(mySwitch.getReceivedProtocol());
}
mySwitch.resetAvailable();
}//RX433
}//ciclo continuo
Fase 3: Infos Sur Les Codes Infra-Rouge
Il y a plusieurs protocoles:
NEC: 32 bit (dettagli protocollo)
Sony: 12 o 20 bit (dettagli del protocollo) (Comprensione dei codici del telecomando IR Sony.)
RC5: 12 bit (dettagli protocollo)
RC6: 20 o 36 bit (dettagli protocollo)
Per Sony e RC5/6, trasmissione chaque doit être répétés 3 fois !
ATTENZIONE: la librairie IRremote.h ne semble pas pouvoir envoyer des codes codes 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
Esempio: (0x devant le code) et le nombre de bits irsend.sendNEC(0xA55A38C7, 32);
Passaggio 4: informazioni sui codici RX433
L'envoie se fera avec la librairie RCSwitch.h
Esempio mySwitch.send(1975778, 24);
Su peut facilement piloter avec cela des prises commandés.
Consigliato:
Radiocomando RF 433MHZ con HT12D HT12E - Realizzare un telecomando RF utilizzando HT12E e HT12D con 433 mhz: 5 passaggi
Radiocomando RF 433MHZ con HT12D HT12E | Realizzare un telecomando RF utilizzando HT12E e HT12D con 433 mhz: In questo tutorial ti mostrerò come realizzare un telecomando RADIO utilizzando un modulo ricevitore trasmettitore 433 mhz con codifica HT12E e amp; HT12D decoder IC.In questo istruibile potrai inviare e ricevere dati utilizzando COMPONENTI molto molto economici COME: HT
Modulo RF 433MHZ - Realizza ricevitore e trasmettitore dal modulo RF 433MHZ senza alcun microcontrollore: 5 passaggi
Modulo RF 433MHZ | Crea ricevitore e trasmettitore da un modulo RF 433MHZ senza alcun microcontrollore: desideri inviare dati wireless? facilmente e senza bisogno di microcontrollore? Eccoci, in questa istruzione ti mostrerò il trasmettitore e il ricevitore rf di base pronti per essere utilizzati! In questa istruzione potrai inviare e ricevere dati usando molto ver
Automazione domestica super semplice Raspberry Pi 433MHz: 7 passaggi
Super Simple Raspberry Pi 433MHz Home Automation: questo tutorial è uno dei tanti quando si tratta di utilizzare un Raspberry Pi per controllare i dispositivi wireless in casa. Come molti altri, ti mostrerà come utilizzare una coppia trasmettitore/ricevitore economica collegata al tuo Pi per interagire con i dispositivi operanti
Spara alle luci con uno zapper NES (RF 433MHz): 6 passaggi (con immagini)
Spara alle luci con un NES Zapper (RF 433MHz): perché spegnere le luci usando un interruttore se puoi spararle con il tuo NES Zapper! Ho già costruito una luce laser in un vecchio NES Zapper rotto quando questa idea mi è venuta in mente. Mi è piaciuto di più, quindi ho sostituito la luce laser con questa. Un professionista ideale
ESP-12 Infra Red Blaster: 7 passaggi
ESP-12 Infra Red Blaster: blaster di controllo remoto a infrarossi che utilizza esp8266 Trasmette i codici di controllo remoto ricevuti dal Web supportando più dispositivi di output. Costruito in una semplice pagina Web principalmente per i test. Il normale utilizzo avviene tramite messaggi POST che possono provenire da pagine web o da IFTT