M5Stack に BME280 のグラフと、ニュース、天気予報を表示させ、Ambient へデータ送信させてみた

記事公開日:2018年7月12日

こんばんは。

ようやく2018/07/10 時点の最新版 Arduino – ESP32 が従来と同様に正常に動くようになりました。

Wi-Fi アクセスポイントやWiFiClientSecure関連の再接続ができるようになりました。
そして、Wi-Fi 使用の省電力化に欠かせない WIFI_OFF が06/24以前と同様に使えるようになりました。

ここ2週間くらい、その原因追及をひたすらやっていた時間は何だったのか・・・、と思ってしまいました。
こういうオープンソースの最新版を使って不具合が出ても、慌てたり、深く追求したりしない方が賢明ですね。
改めて学習しました・・・。

ということで、本題に戻りまして、今回は BOSCH (ボッシュ)製、温度・湿度・気圧センサー BME280 を使って、M5Stack のTFT LCD ディスプレイにグラフを表示させて見ました。

スポンサーリンク

前回記事で述べたように、最新版 Arduino – ESP32 の I2C ( Wireライブラリ )のトラブルが解消されたので、Wi-Fi マルチタスク環境下でも、BME280 センサー値が精度良く安定して取得できるようになりました。

そして、そのセンサー値グラフをオシロスコープっぽく、最大値最小値のボタンによる変更や、計測時間間隔もボタンで変更できるようにしました。

更に、ただ単にグラフ表示するだけでは面白くないので、今までやってきたスクロール時計表示、Yahoo! Japan RSS ニュース電光掲示板表示、天気予報表示も同時にやってみました。
M5Stack ( ESP32 ) のマルチタスクをできるだけフル活用してみました。

そして、さらにさらに!!!

このセンサーデータを、Ambient というクラウドサービスへリアルタイム送信して、スマホやパソコンでグラフが見られるようにしました。
これは、なかなかスゴイですよ!!!

何はともあれ、以下の動画をご覧ください。
Ambient のグラフは動画の最後の方にあります。

いかがでしょうか。
何も、センサーのグラフ表示にニュースを表示させなくても・・・、
と思われるでしょうが、ただ単に自分が表示させたかっただけのお遊びです。
センサー値取得間隔が最小の3秒設定の場合、グラフ再表示が頻繁で、ニュース記事スクロールがカクカクしてしまうところは仕方ないのでご容赦ください。

まず、苦労した点として、センサー値を点描ではなく、折れ線グラフにすることが意外と難しかったです。

そして、最大値、最小値や計測時間間隔も変更出来て、それに合わせてグラフ表示も変化させるというのは、かなり難しかったです。
中高年の枯れた頭をフル活動させて、何とか仕上げました。
M5Stack のディスプレイにここまで表示させることができれば、我ながら満足です。
デジタルオシロスコープなどのようにグラフ表示させるプログラムを作る事って、本当に難しいんだなぁと、つくづく思いました。

それと、ディスプレイ上部にある、接続状態を表示するメッセージウィンドウのプログラミングが難しいです。
WiFiアクセスとLCD表示をマルチタスクで分けているので、接続状態ステータス値取得と、メッセージ表示タイミングが微妙にズレて難しかったのです。

また、このグラフは、M5Stack の電源を切るとデータは消えてしまいます。
でも、今回の我ながらスゴイところは、Ambient送信ボタンでセットすれば、クラウドのAmbient へ保存されるようにしたところです。
micro SD カードに保存するより使い勝手がメチャメチャ良いです。
何で今までこれを使わなかったんだろうと後悔しました。
これは、ホント素晴らしいサービスだと思いました。

ということで、前置きはこれくらいにして、これの作り方を説明してみたいと思います。

因みに、何度も申し上げておりますが、私はアマチュア素人です。
間違いや勘違い等あるかもしれません。
スケッチやプログラム等の動作保証はしません。
もし、不具合等があれば、コメント投稿等でご連絡いただけると助かります。

Ambient について

先にも述べましたが、今回、私は初めて Ambient というクラウドサービスを使ってみました。

https://ambidata.io/

これは、スイッチサイエンスさんの以下の記事でも紹介されています。

AmbientでIoTをはじめよう

最初は、グラフを扱えるものとして、こちらの記事で紹介している Blynk を使おうと思いました。
でも、もっと簡単にサクッと、しかもスマホだけでなくパソコンでもグラフが見られるものを探していたら、Ambient が簡単そうという情報が得られたので使ってみたというわけです。

そうしたら、やっぱりホントに簡単で、超使いやすかったです。
ハッキリ言って、超お勧めです!!!
Ambient サービスはメールアドレスがあれば簡単に無料登録ができるし、スケッチも簡単だし、ESP32 や M5Stack から送信するとブラウザで即グラフを見ることができました。

こんな簡単だったら、もっと早くから使えば良かったと思いました。

先にも述べましたが、センサーデータは micro SD カードに保存するよりは、クラウドに投げた方が圧倒的に使いやすいです。
micro SD カードは、書込みできる回数が意外と少なく、マイコンであまり多量に書き込みを繰り返してしまうと、すぐに寿命が来てしまいます。

それよりも、クラウドならば、圧倒的に使い勝手が良いし、書込み回数を気にしなくて無みますし、しかも、すぐスマホやパソコンで確認できます。
これからの時代は、センサーデータはクラウドに投げることが標準と考えた方が良いと思いました。
IoT でクラウドにデータを投げるという使い方は、これからは当たり前になると思います。

しかし、これを使って改めて思いましたが、ユーザーが簡単にサクッと使えることはホントに大事だなと思いました。
自分のライブラリ作成の参考にさせていただこうと思います。

Ambient を登録し、チャンネルID とwriteキーを発行しておく

Ambient サービスに無料登録し、チャンネル ID と write キーを発行しておいてください。
以下のリンクのチュートリアルに使い方があります。

https://ambidata.io/docs/gettingstarted/

使うもの

M5Stack

Espressif Systems社のESP32 を搭載した、技適取得済み Wi-Fi & Bluetooth マイコンモジュールです。
TFT LCD ディスプレイ、micro SD カードスロット、ボタンスイッチ、バッテリー、スピーカー、Groveコネクタ等を搭載した、全部入りモデルです。
Arduino IDE で開発ができます。

BME280搭載 温湿度・気圧センサモジュール(スイッチサイエンス製)

スイッチサイエンス製のものを使いました。
プルアップ抵抗はハンダ付けされていません。
その方が使い勝手が良いです。
M5Stack の I2C 端子には、3.2kΩ程度のプルアップ抵抗が接続されているようです。
ピンヘッダがハンダ付けされているものとそうでないものとがありますので、購入する時は注意してください。

2.54mmピッチ、ピンソケット

BME280モジュール用に使います。

2.54mm ピッチ 小型ユニバーサル基板

BME280モジュール用にカットして使います。

ジャンパーワイヤー

φ0.65mm の単線で、ブレッドボードに挿せるものを使います。

micro SDHC カード

できるだけ大手メーカー製の micro SDHC カードを使用してください。
2MB以下の micro SDカードや、micro SDXC カードはトラブルが起きる可能性があるので、あまりお勧めしません。
当方で動作確認が取れているものは以下のカードです。

ハンダコテ、パソコン、USBケーブル等

では、次の項では、組み立てや、ライブラリ等のインストール方法を説明します。

スポンサーリンク


mgo-tec電子工作 関連コンテンツ ( 広告含む )

投稿者:

mgo-tec

Arduino , ESP32 ( ESP-WROOM-32 ) , ESP8266 ( ESP-WROOM-02 )等を使って、主にスマホと連携した電子工作やプログラミング記事を書いてます。ライブラリも作ったりしてます。趣味、独学でやってますので、動作保証はしません。 電子回路やプログラミングの専門家ではありません。 畑違いの仕事をしていて、介護にドップリ浸かりそうな年配者です。 少しだけ電気の知識が必要な仕事なので、電気工事士や工事担任者等の資格は持っています。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください