0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5Stackで作る、自分だけのAPI Launcher

0
Last updated at Posted at 2026-05-03

はじめに

家のIoTデバイスを増やしていくと、操作の手数のバリエーションは増えていく。テレビをスマホから操作できる、照明をスマホから操作できる、ルーターリセットもスマホから・・・何かしらトリガーするためには毎度スマホを取り出してWebブラウザを開いて使う必要があり、便利なようで面倒で不便と感じることが多々あったので、死蔵していたM5Stack Core2を使ってUI付きのAPIクライアントを構えることにした。

つくったもの

APIリストから任意の登録済みのコマンドをトリガーできる

工夫点

  • 触覚フィードバック
    Core2は画面が小さく、ボタンも静電タッチとなるので、押したか押してないかが分かりにくい。コマンド実行が通った時には内蔵バイブレーションモーターで触覚フィードバックを返すようにして、応答を分かりやすくした。
  • ステータス
    エッジデバイスあるある、焼かれたソフトがどのビルドかわからなくなるので、Git CommitハッシュSHAを表示させた。UIFlowのAPIで色んな情報が拾えることが分かるので、意味もなく電池SOC%など表示させておいた。
  • APIリスト
    APIは今後抜き差しが発生するはずなので、apis.jsonで管理しやすくした。

構成

アプリ内部の構成

使用するデバイスはM5Stack Core2なのでUIFlow前提の設計になる。VSCode拡張機能のPlatformIOはうまく動作しなかったので、CLI版を使った。main.cppにモノリシックに書いていくと大変なことになったので、メインループだけメイン関数で書いて、部品ごとに分離してUIFlow APIを直接呼ばない構成にした。

image.png

おわりに

UIFlowとPlatformIOはどうしてもとっつきずらく、デバイスも買って少し遊んだきり死蔵してしまっていたが、コーディングエージェントのおかげで簡単に試せるようになった。実デバイスであろうと、コンソール出力で文字列を出させるようにすることで、実機テスト環境も構築できた。COM通信リセット->ビルド->テストの一連のプロセスをスクリプト化させた。今回のお試しでは、実機に直接APIリストを焼きこむ構成にしてしまったので、家庭内のAPI基盤からAPIリストを配信する仕組みにするなど、管理のメンテナンス性向上に取り組みたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?