Bincika Lambar

ESP32 Darasi 29/55 - Karanta latsa maɓallin IR remote tare da ESP32| SunFounder's ESP32 IoT Learning kit

ESP32 Darasi 29/55 - Karanta latsa maɓallin IR remote tare da ESP32| SunFounder's ESP32 IoT Learning kit

A cikin wannan koyawa, za mu koyi yadda ake gano siginar infrared (IR) ta amfani da module na ESP32 da mai karɓar IR mai jituwa. Lokacin da muka danna maɓalli a kan remote, ESP32 zai gane siginar kuma ya aiwatar da ayyuka na musamman, kamar yin ƙarar buzzer don wasu maɓallan da aka danna. Wannan aikin ya dace ga waɗanda ke neman haɗa ikon sarrafa remote a cikin aikace-aikacen ESP32 (a cikin bidiyo a 02:15).

remote

ESP32 microcontroller ne mai ƙarfi wanda ya haɗa damar Wi-Fi da Bluetooth, yana sa ya dace da kewayon aikace-aikacen IoT. A cikin wannan aikin, za mu yi amfani da mai karɓar IR don fassara siginar daga remote control. Za a sarrafa maɓallan da aka danna a cikin lambar, yana ba mu damar ɗaukar matakai bisa umarnin da aka karɓa.

Kayan Aiki Da Aka Bayyana

Babban abubuwan da aka haɗa don wannan aikin sun haɗa da microcontroller na ESP32, module na mai karɓar IR, da buzzer. ESP32 yana aiki a matsayin kwakwalwar aikin, yana sarrafa siginar da aka karɓa daga mai karɓar IR. Mai karɓar IR yana gano siginar infrared daga remote control kuma ya canza su zuwa siginar lantarki waɗanda ESP32 zai iya fahimta.

ir_receiver_sl838

Mai karɓar IR yawanci yana da pins uku: VCC (wutar lantarki), GND (ƙasa), da OUT (sigina). Pin na VCC an haɗa shi da tushen wutar lantarki (3.3V ko 5V), yayin da GND ke haɗawa da ƙasa. Pin na OUT yana aika siginar da aka ɓoye zuwa ESP32, wanda za a iya amfani da shi don kunna ayyuka daban-daban, kamar kunna buzzer lokacin da aka danna wani maɓalli na musamman.

Bayanan Datasheet

Manufacturer Sharp
Part number GP1UXC41
Logic/IO voltage 3.3 - 5.0 V
Supply voltage 3.3 V (typ.)
Output current (per channel) 20 mA (max)
Peak current (per channel) 50 mA (max)
PWM frequency guidance 38 kHz
Input logic thresholds 0.3 Vcc (high), 0.2 Vcc (low)
Voltage drop / RDS(on) / saturation 0.5 V (max)
Thermal limits 85 °C (max)
Package TO-92
Notes / variants Available in multiple configurations

 

  • Tabbatar da samar da wutar lantarki daidai don guje wa lalacewa.
  • Yi amfani da gajerun wayoyi don rage tsangwama na sigina.
  • Duba yanayin mai karɓar IR kafin haɗawa.
  • Tabbatar cewa batirin remote control yana aiki.
  • Yi amfani da resistors na pull-up idan ya cancanta don kwanciyar hankali.

Umarnin Haɗin Waya

ESP32-29-IR-remote-wiring

Don haɗa mai karɓar IR zuwa ESP32, fara da gano pins uku a kan mai karɓar IR: VCC, GND, da OUT. Haɗa pin na VCC zuwa tushen wutar lantarki na 3.3V akan ESP32. Na gaba, haɗa pin na GND zuwa ɗaya daga cikin pins na ƙasa (GND) akan ESP32. A ƙarshe, haɗa pin na OUT zuwa GPIO pin 14 akan ESP32, wanda aka keɓe don mai karɓar IR a cikin lambar.

ESP32-29-IR-remote-schematic

Da zarar an yi haɗin, tabbatar da cewa wayoyin sun tsaya lafiya. Idan kana amfani da breadboard, saka mai karɓar IR kamar yadda gefen lebur yana fuskantar ka kuma ƙulli yana gefen kishiyar. Wannan yanayin zai taimaka maka gano pins daidai. Tabbatar da haɗin kafin kunna ESP32.

Misalan Lamba & Bayani

IR_receiver_lib

shigar da IRremoteESP8266library na David Conran, Sebastien.

A cikin lambar, muna ayyana pin na mai karɓar IR ta amfani da madaidaicin IR_RECEIVE_PIN, wanda aka saita zuwa 14. Muna kuma ƙirƙirar misali na IRrecv don sarrafa siginar IR.

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

Wannan saitin yana ba mu damar karɓar siginar daga remote na IR. A cikin aikin setup(), muna fara sadarwar serial kuma mu kunna mai karɓar IR.

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

A cikin aikin loop(), muna duba idan an karɓi siginar IR. Idan haka ne, muna ɓoye ƙimar maɓalli kuma mu buga shi a kan serial monitor.

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

Wannan ɓangaren lambar yana nuna yadda muke ɓoye siginar da aka karɓa kuma mu buga ƙimar maɓalli daidai a kan serial monitor. Aikin decodeKeyValue() yana tsara siginar da aka karɓa zuwa ƙimar maɓalli na musamman, kamar "0", "1", "EQ", da sauransu. Kana iya samun cikakken lambar da aka saukar a ƙasan labarin.

Nuni / Abin Da Za Ka Yi Tsammani

Da zarar an gama haɗin wayoyi kuma an ɗora lambar, danna maɓalli a kan remote ɗin ya kamata ya nuna ƙimar maɓallin da ya dace a kan serial monitor. Misali, danna maɓallin "2" zai buga "2" a kan monitor. Idan ba a gane maɓallin ba, zai dawo da "ERROR". Buzzer ɗin zai yi sauti lokacin da aka danna maɓallin da aka keɓe (misali, "EQ"), yana ba da amsa nan take.

Yi hankali da matsalolin gama-gari, kamar juyar da polarity a cikin haɗin ku ko amfani da matakan wutar lantarki marasa daidai. Tabbatar cewa remote ɗin yana aiki da kyau kuma yana da baturi mai aiki kafin gwada saitin ku (a cikin bidiyo a 15:30).

Lokutan Bidiyo

  • 00:00 Farko
  • 2:05 Gabatarwa ga mai karɓar IR
  • 4:24 Bayanin haɗin wayoyi
  • 6:08 Bayanin lambar Arduino don mai karɓar IR
  • 10:06 Zaɓin board ɗin ESP32 da tashar COM a cikin Arduino IDE
  • 11:48 Nunin Aikin
  • 13:09 Buzzer mai aiki kai tsaye an haɗa shi da ESP32
  • 14:40 ɗaukar mataki lokacin da aka danna maɓalli
  • 15:30 Lambar Arduino don ɗaukar mataki
  • 16:54 Nunin danna maɓalli da buzzer

Hotuna

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
Harshe: 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";
  }
}

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Takardar bayanai (pdf)