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

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

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

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

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

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

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

 

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

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

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

 

【2019/10/28追記】GitHubにプログラムコードをUpしました。

新しいプログラムは、画面もややリッチに!機能も向上!してるので、是非お試しください♪

 

概要

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

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

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

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

 

必要なブツ

「M5StickC」

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

 

「ENV HAT」

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

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

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

 

WiFi環境

当然ありますよね!?

無い人は・・・スマン、ワシにはどうにも出来ん・・・。

 

作業の大まかな流れ

下記の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」へ書込むファイルは出来るだけ最新が望ましいです。(1.3.4β以降は必須)

今回のプログラムは「1.4.0-beta」で試しております。

 

ということで、クイックスタートを見つつ、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接続モード」へ遷移させる必要があります。

まず、「M5StickC」の「Power Button」を6秒長押しして電源OFF。続いて「Button A」を押しながら「Power Button」を押して起動します。

すると、モード選択の画面になるので、「Button B」を2度押して「Setup」を選択し、「Button A」を押して決定。

次に、Cloud Mode(UiFlow) / USB Mode / WiFi Setting を選ぶ画面になるので、「Button B」を1度押して「USB Mode」を選択し、「Button A」を押して決定。

これで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プログラム本体を「M5StickC」へアップロード(転送)します。

「Ambient」ライブラリを「M5StickC」へ転送する

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

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

 

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

「ENV HAT」のデーターを「Ambient」に送り込むプログラムはこんな感じ。(雑ソースでスマヌのう・・・)

from m5stack import *
from m5ui import *
from uiflow import *
import hat
import machine
import gc
import ambient

setScreenColor(0x111111)

hat_env0 = hat.get(hat.ENV)

axp.setLDO2Vol(2.7)

import wifiCfg
wifiCfg.autoConnect(lcdShow=True)
time.sleep(0.5)
lcd.clear()

label1 = M5TextBox(48, 41, "Temp", lcd.FONT_Default,0xFFFFFF, rotate=90)
label2 = M5TextBox(23, 40, "Humi", lcd.FONT_Default,0xFFFFFF, rotate=90)
label0 = M5TextBox(73, 40, "Press", lcd.FONT_Default,0xFFFFFF, rotate=90)

t_count = 0

am_env = ambient.Ambient(チャネルID, 'ライトキー')

while True:
  label0.setText(str(hat_env0.temperature) + " C")
  label1.setText(str(hat_env0.humidity) + " %")
  label2.setText(str(hat_env0.pressure) + " hPa")

  gc.collect()

  if t_count < 300:
    t_count = t_count + 1
  else:
    am_env.send({'d1': hat_env0.temperature, 'd2': hat_env0.humidity, 'd3': hat_env0.pressure})
    t_count = 0

  wait_ms(1000)

コピペしてファイルに保存してください。(拡張子は.py)

尚、プログラム上の「チャネルID」と「ライトキー」は3項で取得した番号に修正して下さい。

 

【2019/10/28追記】プログラムをGitHubで公開しています。

rin-ofumi/m5stickc_envhat_ambient
MicroPython project / ENV HAT & M5StickC / Data storage uses Ambient - rin-ofumi/m5stickc_envhat_ambient

GitHub公開版は画面もややリッチに、機能も向上させてあります。

新機能1:Aボタン(M5ロゴのあるボタン)で画面消灯できます(長期間のログ取り用)

新機能2:Bボタン(電源ボタンじゃない方の側面ボタン)で180度画面回転できます。

:追記終わり

 

続いて、この.pyファイルを「M5StickC」へアップロードするのですが、「M5StickC」へのアップロード先は、先程の「ambient.py」とは違って「apps」配下である必要があります。(後述するプログラム指定モードで選択出来るのが「apps」配下のファイルだけの為)

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

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

 

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

2項目で説明した方法と同じ様に、「M5StickC」を一旦電源OFFし、モード選択操作で「APP.List」を選択し、先程転送したプログラムを選択します。

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

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

 

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」

 

「ENV HAT」

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

 

コメント