Récepteur IR 5V ---> CCV GPIO 11 ---> DANS GND ---> GND Installer la bibliothèque Vous pouvez continuer et installer la bibliothèque IRremote dans l'IDE Arduino. Cette bibliothèque vous aidera à générer des signaux IR conformes aux normes. Ouvrez l'IDE Arduino, sélectionnez Outils -> Library Manager, recherchez IRremote et installez-le. Écrire un code infrarouge de réception #include // Defines the pins to which the IR receiver sensor is connected const int RECV_PIN = 11; //Creating IR Receiving Objects IRrecv irrecv(RECV_PIN); // Create the decoding result object decode_results résultats ; configuration vide() { // Initialize serial communications Série.begin(115200); // Start IR reception irrecv.enableIRIn(); Serial.println("Récepteur IR prêt"); } boucle vide() { if (irrecv.decode(&results)) { // IR signal detected Serial.print("Code IR reçu : "); // Print the received IR signal Serial.println(results.value, HEX); // Receive the next signal irrecv.resume(); } retard(100); } Copier le code ✔ Copié ! Cliquez sur Outils -> Port pour graver. La gravure est terminée, commencez à envoyer des signaux infrarouges Cliquez sur Outils -> Serial Monitor pour surveiller le signal IR. Étape 2 : Explication du projet de contrôle LED Après avoir compris les fonctions du code et suivi le didacticiel des boutons, nous pouvons maintenant combiner les opérations des boutons avec le contrôle des LED. La logique est simple : Appuyez sur le bouton A (StickCP2.BtnA.wasPressed()) : Allumez la LED à l'aide de StickCP2.Power.setLed(1);. Appuyez sur le bouton B (StickCP2.BtnB.wasPressed()) : éteignez la LED à l'aide de StickCP2.Power.setLed(0);. Nous implémentons cela en utilisant des conditions if pour détecter le moment où le bouton A ou le bouton B est enfoncé. Cela fournit un moyen réactif d’activer la LED à l’aide de simples interactions de boutons, ce qui en fait un projet facile à démarrer.   M5Stack Plus2 implémente des fonctions de contrôle à distance L'exemple de code émet un signal infrarouge via la LED IR lorsque le bouton du M5Stack Plus2 est enfoncé, simulant le fonctionnement d'une télécommande. Vous pouvez modifier le numéro du signal dans IrSender.sendNEC() pour contrôler différents appareils selon vos besoins. #définir DISABLE_CODE_FOR_RECEIVER #define SEND_PWM_BY_TIMER #define IR_TX_PIN 19 #include "M5StickCPlus2.h" #include configuration vide() { auto cfg = M5.config(); //To understand the underlying logic of the initialization with begin(), you can refer to the Dependent Library. StickCP2.begin(cfg); //Display rotation directions StickCP2.Display.setRotation(1); // The color of the text displayed on the screen. StickCP2.Display.setTextColor(VERT); //Text alignment middle_center means aligning the center of the text to the specified coordinate position. StickCP2.Display.setTextDatum(middle_center); //Font Styles StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24); //Font size StickCP2.Display.setTextSize(1); IrSender.begin(DISABLE_LED_FEEDBACK); // Commencez par IR_SEND_PIN comme code PIN d'envoi IrSender.setSendPin(IR_TX_PIN);//Paramètres de la broche de transmission du signal infrarouge } boucle vide() { si (StickCP2.BtnA.wasPressed()) { // Send IR code for power button IrSender.sendNEC(0x25AE7EE3, 32); // Exemple de code NEC pour TV (à remplacer par le code réel) StickCP2.Display.effacer(); StickCP2.Display.drawString("Signal d'alimentation envoyé", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); retard (5000); // Envoyé toutes les 5 secondes } si (StickCP2.BtnB.wasPressed()) { // Send IR code for volume up button //IrSender.sendNEC(25AE7EE3, 32); // Send volume up signal StickCP2.Display.clear(); StickCP2.Display.drawString("Augmentation du volume envoyé", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); delay(5000); // Sent every 5 seconds } StickCP2.update(); // Mettre à jour l'état du bouton } Copier le code ✔ Copié !">
Aller au contenu

+49 1626571232

info@openelab.io

🚀 Livraison gratuite à partir de 50€ dans l'UE / 80€ dans le monde entier

FAQ

Projet M5Stack Beginner : implémenter une fonction de contrôle à distance

18 Nov 2024 0 commentaires
M5StickC Plus2 est une petite carte de développement basée sur une puce ESP32 avec de nombreuses fonctions puissantes, y compris Bluetooth, Wi-Fi, écran OLED, écran tactile, etc.. Grâce à elle, nous pouvons facilement réaliser la fonction de contrôle à distance pour contrôler d'autres appareils ou électroménagers. Cet article vous montrera comment créer une télécommande simple en utilisant M5StickC Plus2 et introduira la structure et l'implémentation du code du projet.
 

Fonctions des LED expliquées

Le M5StickC Plus2 est équipé d'une LED d'alimentation programmable qui peut être codée pour un simple contrôle marche/arrêt ou des effets clignotants. La LED peut être utilisée pour indiquer l'état de l'alimentation et, en conjonction avec d'autres modules de capteurs, comme indication de l'état de l'appareil. La programmabilité de cette LED offre une large gamme de scénarios d'application pour des rappels intelligents ou des systèmes d'alarme simples.

 

Exemple d'analyse

StickCP2.Power.setLed(1) est utilisé pour allumer le voyant d'alimentation du M5StickC Plus2.

En conséquence, StickCP2.Power.setLed(0) est utilisé pour éteindre la LED. Cette fonction est souvent utilisée pour indiquer l'état, par exemple si l'alimentation est allumée ou éteinte, si l'appareil fonctionne correctement ou pour effectuer une simple indication de signalisation.

configuration vide() {
    // Retrieves device configuration.
    auto cfg = M5.config();
    // Initializes the M5StickC Plus2.
    StickCP2.begin(cfg);
    // Rotates the display
    StickCP2.Display.setRotation(1);
    // sets text color to green
    StickCP2.Display.setTextColor(VERT);
    // centers the text
    StickCP2.Display.setTextDatum(middle_center);
    // uses the "Orbitron_Light_24" font
    StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);
    StickCP2.Display.setTextSize(1);
    // Displays the message "Power LED" at the screen’s center.
    StickCP2.Display.drawString("LED d'alimentation", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);
}

boucle vide() {
    // inside power red led control
    //Turns on the power LED.
    StickCP2.Power.setLed(1);
    // Waits 1 second.
    délai(1000);
    // Turns off the LED.
    StickCP2.Power.setLed(0);
    //Waits 1 second.
    delay(1000);
}

✔ Copié !

 

Pour une explication de la fonction infrarouge, voir : Guide du débutant M5Stack : capacités infrarouges PLUS2

  

Réalisation de la fonction de télécommande

Étape 1 : Reconnaissance du signal infrarouge de la télécommande

Dans cette méthode, le M5Stack Plus2 agit comme une télécommande, envoyant des signaux infrarouges à d'autres appareils (par exemple, téléviseurs, climatiseurs, etc.) via un module émetteur infrarouge (LED IR).
  1. Matériel requis :
  1. Connexions matérielles :
Arduino UNO ---> Récepteur IR
5V ---> CCV
GPIO 11 ---> DANS
GND ---> GND

  1. Installer la bibliothèque
  • Vous pouvez continuer et installer la bibliothèque IRremote dans l'IDE Arduino. Cette bibliothèque vous aidera à générer des signaux IR conformes aux normes.
  • Ouvrez l'IDE Arduino, sélectionnez Outils -> Library Manager, recherchez IRremote et installez-le.
  • Écrire un code infrarouge de réception
#include 

// Defines the pins to which the IR receiver sensor is connected
const int RECV_PIN = 11; 
//Creating IR Receiving Objects
IRrecv irrecv(RECV_PIN); 
// Create the decoding result object
decode_results résultats ; 

configuration vide() {
  // Initialize serial communications
  Série.begin(115200); 
  // Start IR reception
  irrecv.enableIRIn(); 
  Serial.println("Récepteur IR prêt");
}

boucle vide() {
  if (irrecv.decode(&results)) { 
    // IR signal detected
    Serial.print("Code IR reçu : ");
    // Print the received IR signal
    Serial.println(results.value, HEX); 
    // Receive the next signal
    irrecv.resume(); 
  }
  retard(100);
}

✔ Copié !
  • Cliquez sur Outils -> Port pour graver.

  • La gravure est terminée, commencez à envoyer des signaux infrarouges
  • Cliquez sur Outils -> Serial Monitor pour surveiller le signal IR.

Étape 2 : Explication du projet de contrôle LED

Après avoir compris les fonctions du code et suivi le didacticiel des boutons, nous pouvons maintenant combiner les opérations des boutons avec le contrôle des LED. La logique est simple :
  1. Appuyez sur le bouton A (StickCP2.BtnA.wasPressed()) : Allumez la LED à l'aide de StickCP2.Power.setLed(1);.
  2. Appuyez sur le bouton B (StickCP2.BtnB.wasPressed()) : éteignez la LED à l'aide de StickCP2.Power.setLed(0);.
Nous implémentons cela en utilisant des conditions if pour détecter le moment où le bouton A ou le bouton B est enfoncé. Cela fournit un moyen réactif d’activer la LED à l’aide de simples interactions de boutons, ce qui en fait un projet facile à démarrer.

 

M5Stack Plus2 implémente des fonctions de contrôle à distance

L'exemple de code émet un signal infrarouge via la LED IR lorsque le bouton du M5Stack Plus2 est enfoncé, simulant le fonctionnement d'une télécommande. Vous pouvez modifier le numéro du signal dans IrSender.sendNEC() pour contrôler différents appareils selon vos besoins.

#définir DISABLE_CODE_FOR_RECEIVER 
#define SEND_PWM_BY_TIMER
#define IR_TX_PIN 19
#include "M5StickCPlus2.h"
#include  

configuration vide() {

    auto cfg = M5.config();
    
    //To understand the underlying logic of the initialization with begin(), you can refer to the Dependent Library.
    StickCP2.begin(cfg);

      //Display rotation directions
    StickCP2.Display.setRotation(1);

    //  The color of the text displayed on the screen.
    StickCP2.Display.setTextColor(VERT);

    //Text alignment middle_center means aligning the center of the text to the specified coordinate position.
    StickCP2.Display.setTextDatum(middle_center);

    //Font Styles
    StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);

    //Font size
    StickCP2.Display.setTextSize(1);

    IrSender.begin(DISABLE_LED_FEEDBACK);  // Commencez par IR_SEND_PIN comme code PIN d'envoi
    IrSender.setSendPin(IR_TX_PIN);//Paramètres de la broche de transmission du signal infrarouge
}

boucle vide() {

  si (StickCP2.BtnA.wasPressed()) {
    // Send IR code for power button
     IrSender.sendNEC(0x25AE7EE3, 32);  // Exemple de code NEC pour TV (à remplacer par le code réel)
     StickCP2.Display.effacer();
     StickCP2.Display.drawString("Signal d'alimentation envoyé", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
     retard (5000);  // Envoyé toutes les 5 secondes
  }
  
  si (StickCP2.BtnB.wasPressed()) {
    // Send IR code for volume up button
    //IrSender.sendNEC(25AE7EE3, 32);  // Send volume up signal
    StickCP2.Display.clear();
    StickCP2.Display.drawString("Augmentation du volume envoyé", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
    delay(5000);  // Sent every 5 seconds
  }

  StickCP2.update();  // Mettre à jour l'état du bouton
  
}

✔ Copié !
Article précédent
Prochain article

laissez un commentaire

Tous les commentaires du blog sont vérifiés avant la publication

Quelqu'un a récemment acheté un

Merci pour votre subscription!

Cet email a été enregistré !

Achetez le look

Choisissez les options

Modifier l'option
Notification de retour en stock
this is just a warning
Se connecter
Panier
0 articles
RuffRuff App RuffRuff App by Tsun