やりたいことから始める 赤外線エアコンIoT (5/5)
第5章:全体像・配置戦略・実験ステップ・参考資料
1. 部品選定の全体像
ここまでの思考の流れをまとめると、以下の表のようになります。「やりたいこと」→「必要な機能」→「選定した部品」→「なぜその部品か」が一直線につながっています。
| やりたいこと | 必要な機能 | 選定部品 | 選定理由 |
|---|---|---|---|
| エアコンを自動操作 | 頭脳+通信 | Pico 2 WH | Wi-Fi 内蔵、3.3V、MicroPython、PIO、安価 |
| リモコンの信号を覚える | 赤外線受信 | PL-IRM1838B | 3.3V 動作、38kHz 復調、出力レベル互換、メーカー資料確定 |
| 覚えた信号を再現 | 赤外線送信 | OSI5LA5A33A-B + BC337-40BU | LED は型番確定で極性・定格が分かる。トランジスタは GPIO 電流不足を補い、800mA 余裕あり |
| 室温で判断したい | 温湿度測定 | DHT20 | 3.3V、I²C、温湿度両方、外付け部品要件が明確 |
| 手動で動作確認 | 入力スイッチ | タクトスイッチ | Pico 内部プルアップで外付け抵抗不要 |
| 回路を組む | 配線基盤 | ブレッドボード+ジャンパ線 | ELEGOO キットのものを流用。はんだ付け不要で試行錯誤できる |
2. ブレッドボード上に「配置戦略」を立てる
部品が揃ったら、ブレッドボード上にどう配置するかを考えます。配線を追いやすくするために、Pico を中央の溝をまたぐように挿し、左右に機能を分けます。
図4:ブレッドボード配置戦略。Pico を中央に、受信系を左、送信系を右に分ける。
3. ピン配置のまとめ
| 用途 | GPIO | 物理ピン | 接続先 |
|---|---|---|---|
| DHT20 SDA | GP4 | 6 | DHT20 Pin 2 SDA(5kΩ プルアップ経由) |
| DHT20 SCL | GP5 | 7 | DHT20 Pin 4 SCL(5kΩ プルアップ経由) |
| タクトスイッチ | GP15 | 20 | スイッチ片側 → GND(内部プルアップ) |
| IR 受信 | GP16 | 21 | PL-IRM1838B Pin 1 OUT |
| IR 送信 | GP18 | 24 | 2kΩ → BC337-40BU BASE(Pin 2) |
| 3.3V 電源 | — | 36 | DHT20、PL-IRM1838B(100Ω フィルタ経由) |
| GND | — | 3/8/13/18/23/28/38 など | 全回路共通 |
| USB 給電時の 5V | VBUS | 40 | IR LED 送信回路の電源(330Ω 経由) |
4. 一つずつ組み上げて確認する
回路を一気に全部繋いでから動作確認するのではなく、一機能ずつ独立して動作確認します。これが「やりたいこと」から組み上げるアプローチの最も重要な実践です。
Pico に MicroPython を入れて REPL を開く
まず「頭脳」が動くことを確認。USB 接続で >>> が表示されれば OK。
PL-IRM1838B だけ接続して純正リモコンの信号を受信
エアコンの純正リモコンをエアコンへ向けたまま、横から受信モジュールで拾う。GP16 の値が変化すれば受信成功。ここで信号の時間列を観察し、エアコンのプロトコルを「推測」ではなく「実測」で把握する。
IR LED 送信回路だけで 38kHz の搬送波を生成
PWM で 38kHz を出し、PL-IRM1838B で自分の送信を自分で受信して確認。LED の極性やトランジスタの C/B/E が正しいことを検証する。
学習した信号を再送信してエアコンが動くか確認
実測した MARK/SPACE 時間列をそのまま再送信。エアコンが反応すれば、学習と再送信の閉ループが完成。
DHT20 だけ接続して I²C スキャン → 温湿度取得
i2c.scan() で 0x38 が見えれば配線成功。測定コマンドと待ち時間を守って温度・湿度を読む。
タクトスイッチだけ接続して押下確認
内部プルアップを有効にして、押すと LOW になることを確認。
すべてを統合する
各機能が独立して動いたら、最後に統合。ボタンを押したら温湿度を測定しつつ IR 送信、という流れを組む。一気に全部繋いで動かないより、個別に動作確認してから統合する方が圧倒的に速い。
5. 電源を入れる前の最終チェック
- 3.3VとGNDが直接つながっていないか
- VBUSの約5VがPicoのGPIOへ直接入る経路がないか
- DHT20のPin 1〜4を逆にしていないか
- DHT20のSDA/SCLに5kΩ×2、VDD-GND間に0.1µFが入っているか
- PL-IRM1838BのPin 1=OUT、2=GND、3=VCCを確認したか
- PL-IRM1838Bの電源側に100Ωと47µFの推奨フィルタが入っているか
- BC337-40BUは平らな面を手前・足を下にして左からC-B-E(Pin 1=Collector / 2=Base / 3=Emitter)になっているか
- OSI5LA5A33A-BのPin 1=アノード、Pin 2=カソードを確認したか
- IR LEDに330Ω、BC337-40BU BASE(Pin 2)に2kΩが入っているか
- すべてのGNDが共通になっているか
6. 自由研究として記録する内容
| 実験 | 変える条件 | 記録するもの |
|---|---|---|
| IR受信 | 電源ON/OFF、温度、モード | MARK/SPACEの時間列 |
| 再現性 | 同じ操作を5回程度 | 時間列がどの程度一致するか |
| IR送信距離 | 0.5m、1m、2m、3m | エアコンが反応した距離 |
| IR送信角度 | LEDの向きを変える | 反応できる角度 |
| 温湿度 | 時間経過 | 温度・湿度の推移 |
| 統合動作 | ボタン操作 | 押下からIR送信までの結果 |
7. 第2部へのつながり
第1部が完成したら、Pico 2 WH を「エアコンの近くに置く実働機」にします。Pico は DHT20、IR 受信、IR 送信を担当し、Wi-Fi 経由で Raspberry Pi 4B などのサーバーと通信する。4B 側は SSH、Nostr、ログ保存、外部からの命令受付などを担当します。
この構想が最初からあったからこそ、マイコンに「Wi-Fi 内蔵」を選定したのでした。
図5:第2部の構成イメージ。Pico が実働機、4B がサーバー側を担当。
8. 参考資料
| 資料名 | 確認した内容 | 本プロジェクトでの活用 |
|---|---|---|
| Raspberry Pi Ltd., Raspberry Pi Pico 2 W Datasheet | 40ピン配置、3V3、VBUS、GPIOが3.3V固定であること | マイコン選定の根拠。VBUSをIR LED電源として使用する根拠。 |
| Para Light Electronics, PL-IRM1838B Data Sheet | 電源2.7〜5.5V、中心周波数37.9kHz、active-low、Pin 1=Output / 2=Ground / 3=Vcc、推奨電源フィルタ(47〜100Ω + 47µF) | 受信モジュール選定と配線、電源フィルタの根拠。 |
| Aosong / ASAIR, DHT20 Data Sheet | 電源2.2〜5.5V、I²C、アドレス0x38、Pin 1=VDD / 2=SDA / 3=GND / 4=SCL、4.7kΩプルアップ例、0.1µFデカップリング | 温湿度センサー選定とI²C配線、外付け部品選定の根拠。 |
| OptoSupply OSI5LA5A33A-B(秋月電子商品ページ) | 940nm、順電圧1.6V、順電流最大100mA、放射強度100mW/sr、半減角30°、Pin 1=Anode / 2=Cathode | IR LED選定と極性確認、電流制限抵抗計算の根拠。 |
| Fairchild / ON Semiconductor, BC337/338 Datasheet | BC337-40BUはNPN、45V、800mA、TO-92。端子はPin 1=Collector / 2=Base / 3=Emitter(平らな面を手前にして左からC-B-E) | トランジスタ選定と足順確認、ベース抵抗計算の根拠。 |
| 秋月電子 105998 BC337-40BU | ON Semiconductor製BC337-40BU、10個入り | 入手先確認。型番とメーカーが確定している。 |
| 日立 ルームエアコン AJシリーズ(2026年) | 対象機種RAS-AJ3626Sと付属リモコンRAR-8P2の確認 | 対象機種の特定。ただし赤外線プロトコルは公開仕様で未確認のため、実測で学習する方針。 |
| 秋月電子 117887 47µF 35V 電解コンデンサ | PL-IRM1838Bの47µF電源フィルタ用 | 電源フィルタ部品の入手先。 |
| 秋月電子 110147 0.1µF セラミックコンデンサ | DHT20の100nFデカップリング用 | デカップリング部品の入手先。セラミックなので極性なし。 |
9. なぜこの流れで考えるのか
元の資料が「回路ありき」で「なぜこの部品か」を後付けで説明するのに対し、この記事では「やりたいこと」が常に先に立ち、それを満たすために部品が「必然」として導かれる流れを取っています。
このアプローチの利点は:
- 部品を変更した理由が自然に説明できる:DHT11 から DHT20 へ変えたのは「3.3V 対応」という制約から必然導出される。
- 抵抗値の根拠が明確:2kΩ や 330Ω は「この電流にしたい」という意図から計算され、ただの「部品表」ではなく「設計意図」になる。
- 失敗時の切り分けが容易:一機能ずつ組むので、「今どこまで動いていて、どこで止まったか」が即座に分かる。
- 将来の拡張が見える:Wi-Fi を選んだ理由が「サーバー連携」にあるため、第2部への流れが自然。
- データシートの読み方が身につく:各章で「データシートを確認するとどうなっているか」を明示することで、部品選定の根拠を自分で導けるようになる。