😆

esp32で自作スマートリモコン作ってみた

2023/12/06に公開

なぜ作成したのか

  • 市販されているスマートリモコンはWiFi動作の物(それも2.4ghz)ばかり
  • 有線LANで動作するスマートリモコンが個人的に欲しかった
  • 授業でマイコンを触っておりマイコンで何か作りたかった
  • ついでにスマートスピーカー関係のプログラムも書いてみたい
  • せっかくなので自作してみる

仕様

  • REST API(JSON) or OK Googleにて操作可能
  • 部屋の温度・湿度の表示にも対応 (1分ごとの更新)
  • Google Local Home SDKを使用
  • Google Homeアプリを利用することでスマートフォンからの操作も可能
  • 外出先などからの操作も対応
  • 操作時に Firebase を経由する
  • サーバー・データベースにfirebaseを使用

フローチャート

Google Local Home SDKを採用した理由

  • 純粋に興味があったから
  • Nest デバイス とマイコンをローカルで直接通信できるから
  • アプリやサーバーを自分で用意する必要が無さそうだったから
  • ついでに外出先などからの操作も簡単に実装できる気がしたから[1]
  • firebase にも触れてみたかったから

完成品 画像

設置例

スマホ操作画面(Google Home アプリ) スクリーンショット

作ってみて良かったこと

  • 授業以外でマイコンに触れるきっかけが出来た
  • firebaseに触れるきっかけが出来た
  • スマートスピーカー関連のプログラミングに触れるきっかけが出来た
  • サーバーレスでも予想より不自由無く完結出来た

苦労した点

  • Google Local Home SDKの資料が思ったより少なかった
  • 生成AIに聞いても間違った回答や存在しない関数を出力する
  • (情報量が少ないのが原因?)
  • APIリファレンス以外の情報が無いことも珍しくない(例外処理など)
  • マイコンのライブラリが有線LANと互換性がまったく無かったり、
    有線LANでのサンプルが少なかったりする

動作デモや今回制作したコード

  • 音声操作デモ

https://youtu.be/d5XL_ALOPGo
https://youtu.be/BRCZFUDtcAU?si=T4IjvMXXsMZlxM2o

  • スマホアプリ操作デモ

https://youtu.be/8uFAFsiCIAs

  • 証明操作デモ

https://youtube.com/shorts/lTwAtSKpIoY

  • すべてのコード

https://gitlab.com/kansai-pg/google-local-sdk-thermostat

どうでもいい余談

chromecastからでも操作可能

https://youtu.be/15qGXFr8IAo

脚注
  1. アプリとかサーバーとかを自前で用意せずに楽して実装できそう(本音) ↩︎

Discussion