M5Stack PR

【M5Stack】無線通信でスマホの各センサ値を取得する -加速度・ジャイロ・GPSまるっとGET-

M5Stackでスマホのセンサ値を取得
記事内に商品プロモーションを含む場合があります

こんにちは。

現役エンジニアの”はやぶさ”@Cpp_Learningです。

最近、M5Stackで遊ぶのがマイブームです!”調べた内容”や”自作アプリ”については本ブログで公開しています。

【M5Stack入門】初心者向け情報まとめ
M5Stack
【M5Stack入門】初心者におすすめしたい情報まとめこんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 先日、Maker Faire Tokyoや趣味T...
M5Stackアバターおしゃべりアプリの作り方 -30分クッキング-
M5Stack Avatar Talk
【M5Stack入門】アバターおしゃべりアプリの作り方 -PlatformIO IDE for VSCode編-こんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 前回『M5Stack初心者におすすめしたい情報ま...
M5StackとPCの無線通信による「おしゃべり代行アプリ」を作る
M5Stackおしゃべり代行アプリ
M5StackとPCの無線通信による「おしゃべり代行アプリ」を作るM5Stack(Wifiサーバ)とPC(クライアント)をTelnetで無線通信して、PCのキーボードから入力した文字をM5Stackアバターが読み上げる「おしゃべり代行アプリ」を作りました。アプリの使い方はもちろんソースコードも公開しています。遊んでくれたら嬉しいです。...

今回は『M5Stackでスマホのセンサ値を取得するアプリ』を作りました。

M5Stackとスマホを無線通信(UDP)で接続して、スマホの各センサ値(加速度・ジャイロ・GPSなど)をまるっと取得しています。

本記事で「アプリの作り方」・「使い方」を説明します。

スマートフォンを多機能センサとして使う

以前、私の仕事道具について記事を書きました。その中の一つにスマートフォンがあります。

カメラ・加速度・ジャイロスコープ・磁力計・GPU・時計などオールインワン計器としてスマホを活用するのオススメ
現役エンジニアおすすめの仕事道具
【仕事効率化】現役エンジニアおすすめの仕事道具(キーボード・文房具など)現役エンジニアの”はやぶさ”が仕事効率UPのために使っている仕事道具(キーボード・マウス・文房具など)を紹介します。自分に合う道具を使って気持ちよく仕事をしましょう!...

スマホの加速度センサで腹筋データ取得して振動解析してみたり…

振動の基礎
【データ分析入門】機械学習未使用!Pythonでゼロから始める振動解析機械学習(深層学習含む)によるデータサイエンスが流行っていますが、フーリエ解析などの振動解析により、異常検知を行うこともできます。本記事はデータ分析/振動解析学ぶための実践的なチュートリアル記事です。...

スマホのジャイロスコープで波動拳モーションのデータ取得して時系列データ予測してみたり…

MXNetとGluonTSによる時系列データ予測
MXNetとLSTMで時系列データ予測 -入門から実践まで-こんにちは。 ディープラーニングお兄さんの”はやぶさ”@Cpp_Learningだよー 前回『MXNetで物体検出』に関する...

スマホ一つで様々なデータを取得することができます!

スマホのセンサ値をM5Stackで活用する例

多くのセンサが手のひらサイズに収まるので、スマホは本当に便利です。このスマホを上手に活用することで、M5Stackを手軽にパワーアップできます。

【スマホ活用術】

  • M5Stackとスマホを接触した状態で使って手軽にM5Stackを”多機能化”
  • スマホの加速度やジャイロを使ってM5Stackを”リモートコントロール”
  • スマホのGPSや磁力計データをM5Stackでモニターする”スマホ状態監視”

などスマホとM5Stackの連携で、出来ることの自由度が大幅に広がります!

ZIG SIM -電子工作のプロトタイピング用スマホアプリ-

今回、M5Stackアプリは自作しましたが、スマホアプリについてはZIG SIMを使いました。

ZIG SIM

ZIG SIM

1-10無料posted withアプリーチ

ZIG SIMとは、スマホを多機能センサとして活用し、電子工作やマイコンプログラミングのプロトタイピングを強力にサポートしてくれスマホアプリです。

【ZIG SIMの特徴】

  • スマホに搭載されたセンサを簡単に使える
  • 複数のセンサ値を同時に取得できる
  • センサ値をJSON形式で扱える
  • Wifi(UDP/TCP)通信で簡単にセンサ値を送信できる
  • タイムスタンプも取得できる

M5StackなどのWifi搭載モジュールにデータ送信でき、かつセンサ値がJSON形式で扱えるので、データ受信とJSON形式の読み込みができれば、スマホのセンサ値を活用したアプリを自作できます。

ZIG SIMのデータ構造(JSON形式)については、以下の記事が参考になりました。

【ArduinoJSON】M5Stackで使えるJSONライブラリ

M5Stack(Arduino)でJSON読み書きするなら、直観的に使えるArduinoJSONがオススメです。

ArduinoJSON

引用元:ArduinoJSON|公式サイト

インストール方法については、以下の記事が参考になります。

スポンサーリンク

実践!M5Stackでスマホの各センサ値を取得する

今回、ZIG SIMArduinoJSONなどを上手に利用して『M5Stackでスマホの各センサ値を取得する』M5Stackアプリを作成しました。

通信メインのアプリなので、ネットワーク概要を説明した後でソースコードを公開します。

アクセスポイント・データ送信側・データ受信側・通信方式・ネットワークなどの説明があると、とても勉強になるので読んでて嬉しくなるよね(*・ω・)ノ♪

ネットワーク概要

今回、構築したネットワークの概要は以下の通りです。また、通信方式にはUDPを採用しました。

M5StackとスマホのUDP通信

【ネットワーク概要】

  • アクセスポイント:ホームルータ
  • UDPデータ送信側:ZIG SIMインストール済みスマホ※
  • UDPデータ受信側:M5Stack※

※iPhoneXとM5Stack Grayで動作確認しました

UDPを採用した理由は、通信の信頼性よりも高速性を重視したかったからです。

M5Stackアプリ』のソースコード

『UDP受信でスマホのセンサ値(JSON形式)を取得するM5Stackアプリ』のソースコードが以下です。

個人的によく使う「加速度」・「重力加速度」・「ジャイロスコープ」を扱う仕様になっています。「GPS」・「磁力計」などを扱いたい場合は、該当するセンサのJSON形式を確認し、本ソースコードを改良して下さいな(*・ω・)ノ♪

『M5Stackでスマホのセンサ値を取得するアプリ』の使い方

以降で受信側(M5Stackアプリ)・送信側(ZIG SIM)の使い方を説明します。

M5StackとスマホのUDP通信

M5Stackアプリの使い方 -UDPデータ受信-

まずは、受信側(M5Stackアプリ)の使い方を説明します。上記ソースコードをインストールしたM5Stackを用意して、電源ONするだけです。

M5StackとスマホのUDP通信

電源ONすれば、自動で「ネットワーク接続」 ⇒ 「UDP受信待ち」状態に移行します。

「UDP受信待ち」状態でデータ受信したら、タイムスタンプとセンサ値を表示します。

M5Stackの通信状態に応じて表示が変わりますので、〇〇状態のときに通信が不安定になる…などを確認してみて下さい。

「❶ネットワーク接続」が上手くいかないときは、アクセスポイントの電源がOFFになっていないか?などを疑ってみてください。

ZIG SIMの使い方 -UDPデータ送信-

続いて、送信側(ZIG SIM)の使い方を説明します。

ZIG SIM

「Setting(設定)」⇒「Select(センサ選択)」⇒「Sensing(計測開始)」の順にスマホを操作すれば、選択したセンサで「計測」および「センサ値の送信」が始まります。

IPアドレス/ポート番号はM5Stackの表示「❷UDP受信待ち」で確認できます

アプリを動作確認したときの動画が以下です。スマホのセンサ値と同じ値がM5Stackにも表示できています。

※冒頭と同じ動画です

まとめ

M5Stackは大人も子供もプログラミングを楽しめる素敵なマイコンモジュールです。

くるる
くるる
無線通信やセンサを使ったM5Stackアプリを作りたい!

と考えているフクロウ@kururu_owlや人をサポートしたいと想い…

汎用的な『M5Stackでスマホのセンサ値を取得するアプリ』の作り方・使い方を公開しました。

このアプリをベースにしたオリジナルアプリを作りました!

なんて人が現れたら最高に嬉しいです!

はやぶさ
はやぶさ
本記事のソースコードは好き改良してOKです!

自由な発想でプログラミングを楽しんでくださいね(*・ω・)ノ♪

M5Stack Gray(9軸IMU搭載)
スイッチサイエンス

M5Stack
【M5Stack入門】初心者におすすめしたい情報まとめこんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 先日、Maker Faire Tokyoや趣味T...
M5Stack Avatar Talk
【M5Stack入門】アバターおしゃべりアプリの作り方 -PlatformIO IDE for VSCode編-こんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 前回『M5Stack初心者におすすめしたい情報ま...
M5Stackおしゃべり代行アプリ
M5StackとPCの無線通信による「おしゃべり代行アプリ」を作るM5Stack(Wifiサーバ)とPC(クライアント)をTelnetで無線通信して、PCのキーボードから入力した文字をM5Stackアバターが読み上げる「おしゃべり代行アプリ」を作りました。アプリの使い方はもちろんソースコードも公開しています。遊んでくれたら嬉しいです。...

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python