「M5StickC」と無料ネットサービス「Ambient」で令和最強台風を記録する!!

ガジェット・家電・グッズ
この記事は約14分で読めます。
スポンサーリンク
スポンサーリンク

令和最強と言われる台風19号が近づいてますね。

(防災準備はちゃんとしましょう!)

IoTクラスタとしては、令和最強台風の気圧情報を取得してみたいですよね?!

それ、「M5StickC」と「ENV HAT」だけで実現可能なんです!

それも半田付けもブレッドボードも無しに!

 

おお、ちょうど手元に「M5StickC」と「ENV HAT」があるじゃん!という方。

なら、みんなで気圧グラフ記録しませんか!?という企画です。

こんな感じのグラフがお手軽に作れちゃいます♪(良い時代だなぁ・・・)

 

【2020.09.06】「M5StickC Plus」対応に併せ、内容を更新しました!

概要

尚、今回のプログラムでは「MicroPython」という組み込み用Pythonを使っています。

初学者が躓きやすいArduino IDEの環境構築とかコンパイル作業が不要で、ファイル転送するだけで簡単に使えるのでおススメ♪

また、グラフ化については、「Ambient」という無料のIoTデーター可視化サービスを活用させて頂きました。

ゼロからスタートしても、「M5StickC」を開封して1時間と掛からずにグラフ表示まで行けると思いますので、是非お試しあれ。

 

必要なブツ

「M5StickC」

このブログ読んでからポチっても遅いかも知れませんが、電気街が近い方なら、千石電商やマルツ、九十九さん辺りでも入手可能です。(在庫切れの可能性はあるけど)

 

最近発売された大型液晶版の「M5StickC Plus」にも対応しています。(まだまだ取り扱い店が少ないですが。。)

 

「ENV HAT」

M5StickC ENV Hat(DHT12/BMP280/BMM150搭載) M5STACK-ENV-HAT

コイン一個くらいのお値段で、気圧センサ「BMP280」に温度・湿度センサ「DHT12」、更に地磁気センサ「BMM150」が入っているお得モジュールです。 お得過ぎて怖い!!(笑)

こちらも。このブログ読んでからポチっても遅いかも知れませんが、電気街が近い方なら、千石電商やマルツ、九十九さん辺りでも入手可能です。(在庫切れの可能性も同じく)

 

WiFi環境

当然ありますよね!?

無い人は・・・Ambientへのデーター送信が出来ないので、気温・湿度・気圧の時間変化をグラフで見ることは出来ないです。M5StickCに気温・湿度・気圧値が表示されるので、それを見て楽しみましょう。

 

作業の大まかな流れ

下記の6ステップで進めます。(実質1時間も掛からないでしょう)

 

  1. 「M5StickC」を最新ファームに更新する
  2. 「VS Code」をインストールし「M5StickC」を接続する
  3. 「Ambient」に登録する
  4. 「Ambient」のPythonライブラリを取得する
  5. 「VS Code」で「M5StickC」にプログラムを転送する
  6. グラフを確認する

 

作業はコレだけ。 楽ちんです♪

 

では、早速始めてみましょう。

 

1.「M5StickC」を最新ファームに更新する

M5Stack公式のクイックスタートを参考にして、「WiFiセッティング」まで作業を進めて下さい。

 

最初のM5Burnerのダウンロードリンクが404 Not Foundになってますが、メゲちゃダメです。

右上の「SOFTWARE」の「Downloads」で真のダウンロードページに遷移できます。

(いい加減リンク直そうぜ >M5Stackさん)

 

尚、「M5StickC」へ書込むファイルは出来るだけ最新が望ましいです。

今回のプログラムは「UIFlow ver 1.6.2」で試しております。

 

ということで、クイックスタートを見つつ、WiFi接続までとっとと済ませちゃって下さい。

 

2.「VS Code」をインストールし「M5StickC」を接続する

「M5StickC」へMicroPythonプログラムを転送する方法は色々ありますが、今回は、最近流行りの統合開発環境「Visual Studio Code(VS Code)」を使ってみます。

無料で使えますので、「VS Code」初めてという方もぜひ試してみてください。

今回は細かい所まで使いません。幾つかボタンを押すだけなので、恐れずにチャレンジしてみてください。
(細かいところは追々学べば良いと思います。つか、私も分からないので誰か教えて・・・)

 

「VS Code」をインストールする

こちらからお使いのPC環境に合った「VS Code」をダウンロードしインストールしましょう。

(私はWindowsユーザーなので「User Installer 64bit」を選択しました)

 

M5Stack公式のVS Code機能拡張をインストールする

「VS Code」が起動したら、下記の赤矢印のExtensionsボタンを押します。(機能拡張ボタン)

現れた機能拡張エリアの「Marketplaceで機能拡張を検索する」の場所に「m5stack」を入力し、リスト上のM5Stack社公式の機能拡張「vscode-m5stack-mpy」を選択してインストールします。

 

「M5StickC」をPCに接続し、COMポート番号を確認する

「M5StickC」をPCに繋ぐ前に「USB接続モード」へ遷移させる必要があります。

M5社の公式情報が見当たらないのですが、私が試したところ、下記方法でUSB接続モードへ遷移させることが出来ました。

「Button B」を押しながら「Power Button」を押す度にモード切替わるので、USBのロゴが出る画面になるまで操作を繰り返してください。

これでUSB接続モードになります。

 

続いて、USBケーブルでPCへ繋ぎます。

「M5StickC」を繋いだ際にPCが認識したCOMポート番号をデバイスマネージャー等で控えます。

(公式クイックスタートのファーム更新の際と同じです)

私の場合は「COM9」で認識してました。

 

「VS Code」で「M5StickC」を繋ぐ

「VS Code」画面左下の「Add M5Stack」をクリック。

 

上の方に現れたCOMポートリストで、先程控えたCOMポート番号をチェックし「OK」をクリック。

 

次に「VS Code」の左上のエクスプローラーボタンでエクスプローラーを開きます。

エクスプローラーウィンドウ内の「M5STACK DEVICE」を選択すると、先程チェックしたCOMポート番号が現れます。

このCOMポートを選択すると、「M5StickC」の中のファイルリストが見える様になっている筈です。

はい。見えましたね。

これで「VS Code」で「M5StickC」にプログラムを流し込む準備が整いました!

 

リストが現れない場合は下記をご確認ください。

PC上で認識されてる「M5StickC」のCOMポート番号が合ってるか?
「M5StickC」が「USB接続モード」になっているか?

それでもダメなら一度USBケーブルを抜き差しし、「M5StickC」を電源OFF(電源ボタン6秒長押し)して再起動させるなどを試してみてください。

 

ここまで進んだところで、一旦「VS Code」はそのまま置きます。(終了させる必要はありません)

 

3.「Ambient」に登録する

Ambient」とはIoTデーターの可視化サービスです。

デバイスで取得したデーターをネットワーク越しにAmbientサーバーに投げるだけで、後はAmbientサーバー上で簡単にグラフにしてくれます。

無料枠だと制限がありますが、気圧グラフくらいは問題無く作れるので、今回はこのサービスを活用させて頂きます。

無料でこんな素敵なサービス使わせてくれるなんて、太っ腹や!!

 

まずは、ユーザー登録(無料)を行いましょう。

ログイン後、「Myチャネル」の左下の「チャネルを作る」を選択します。

新たに生まれたチャネル名の「チャネルID」と「ライトキー」を控えます。(※「リードキー」は今回は使いません)

 

4.「Ambient」のPythonライブラリを取得する

GitHubのリンクより、「Ambient」のライブラリを取得します。

「Clone or download」のDownload ZIPにて、ライブラリが含まれたZIPファイルがダウンロードされますので、任意の場所で解凍しておきましょう。

 

5.「VS Code」で「M5StickC」にプログラムを転送する

「Ambient」のPythonライブラリと気圧取得用のPythonプログラム本体「test_ENV_Ambient.py」、Ambientの設定ファイル「am_set.txt」を「M5StickC」へアップロード(転送)します。

必要なファイルを用意する

サンプルプログラムはGitHubに置いてありますので、GitHubのリンクより、必要なファイルを取得しましょう。

「Clone or download」のDownload ZIPにて、ZIPファイルがダウンロードされますので、任意の場所で解凍しておきましょう。

他に必要なファイルは、GitHubのREADMEに記載してありますので、そちらをご参照下さい。

 

尚、Ambientへの転送を行う場合は、設定ファイル「am_set.txt」にご自身のAmbientの「チャネルID」と「ライトキー」を入力して頂く必要があります。

※修正内容については、先のGitHubのREADMEにて説明しておりますので、そちらをご参照下さい。

 

ライブラリと設定ファイルを「M5StickC」へ転送する

続いて、Ambientライブラリ「ambient.py」、設定ファイル「am_set.txt」をアップロード(転送)します。

 

「VS Code」上で、「M5StickC」のCOMポート番号のファイルリスト右上の「upload」ボタンをクリックし、先程ダウンロードしたファイル群から各ファイルを選択して「M5StickC」へ転送します。

転送が終了すると、「M5StickC」のファイルリストにそれぞれのファイルが追加されている筈です。

 

気圧取得プログラム「test_ENV_Ambient.py」を「M5StickC」へ転送する

テストプログラムのアップロード先は、先程のライブラリ類とは違って「apps」配下である必要があります。(後述するプログラム指定モードで選択出来るのが「apps」配下のファイルだけの為)

といっても何も難しいことではなく、「VS Code」の「M5STACK DEVICE」リスト上で「apps」の横のuploadボタンを押すだけです。

この画面キャプチャ上では色々と余計なファイルが置かれてますが、気にしちゃダメです(笑)

 

 

「M5StickC」をプログラム指定モードにする

「Power Button」を6秒長押しして「M5StickC」を一旦電源OFFし、モード選択操作(「Button A」を押しながら「Power Button」を押す)で「APP.List」を選択し、先程転送したテストプログラムを選択します。

以降は、電源OFFしても次回起動時にこのプログラムが自動起動する様になります。

他のプログラムやモードを選びたい場合は、改めて、電源OFFからのモード選択操作をすればOKです。

 

起動すると、「M5StickC」の画面上にまず時計が現れ、数秒後に気温・湿度・気圧が表示されます。

画面上の気温・湿度・気圧の更新頻度は1秒毎になっています。

 

6.グラフを確認する

今回のプログラムでは、300秒毎(5分毎)に気圧データを「Ambient」サーバーへ投げています。

「Ambient」の諸元/制限によると、1チャネルあたり1日3千件までデーターを登録できるとなってます。(有料枠だとどうなのかは分かりません)
今回のプログラムでは気温・湿度・気圧の3つのデータを5分毎に登録することで、十分に制限枠内に収まっております。

 

10分程待ったら、「Ambient」にログインし、Myチャネルより気圧データーが登録されてる(筈の)チャネルをクリックし、グラフを確認します。

もし出てこない様なら下記をご確認下さい。

プログラム上の「チャネルID」や「ライトキー」が間違えてないか?
「M5StickC」がちゃんとWiFiでインターネット接続出来ているか?

 

尚、グラフの表示状態はカスタマイズが可能です。

私は気温・湿度・気圧毎にグラフを設定してます。(下記に参考として設定画面を載せておきます)

<チャネル設定>

 

<チャート設定>

今回の台風だと最小値は950だと尺が足りないかも知れませんね。(グラフ表示だけの問題なので、後から修正可能です)

 

後は台風に備えるだけです!!

台風通過時のグラフをみんなで見せ合おうぜ!!

(以下は、先月の台風15号の時の記録です)

・・・99hPaじゃなくて990hPaですね。どんな台風やねん! (^_^;)

 

【2019/10/13追記】

台風19号通過しました! 幸い我が家の被害は殆ど無かったのでホッとしました。

台風19号の気圧グラフ結果はこんな感じ↓でした。

気圧グラフ見てると、台風通過の瞬間がリアルタイムで分かるの面白いね♪

 

基本的な使い方

「M5StickC」の表示例はこんな感じ。

 

「M5StickC Plus」の表示例はこんな感じ。 液晶大きいと文字が読みやすくて良いですね♪

 

ちなみに「ENV HAT」をそのまま「M5StickC」に装着するとやや温度が高めに表示されます。

どうも「M5StickC」本体側の熱を拾ってしまう模様。

なので、上記写真では私がBOOTHで販売してる「PinHeader HAT」を間に挟んで本体から距離を取る様にしています。

気圧測定そのものにはあまり関係ないですが、HAT装着したままでも途中の信号をオシロで見るのに便利だったりしますので、興味のある方は下記ショップページも覗いてみて下さい。m(__)m

M5StickC用「PinHeader HAT」と「Extend PCB (オスメスコネクタ含む)×2セット」のセット - きっと何かに役立つでしょ!? - BOOTH
「M5StickC」用の「PinHeader HAT」と「Extend PCB ×2(オスメスコネクタ含む)」のセットです。 ※写真1枚目が本セットに含まれる商品一覧です。

 

閑話休題。

 

サンプルプログラムには下記の機能を盛り込んであります。

画面消灯/点灯切り替え

Aボタンに割り当ててあります。(M5ロゴの有るボタン)

 

画面表示方向180度回転

Bボタン(電源ボタンじゃない方の側面ボタン)を押すと表示が180度回転しますので、設置向きに合わせてお選び下さい。

 

困ったときは?

・Ambientにデーターが送られない場合

【2020/09/05時点の情報】最新のAmbient.pyライブラリだとAmbientへのデータ送信がうまく行えない事象が報告されています。 Mar 17.2018時点のライブラリだと正常に送信出来ますので、問題がある場合はそちらもお試しください。

 

その他については、GitHubでサンプルのテストプログラムのソースコードを公開しておりますので、そちらを読んでください。

(MicroPythonで記述していますから、Python読める人ならなんとかなりますよね?)

 

尚、公開しているプログラムは、あくまでサンプルなので、全ての環境で動作を保証するものではないことを予めご理解願います。

 

まとめ

(台風怖いデス。 大丈夫か不安でいっぱいデス。 ちゃんと備えましょう!!)

 

以下、本記事で紹介した商品のリンク

「M5StickC」

 

「M5StickC Plus」(新製品なので、まだ取り扱い店が少ないですが・・・)

 

「ENV HAT」

M5StickC ENV Hat(DHT12/BMP280/BMM150搭載) M5STACK-ENV-HAT

 

コメント