技術検証

ChatGPTで家電を音声制御!自然言語×IoTの未来title_point

はじめに

シリーズ最終回となる第5話では、ChatGPTを使った自然言語での家電制御に挑戦します。

ESP32で赤外線リモコンを制御し、PythonサーバーとMQTTでつながったこのシステムに、
OpenAIのChat APIを組み込むことで「〇〇して」と話しかけるだけで家電が動く世界を実現します。


システム全体像

[Webブラウザ] ─→ inputtext/browser (MQTT)
↓
[Pythonサーバー(MCP)]
├ ChatGPT API にプロンプト送信
└ outputcmd/風呂/1 にMQTTパブリッシュ
↓
[ESP32] → IR送信

MCP(Model Context Protocol)とは?

本プロジェクトで用意した MCPクラス は、ChatGPTとツール(機能)を連携する「頭脳」部分です。

  • ? コンテキストの管理(場所、時間、履歴など)

  • ? コマンドの実行可能リストの保持

  • ? ChatGPTに自然文で指示 → 適切なコマンドに変換


自然言語をどう処理してるの?

入力:「お風呂のテレビを10チャンネルにして」

ChatGPTに送るプロンプト構成:

{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "あなたはツールを活用して家電を制御するAIです。"},
{"role": "user", "content": "お風呂のテレビを10チャンネルにして"}
]
}

ChatGPTの返答(例):

了解しました。お風呂のテレビを10チャンネルに設定するために、
「風呂_1_AMP_0_PANATUN_10」を使用します。TOOL[風呂_1_AMP_0_PANATUN_10]

この TOOL[...] 部分を解析してMQTTに送信します。


コマンドの登録はどうなっている?

前回紹介したスプレッドシート → JSON生成 → irsequence/ に保存
ここにある .json ファイルのファイル名がそのまま ツール名 になっています。

  • ファイル名:風呂_1_AMP_0_PANATUN_10.json

  • 内容:対象デバイス、ポート、コマンド、delay などの一覧

MCPは起動時にこのファイル群をすべて読み取り、自動で .register_tool() を行います。


MQTTでのコマンド送信形式

{
"cmd": "AMP_0_PANATUN_10"
}
  • トピック:outputcmd/風呂/1

  • ESP32が受信し、対応するIR信号を送出します


ユーザーの体験

  1. ? Webページを開く

  2. ? 「テレビつけて」と入力して送信

  3. ? ChatGPTが判断し、ツールコマンドに変換

  4. ? MQTT経由でESP32へ送信

  5. ? 赤外線でテレビがON!


おわりに

この5話を通じて、ESP32とPython、MQTT、Google Sheets、ChatGPTを組み合わせて
「学習リモコン×クラウド×AI」 というスマートな制御システムを構築してきました。

学生や技術者にとっても、

  • MQTTやTTS、AI APIの活用例

  • 実用性の高いIoTプロジェクト

  • フロントエンドと連携する実践的な構成

として学びが詰まった内容になっていると思います。


会社としての狙いと展望

この取り組みはあくまで社内実験プロジェクトですが、

  • 社員のアイデアから始まり

  • 実際にデモ機が動作し

  • 採用広報や技術ブログとして活用でき

一石三鳥の成果を生んでいます。

今後は、LINE連携や音声認識による入力にも広げていく予定です。


? ご覧いただきありがとうございました!
技術的な相談やコラボレーションの提案があれば、ぜひお気軽にお問い合わせください。

? お問い合わせはこちら
? 採用情報はこちら