Search Code

ESP32 Lisolo 29/55 - Kotanga bokonzi ya IR ya mosika na ESP32 | SunFounder's ESP32 IoT Learning kit

ESP32 Lisolo 29/55 - Kotanga bokonzi ya IR ya mosika na ESP32 | SunFounder's ESP32 IoT Learning kit

Na boyekoli oyo, tokoyekola ndenge ya koyeba bilembo ya infrarouge (IR) na kosalela module ya ESP32 mpe récepteur ya IR oyo ekokani. Tango tokeyi na bouton na télécommande, ESP32 ekoyeba signal yango mpe ekosala ba actions ya sikisiki, lokola kobetisa buzzer mpo na ba press ya ba touches ya particulier. Projet oyo ezali malamu mpo na ba oyo balingi kosangisa ba capacités ya télécommande na ba applications na bango ya ESP32 (na vidéo na 02:15).

télécommande

ESP32 ezali microcontrôleur ya makasi oyo esangisi ba capacités ya Wi-Fi mpe Bluetooth, oyo esalaka ete ekoka mpo na ba applications ebele ya IoT. Na projet oyo, tokosalela récepteur ya IR mpo na koyeba ba signaux oyo ewutaka na télécommande. Ba press ya ba touches ekosalema na code, oyo ekopesa biso nzela ya kosala ba actions kolanda ba commandes oyo tozwaki.

Matériel oyo elobami

Ba composants ya minene mpo na projet oyo ezali microcontrôleur ya ESP32, module ya récepteur ya IR, mpe buzzer. ESP32 ezali lokola motó ya opération, oyo esalelaka ba signaux oyo ewutaka na récepteur ya IR. Récepteur ya IR eyebaka ba signaux ya infrarouge oyo ewutaka na télécommande mpe ebongolaka yango na ba signaux ya électrique oyo ESP32 ekoki kososola.

ir_receiver_sl838

Récepteur ya IR mingi mpenza ezali na ba pins misato: VCC (puissance), GND (terre), mpe OUT (signal). Pin ya VCC esangisami na source ya puissance (3.3V to 5V), wana GND esangisami na terre. Pin ya OUT etindaka signal oyo ebongolami na ESP32, oyo ekoki kosalelama mpo na kotrigger ba actions ndenge na ndenge, lokola kopelisa buzzer tango key ya spécifique epresami.

Détails ya Datasheet

Fabricant Sharp
Numéro ya partie GP1UXC41
Tension ya Logic/IO 3.3 - 5.0 V
Tension ya alimentation 3.3 V (typ.)
Courant ya sortie (na canal) 20 mA (max)
Courant ya pointe (na canal) 50 mA (max)
Guidance ya fréquence PWM 38 kHz
Seuils ya logique ya entrée 0.3 Vcc (élevé), 0.2 Vcc (faible)
Chute ya tension / RDS(on) / saturation 0.5 V (max)
Limites thermiques 85 °C (max)
Paquet TO-92
Notes / variantes Ezali na ba configurations ebele

 

  • Kokamba ete alimentation ya malamu ezala mpo na koboya kobebisa.
  • Salela ba fils ya mokuse mpo na kokitisa bokabwani ya signal.
  • Vérifier orientation ya récepteur ya IR liboso ya kosangisa.
  • Kokamba ete batterie ya télécommande ezali kosala malamu.
  • Salela ba résistances ya pull-up soki esengeli mpo na stabilité.

Ba Instructions ya Câblage

ESP32-29-IR-remote-wiring

Mpo na kosangisa récepteur ya IR na ESP32, banda na koyeba ba pins misato na récepteur ya IR: VCC, GND, mpe OUT. Sangisa pin ya VCC na source ya puissance ya 3.3V na ESP32. Na sima, sangisa pin ya GND na moko ya ba pins ya terre (GND) na ESP32. Na suka, sangisa pin ya OUT na pin ya GPIO 14 na ESP32, oyo eponami mpo na récepteur ya IR na code.

ESP32-29-IR-remote-schematic

Tango ba connexions esili, kamba ete câblage ezali ya makasi. Soki ozali kosalela breadboard, kotisa récepteur ya IR ndenge ete côté plat ezali kotala yo mpe bosembo ezali na côté opposé. Orientation oyo ekosalisa yo koyeba ba pins na ndenge ya malamu. Kamba ete ba connexions esili vérifier liboso ya kopelisa ESP32.

Ba Exemples ya Code & Explication

IR_receiver_lib

installer bibliothèque ya IRremoteESP8266 na David Conran, Sebastien.

Na code, tosali définition ya pin ya récepteur ya IR na kosalela constante IR_RECEIVE_PIN, oyo esili kokatama na 14. Tosali mpe création ya instance ya IRrecv mpo na koyamba ba signaux ya IR.

const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

Configuration oyo epesaka biso nzela ya koyamba ba signaux oyo ewutaka na télécommande ya IR. Na fonction setup(), tosali initialisation ya communication ya série mpe topelisaka récepteur ya IR.

void setup() {
  Serial.begin(115200);
  irrecv.enableIRIn();
}

Na fonction loop(), tosali vérification soki signal ya IR ezwami. Soki ezali bongo, tosali décodage ya valeur ya key mpe tosali impression na moniteur ya série.

if (irrecv.decode(&results)) {
    String key = decodeKeyValue(results.value);
    Serial.println(key);
    irrecv.resume(); 
}

Extrait ya code oyo emonisi ndenge tosali décodage ya signal oyo ezwami mpe tosali impression ya valeur ya key oyo ekokani na moniteur ya série. Fonction decodeKeyValue() esali correspondance ya signal oyo ezwami na ba valeurs ya ba boutons spécifiques, lokola "0", "1", "EQ", mpe basusu. Okoki kozwa code ya mobimba oyo ekomami na nsé ya article.

Démonstration / Nini Okoki Kozela

Soki bobongisi ya singa esili mpe kode ekomi kotomelama, kobeta libatari moko na remote esengeli kolakisa motuya ya libatari yango na écran ya serial monitor. Na ndakisa, kobeta libatari "2" ekopanza "2" na monitor. Soki libatari eyebani te, ekozongisa "ERROR". Buzzer ekobeta ntango libatari oyo eponami (ndakisa, "EQ") ebwakami, mpo na kopesa boyebi na mbala moko.

Bokeba na makambo ya mbala mingi, lokola kobalola polarité na ba connexions na bino to kosalela voltage oyo esengeli te. Bomeka ete remote control ezali kosala malamu mpe ezali na batterie oyo ezali na vie liboso ya komeka mise en place na bino (na vidéo na 15:30).

Ba Timestamps ya Vidéo

  • 00:00 Ebandeli
  • 2:05 Boyebisi ya récepteur IR
  • 4:24 Explication ya ba connexions
  • 6:08 Explication ya kode Arduino mpo na récepteur IR
  • 10:06 Kopona carte ESP32 mpe port COM na Arduino IDE
  • 11:48 Démonstration ya projet
  • 13:09 Buzzer actif oyo esangani na ESP32
  • 14:40 Kosala likambo ntango libatari ebwakami
  • 15:30 Kode Arduino mpo na kosala likambo
  • 16:54 Démo ya kobeta libatari mpe buzzer

Images

IR_receiver_lib
IR_receiver_lib
ir_receiver_sl838
ir_receiver_sl838
remote
remote
ESP32-29-IR-remote-schematic
ESP32-29-IR-remote-schematic
ESP32-29-IR-remote-wiring
ESP32-29-IR-remote-wiring
830-ESP32 Tutorial 29/55- Arduino code for fading Infrared remote
Langue: C++
#include <IRremoteESP8266.h>
#include <IRrecv.h>

// Define the IR receiver pin
const uint16_t IR_RECEIVE_PIN = 14;

// Create an IRrecv object
IRrecv irrecv(IR_RECEIVE_PIN);

// Create a decode_results object
decode_results results;

void setup() {
  // Start serial communication
  Serial.begin(115200);

  // Start the IR receiver
  irrecv.enableIRIn();
}

void loop() {
  // If an IR signal is received
  if (irrecv.decode(&results)) {
    String key = decodeKeyValue(results.value);
    if (key != "ERROR") {
      // Print the value of the signal to the serial monitor
      Serial.println(key);
    }
    irrecv.resume(); // Continue to receive the next signal
  }
}

// Function to decode the value of the IR signal
String decodeKeyValue(long result)
{
  switch(result){
    case 0xFF6897:
      return "0";
    case 0xFF30CF:
      return "1"; 
    case 0xFF18E7:
      return "2"; 
    case 0xFF7A85:
      return "3"; 
    case 0xFF10EF:
      return "4"; 
    case 0xFF38C7:
      return "5"; 
    case 0xFF5AA5:
      return "6"; 
    case 0xFF42BD:
      return "7"; 
    case 0xFF4AB5:
      return "8"; 
    case 0xFF52AD:
      return "9"; 
    case 0xFF906F:
      return "+"; 
    case 0xFFA857:
      return "-"; 
    case 0xFFE01F:
      return "EQ"; 
    case 0xFFB04F:
      return "U/SD";
    case 0xFF9867:
      return "CYCLE";         
    case 0xFF22DD:
      return "PLAY/PAUSE";   
    case 0xFF02FD:
      return "BACKWARD";   
    case 0xFFC23D:
      return "FORWARD";   
    case 0xFFA25D:
      return "POWER";   
    case 0xFFE21D:
      return "MUTE";   
    case 0xFF629D:
      return "MODE";       
    case 0xFFFFFFFF:
      return "ERROR";   
    default :
      return "ERROR";
  }
}

Mokili na bisika

Fichiers📁

Fiche technique (pdf)