令和最強と言われる台風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」
コイン一個くらいのお値段で、気圧センサ「BMP280」に温度・湿度センサ「DHT12」、更に地磁気センサ「BMM150」が入っているお得モジュールです。 お得過ぎて怖い!!(笑)
こちらも。このブログ読んでからポチっても遅いかも知れませんが、電気街が近い方なら、千石電商やマルツ、九十九さん辺りでも入手可能です。(在庫切れの可能性も同じく)
WiFi環境
当然ありますよね!?
無い人は・・・Ambientへのデーター送信が出来ないので、気温・湿度・気圧の時間変化をグラフで見ることは出来ないです。M5StickCに気温・湿度・気圧値が表示されるので、それを見て楽しみましょう。
作業の大まかな流れ
下記の6ステップで進めます。(実質1時間も掛からないでしょう)
- 「M5StickC」を最新ファームに更新する
- 「VS Code」をインストールし「M5StickC」を接続する
- 「Ambient」に登録する
- 「Ambient」のPythonライブラリを取得する
- 「VS Code」で「M5StickC」にプログラムを転送する
- グラフを確認する
作業はコレだけ。 楽ちんです♪
では、早速始めてみましょう。
1.「M5StickC」を最新ファームに更新する
M5Stack公式のクイックスタートを参考にして、「WiFiセッティング」まで作業を進めて下さい。
最初のM5Burnerのダウンロードリンクが404 Not Foundになってますが、メゲちゃダメです。
右上の「SOFTWARE」の「Downloads」で真のダウンロードページに遷移できます。
(いい加減リンク直そうぜ >M5Stackさん)
M5StickCにUIFlowを入れる件
公式のクイックスタート↓がやや情報古くて、凄く初歩的な所で躓いてしまったので、私の様な超初心者向けに公式との差分を残しておきますhttps://t.co/JowDvI8KjB(詳しい方にはお目汚し失礼)
— norifumi (@norifumi5001) July 7, 2019
尚、「M5StickC」へ書込むファイルは出来るだけ最新が望ましいです。
ということで、クイックスタートを見つつ、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接続モードへ遷移させることが出来ました。
UIFlow1.5.3ファームのM5StickCでUSB接続モードに遷移する方法が分かった!
さっき紹介した「Button A押しながらPower Buttonを押す方法」には何故かUSB接続モードは無い模様
んで、「Button Bを押しながらPower Buttonを押す度にモード切替わる方法」が追加されたみたいで、こっちだとUSB接続出来る pic.twitter.com/7gtOnIjlOd
— norifumi (@norifumi5001) May 30, 2020
「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しても次回起動時にこのプログラムが自動起動する様になります。
起動すると、「M5StickC」の画面上にまず時計が現れ、数秒後に気温・湿度・気圧が表示されます。
画面上の気温・湿度・気圧の更新頻度は1秒毎になっています。
6.グラフを確認する
今回のプログラムでは、300秒毎(5分毎)に気圧データを「Ambient」サーバーへ投げています。
今回のプログラムでは気温・湿度・気圧の3つのデータを5分毎に登録することで、十分に制限枠内に収まっております。
10分程待ったら、「Ambient」にログインし、Myチャネルより気圧データーが登録されてる(筈の)チャネルをクリックし、グラフを確認します。
もし出てこない様なら下記をご確認下さい。
プログラム上の「チャネルID」や「ライトキー」が間違えてないか?
「M5StickC」がちゃんとWiFiでインターネット接続出来ているか?
尚、グラフの表示状態はカスタマイズが可能です。
私は気温・湿度・気圧毎にグラフを設定してます。(下記に参考として設定画面を載せておきます)
<チャネル設定>
<チャート設定>
今回の台風だと最小値は950だと尺が足りないかも知れませんね。(グラフ表示だけの問題なので、後から修正可能です)
後は台風に備えるだけです!!
台風通過時のグラフをみんなで見せ合おうぜ!!
(以下は、先月の台風15号の時の記録です)
M5StickCに付けたENV HATで記録してる気圧データ(今朝7時半時点)
台風通過時の気圧の落ち込みがハッキリ記録されてた
ピークは99hPa pic.twitter.com/AgKutytQe1— norifumi (@norifumi5001) September 8, 2019
・・・99hPaじゃなくて990hPaですね。どんな台風やねん! (^_^;)
【2019/10/13追記】
台風19号通過しました! 幸い我が家の被害は殆ど無かったのでホッとしました。
台風19号の気圧グラフ結果はこんな感じ↓でした。
23時半現在は979hPa
もうピーク過ぎて気圧戻りつつあるちなみにピーク値は963hPaでした! pic.twitter.com/QsobfloBwE
— norifumi (@norifumi5001) October 12, 2019
気圧グラフ見てると、台風通過の瞬間がリアルタイムで分かるの面白いね♪
基本的な使い方
「M5StickC」の表示例はこんな感じ。
「M5StickC Plus」の表示例はこんな感じ。 液晶大きいと文字が読みやすくて良いですね♪
ちなみに「ENV HAT」をそのまま「M5StickC」に装着するとやや温度が高めに表示されます。
どうも「M5StickC」本体側の熱を拾ってしまう模様。
なので、上記写真では私がBOOTHで販売してる「PinHeader HAT」を間に挟んで本体から距離を取る様にしています。
気圧測定そのものにはあまり関係ないですが、HAT装着したままでも途中の信号をオシロで見るのに便利だったりしますので、興味のある方は下記ショップページも覗いてみて下さい。m(__)m
閑話休題。
サンプルプログラムには下記の機能を盛り込んであります。
画面消灯/点灯切り替え
Aボタンに割り当ててあります。(M5ロゴの有るボタン)
画面表示方向180度回転
Bボタン(電源ボタンじゃない方の側面ボタン)を押すと表示が180度回転しますので、設置向きに合わせてお選び下さい。
困ったときは?
・Ambientにデーターが送られない場合
【2020/09/05時点の情報】最新のAmbient.pyライブラリだとAmbientへのデータ送信がうまく行えない事象が報告されています。 Mar 17.2018時点のライブラリだと正常に送信出来ますので、問題がある場合はそちらもお試しください。
GithubでAmbientさんのリポジトリを開いて、写真1枚目の場所(時計巻き戻し?アイコン)をクリック
写真2枚目のMar 17.2018の履歴の<>ボタンをクリック
で該当時期のリポジトリページが開くと思います!
(GitHub全然分からない人なので、間違えてたら御免なさい) pic.twitter.com/SaSFhcKsUA
— norifumi (@norifumi5001) September 4, 2020
その他については、GitHubでサンプルのテストプログラムのソースコードを公開しておりますので、そちらを読んでください。
(MicroPythonで記述していますから、Python読める人ならなんとかなりますよね?)
尚、公開しているプログラムは、あくまでサンプルなので、全ての環境で動作を保証するものではないことを予めご理解願います。
まとめ
(台風怖いデス。 大丈夫か不安でいっぱいデス。 ちゃんと備えましょう!!)
以下、本記事で紹介した商品のリンク
「M5StickC」
「M5StickC Plus」(新製品なので、まだ取り扱い店が少ないですが・・・)
「ENV HAT」
コメント