GitHub CopilotとAIが変えるIoT開発 – エアコン制御で快適な夏の夜を!

みなさん、こんにちは。

いよいよ夏本番、寝苦しい夜が続いていますね。我が家のエアコンは昔ながらのON/OFFタイマー機能しかなく、高級エアコンに搭載されているような、睡眠時のきめ細やかな温度制御ができません。

この「きめ細やかな温度制御ができない」問題、実はけっこう厄介なんです。

 


 

なぜ睡眠時のエアコン制御は重要なのか?

 

自動制御ができないと、こんな不都合が生じます。

  • 電力消費の増大
    • 一晩中エアコンを稼働させれば、電気代が高騰してしまいます。
  • 体調管理の困難
    • 冷えすぎによる体調不良や、乾燥で喉を痛めることも。
  • 環境負荷
    • 不必要な電力消費はCO2排出量の増加につながります。
  • 固定スケジュール
    • 部屋の温度に関係なく、決まった時間にしか動作しないのは非効率的です。
  • 温度センサーの位置
    • エアコン本体のセンサーでは、寝室の実際の温度を正確に測れません。
  • 柔軟性の欠如
    • 個人の睡眠パターンや季節の移り変わりに合わせた調整が難しいです。
  • データ蓄積機能の不足
    • 睡眠環境の分析や改善に役立つデータが残りません。

この問題をシンプルに、でも賢く解決できないか、と考えた末、設定した温度を超えたら30分だけエアコンを動かして止める、というシンプルな案にたどり着きました。これなら単純なので、比較的簡単に実装できそうです。

今の時代、自分で実装する必要はありません。頼りになるのは、そう、GitHub Copilotです!

 


 

GitHub Copilotと共にエアコン制御システムを開発!

 

GitHub Copilotの力を借りるといっても、ゼロからすべてを作る必要はありません。これまでに公開してきた以下のシステムを組み合わせれば、実現できそうです。

 

今回は、これらのシステムを組み合わせ、睡眠時のエアコン制御プログラムをGitHub Copilotを使って開発した手順をご紹介します。

 


 

GitHub Copilot Agentモードでプロトタイプ作成

 

まずは、開発の意図を明確にし、Visual Studio CodeのGitHub Copilot拡張機能を使ってGitHub Copilot Agentモードでプログラムのたたき台を作ってもらいました。

開発の意図

  1. 省エネルギーの実現:
    • 「必要な時だけ、必要な分だけ」を原則とし、室温が設定閾値を超えた場合にのみエアコンを短時間(30分)稼働させることで、大幅な省エネを目指します。
  2. 快適な睡眠環境の維持:
    • 実際の寝室温度をリアルタイムで監視し、熱中症リスクのある温度(34℃以上)になった場合のみ自動的にエアコンを起動。安全で快適な睡眠環境を確保します。
  3. IoT技術の活用:
    • Ambient: クラウドベースのデータ収集・監視サービス
    • eRemote: 赤外線学習リモコンによる既存エアコンの制御
    • Linux システム: 安定した24時間稼働とスケジュール管理
    • Python: 柔軟なプログラミングと豊富なライブラリ これらの技術を組み合わせ、スマートな制御システムを構築します。
  4. 個人の生活パターンへの対応:
    • settings.iniファイルで以下のカスタマイズを可能にします。
      • 睡眠時間: 個人の就寝・起床時間に合わせたスケジュール
      • 温度閾値: 個人の体感温度や健康状態に応じた設定
      • 強制終了時間: 確実な起床時間でのエアコン停止

Agentモードは非常に優秀で、ものの数分でプログラムの骨格ができあがりました。その後、2度の修正指示で、すぐに動く状態に!README.mdも自動生成してもらい、GitHubのリポジトリにプッシュするまであっという間でした。

この段階までは、以前の記事でも同様の作業を行っています。

 


 

GitHub Copilot Coding Agentでさらなる改善!

 

今回はさらにその先へ進みます。実際に使ってみて不満点があったので、今度はGitHub Copilot Coding Agentに働いてもらうことにしました。私が加入しているGitHub Copilot Proでは、最近この機能が使えるようになったんです!

ここで少し補足です。

GitHub Copilot Agentモードはプロンプトを与えて指示通りのコードを生成してもらう機能です。
一方、
GitHub Copilot Coding Agentは、既存のプログラムに課題(issue)を与えて、その課題を解決してもらう機能です。

Coding Agentは、課題の意図を汲み取ってコードを修正し、テストを行い、その結果をプルリクエストとして報告までしてくれます。コード生成に留まるAgentモードよりも、はるかに幅広い作業を自動で行ってくれるわけです。人間は報告を確認し、修正されたコードを適用するかどうかを決定するだけ。課題を与えた後は、プルリクエストが来るまで何もしなくていいなんて、なんて素晴らしい機能でしょう!

さて、本題に戻ると、やるべきことはシンプルです。

感じた不満点をGitHubにissueとして登録し、Copilotにアサインするだけ。このあたりの詳しい手順は、以下の記事が参考になりますので、そちらをご参照ください。

Proプランでも使えるようになった「GitHub Copilot coding agent」を試してみた

issueを登録して待つこと数分、Copilotからプルリクエストのメールが飛んできました。早い!

コードを確認したところ、特に問題なさそうだったので、すぐにコードをマージし、これで完成となりました。

 


 

完成したプログラムと今後の展望

 

できあがったプログラム一式は、以下のリポジトリで公開しています。

https://github.com/taoman26/sleep_condition_controller

今回も半日足らずでプロジェクトが完了しました。プログラミング体験が日々進化しているのを実感します。これからは、「何を開発すべきか」により多くの時間を割けるようになりますね。

つい最近まで、自律型エージェントの分野ではGitHub Copilotはやや後塵を拝している印象でしたが、今回のようにissue管理と統合できるようになったことで、GitHubをコード管理のメインとして利用しているユーザーにとっては、GitHub Copilotが圧倒的なアドバンテージを持つようになったと言えるでしょう。

AIコーディングは日進月歩の世界。1ヶ月後にどうなっているかは予測できませんが、とにかく今の時点では、私はGitHub Copilot Coding Agentを最大限に活用していこうと思います。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいAI開発体験を!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール