経緯
電子工作なんて一度もやったことない人が本当にエアコン制御なんてできるのか???
そう思って記事をご覧になってくださった方もいらっしゃるでしょう。
大丈夫です!!!
自分も理系学生ではありますが、電子工作とは無縁の世界で生きてきました。(プログラミングは授業で習った程度で、単位もあやうい状態でした。つまり、ほとんど知識が無い状態です)
Raspberry Pi Zero 2 WHを使用し、有識者の方の記事、ChatGPTを参考にして作ってみました。
今回はラズパイのセットアップから赤外線の送受信までです。
slackは次回から実装予定です。
構造
次のようなものを実装しました。
iPhoneのショートカットでslackにメッセージを送り、それをラズパイが処理し、エアコンに赤外線を届ける仕組みです。
最初はslackでメッセージを手打ちしていたのですが、めんどくさくなったのでiPhoneのショートカットを作成しました。(別にショートカットは作成しなくても大丈夫です。)
材料
こちらの記事 https://qiita.com/takjg/items/e6b8af53421be54b62c9 を参考にさせていただきました。全て秋月電子通商で揃えられます。
| 値段 | 品名 |
|---|---|
| ¥100 | 赤外線リモコン受信モジュールOSRB38C9AA(2個入) |
| ¥300 | 5mm赤外LED L12170 高出力・高速応答 |
| ¥70 | PchパワーMOSFET 55V11A IRFU9024NPBF |
| ¥30 | MOSFET 2N7000 |
| ¥200 | カーボン抵抗(炭素皮膜抵抗) 1/2W4.7kΩ(100個入) |
| ¥300 | 超小型 金属皮膜抵抗 1W27Ω(100個入) |
| ¥370 | ブレッドボード EIC-801 |
| ¥280 | ブレッドボード・ジャンパーワイヤ(オス-メス) 15cm(黒)(10個入) |
ジャンパワイヤ(オス-オス)は抵抗の脚を切って使いました。
| 値段 | 品名 | 備考 |
|---|---|---|
| ¥3,520 | Raspberry Pi Zero 2 WH | 本体(ピンヘッダーがもともとついていた方が楽です) |
| ¥994 | microSDカード | ラズパイzeroはmicroSDカードです |
| ¥1,270 | ACアダプタ | microUSBが必要です Amazonでも、秋月電子でも買えます 5V2.5A以上が良いと思います 電源スイッチがあると便利 |
以上これらのものがあれば作れます。ただIoT化させたいだけなら、多分スマートリモコンを買った方が安いです。
セットアップ
ラズパイが届いたら、まずセットアップをします。今回はモニターやマウスを使わず、ノートPCだけでセットアップする方法をご紹介します。詳しくはこちらの記事を参考にしてください。
①Raspberry Pi Imagerのダウンロード
ラズパイに使用するOSをmicroSDカードにインストールします。まずは、ノートPCにRaspberry Pi Imagerをダウンロードします。
②microSDカードにインストール
microSDカードをノートPCに挿し込んだら、先ほどダウンロードしたRaspberry Pi Imagerを開きます。
「Device」でRaspberry Pi Zero 2 Wを選びます。
次に、OSでRaspberry Pi OS (Legacy, 32-bit) を選択します。ここで、Raspberry Pi OS (64-bit) やRaspberry Pi OS (32-bit) を選択すると後で紹介するpigpioをインストールできませんでした。おそらく、最新版OSはpigpioに対応できなくなったものだと思われます。
Raspberry Pi OS (Legacy, 32-bit)のみpigpioに対応しています(多分)
③カスタマイズの設定
ダウンロードするストレージ(microSD)を選択したら、ホストネームを入力します。この際、入力したホストネームは覚えておいてください。
ローカルを入力します。全て日本設定にすればOKです。
ユーザー名、パスワードを入力します。この際、入力したユーザー名、パスワードは覚えておいてください。
Wi-Fiの設定では、Wi-FiのSSIDとパスワードを入力します。
SSHの認証では「SSHを有効化する」を選択し、「パスワード認証を行う」を選択します。
ここまでできたら、「write」を押して書き込みを実施します。
④Raspberry Piの起動
microSDカードをノートPCから取り出し、ラズパイに挿し込みます。
電源ケーブルを挿すと、自動的にOSのインストールが始まります。
⑤ssh接続
ここまできたら、ほぼセットアップは完了です。
Windowsのコマンドプロンプトを開き、覚えておいた「ssh ユーザー名@ホストネーム.local」を入力します。例えば、ユーザー名がnorio、ホストネームがraspberrypizero2wの場合、次のように入力します。
Enterを押すとパスワード入力を求められます。覚えておいたパスワードを入力し、Enterを押します。(画面には入力した文字は表示されません)
このような表示がでたら完了です。
しばらくはラズパイを使わないので「sudo shutdown -h now」を入力してシャットダウンし、ラズパイの電源を抜いておきましょう。
赤外線受信
①電子工作
それでは電子工作を始めていきましょう。以下の記事を参考にさせていただきました。
まずは、エアコンのリモコンから赤外線を受信します。今回ははんだ付けを行わず、ブレッドボードを用いて組み立てます。ブレッドボードの説明は以下の記事が参考になると思います。
以下のように赤外線リモコン受信モジュール、ブレッドボード・ジャンパーワイヤ(オス-メス)3本をブレッドボードに挿します。
必ず赤外線リモコン受信モジュールのOUTPUT、GROUND、VCCを間違えないように注意してください。(秋月電子の場合、データシートから確認できると思います)
- 左のピン(黄) → GPIO23(物理番号16)
- 中央ピン(青) → GROUND(物理番号6)
- 右のピン(赤) → 3.3V(物理番号1)
出典:https://gpiozero.readthedocs.io/en/stable/recipes.html#module-gpiozero

とりあえず赤外線受信を行うハード側の組み立てはできました。
②ラズパイ設定
pigpioインストール
次は、ラズパイ側を操作していきます。ラズパイに電源を挿した後、ssh接続し、コマンドプロンプトに次のように入力して、pigpioをインストールします。
Raspberry Pi OS (Legacy, 32-bit)以外ではインストールできませんでした
この表示の後ろに入力していきます。
sudo apt update
sudo apt upgrade
sudo apt install pigpio python3-pigpio
sudo systemctl enable pigpiod.service
sudo systemctl start pigpiod
さらに、pigpioの作者が作った送受信プログラムもダウンロードします。
curl http://abyz.me.uk/rpi/pigpio/code/irrp_py.zip | zcat > irrp.py
GPIO設定
先ほど、GPIO23(物理ピン16)にジャンパーワイヤを接続しました。
そのため、以下のコマンドでGPIO23を入力ピンとして設定し、赤外線信号を受け取れるようにします。
echo 'm 22 w w 22 0 m 23 r pud 23 u' > /dev/pigpio
- m 22 w w 22 0:赤外線送信用で、まだ使いませんが設定しておきます(GPIO22を出力として使います)
- m 23 r pud 23 u:赤外線受信に用います
赤外線信号学習
以下を入力するとラズパイが赤外線信号入力待ちの状態になります。
python3 irrp.py -r -g23 -f codes power:on --no-confirm --post 130
そうしたら、エアコンのリモコンを赤外線受信モジュールに向けて電源ボタンを押しましょう。ファイル「codes」の中に「power:on」という名前で赤外線データが保存されます。以下を入力して確認してみましょう
cat codes
すると、次のような表示が出ると思います。
これで赤外線の学習が完了しました。
※余裕のある方は、「python3 irrp.py -r -g23 -f codes power:on --no-confirm --post 130」の「power:on」を「power:off」などに名前を変えてエアコンの電源を切る赤外線信号も学習させておきましょう。
温度、風量、風向などを変更させたい方は、それぞれ学習させても良いと思います。(めんどくさいので自分は温度、風量、風向固定のものを「power:on」に、電源切を「power:off」の二つだけを保存しました。)
赤外線送信
①電子工作
赤外線受信の時と同様に、以下の記事を参考にさせていただきました。
以下のように、5mm赤外LED、PchパワーMOSFET、MOSFET 2N7000、抵抗(4.7kΩ、27Ω)一本ずつ、ブレッドボード・ジャンパーワイヤ(オス-メス)3本、ブレッドボード・ジャンパーワイヤ(オス-オス)1本をブレッドボードに挿します。MOSFETの向きや、LEDのアノード・カソードに注意してください。
回路図はこちらの記事を参考にさせていただきました。
- 左のワイヤ(赤) → 5V(物理番号2)
- 中央ワイヤ(黄) → GPIO22(物理番号15)
- 右のワイヤ(青) → GROUND(物理番号39)
②ラズパイ設定
赤外線送信
赤外LEDをエアコンから約1m以内の場所に置き、以下のコードを実行します。(赤外LEDをエアコン方向に向けるとより送信が確実に行われると思います)
python3 irrp.py -p -g22 -f codes power:on
「codes」の中の「power:on」に保存されている信号が送信されます。
これでエアコンが作動したと思います。
まとめ
今回はラズパイのセットアップから赤外線受信、送信まで行うことができました。
次回からはslack経由で実行、それをiPhoneのショートカットアプリでさらに楽にしていきたいと思います。














