ImadokoM5Unified

ImadokoM5Unified
ownTracksからMQTTを用いて得られる位置情報をもとに、OpenStreetMap等の地図を用いて画像を生成するPHPスクリプトであるstaticmap.phpで生成された地図画像をダウンロードして、M5Stackシリーズの画面上に地図を表示し続けるアプリケーション

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上でビルドしてデバイスに書き込みます。

そのほかのデバイスでも…

こんな感じで動きます。

ハードウェアごとに若干変更点があるので、ブランチで分けています。