ImadokoM5Unified
ImadokoM5Unified
今回は、ImadokoM5Unifiedについて紹介したいと思います。 ImadokoM5Unifiedは、ownTracksからMQTTを用いて得られる位置情報をもとに、OpenStreetMap等の地図を用いて画像を生成するPHPスクリプトであるstaticmap.phpで生成された地図画像をダウンロードして、M5Stackシリーズの画面上に地図を表示し続けるアプリケーションです。
M5Unifiedライブラリを用いているので、様々なM5Stackシリーズで動作します。ビルドはPlatformIO上で行っています。
動機と動作の仕組み
このアプリケーションの目的は、自分の位置情報を家族が簡単に確認できるようにすることです。ownTracksは、スマートフォンにアプリをインストールすることで、スマートフォンの位置情報をMQTTサーバに送信することができるアプリケーションです。MQTTサーバは、位置情報を受け取って保存したり、他のデバイスやアプリケーションに配信したりすることができます。staticmap.phpは、OpenStreetMapのタイルサーバから地図画像を生成するPHPスクリプトです。ImadokoM5Unifiedは、MQTTで受信した位置情報をもとに、staticmap.phpが生成した地図画像をダウンロードして、M5Stackシリーズの画面に表示します。 これを使うと、出張中などに自分がどのあたりにいるかを家族に見せることができます。同じことはiPhoneの「探す」アプリなどでも可能ですが、M5Stackで移動経路を常時表示しておくとまた独特の面白さがありますね。
必要なもの
このアプリケーションを使うには、以下のものが必要です。 位置情報を扱うので、MQTTサーバを設定する際はセキュリティに十分気をつけてください。
- ownTracksからの情報がPublishされているMQTTサーバ
- staticmap.phpが動作しているWebサーバ
- Wi-Fi
ビルド方法
ソースコードはGitHubのリポジトリで公開しています。 ビルド方法は以下の通りです。
- config-example.h をもとに、config.h を作成し、MQTTサーバやWebサーバのURLなどを設定します。
- platformio.ini の boardを使用するM5Stackシリーズに合わせて設定します。
- PlatformIO上でビルドしてデバイスに書き込みます。
そのほかのデバイスでも…
こんな感じで動きます。
ハードウェアごとに若干変更点があるので、ブランチで分けています。
- M5Stamp C3U + M5Stampラウンド液晶モジュール: GitHub - mokjpn/ImadokoM5Unified at stampc3u-round
- M5Stamp S3 + M5StampS3ラウンド液晶モジュール: GitHub - mokjpn/ImadokoM5Unified at stamps3-round
- Wio Terminal: ATSAMD51 Core with Realtek RTL8720DN BLE 5.0 & Wi-Fi 2.4G/5G Dev Board - Seeed Studio: GitHub - mokjpn/ImadokoM5Unified at wioterminal
- Raspberry Pi Pico W + RsPicoラウンド液晶モジュール: GitHub - mokjpn/ImadokoM5Unified at pipico-round