Πίνακας περιεχομένων:
- Βήμα 1: Le Montage
- Βήμα 2: Le Code Arduino
- Βήμα 3: Infos Sur Les Codes Infra-Rouge
- Βήμα 4: Πληροφορίες Sur Codes RX433
Βίντεο: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Le but est d’afficher les codes des télécommandes du style commande de lampe, porte de garage και autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.
On pourra donc ensuite, grâce à une autre montage, envoyer ces codes et piloter n’importe quoi!
Βήμα 1: Le Montage
Απλό, χωρίς Arduino Nano, une diode réceptrice infra-rouge et un récepteur 433 mhz.
Βήμα 2: Le Code Arduino
// InfraRouge
#περιλαμβάνω
int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)
IRrecv irrecv (recvPin);
// RX433
#περιλαμβάνω
RCSwitch mySwitch = RCSwitch ();
decode_results αποτελέσματα?
void setup ()
{
Serial.begin (9600);
irrecv.enableIRIn ();
irrecv.blink13 (αληθινό); // 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
void ircode (decode_results *results)
{
// Panasonic
εάν (αποτελέσματα-> decode_type == ΠΑΝΑΣΟΝΙΚΟ) {
Serial.print (αποτελέσματα-> διεύθυνση, HEX);
Serial.print (":");
}
Serial.print (αποτελέσματα-> τιμή, HEX);
}//κενός
// afficahge des codes encodés
άκυρη κωδικοποίηση (αποκωδικοποίηση_αποτελεσμάτων *αποτελεσμάτων)
{
switch (results-> decode_type) {
Προκαθορισμένο:
περίπτωση ΑΓΝΩΣΤΟ: Serial.print ("Inconnu"); Διακοπή;
θήκη NEC: Serial.print ("NEC"); Διακοπή;
θήκη SONY: Serial.print ("SONY"); Διακοπή;
θήκη RC5: Serial.print ("RC5"); Διακοπή;
θήκη RC6: Serial.print ("RC6"); Διακοπή;
θήκη DISH: Serial.print ("DISH"); Διακοπή;
θήκη SHARP: Serial.print ("SHARP"); Διακοπή;
θήκη JVC: Serial.print ("JVC"); Διακοπή;
θήκη SANYO: Serial.print ("SANYO"); Διακοπή;
θήκη MITSUBISHI: Serial.print ("MITSUBISHI"); Διακοπή;
θήκη SAMSUNG: Serial.print ("SAMSUNG"); Διακοπή;
θήκη LG: Serial.print ("LG"); Διακοπή;
θήκη ΓΙΑΤΙ: Serial.print ("WHYNTER"); Διακοπή;
θήκη AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); Διακοπή;
θήκη PANASONIC: Serial.print ("PANASONIC"); Διακοπή;
θήκη DENON: Serial.print ("Denon"); Διακοπή;
}
}
// dump les résultats
void dumpInfo (decode_results *results)
{
// Ελέγξτε εάν το buffer ξεχείλισε
αν (αποτελέσματα-> υπερχείλιση) {
Serial.println ("Ο κώδικας IR είναι πολύ μεγάλος. Επεξεργασία IRremoteInt.h και αύξηση RAWBUF");
ΕΠΙΣΤΡΟΦΗ;
}
// Εμφάνιση προτύπου κωδικοποίησης
Serial.print ("Κωδικοποίηση:");
κωδικοποίηση (αποτελέσματα).
Serial.println ("");
// Εμφάνιση κώδικα & μήκους
Serial.print ("Κωδικός:");
ircode (αποτελέσματα)?
Serial.print ("(");
Serial.print (αποτελέσματα-> bits, DEC);
Serial.println ("bits");
}
//δομή
void dumpRaw (αποκωδικοποίηση_αποτελεσμάτων *αποτελεσμάτων)
{
// Εκτύπωση ωμών δεδομένων
Serial.print ("Timing [");
Serial.print (αποτελέσματα-> rawlen-1, DEC);
Serial.println ("]:");
για (int i = 1; i rawlen; i ++) {
χωρίς υπογραφή long x = results-> rawbuf * USECPERTICK;
αν (! (i & 1)) {// ζυγό
Serial.print ("-");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
} else {// περιττός
Serial.print ("");
Serial.print ("+");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
if (i rawlen-1) Serial.print (","); // ',' δεν χρειάζεται για το τελευταίο
}
εάν (! (i % 8)) Serial.println ("");
}
Serial.println (""); // Νέα γραμμή
}
//+=============================================================================
// Απορρίψτε τη δομή decode_results.
//
void dumpCode (decode_results *results)
{
// Έναρξη δήλωσης
Serial.print ("unsigned int"); // μεταβλητός τύπος
Serial.print ("rawData ["); // όνομα πίνακα
Serial.print (αποτελέσματα-> rawlen - 1, DEC); // μέγεθος πίνακα
Serial.print ("] = {"); // Έναρξη δήλωσης
// Απόρριψη δεδομένων
για (int i = 1; i rawlen; i ++) {
Serial.print (αποτελέσματα-> rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print (","); // ',' δεν χρειάζεται στο τελευταίο
εάν (! (i & 1)) Serial.print ("");
}
// Λήξη δήλωσης
Serial.print ("};"); //
// Σχόλιο
Serial.print ("//");
κωδικοποίηση (αποτελέσματα).
Serial.print ("");
ircode (αποτελέσματα)?
// Νέα γραμμή
Serial.println ("");
// Τώρα απορρίψτε "γνωστούς" κωδικούς
εάν (αποτελέσματα-> τύπος αποκωδικοποίησης! = ΑΓΝΩΣΤΟ) {
// Ορισμένα πρωτόκολλα έχουν διεύθυνση
εάν (αποτελέσματα-> decode_type == ΠΑΝΑΣΟΝΙΚΟ) {
Serial.print ("unsigned int addr = 0x");
Serial.print (αποτελέσματα-> διεύθυνση, HEX);
Serial.println (";");
}
// Όλα τα πρωτόκολλα έχουν δεδομένα
Serial.print ("unsigned int data = 0x");
Serial.print (αποτελέσματα-> τιμή, HEX);
Serial.println (";");
}
}
κενός βρόχος ()
/********************************************* *InfraRouge ***************************************
{
decode_results αποτελέσματα? // Κάπου για να αποθηκεύσετε τα αποτελέσματα
if (irrecv.decode (& results)) {// Πιάστε έναν κωδικό IR
dumpInfo (& αποτελέσματα); // Εξάγετε τα αποτελέσματα
dumpRaw (& αποτελέσματα); // Εξάγετε τα αποτελέσματα σε μορφή RAW
dumpCode (& αποτελέσματα); // Εξάγετε τα αποτελέσματα ως πηγαίο κώδικα
Serial.println (""); // Κενή γραμμή μεταξύ καταχωρήσεων
irrecv.resume (); // Προετοιμασία για την επόμενη τιμή
}
/********************************************* *** RX433 ****************************************/
εάν (mySwitch.available ())
{
int value = mySwitch.getReceivedValue ();
Serial.println ("RX433");
εάν (τιμή == 0) {
Serial.print ("Codage inconnu");
} άλλο
{
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
}//βρόχος
Βήμα 3: Infos Sur Les Codes Infra-Rouge
Πρωτόκολλα Il y a plusieurs:
NEC: 32 bit (λεπτομέρειες πρωτοκόλλου)
Sony: 12 ή 20 bits (λεπτομέρειες πρωτοκόλλου) (Κατανόηση απομακρυσμένων κωδικών Sony IR.)
RC5: 12 bit (λεπτομέρειες πρωτοκόλλου)
RC6: 20 ή 36 bit (λεπτομέρειες πρωτοκόλλου)
Ρίξτε Sony et RC5/6, chaque transmission doit être répétés 3 fois!
ΠΡΟΣΟΧΗ: 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
Παράδειγμα: (0x devant le code) και nombre de bits irsend.sendNEC (0xA55A38C7, 32);
Βήμα 4: Πληροφορίες Sur Codes RX433
L’envoie se fera avec la librairie RCSwitch.h
Παράδειγμα mySwitch.send (1975778, 24);
On peut facilement piloter avec cela des prises commandés.
Συνιστάται:
Πώς να φτιάξετε ένα κουδούνι πόρτας χωρίς άγγιγμα, Ανίχνευση θερμοκρασίας σώματος, GY-906, 433MHz χρησιμοποιώντας Arduino: 3 βήματα
Πώς να φτιάξετε ένα κουδούνι πόρτας χωρίς άγγιγμα, Ανίχνευση θερμοκρασίας σώματος, GY-906, 433MHz χρησιμοποιώντας το Arduino: Σήμερα θα φτιάξουμε ένα κουδούνι πόρτας μη αφής, θα ανιχνεύσει τη θερμοκρασία του σώματός σας. Σε αυτήν την κατάσταση, είναι πολύ σημαντικό να γνωρίζουμε εάν η θερμοκρασία του σώματος είναι υψηλότερη από την κανονική, όταν κάποιος κοροϊδεύει. Αυτό το έργο θα δείχνει Κόκκινο φως αν εντοπίσει οποιαδήποτε
DIY Walkie-Talkie με γενικές μονάδες RF 433MHz: 4 βήματα
DIY Walkie-Talkie With Generic 433MHz RF Modules: Σε αυτό το έργο θα σας δείξω πώς να χρησιμοποιείτε γενικές μονάδες RF 433MHz από το Ebay για να δημιουργήσετε ένα λειτουργικό Walkie-Talkie. Αυτό σημαίνει ότι θα συγκρίνουμε διαφορετικές μονάδες RF, θα μάθουμε λίγο για έναν ενισχυτή κλάσης d και τελικά θα κατασκευάσουμε το Walkie-Talkie
INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: 5 βήματα
INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: Το παρόν PROJECT περιγράφει το σχεδιασμό και την εφαρμογή ενός υπέρυθρου (IR) τηλεχειριζόμενου RoboCar που μπορεί να χρησιμοποιηθεί για διάφορες αυτόματες μη επανδρωμένες εφαρμογές ελέγχου. Έχω σχεδιάσει τηλεχειριζόμενο RoboCar (κίνηση αριστερά-δεξιά/εμπρός-πίσω). Τ
Ενότητα RF 433MHZ - Δημιουργία δέκτη και πομπού από μονάδα 433MHZ RF χωρίς μικροελεγκτή: 5 βήματα
Ενότητα RF 433MHZ | Δημιουργία δέκτη και πομπού από μονάδα 433MHZ RF χωρίς μικροελεγκτή: Θα θέλατε να στείλετε ασύρματα δεδομένα; εύκολα και χωρίς να απαιτείται μικροελεγκτής; Εδώ πάμε, σε αυτό το εκπαιδευτικό θα σας δείξω τον βασικό πομπό και δέκτη rf έτοιμο για χρήση! Σε αυτό το εκπαιδευτικό θα μπορείτε να στέλνετε και να λαμβάνετε δεδομένα χρησιμοποιώντας πολύ ver
ESP-12 Infra Red Blaster: 7 Βήματα
ESP-12 Infra Red Blaster: Infra Red τηλεχειριστήριο blaster χρησιμοποιώντας esp8266 Μεταδίδει κωδικούς τηλεχειριστηρίου που λαμβάνονται από το Web υποστηρίζοντας πολλαπλές συσκευές εξόδου. Χτισμένο σε απλή ιστοσελίδα κυρίως για δοκιμή. Η κανονική χρήση γίνεται μέσω μηνυμάτων POST που μπορούν να προέρχονται από ιστοσελίδες ή από IFTT