ESP32のチュートリアル 29/55 - ESP32でIRリモコンのキー入力を読み取る | SunFounderのESP32 IoT学習キット

ESP32のチュートリアル 29/55 - ESP32でIRリモコンのキー入力を読み取る | SunFounderのESP32 IoT学習キット

このチュートリアルでは、ESP32モジュールと互換性のあるIR受信機を使用して赤外線(IR)信号を検出する方法を学びます。リモコンのボタンを押すと、ESP32が信号を認識し、特定のキー入力に対してブザーを鳴らすなどの具体的なアクションを実行します。このプロジェクトは、ESP32アプリケーションにリモートコントロール機能を統合したい人に最適です(ビデオ内で 02:15)。

リモート

ESP32は、Wi-FiとBluetoothの機能を組み合わせた強力なマイクロコントローラであり、幅広いIoTアプリケーションに適しています。このプロジェクトでは、IRレシーバーを使用してリモコンからの信号を解釈します。キーの押下はコードで処理され、受信したコマンドに基づいてアクションを実行できるようになります。

ハードウェアの解説

このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラー、IR受信モジュール、ブザーが含まれています。ESP32は操作の中心となり、IR受信機から受け取った信号を処理します。IR受信機はリモコンからの赤外線信号を検出し、それをESP32が理解できる電気信号に変換します。

ir_receiver_sl838

IRレシーバーは通常、3つのピンを持っています:VCC(電源)、GND(グラウンド)、およびOUT(信号)。VCCピンは電源(3.3Vまたは5V)に接続され、GNDはグラウンドに接続されます。OUTピンはデコードされた信号をESP32に送信し、特定のキーが押されたときにブザーを作動させるなど、さまざまなアクションを引き起こすために使用されます。

データシートの詳細

製造業者 鋭い
部品番号 GP1UXC41
論理/IO電圧 3.3 - 5.0 V
供給電圧 3.3 V(典型値)
出力電流(チャネルごと) 20 mA (最大)
ピーク電流(チャンネルごと) 50 mA (最大)
PWM周波数ガイダンス 38 kHz
入力ロジック閾値 0.3 Vcc (高), 0.2 Vcc (低)
電圧降下 / RDS(on)/ サチュレーション 0.5 V(最大)
熱的制限 85°C(最大)
パッケージ TO-92
ノート / バリアント 複数の構成で利用可能です

  • 正しい電源供給を確保し、損傷を避けてください。
  • 短いワイヤーを使用して信号干渉を最小限に抑えます。
  • 接続する前にIR受信機の向きを確認してください。
  • リモコンのバッテリーが正常であることを確認してください。
  • 必要に応じてプルアップ抵抗を使用して安定性を確保してください。

配線指示

ESP32-29-IR-remote-wiring

IR受信機をESP32に配線するには、まずIR受信機の3つのピンを特定します:VCC、GND、およびOUT。VCCピンをESP32の3.3V電源に接続します。次に、GNDピンをESP32のいずれかのグラウンド(GND)ピンに接続します。最後に、OUTピンをESP32のGPIOピン14に接続します。これはコード内でIR受信機専用に指定されています。

ESP32-29-IRリモコン回路図

接続が完了したら、配線が確実であることを確認してください。ブレッドボードを使用している場合は、IR受信機の平らな面が自分の方を向くように挿入し、突起が反対側になるようにしてください。この向きにすることで、ピンを正しく識別するのに役立ちます。ESP32の電源を入れる前に、接続を確認してください。

コード例とウォークスルー

IR_receiver_lib

インストールするIRremoteESP8266デビッド・コナランとセバスチャンによるライブラリ。

コード内で、定数を使用してIR受信ピンを定義します。IR_RECEIVE_PIN, は14に設定されています。私たちはまた、のインスタンスを作成します。IRrecvIR信号を処理するために。

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

この設定により、IRリモコンからの信号を受信できるようになります。setup()関数では、シリアル通信を初期化し、IR受信機を有効にします。

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

内でloop()関数では、IR信号が受信されたかどうかを確認します。受信された場合は、キー値をデコードし、シリアルモニターに出力します。

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

このコードスニペットは、受信した信号をデコードし、対応するキーバリューをシリアルモニタに表示する方法を示しています。decodeKeyValue()受信した信号を「0」、「1」、「EQ」などの特定のボタン値にマッピングする関数です。完全なコードは記事の下にロードされています。

デモンストレーション / 期待すること

配線が完了し、コードがアップロードされると、リモコンのボタンを押すことで、シリアルモニターに対応するキー値が表示されるはずです。例えば、「2」ボタンを押すと、モニターに「2」と表示されます。キーが認識されない場合は「ERROR」が返されます。指定されたキー(例:「EQ」)が押されると、ブザーが鳴り、即座にフィードバックが提供されます。

接続の逆極性や不適切な電圧レベルを使用するなどの一般的な落とし穴に注意してください。セットアップをテストする前に、リモコンが正常に動作していること、そしてバッテリーが機能していることを確認してください(ビデオの15:30にて)。

動画のタイムスタンプ

  • 00:00 スタート
  • 2:05 IRレシーバーの紹介
  • 4:24 配線の説明
  • 6:08 IR受信機のためのArduinoコードの説明
  • 10:06 Arduino IDEでESP32ボードとCOMポートを選択中
  • 11:48 プロジェクトデモンストレーション
  • 13:09 ESP32に直接接続されたアクティブブザー
  • 14:40 キーが押されたときにアクションを実行する
  • 15:30 アルディーノのコードでアクションを実行する
  • 16:54 キー入力とブザーデモ

画像

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
言語: C++
コピーしました!

必要かもしれないもの

リソースと参考文献

ファイル📁

データシート(pdf)