赤外線リモコン スマートリモコン Smart Remote Controller Aruduino PlatformIO ESP32
本項では全画面表示が可能な図番に * を付けています。
ESP32を使って学習リモコンを作る(3) で説明した「赤外線リモコン受信( irReceive )」に引き続きソフトウエアの要素技術「赤外線リモコン送信( irSend )」について説明します。
赤外線リモコン送信( irSend )
「あすき」さんの「Arduino(ESP32)でエアコンの赤外線リモコンの信号をコピーして発信する」を参考にさせていただきました。
- ハードウエア
- リンク
- ライブラリ
- irSend プロジェクト
- irSend プロジェクトの勘所
- ファームウエアビルド
- ファームウエア書込み
- ファームウエア実行
- 赤外線リモコン信号送信
- システムで動作確認
- リンク
- ライブラリ
- irSend プロジェクト
- irSend プロジェクトの勘所
- ファームウエアビルド
- ファームウエア書込み
- ファームウエア実行
- 赤外線リモコン信号送信
- システムで動作確認
- リンク
- ライブラリ
- irSend プロジェクト
- irSend プロジェクトの勘所
- ファームウエアビルド
- ファームウエア書込み
- ファームウエア実行
- 赤外線リモコン信号送信
- システムで動作確認
- リンク
- プロジェクトを作成する
- ライブラリ
- irSend プロジェクト
- irSend プロジェクトの勘所
- ファームウエアビルド
- ファームウエア書込み
- ファームウエア実行
- 赤外線リモコン信号送信
- システムで動作確認
- リンク
ハードウエア
図1 は irSend に用いる回路図です。 ESP32を使って学習リモコンを作る(2) で紹介した「図3 赤外線送信回路」と同一回路です。
次回は webserver について説明します。
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
Project Wizard で Finish をクリックするとプロジェクトが自動生成されます。(図8)
ライブラリ
IRremote のライブラリが必要になります。IRremote は platformio.ini にライブラリ依存性を定義すると自動的にインストールされます。
irSend プロジェクト
自動生成されたプロジェクトに追加、変更を加えて irSend に対応させます。
platformio.ini ファイルに以下の 3 行を追加します。(図9)
lib_deps = z3t0/IRremote@^4.4.1 (ライブラリ名を訂正しました)
upload_port = COM3 (使用する PC によって変わります)
monitor_speed = 115200
自動生成された main.cpp ファイルをクリックしてプログラムを表示します。(図10)
main.cpp の内容を全て削除して、代わりに「あすき」さんのプログラムを使わせていただきます。
「Arduino(ESP32)でエアコンの赤外線リモコンの信号をコピーして発信する」から「先ほどメモしたprontoの情報を使ってプログラムを作成」にあるプログラムをコピーして main.cpp にペーストします。(図11)
警告が出るかもしれませんが自動的に解消されるのでそのままで構いません。
main.cpp の 10 行目と 11 行目のデータを書き換えることにします。
ESP32を使って学習リモコンを作る(3) で説明した赤外線リモコン送信機(例 Bose Freestyle )を irReceive 回路の赤外線リモコン受光ICに向けて任意のボタン(例 Off )を押して irReceive で受信した時にターミナルに表示される情報の末尾を参照します。(図12)
Pronto Hex as string
char prontoData[] = “0000 006D 0022 0000 015B 00AA 0018 0012 0018 003F 0018 0012 0018 003F 0018 003F 0018 003D 0018 0014 0018 003D 0018 003F 0018 003F 0018 0012 0018 003F 0018 0012 0018 0012 0018 0041 0016 0014 0016 0014 0018 0014 0016 003F 0018 003F 0016 0014 0018 0014 0016 003F 0018 0014 0016 003F 0018 003F 0018 0014 0016 0014 0016 0041 0016 0041 0016 0014 0016 0041 0016 06C3 “;
図12 Bose Freestyle リモコン送信機 Off ボタン受信時のターミナル出力末尾
「あすき」さんの記事では、10 行目をエアコンの ON に、11 行目をエアコンの OFF に割り当てていましたが、ここでは要素技術の動作確認用なので 10 行目、11 行目の両方とも Bose Freestyle Off に割り当てることにします。図12 の情報から ” ” で囲まれた部分をコピーして main.cpp の 10 行目と 11 行目の “ ” で囲まれた部分と置き換えます。(図13)
irSend プロジェクトの勘所
作成した irSend プロジェクトについての理解を勘所としてまとめます。
8 行目 #include <IRremote.hpp> ライブラリのインクルード
15 行目 IrSender.begin(); 赤外線送信ライブラリの初期化
22 行目 IrSender.sendPronto(prontoDataTurnOn22Heater);
変数 prontoDataTurnOn22Heater の内容を赤外線リモコンフォーマットで出力する
以上の 3 ポイントを押さえておけば良いと思います。
ファームウエアビルド
PROJECT TASKS から Build をクリックするとビルドが開始されて [SUCCESS] と表示されると完了です。(図14)
ファームウエア書込み
ESP32-DevKitC-32E を USB ケーブルで PC に接続します。 PROJECT TASKS から Upload をクリックするとファームウェアの書込みが開始されて [SUCCESS] と表示されると完了です。(図15)
ファームウエア実行
PROJECT TASKS から Monitor をクリックするとファームウェアの実行が開始されて、ターミナルウインドウに起動時のメッセージが表示されると待受け状態になります。(図16)
赤外線リモコン信号送信
irSend 回路の Boot ボタンを押すとターミナルに「send turn on at xxxxx」のメッセージが出力されます。(図17)
メッセージ出力と同時に赤外線リモコン信号が送信されます。
この信号は main.cpp の10 行目に設定したデータに対応しています。(本稿では 18 番ピンにボタンを設けていないので 11 行目に設定したデータは送信されません。)
赤外線 LED を駆動している NPN トランジスタ Q1 2SC945 のコレクタ端子をオシロスコープで観測すると赤外線リモコン信号の送信に対応した波形が確認できます。(図18)
赤外線 LED を駆動する回路の動作は図18 で確認できました。
赤外線が正しく出ているかはブレッドボードに搭載されている irReceive 回路(ESP32を使って学習リモコンを作る(3) 図1 参照)を利用します。irReceive 回路の赤外線リモコン受光 IC は常時動作しているので 15 ピン入力を観測すると irSend 回路の赤外線 LED が出力した赤外線の波形を確認することができます。(図19、図20)
システムで動作確認
irsend 回路から送信した赤外線リモコン信号を使ってシステムが正しく応答するかの確認を行います。(図21)
1) BOSE FreeStyle 赤外線リモコンの On( Video ) ボタンを押す。
2) BOSEスピーカーから音楽が流れる。
3) irReceive 回路の Boot ボタンを押す。
4) BOSEスピーカーの音楽が止まる。
以上 1) ~ 4) の手順で正しく動作することが確認できました。
次回は webserver について説明します。
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
Visula Studio Code ( VSCode ) を開いて画面左端縦の「アクティビティバー」からアリさんマーク(赤丸)をクリックします。(図3)
プライマリサイドバーが表示されるので Create New Project をクリックします。(図4)
PIO Home 画面が表示されます。(図5)
画面中央から右寄りの Quick Access から + New Project をクリックすると、Project Wizard が表示されます。(図6)
Project Wizard に従って入力します。(図7)
Name: irRemote (何でもいいので任意のプロジェクト名を入力)
Board: Espressif ESP32 Dev Module (プルダウンメニューから選択します)
Framework: Arduino (プルダウンメニューから選択します)
Project Wizard で Finish をクリックするとプロジェクトが自動生成されます。(図8)
ライブラリ
IRremote のライブラリが必要になります。IRremote は platformio.ini にライブラリ依存性を定義すると自動的にインストールされます。
irSend プロジェクト
自動生成されたプロジェクトに追加、変更を加えて irSend に対応させます。
platformio.ini ファイルに以下の 3 行を追加します。(図9)
lib_deps = z3t0/IRremote@^4.4.1 (ライブラリ名を訂正しました)
upload_port = COM3 (使用する PC によって変わります)
monitor_speed = 115200
自動生成された main.cpp ファイルをクリックしてプログラムを表示します。(図10)
main.cpp の内容を全て削除して、代わりに「あすき」さんのプログラムを使わせていただきます。
「Arduino(ESP32)でエアコンの赤外線リモコンの信号をコピーして発信する」から「先ほどメモしたprontoの情報を使ってプログラムを作成」にあるプログラムをコピーして main.cpp にペーストします。(図11)
警告が出るかもしれませんが自動的に解消されるのでそのままで構いません。
main.cpp の 10 行目と 11 行目のデータを書き換えることにします。
ESP32を使って学習リモコンを作る(3) で説明した赤外線リモコン送信機(例 Bose Freestyle )を irReceive 回路の赤外線リモコン受光ICに向けて任意のボタン(例 Off )を押して irReceive で受信した時にターミナルに表示される情報の末尾を参照します。(図12)
Pronto Hex as string
char prontoData[] = “0000 006D 0022 0000 015B 00AA 0018 0012 0018 003F 0018 0012 0018 003F 0018 003F 0018 003D 0018 0014 0018 003D 0018 003F 0018 003F 0018 0012 0018 003F 0018 0012 0018 0012 0018 0041 0016 0014 0016 0014 0018 0014 0016 003F 0018 003F 0016 0014 0018 0014 0016 003F 0018 0014 0016 003F 0018 003F 0018 0014 0016 0014 0016 0041 0016 0041 0016 0014 0016 0041 0016 06C3 “;
図12 Bose Freestyle リモコン送信機 Off ボタン受信時のターミナル出力末尾
「あすき」さんの記事では、10 行目をエアコンの ON に、11 行目をエアコンの OFF に割り当てていましたが、ここでは要素技術の動作確認用なので 10 行目、11 行目の両方とも Bose Freestyle Off に割り当てることにします。図12 の情報から ” ” で囲まれた部分をコピーして main.cpp の 10 行目と 11 行目の “ ” で囲まれた部分と置き換えます。(図13)
irSend プロジェクトの勘所
作成した irSend プロジェクトについての理解を勘所としてまとめます。
8 行目 #include <IRremote.hpp> ライブラリのインクルード
15 行目 IrSender.begin(); 赤外線送信ライブラリの初期化
22 行目 IrSender.sendPronto(prontoDataTurnOn22Heater);
変数 prontoDataTurnOn22Heater の内容を赤外線リモコンフォーマットで出力する
以上の 3 ポイントを押さえておけば良いと思います。
ファームウエアビルド
PROJECT TASKS から Build をクリックするとビルドが開始されて [SUCCESS] と表示されると完了です。(図14)
ファームウエア書込み
ESP32-DevKitC-32E を USB ケーブルで PC に接続します。 PROJECT TASKS から Upload をクリックするとファームウェアの書込みが開始されて [SUCCESS] と表示されると完了です。(図15)
ファームウエア実行
PROJECT TASKS から Monitor をクリックするとファームウェアの実行が開始されて、ターミナルウインドウに起動時のメッセージが表示されると待受け状態になります。(図16)
赤外線リモコン信号送信
irSend 回路の Boot ボタンを押すとターミナルに「send turn on at xxxxx」のメッセージが出力されます。(図17)
メッセージ出力と同時に赤外線リモコン信号が送信されます。
この信号は main.cpp の10 行目に設定したデータに対応しています。(本稿では 18 番ピンにボタンを設けていないので 11 行目に設定したデータは送信されません。)
赤外線 LED を駆動している NPN トランジスタ Q1 2SC945 のコレクタ端子をオシロスコープで観測すると赤外線リモコン信号の送信に対応した波形が確認できます。(図18)
赤外線 LED を駆動する回路の動作は図18 で確認できました。
赤外線が正しく出ているかはブレッドボードに搭載されている irReceive 回路(ESP32を使って学習リモコンを作る(3) 図1 参照)を利用します。irReceive 回路の赤外線リモコン受光 IC は常時動作しているので 15 ピン入力を観測すると irSend 回路の赤外線 LED が出力した赤外線の波形を確認することができます。(図19、図20)
システムで動作確認
irsend 回路から送信した赤外線リモコン信号を使ってシステムが正しく応答するかの確認を行います。(図21)
1) BOSE FreeStyle 赤外線リモコンの On( Video ) ボタンを押す。
2) BOSEスピーカーから音楽が流れる。
3) irReceive 回路の Boot ボタンを押す。
4) BOSEスピーカーの音楽が止まる。
以上 1) ~ 4) の手順で正しく動作することが確認できました。
次回は webserver について説明します。
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
Visula Studio Code ( VSCode ) を開いて画面左端縦の「アクティビティバー」からアリさんマーク(赤丸)をクリックします。(図3)
プライマリサイドバーが表示されるので Create New Project をクリックします。(図4)
PIO Home 画面が表示されます。(図5)
画面中央から右寄りの Quick Access から + New Project をクリックすると、Project Wizard が表示されます。(図6)
Project Wizard に従って入力します。(図7)
Name: irRemote (何でもいいので任意のプロジェクト名を入力)
Board: Espressif ESP32 Dev Module (プルダウンメニューから選択します)
Framework: Arduino (プルダウンメニューから選択します)
Project Wizard で Finish をクリックするとプロジェクトが自動生成されます。(図8)
ライブラリ
IRremote のライブラリが必要になります。IRremote は platformio.ini にライブラリ依存性を定義すると自動的にインストールされます。
irSend プロジェクト
自動生成されたプロジェクトに追加、変更を加えて irSend に対応させます。
platformio.ini ファイルに以下の 3 行を追加します。(図9)
lib_deps = z3t0/IRremote@^4.4.1 (ライブラリ名を訂正しました)
upload_port = COM3 (使用する PC によって変わります)
monitor_speed = 115200
自動生成された main.cpp ファイルをクリックしてプログラムを表示します。(図10)
main.cpp の内容を全て削除して、代わりに「あすき」さんのプログラムを使わせていただきます。
「Arduino(ESP32)でエアコンの赤外線リモコンの信号をコピーして発信する」から「先ほどメモしたprontoの情報を使ってプログラムを作成」にあるプログラムをコピーして main.cpp にペーストします。(図11)
警告が出るかもしれませんが自動的に解消されるのでそのままで構いません。
main.cpp の 10 行目と 11 行目のデータを書き換えることにします。
ESP32を使って学習リモコンを作る(3) で説明した赤外線リモコン送信機(例 Bose Freestyle )を irReceive 回路の赤外線リモコン受光ICに向けて任意のボタン(例 Off )を押して irReceive で受信した時にターミナルに表示される情報の末尾を参照します。(図12)
Pronto Hex as string
char prontoData[] = “0000 006D 0022 0000 015B 00AA 0018 0012 0018 003F 0018 0012 0018 003F 0018 003F 0018 003D 0018 0014 0018 003D 0018 003F 0018 003F 0018 0012 0018 003F 0018 0012 0018 0012 0018 0041 0016 0014 0016 0014 0018 0014 0016 003F 0018 003F 0016 0014 0018 0014 0016 003F 0018 0014 0016 003F 0018 003F 0018 0014 0016 0014 0016 0041 0016 0041 0016 0014 0016 0041 0016 06C3 “;
図12 Bose Freestyle リモコン送信機 Off ボタン受信時のターミナル出力末尾
「あすき」さんの記事では、10 行目をエアコンの ON に、11 行目をエアコンの OFF に割り当てていましたが、ここでは要素技術の動作確認用なので 10 行目、11 行目の両方とも Bose Freestyle Off に割り当てることにします。図12 の情報から ” ” で囲まれた部分をコピーして main.cpp の 10 行目と 11 行目の “ ” で囲まれた部分と置き換えます。(図13)
irSend プロジェクトの勘所
作成した irSend プロジェクトについての理解を勘所としてまとめます。
8 行目 #include <IRremote.hpp> ライブラリのインクルード
15 行目 IrSender.begin(); 赤外線送信ライブラリの初期化
22 行目 IrSender.sendPronto(prontoDataTurnOn22Heater);
変数 prontoDataTurnOn22Heater の内容を赤外線リモコンフォーマットで出力する
以上の 3 ポイントを押さえておけば良いと思います。
ファームウエアビルド
PROJECT TASKS から Build をクリックするとビルドが開始されて [SUCCESS] と表示されると完了です。(図14)
ファームウエア書込み
ESP32-DevKitC-32E を USB ケーブルで PC に接続します。 PROJECT TASKS から Upload をクリックするとファームウェアの書込みが開始されて [SUCCESS] と表示されると完了です。(図15)
ファームウエア実行
PROJECT TASKS から Monitor をクリックするとファームウェアの実行が開始されて、ターミナルウインドウに起動時のメッセージが表示されると待受け状態になります。(図16)
赤外線リモコン信号送信
irSend 回路の Boot ボタンを押すとターミナルに「send turn on at xxxxx」のメッセージが出力されます。(図17)
メッセージ出力と同時に赤外線リモコン信号が送信されます。
この信号は main.cpp の10 行目に設定したデータに対応しています。(本稿では 18 番ピンにボタンを設けていないので 11 行目に設定したデータは送信されません。)
赤外線 LED を駆動している NPN トランジスタ Q1 2SC945 のコレクタ端子をオシロスコープで観測すると赤外線リモコン信号の送信に対応した波形が確認できます。(図18)
赤外線 LED を駆動する回路の動作は図18 で確認できました。
赤外線が正しく出ているかはブレッドボードに搭載されている irReceive 回路(ESP32を使って学習リモコンを作る(3) 図1 参照)を利用します。irReceive 回路の赤外線リモコン受光 IC は常時動作しているので 15 ピン入力を観測すると irSend 回路の赤外線 LED が出力した赤外線の波形を確認することができます。(図19、図20)
システムで動作確認
irsend 回路から送信した赤外線リモコン信号を使ってシステムが正しく応答するかの確認を行います。(図21)
1) BOSE FreeStyle 赤外線リモコンの On( Video ) ボタンを押す。
2) BOSEスピーカーから音楽が流れる。
3) irReceive 回路の Boot ボタンを押す。
4) BOSEスピーカーの音楽が止まる。
以上 1) ~ 4) の手順で正しく動作することが確認できました。
次回は webserver について説明します。
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
ESP32を使って学習リモコンを作る(2) で紹介した「図5 部品配置図」と同一となります。
プロジェクトを作成する
Visula Studio Code ( VSCode ) を開いて画面左端縦の「アクティビティバー」からアリさんマーク(赤丸)をクリックします。(図3)
プライマリサイドバーが表示されるので Create New Project をクリックします。(図4)
PIO Home 画面が表示されます。(図5)
画面中央から右寄りの Quick Access から + New Project をクリックすると、Project Wizard が表示されます。(図6)
Project Wizard に従って入力します。(図7)
Name: irRemote (何でもいいので任意のプロジェクト名を入力)
Board: Espressif ESP32 Dev Module (プルダウンメニューから選択します)
Framework: Arduino (プルダウンメニューから選択します)
Project Wizard で Finish をクリックするとプロジェクトが自動生成されます。(図8)
ライブラリ
IRremote のライブラリが必要になります。IRremote は platformio.ini にライブラリ依存性を定義すると自動的にインストールされます。
irSend プロジェクト
自動生成されたプロジェクトに追加、変更を加えて irSend に対応させます。
platformio.ini ファイルに以下の 3 行を追加します。(図9)
lib_deps = z3t0/IRremote@^4.4.1 (ライブラリ名を訂正しました)
upload_port = COM3 (使用する PC によって変わります)
monitor_speed = 115200
自動生成された main.cpp ファイルをクリックしてプログラムを表示します。(図10)
main.cpp の内容を全て削除して、代わりに「あすき」さんのプログラムを使わせていただきます。
「Arduino(ESP32)でエアコンの赤外線リモコンの信号をコピーして発信する」から「先ほどメモしたprontoの情報を使ってプログラムを作成」にあるプログラムをコピーして main.cpp にペーストします。(図11)
警告が出るかもしれませんが自動的に解消されるのでそのままで構いません。
main.cpp の 10 行目と 11 行目のデータを書き換えることにします。
ESP32を使って学習リモコンを作る(3) で説明した赤外線リモコン送信機(例 Bose Freestyle )を irReceive 回路の赤外線リモコン受光ICに向けて任意のボタン(例 Off )を押して irReceive で受信した時にターミナルに表示される情報の末尾を参照します。(図12)
Pronto Hex as string
char prontoData[] = “0000 006D 0022 0000 015B 00AA 0018 0012 0018 003F 0018 0012 0018 003F 0018 003F 0018 003D 0018 0014 0018 003D 0018 003F 0018 003F 0018 0012 0018 003F 0018 0012 0018 0012 0018 0041 0016 0014 0016 0014 0018 0014 0016 003F 0018 003F 0016 0014 0018 0014 0016 003F 0018 0014 0016 003F 0018 003F 0018 0014 0016 0014 0016 0041 0016 0041 0016 0014 0016 0041 0016 06C3 “;
図12 Bose Freestyle リモコン送信機 Off ボタン受信時のターミナル出力末尾
「あすき」さんの記事では、10 行目をエアコンの ON に、11 行目をエアコンの OFF に割り当てていましたが、ここでは要素技術の動作確認用なので 10 行目、11 行目の両方とも Bose Freestyle Off に割り当てることにします。図12 の情報から ” ” で囲まれた部分をコピーして main.cpp の 10 行目と 11 行目の “ ” で囲まれた部分と置き換えます。(図13)
irSend プロジェクトの勘所
作成した irSend プロジェクトについての理解を勘所としてまとめます。
8 行目 #include <IRremote.hpp> ライブラリのインクルード
15 行目 IrSender.begin(); 赤外線送信ライブラリの初期化
22 行目 IrSender.sendPronto(prontoDataTurnOn22Heater);
変数 prontoDataTurnOn22Heater の内容を赤外線リモコンフォーマットで出力する
以上の 3 ポイントを押さえておけば良いと思います。
ファームウエアビルド
PROJECT TASKS から Build をクリックするとビルドが開始されて [SUCCESS] と表示されると完了です。(図14)
ファームウエア書込み
ESP32-DevKitC-32E を USB ケーブルで PC に接続します。 PROJECT TASKS から Upload をクリックするとファームウェアの書込みが開始されて [SUCCESS] と表示されると完了です。(図15)
ファームウエア実行
PROJECT TASKS から Monitor をクリックするとファームウェアの実行が開始されて、ターミナルウインドウに起動時のメッセージが表示されると待受け状態になります。(図16)
赤外線リモコン信号送信
irSend 回路の Boot ボタンを押すとターミナルに「send turn on at xxxxx」のメッセージが出力されます。(図17)
メッセージ出力と同時に赤外線リモコン信号が送信されます。
この信号は main.cpp の10 行目に設定したデータに対応しています。(本稿では 18 番ピンにボタンを設けていないので 11 行目に設定したデータは送信されません。)
赤外線 LED を駆動している NPN トランジスタ Q1 2SC945 のコレクタ端子をオシロスコープで観測すると赤外線リモコン信号の送信に対応した波形が確認できます。(図18)
赤外線 LED を駆動する回路の動作は図18 で確認できました。
赤外線が正しく出ているかはブレッドボードに搭載されている irReceive 回路(ESP32を使って学習リモコンを作る(3) 図1 参照)を利用します。irReceive 回路の赤外線リモコン受光 IC は常時動作しているので 15 ピン入力を観測すると irSend 回路の赤外線 LED が出力した赤外線の波形を確認することができます。(図19、図20)
システムで動作確認
irsend 回路から送信した赤外線リモコン信号を使ってシステムが正しく応答するかの確認を行います。(図21)
1) BOSE FreeStyle 赤外線リモコンの On( Video ) ボタンを押す。
2) BOSEスピーカーから音楽が流れる。
3) irReceive 回路の Boot ボタンを押す。
4) BOSEスピーカーの音楽が止まる。
以上 1) ~ 4) の手順で正しく動作することが確認できました。
次回は webserver について説明します。
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
コメント