Table des matières:
- Étape 1: Le Montage
- Étape 2: Le Code Arduino
- Étape 3: Infos Sur Les Codes Infra-Rouge
- Etape 4: Infos Sur Codes RX433
Vidéo: Récupérer Les Codes Infra-Rouge Et 433mhz : 4 Étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
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 celles des télécommandes infra-rouge de la télévision au autre.
On pourra donc ensuite, grâce à un autre montage, envoyer ces codes et piloter n'importe quoi !
Étape 1: Le Montage
Simple, un Arduino Nano, une diode réceptrice infra-rouge et un récepteur 433 mhz.
Étape 2: Le Code Arduino
//InfraRouge
#comprendre
int recvPin = 11; //pin Arduino pour récepteur InfraRouge (TOSP4838)
IRrecv irrecv(recvPin);
//RX433
#comprendre
RCSwitch monSwitch = RCSwitch();
decode_results résultats;
void setup ()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);//allume la LED interne lors de l'envoie InfraRouge
mySwitch.enableReceive(0); // Récepteur RX433 (XY-MK-5V) sur pin 2 de Arduino Uno et Nano
}
// affichage des codes InfraRouge
annuler l'ircode (decode_results *results)
{
// Panasonic
if (results->decode_type == PANASONIC) {
Serial.print(résultats->adresse, HEX);
Serial.print(":");
}
Serial.print(résultats->valeur, HEX);
}//annuler
// afficahge des codes encodés
encodage vide (decode_results *results)
{
switch (results->decode_type) {
défaut:
case INCONNU: Serial.print("Inconnu"); Pause;
case NEC: Serial.print("NEC"); Pause;
case SONY: Serial.print("SONY"); Pause;
case RC5: Serial.print("RC5"); Pause;
case RC6: Serial.print("RC6"); Pause;
case DISH: Serial.print("DISH"); Pause;
case SHARP: Serial.print("SHARP"); Pause;
case JVC: Serial.print("JVC"); Pause;
case SANYO: Serial.print("SANYO"); Pause;
case MITSUBISHI: Serial.print("MITSUBISHI"); Pause;
case SAMSUNG: Serial.print("SAMSUNG"); Pause;
cas LG: Serial.print("LG"); Pause;
case POURQUOI: Serial.print("WHYNTER"); Pause;
case AIWA_RC_T501: Serial.print("AIWA_RC_T501"); Pause;
case PANASONIC: Serial.print("PANASONIC"); Pause;
case DENON: Serial.print("Denon"); Pause;
}
}
// vidage des résultats
void dumpInfo (decode_results *results)
{
// Vérifie si le buffer a débordé
if (résultats-> débordement) {
Serial.println("Code IR trop long. Modifiez IRremoteInt.h et augmentez RAWBUF");
revenir;
}
// Afficher la norme d'encodage
Serial.print("Encodage: ");
encodage(résultats);
Serial.println("");
// Afficher le code et la longueur
Serial.print("Code: ");
ircode(résultats);
Serial.print(" (");
Serial.print(results->bits, DEC);
Serial.println(" bits)");
}
//structure
void dumpRaw (decode_results *results)
{
// Imprimer les données brutes
Serial.print("Timing[");
Serial.print(results-> rawlen-1, DEC);
Serial.println("]: ");
pour (int i = 1; i rawlen; i++) {
non signé long x = résultats->rawbuf * USECPERTICK;
if (!(i & 1)) { // pair
Serial.print("-");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
} else { // impair
Serial.print(" ");
Serial.print("+");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
if (i rawlen-1) Serial.print(", "); //', ' pas nécessaire pour le dernier
}
if (!(i % 8)) Serial.println("");
}
Serial.println(""); // Nouvelle ligne
}
//+=============================================================================
// Videz la structure decode_results.
//
void dumpCode (decode_results *results)
{
// Début de la déclaration
Serial.print("unsigned int "); // type de variable
Serial.print("rawData["); // nom du tableau
Serial.print(results-> rawlen - 1, DEC); // taille du tableau
Serial.print("] = {"); // Début de la déclaration
// Vider les données
pour (int i = 1; i rawlen; i++) {
Serial.print(results->rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print(", "); // ', ' pas nécessaire sur le dernier
if (!(i & 1)) Serial.print(" ");
}
// Fin de la déclaration
Serial.print("};"); //
// Commenter
Serial.print(" // ");
encodage(résultats);
Serial.print(" ");
ircode(résultats);
// Nouvelle ligne
Serial.println("");
// Maintenant, videz les codes "connus"
if (results->decode_type != UNKNOWN) {
// Certains protocoles ont une adresse
if (results->decode_type == PANASONIC) {
Serial.print("unsigned int addr = 0x");
Serial.print(résultats->adresse, HEX);
Serial.println(";");
}
// Tous les protocoles ont des données
Serial.print("données entières non signées = 0x");
Serial.print(résultats->valeur, HEX);
Serial.println(";");
}
}
boucle vide ()
/****************************************************** * InfraRouge ******************************************/
{
decode_results résultats; // Quelque part pour stocker les résultats
if (irrecv.decode(&results)) { // Saisir un code IR
dumpInfo(&results); // Sortir les résultats
dumpRaw(&results); // Sortir les résultats au format RAW
dumpCode(&results); // Sortir les résultats sous forme de code source
Serial.println(""); // Ligne vide entre les entrées
irrecv.resume(); // Préparer la prochaine valeur
}
/****************************************************** *** RX433 **************************************************/
if (mySwitch.available())
{
valeur int = mySwitch.getReceivedValue();
Serial.println("RX433");
si (valeur == 0) {
Serial.print("Code inconnu");
} autre
{
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
}//boucle
Étape 3: Infos Sur Les Codes Infra-Rouge
Il y a plusieurs protocoles:
NEC: 32 bits (détails du protocole)
Sony: 12 ou 20 bits (détails du protocole) (Comprendre les codes des télécommandes IR Sony.)
RC5: 12 bits (détails du protocole)
RC6: 20 ou 36 bits (détails du protocole)
Pour Sony et RC5/6, chaque transmission doit être répétée 3 fois !
ATTENTION: la librairie IRremote.h ne semble pas pouvoir envoyer des codes codés sur plus de 32bits. Les RC6, 36 doivent donc être envoyés en raw, qui prennent plus de taille mémoire.
L'envoie des codes se fera avec la librairie IRremote.h
Exemple: (0x devant le code) et le nombre de bits irsend.sendNEC(0xA55A38C7, 32);
Etape 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ées.
Conseillé:
Routeur WIFI sécurisé - Protection et confidentialité contre les virus, les logiciels malveillants et les ransomwares : 5 étapes
Routeur WIFI sécurisé - Protection et confidentialité contre les virus, les logiciels malveillants et les ransomwares : Protection des points de terminaison à faible coût à l'aide de RaspBerryPI 4 et de l'open source. Bloque les éléments suivants AVANT qu'ils n'atteignent votre ordinateur ou votre téléphone : via la publicité
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes
Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous
Comment récupérer les contacts perdus de l'iPhone 5 ? : 3 étapes
Comment récupérer les contacts perdus de l'iPhone 5 ? : La semaine dernière, lorsque j'essayais de mettre à niveau mon iPhone 5 vers iOS 9.2.1, quelque chose de mal est arrivé à l'iPhone. J'ai perdu tous mes contacts sur iphone 5 ! C'est une catastrophe ! Parce que j'ai enregistré de nombreuses informations de contacts importants sur l'iphone, y compris certains partenaires commerciaux
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop
Contournez les systèmes de filtrage sur les PC sans les insécurités de TOR (le routeur Onion) ou de tunnel Internet via SSH : 5 étapes
Contourner les systèmes de filtrage sur PC sans les insécurités de TOR (le routeur Onion) ou de tunneling Internet via SSH: Après avoir lu un article sur le routeur onion (tor) qui vous permet de contourner la censure sans être suivi, j'ai été étonné. Ensuite, j'ai lu que ce n'était pas très sécurisé car certains nœuds pouvaient saisir de fausses données et ramener les mauvaises pages. J'ai pensé à moi